Merge branch 'master' into merge-job
authorJenkins as Icarus Sparry <icarus.sparry@amd.com>
Sun, 12 Jan 2020 03:08:22 +0000 (03:08 +0000)
committerJenkins as Icarus Sparry <icarus.sparry@amd.com>
Sun, 12 Jan 2020 03:08:22 +0000 (03:08 +0000)
49 files changed:
.clang-format [new file with mode: 0644]
README-ROCM.md [new file with mode: 0644]
bfd/Makefile.am
bfd/Makefile.in
bfd/archures.c
bfd/bfd-in2.h
bfd/config.bfd
bfd/configure
bfd/configure.ac
bfd/cpu-amdgcn.c [new file with mode: 0644]
bfd/elf-bfd.h
bfd/elf64-amdgcn.c [new file with mode: 0644]
bfd/targets.c
binutils/elfedit.c
binutils/readelf.c
gdb/Makefile.in
gdb/NOTICES.txt [new file with mode: 0644]
gdb/amdgcn-rocm-tdep.c [new file with mode: 0644]
gdb/amdgcn-rocm-tdep.h [new file with mode: 0644]
gdb/breakpoint.c
gdb/buildsym.c
gdb/buildsym.h
gdb/cli/cli-cmds.c
gdb/config.in
gdb/configure
gdb/configure.ac
gdb/configure.tgt
gdb/defs.h
gdb/dwarf2read.c
gdb/frame.c
gdb/frame.h
gdb/infrun.c
gdb/inline-frame.c
gdb/osabi.c
gdb/rocm-tdep.c [new file with mode: 0644]
gdb/rocm-tdep.h [new file with mode: 0644]
gdb/solib-rocm.c [new file with mode: 0644]
gdb/testsuite/gdb.rocm/bit_extract_asm.S [new file with mode: 0644]
gdb/testsuite/gdb.rocm/bit_extract_asm.exp [new file with mode: 0644]
gdb/testsuite/gdb.rocm/bit_extract_compile.cpp [new file with mode: 0644]
gdb/testsuite/gdb.rocm/bit_extract_compile.exp [new file with mode: 0644]
gdb/testsuite/gdb.rocm/devicecode_breakpoint_test.exp [new file with mode: 0644]
gdb/testsuite/lib/future.exp
gdb/testsuite/lib/rocm.exp [new file with mode: 0644]
gdb/ui-file.c
include/elf/amdgcn.h [new file with mode: 0644]
include/elf/common.h
opcodes/configure
opcodes/configure.ac

diff --git a/.clang-format b/.clang-format
new file mode 100644 (file)
index 0000000..61d18b7
--- /dev/null
@@ -0,0 +1,128 @@
+---
+Language:        Cpp
+# BasedOnStyle:  GNU
+AccessModifierOffset: -2
+AlignAfterOpenBracket: Align
+AlignConsecutiveMacros: false
+AlignConsecutiveAssignments: false
+AlignConsecutiveDeclarations: false
+AlignEscapedNewlines: Right
+AlignOperands:   true
+AlignTrailingComments: true
+AllowAllArgumentsOnNextLine: true
+AllowAllConstructorInitializersOnNextLine: true
+AllowAllParametersOfDeclarationOnNextLine: true
+AllowShortBlocksOnASingleLine: Never
+AllowShortCaseLabelsOnASingleLine: false
+AllowShortFunctionsOnASingleLine: All
+AllowShortLambdasOnASingleLine: All
+AllowShortIfStatementsOnASingleLine: Never
+AllowShortLoopsOnASingleLine: false
+AlwaysBreakAfterDefinitionReturnType: All
+AlwaysBreakAfterReturnType: AllDefinitions
+AlwaysBreakBeforeMultilineStrings: false
+AlwaysBreakTemplateDeclarations: MultiLine
+BinPackArguments: true
+BinPackParameters: true
+BreakBeforeBraces: Custom
+BraceWrapping:
+  AfterCaseLabel:  true
+  AfterClass:      true
+  AfterControlStatement: true
+  AfterEnum:       true
+  AfterFunction:   true
+  AfterNamespace:  true
+  AfterObjCDeclaration: true
+  AfterStruct:     true
+  AfterUnion:      true
+  AfterExternBlock: false
+  BeforeCatch:     true
+  BeforeElse:      true
+  IndentBraces:    true
+  SplitEmptyFunction: true
+  SplitEmptyRecord: true
+  SplitEmptyNamespace: true
+BreakBeforeBinaryOperators: All
+BreakBeforeInheritanceComma: false
+BreakInheritanceList: BeforeColon
+BreakBeforeTernaryOperators: true
+BreakConstructorInitializersBeforeComma: false
+BreakConstructorInitializers: BeforeColon
+BreakAfterJavaFieldAnnotations: false
+BreakStringLiterals: true
+ColumnLimit:     79
+CommentPragmas:  '^ IWYU pragma:'
+CompactNamespaces: false
+ConstructorInitializerAllOnOneLineOrOnePerLine: false
+ConstructorInitializerIndentWidth: 4
+ContinuationIndentWidth: 4
+Cpp11BracedListStyle: false
+DerivePointerAlignment: false
+DisableFormat:   false
+ExperimentalAutoDetectBinPacking: false
+FixNamespaceComments: false
+ForEachMacros:
+  - foreach
+  - Q_FOREACH
+  - BOOST_FOREACH
+IncludeBlocks:   Preserve
+IncludeCategories:
+  - Regex:           '^"(llvm|llvm-c|clang|clang-c)/'
+    Priority:        2
+  - Regex:           '^(<|"(gtest|gmock|isl|json)/)'
+    Priority:        3
+  - Regex:           '.*'
+    Priority:        1
+IncludeIsMainRegex: '(Test)?$'
+IndentCaseLabels: false
+IndentPPDirectives: None
+IndentWidth:     2
+IndentWrappedFunctionNames: false
+JavaScriptQuotes: Leave
+JavaScriptWrapImports: true
+KeepEmptyLinesAtTheStartOfBlocks: true
+MacroBlockBegin: ''
+MacroBlockEnd:   ''
+MaxEmptyLinesToKeep: 1
+NamespaceIndentation: None
+ObjCBinPackProtocolList: Auto
+ObjCBlockIndentWidth: 2
+ObjCSpaceAfterProperty: false
+ObjCSpaceBeforeProtocolList: true
+PenaltyBreakAssignment: 2
+PenaltyBreakBeforeFirstCallParameter: 19
+PenaltyBreakComment: 300
+PenaltyBreakFirstLessLess: 120
+PenaltyBreakString: 1000
+PenaltyBreakTemplateDeclaration: 10
+PenaltyExcessCharacter: 1000000
+PenaltyReturnTypeOnItsOwnLine: 60
+PointerAlignment: Right
+ReflowComments:  true
+SortIncludes:    true
+SortUsingDeclarations: true
+SpaceAfterCStyleCast: false
+SpaceAfterLogicalNot: false
+SpaceAfterTemplateKeyword: true
+SpaceBeforeAssignmentOperators: true
+SpaceBeforeCpp11BracedList: false
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
+SpaceBeforeParens: Always
+SpaceBeforeRangeBasedForLoopColon: true
+SpaceInEmptyBlock: false
+SpaceInEmptyParentheses: false
+SpacesBeforeTrailingComments: 1
+SpacesInAngles:  false
+SpacesInContainerLiterals: true
+SpacesInCStyleCastParentheses: false
+SpacesInParentheses: false
+SpacesInSquareBrackets: false
+Standard:        Cpp11
+StatementMacros:
+  - Q_UNUSED
+  - QT_REQUIRE_VERSION
+TabWidth:        8
+UseTab:          Never
+...
+
diff --git a/README-ROCM.md b/README-ROCM.md
new file mode 100644 (file)
index 0000000..91c0916
--- /dev/null
@@ -0,0 +1,99 @@
+ROCm Debugger (ROCgdb)
+======================
+
+This is ROCgdb, the ROCm source-level debugger for Linux, based on GDB, the GNU
+source-level debugger. It includes support for heterogenous debugging on the
+ROCm platform of an x86-based host architecture together with the AMD
+commercially available GPU architectures supported by the AMD Debugger API which
+is included with the ROCm release as the ROCdbgapi library.
+
+All standard GDB commands can be used for both CPU and GPU code debugging. In particular:
+
+- The ``info threads`` command lists both CPU threads and GPU waves.
+- The ``info sharedlibrary`` command lists both loaded CPU and GPU code objects.
+- The new ``info agents`` command lists the heterogenous agents once the program
+  has started.
+
+The ``_wave_id`` convenience variable can be used when the focused thread is a
+GPU wave. It returns a string with the following format ``x,y,z/w`` where `x`,
+``y``, and ``z`` are the grid position of the wave's work-group in the dispatch,
+and ``w`` is the wave's number within the work-group.
+
+For more information about ROCm and ROCgdb, please refer to the Release Notes
+which includes current restrictions:
+
+- https://github.com/RadeonOpenCompute/ROCm
+
+For more information about GDB, please refer to the README file in this folder
+or check the GDB home page at:
+
+- http://www.gnu.org/software/gdb
+
+Build the ROCm Debugger
+-----------------------
+
+ROCgdb can be built on Ubuntu 16.04, Ubuntu 18.04, and Centos 7.6.
+
+Building ROCgdb has the following prerequisites:
+
+1. A C++11 compiler such as GCC 4.8 or Clang 3.3.
+
+2. AMD Debugger API Library (ROCdbgapi) which can be installed as part of the
+   ROCm release by the ``rocm-dbgapi`` package.
+
+3. For Ubuntu 16.04 and Ubuntu 18.04 the following adds the needed packages:
+
+   ````shell
+   apt install bison flex gcc make ncurses-dev texinfo g++ \
+     zlib1g-dev libexpat-dev libpython2.7-dev python2.7-minimal liblzma-dev \
+     libbabeltrace-dev libbabeltrace-ctf-dev
+   ````
+
+4. For Centos 7.6 the following adds the needed packages:
+
+   ````shell
+   yum install -y epel-release centos-release-scl
+   yum install -y bison flex gcc make texinfo gcc-c++ \
+     zlib-devel expat-devel python-devel xz-devel \
+     libbabeltrace-devel ncurses-devel
+   ````
+
+An example command-line to build ROCgdb on Linux is:
+
+````shell
+cd rocgdb
+mkdir build
+cd build
+../configure --program-prefix=roc \
+  --enable-64-bit-bfd --enable-targets="x86_64-linux-gnu,amdgcn-amd-amdhsa" \
+  --disable-ld --disable-gas --disable-gdbserver --disable-sim --enable-tui \
+  --disable-gdbtk --disable-shared --with-expat --with-system-zlib \
+  --without-guile --with-babeltrace --with-lzma --with-python
+make
+````
+
+Specify ``--with-rocm-dbgapi=PATH`` if the the AMD Debugger API Library
+(ROCdbgapi) is not installed in its default location. The ``configure`` script
+looks in ``PATH/include`` and ``PATH/lib``. The default value for ``PATH`` is
+``/opt/rocm``.
+
+The built ROCgdb executable will be placed in:
+
+- ``build/gdb/gdb``
+
+To install ROCgdb:
+
+````shell
+make install
+````
+
+The installed ROCgdb will be placed in:
+
+- ``<prefix>/bin/rocgdb``
+
+To execute ROCgdb, the ROCdbgapi library and its dependent ROCcomgr library must
+be installed. These can be installed as part of the ROCm release by the
+``rocm-dbgapi`` package:
+
+- ``librocm-dbgapi.so.0``
+- ``libamd_comgr.so.1``
index d32640a12c58af2265171b3571a359b7d6b2efed..1aa307a5b036b50e628f2102ab3a41f4533126ba 100644 (file)
@@ -1,6 +1,7 @@
 ## Process this file with automake to generate Makefile.in
 #
 #   Copyright (C) 2012-2020 Free Software Foundation, Inc.
+#   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -92,6 +93,7 @@ BFD64_LIBS_CFILES = archive64.c
 ALL_MACHINES = \
        cpu-aarch64.lo \
        cpu-alpha.lo \
+       cpu-amdgcn.lo \
        cpu-arc.lo \
        cpu-arm.lo \
        cpu-avr.lo \
@@ -177,6 +179,7 @@ ALL_MACHINES = \
 ALL_MACHINES_CFILES = \
        cpu-aarch64.c \
        cpu-alpha.c \
+       cpu-amdgcn.c \
        cpu-arc.c \
        cpu-arm.c \
        cpu-avr.c \
@@ -551,6 +554,7 @@ BFD64_BACKENDS = \
        elf32-score.lo \
        elf32-score7.lo \
        elf64-alpha.lo \
+       elf64-amdgcn.lo \
        elf64-gen.lo \
        elf64-hppa.lo \
        elf64-ia64.lo \
@@ -592,6 +596,7 @@ BFD64_BACKENDS_CFILES = \
        elf32-score.c \
        elf32-score7.c \
        elf64-alpha.c \
+       elf64-amdgcn.c \
        elf64-gen.c \
        elf64-hppa.c \
        elf64-ia64-vms.c \
index 78555ccbbc20b1f6e4cb8ec35f666dfec0bba588..6290b4966b4756619b65b5954ed057da9fb3c025 100644 (file)
@@ -2,6 +2,7 @@
 # @configure_input@
 
 # Copyright (C) 1994-2017 Free Software Foundation, Inc.
+# Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -516,6 +517,7 @@ BFD64_LIBS_CFILES = archive64.c
 ALL_MACHINES = \
        cpu-aarch64.lo \
        cpu-alpha.lo \
+       cpu-amdgcn.lo \
        cpu-arc.lo \
        cpu-arm.lo \
        cpu-avr.lo \
@@ -601,6 +603,7 @@ ALL_MACHINES = \
 ALL_MACHINES_CFILES = \
        cpu-aarch64.c \
        cpu-alpha.c \
+       cpu-amdgcn.c \
        cpu-arc.c \
        cpu-arm.c \
        cpu-avr.c \
@@ -977,6 +980,7 @@ BFD64_BACKENDS = \
        elf32-score.lo \
        elf32-score7.lo \
        elf64-alpha.lo \
+       elf64-amdgcn.lo \
        elf64-gen.lo \
        elf64-hppa.lo \
        elf64-ia64.lo \
@@ -1018,6 +1022,7 @@ BFD64_BACKENDS_CFILES = \
        elf32-score.c \
        elf32-score7.c \
        elf64-alpha.c \
+       elf64-amdgcn.c \
        elf64-gen.c \
        elf64-hppa.c \
        elf64-ia64-vms.c \
@@ -1331,6 +1336,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/corefile.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-aarch64.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-alpha.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-amdgcn.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-arc.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-arm.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cpu-avr.Plo@am__quote@
@@ -1496,6 +1502,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf32.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-aarch64.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-alpha.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-amdgcn.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-bpf.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-gen.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elf64-hppa.Plo@am__quote@
index 232103817c1043eaa8aea7614ac28b5d0d493b5d..aaab2eac5d99ea3d0b467366d6c6d274f44bbb77 100644 (file)
@@ -1,5 +1,6 @@
 /* BFD library support routines for architectures.
    Copyright (C) 1990-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
    Hacked by John Gilmore and Steve Chamberlain of Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -546,6 +547,18 @@ DESCRIPTION
 .#define bfd_mach_ck803                5
 .#define bfd_mach_ck807                6
 .#define bfd_mach_ck810                7
+.  bfd_arch_amdgcn,     {* AMD GPU Architecture. Must match EF_AMDGPU_MACH_* *}
+.#define bfd_mach_amdgcn_unknown 0x000
+.#define bfd_mach_amdgcn_gfx801  0x028
+.#define bfd_mach_amdgcn_gfx802  0x029
+.#define bfd_mach_amdgcn_gfx803  0x02a
+.#define bfd_mach_amdgcn_gfx810  0x02b
+.#define bfd_mach_amdgcn_gfx900  0x02c
+.#define bfd_mach_amdgcn_gfx902  0x02d
+.#define bfd_mach_amdgcn_gfx904  0x02e
+.#define bfd_mach_amdgcn_gfx906  0x02f
+.#define bfd_mach_amdgcn_gfx908  0x030
+.#define bfd_mach_amdgcn_gfx909  0x031
 .  bfd_arch_last
 .  };
 */
@@ -602,6 +615,7 @@ DESCRIPTION
 
 extern const bfd_arch_info_type bfd_aarch64_arch;
 extern const bfd_arch_info_type bfd_alpha_arch;
+extern const bfd_arch_info_type bfd_amdgcn_arch;
 extern const bfd_arch_info_type bfd_arc_arch;
 extern const bfd_arch_info_type bfd_arm_arch;
 extern const bfd_arch_info_type bfd_avr_arch;
@@ -692,6 +706,7 @@ static const bfd_arch_info_type * const bfd_archures_list[] =
 #else
     &bfd_aarch64_arch,
     &bfd_alpha_arch,
+    &bfd_amdgcn_arch,
     &bfd_arc_arch,
     &bfd_arm_arch,
     &bfd_avr_arch,
index 7c13bc8c91abf291f0206b6608b31955c5ea70d8..8323650164b3449aadb7bc7a9188f61de6fb6214 100644 (file)
@@ -8,6 +8,7 @@
 /* Main header file for the bfd library -- portable access to object files.
 
    Copyright (C) 1990-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    Contributed by Cygnus Support.
 
@@ -1929,6 +1930,18 @@ enum bfd_architecture
 #define bfd_mach_ck803         5
 #define bfd_mach_ck807         6
 #define bfd_mach_ck810         7
+  bfd_arch_amdgcn,     /* AMD GPU Architecture. Must match EF_AMDGPU_MACH_* */
+#define bfd_mach_amdgcn_unknown 0x000
+#define bfd_mach_amdgcn_gfx801  0x028
+#define bfd_mach_amdgcn_gfx802  0x029
+#define bfd_mach_amdgcn_gfx803  0x02a
+#define bfd_mach_amdgcn_gfx810  0x02b
+#define bfd_mach_amdgcn_gfx900  0x02c
+#define bfd_mach_amdgcn_gfx902  0x02d
+#define bfd_mach_amdgcn_gfx904  0x02e
+#define bfd_mach_amdgcn_gfx906  0x02f
+#define bfd_mach_amdgcn_gfx908  0x030
+#define bfd_mach_amdgcn_gfx909  0x031
   bfd_arch_last
   };
 
index b96931f52e6c46fa281738d468b1d88d20237545..5dfbdd1a59c8d80e322455b3d6784d1774bdb33a 100644 (file)
@@ -1,6 +1,7 @@
 # config.bfd
 #
 #   Copyright (C) 2012-2020 Free Software Foundation, Inc.
+#   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 #
 # This file is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -165,6 +166,7 @@ alpha*)              targ_archs=bfd_alpha_arch ;;
 am33_2.0*)      targ_archs=bfd_mn10300_arch ;;
 arc*)           targ_archs=bfd_arc_arch ;;
 arm*)           targ_archs=bfd_arm_arch ;;
+amdgcn*)        targ_archs=bfd_amdgcn_arch ;;
 bfin*)          targ_archs=bfd_bfin_arch ;;
 c30*)           targ_archs=bfd_tic30_arch ;;
 c4x*)           targ_archs=bfd_tic4x_arch ;;
@@ -296,6 +298,10 @@ case "${targ}" in
     targ_defvec=alpha_ecoff_le_vec
     want64=true
     ;;
+  amdgcn-*-amdhsa)
+    targ_defvec=amdgcn_elf64_le_vec
+    want64=true
+    ;;
   ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
     targ_defvec=ia64_elf64_le_vec
     targ_selvecs="ia64_elf64_be_vec ia64_pei_vec"
index a38f215798d0e6e01327a88f3226bf6446889c22..3b797ac0cab484d61ea003e5e77ccffc04968660 100755 (executable)
@@ -4,6 +4,7 @@
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -14694,6 +14695,7 @@ do
     alpha_vms_vec)              tb="$tb vms-alpha.lo vms-misc.lo vms-lib.lo"; target_size=64 ;;
     alpha_vms_lib_txt_vec)      tb="$tb vms-lib.lo vms-misc.lo" ;;
     am33_elf32_linux_vec)       tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
+    amdgcn_elf64_le_vec)        tb="$tb elf64-amdgcn.lo elf64.lo $elf"; target_size=64 ;;
     aout0_be_vec)               tb="$tb aout0.lo aout32.lo" ;;
     aout64_vec)                         tb="$tb demo64.lo aout64.lo"; target_size=64 ;;
     aout_vec)                   tb="$tb host-aout.lo aout32.lo" ;;
index c5bfbd5d129ceb5668cf2af76e0f227cbc5c3846..bf8106b856c0af61cfe30b3b1be342cb0432824b 100644 (file)
@@ -1,6 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl
 dnl   Copyright (C) 2012-2020 Free Software Foundation, Inc.
+dnl   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 dnl
 dnl This file is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
@@ -430,6 +431,7 @@ do
     alpha_vms_vec)              tb="$tb vms-alpha.lo vms-misc.lo vms-lib.lo"; target_size=64 ;;
     alpha_vms_lib_txt_vec)      tb="$tb vms-lib.lo vms-misc.lo" ;;
     am33_elf32_linux_vec)       tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
+    amdgcn_elf64_le_vec)        tb="$tb elf64-amdgcn.lo elf64.lo $elf"; target_size=64 ;;
     aout0_be_vec)               tb="$tb aout0.lo aout32.lo" ;;
     aout64_vec)                         tb="$tb demo64.lo aout64.lo"; target_size=64 ;;
     aout_vec)                   tb="$tb host-aout.lo aout32.lo" ;;
diff --git a/bfd/cpu-amdgcn.c b/bfd/cpu-amdgcn.c
new file mode 100644 (file)
index 0000000..df0c925
--- /dev/null
@@ -0,0 +1,55 @@
+/* BFD support for the AMDGCN gpu.
+
+   Copyright (C) 2019-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "sysdep.h"
+#include "bfd.h"
+#include "libbfd.h"
+
+#define N(MACHINE, PRINTABLE_NAME, DEFAULT, NEXT)       \
+  {                                                     \
+    32, /* 32 bits in a word */                         \
+    64, /* 64 bits in an address */                     \
+    8,  /* 8 bits in a byte */                          \
+    bfd_arch_amdgcn,                                    \
+    MACHINE,                                            \
+    "amdgcn",                                           \
+    PRINTABLE_NAME,                                     \
+    3, /* section align power */                        \
+    DEFAULT,                                            \
+    bfd_default_compatible,                             \
+    bfd_default_scan,                                   \
+    bfd_arch_default_fill,                              \
+    NEXT,                                               \
+    0                                                   \
+  }
+
+#define NN(index) (&arch_info_struct[index])
+
+static const bfd_arch_info_type arch_info_struct[] =
+{
+  N (bfd_mach_amdgcn_gfx900, "amdgcn:gfx900", FALSE, NN(1)),
+  N (bfd_mach_amdgcn_gfx902, "amdgcn:gfx902", FALSE, NN(2)),
+  N (bfd_mach_amdgcn_gfx904, "amdgcn:gfx904", FALSE, NN(3)),
+  N (bfd_mach_amdgcn_gfx906, "amdgcn:gfx906", FALSE, NN(4)),
+  N (bfd_mach_amdgcn_gfx908, "amdgcn:gfx908", FALSE, 0),
+};
+
+const bfd_arch_info_type bfd_amdgcn_arch =
+  N (bfd_mach_amdgcn_unknown, "amdgcn", TRUE, NN(0));
index cbbba153f4966926a9bf7c45020da39774d0ed25..b0f7366dc885b87c342e7bf1cc8be11087e45ed1 100644 (file)
@@ -1,5 +1,6 @@
 /* BFD back-end data structures for ELF files.
    Copyright (C) 1992-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -484,6 +485,7 @@ enum elf_target_id
 {
   AARCH64_ELF_DATA = 1,
   ALPHA_ELF_DATA,
+  AMDGCN_ELF_DATA,
   ARC_ELF_DATA,
   ARM_ELF_DATA,
   AVR_ELF_DATA,
diff --git a/bfd/elf64-amdgcn.c b/bfd/elf64-amdgcn.c
new file mode 100644 (file)
index 0000000..6287f9b
--- /dev/null
@@ -0,0 +1,136 @@
+/* Support for AMDHSA ELF.
+
+   Copyright (C) 2019-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "sysdep.h"
+#include "bfd.h"
+#include "libbfd.h"
+#include "elf-bfd.h"
+#include "elf/amdgcn.h"
+
+#include <string.h>
+
+
+static unsigned int
+bfd_amdgcn_get_mach_from_notes (bfd *abfd)
+{
+  asection *     note_section;
+  bfd_size_type  buffer_size;
+  bfd_byte *     ptr, * end, * buffer = NULL;
+  unsigned int   mach = 0;
+
+  note_section = bfd_get_section_by_name (abfd, ".note");
+  if (note_section == NULL)
+    return 0;
+
+  buffer_size = note_section->size;
+  if (buffer_size == 0)
+    return 0;
+
+  if (!bfd_malloc_and_get_section (abfd, note_section, &buffer))
+    return 0;
+
+  ptr = buffer;
+  end = &buffer[buffer_size];
+  while (mach == 0 && buffer < end)
+    {
+      unsigned long namesz;
+      unsigned long descsz;
+      unsigned long type;
+
+      if ((ptr + 12)  >= end)
+        break;
+
+      namesz = bfd_get_32 (abfd, ptr);
+      descsz = bfd_get_32 (abfd, ptr + 4);
+      type   = bfd_get_32 (abfd, ptr + 8);
+
+      if (namesz == 4 && (ptr + 16) <= end
+          && (!strcmp((char*) ptr + 12, "AMDGPU")
+              || !strcmp((char*) ptr + 12, "AMD"))
+          && type == NT_AMDGPU_HSA_ISA)
+        {
+          unsigned int major, minor, patch;
+
+          major = bfd_get_32 (abfd, ptr + 20);
+          minor = bfd_get_32 (abfd, ptr + 24);
+          patch = bfd_get_32 (abfd, ptr + 28);
+
+          switch (major * 100 + minor * 10 + patch)
+            {
+            case 801: mach = bfd_mach_amdgcn_gfx801; break;
+            case 802: mach = bfd_mach_amdgcn_gfx802; break;
+            case 803: mach = bfd_mach_amdgcn_gfx803; break;
+            case 810: mach = bfd_mach_amdgcn_gfx810; break;
+            case 900: mach = bfd_mach_amdgcn_gfx900; break;
+            case 902: mach = bfd_mach_amdgcn_gfx902; break;
+            case 904: mach = bfd_mach_amdgcn_gfx904; break;
+            case 906: mach = bfd_mach_amdgcn_gfx906; break;
+            case 908: mach = bfd_mach_amdgcn_gfx908; break;
+            case 909: mach = bfd_mach_amdgcn_gfx909; break;
+            default:  mach = bfd_mach_amdgcn_unknown; break;
+            }
+        }
+
+      ptr += 12 + ((namesz + 3) & ~3) + ((descsz + 3) & ~3);
+    }
+
+
+  if (buffer != NULL)
+    free (buffer);
+
+  return mach;
+}
+
+static bfd_boolean
+elf64_amdgcn_object_p (bfd *abfd)
+{
+  unsigned int mach;
+
+  if (elf_elfheader (abfd)->e_ident[EI_OSABI] != ELFOSABI_AMDGPU_HSA)
+    return FALSE;
+
+  if (elf_elfheader (abfd)->e_ident[EI_ABIVERSION] < 1)
+    mach = bfd_amdgcn_get_mach_from_notes (abfd);
+  else
+    mach = elf_elfheader (abfd)->e_flags & EF_AMDGPU_MACH;
+
+  bfd_default_set_arch_mach (abfd, bfd_arch_amdgcn, mach);
+  return TRUE;
+}
+
+
+#define TARGET_LITTLE_SYM      amdgcn_elf64_le_vec
+#define TARGET_LITTLE_NAME     "elf64-amdgcn"
+#define ELF_ARCH               bfd_arch_amdgcn
+#define ELF_TARGET_ID          AMDGCN_ELF_DATA
+#define ELF_MACHINE_CODE       EM_AMDGPU
+#define ELF_OSABI              ELFOSABI_AMDGPU_HSA
+#define ELF_MAXPAGESIZE                0x10000 /* 64KB */
+#define ELF_COMMONPAGESIZE     0x1000  /* 4KB */
+
+#define bfd_elf64_bfd_reloc_type_lookup \
+  bfd_default_reloc_type_lookup
+#define bfd_elf64_bfd_reloc_name_lookup \
+  _bfd_norelocs_bfd_reloc_name_lookup
+
+#define elf_backend_object_p \
+  elf64_amdgcn_object_p
+
+#include "elf64-target.h"
index 1b7e29d1e6eb8c7c7058a42c7a7e8678fe2f5670..43bc346633a92d6445c05f30ccc6b68f98ac503d 100644 (file)
@@ -1,5 +1,6 @@
 /* Generic target-file-type support for the BFD library.
    Copyright (C) 1990-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
    Written by Cygnus Support.
 
    This file is part of BFD, the Binary File Descriptor library.
@@ -665,6 +666,7 @@ extern const bfd_target aarch64_elf64_be_cloudabi_vec;
 extern const bfd_target aarch64_elf64_le_vec;
 extern const bfd_target aarch64_elf64_le_cloudabi_vec;
 extern const bfd_target aarch64_mach_o_vec;
+extern const bfd_target amdgcn_elf64_le_vec;
 extern const bfd_target alpha_ecoff_le_vec;
 extern const bfd_target alpha_elf64_vec;
 extern const bfd_target alpha_elf64_fbsd_vec;
@@ -985,6 +987,10 @@ static const bfd_target * const _bfd_target_vector[] =
        &aarch64_mach_o_vec,
 #endif
 
+#ifdef BFD64
+       &amdgcn_elf64_le_vec,
+#endif
+
 #ifdef BFD64
        &alpha_ecoff_le_vec,
        &alpha_elf64_vec,
index 7c475c903d7cc1f1f246077c2b21bc9fc916498c..fd3e404b218dd98cc0a8c0e20d15df4c5f46856a 100644 (file)
@@ -1,5 +1,6 @@
 /* elfedit.c -- Update the ELF header of an ELF format file
    Copyright (C) 2010-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GNU Binutils.
 
@@ -292,6 +293,7 @@ elf_class (int mach)
       return ELF_CLASS_32;
     case EM_L1OM:
     case EM_K1OM:
+    case EM_AMDGPU:
       return ELF_CLASS_64;
     case EM_X86_64:
     case EM_NONE:
@@ -819,6 +821,8 @@ elf_machine (const char *mach)
     return EM_X86_64;
   if (strcasecmp (mach, "x86-64") == 0)
     return EM_X86_64;
+  if (strcasecmp (mach, "amdgcn") == 0)
+    return EM_AMDGPU;
   if (strcasecmp (mach, "none") == 0)
     return EM_NONE;
 
index 4326cd00cab116106b35a5b4c973b60b47abc5d6..960ed196cbb966425b2fe421239efedcd15d65db 100644 (file)
@@ -1,5 +1,6 @@
 /* readelf.c -- display contents of an ELF format file
    Copyright (C) 1998-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    Originally developed by Eric Youngdale <eric@andante.jic.com>
    Modifications by Nick Clifton <nickc@redhat.com>
@@ -92,6 +93,7 @@
 
 #include "elf/aarch64.h"
 #include "elf/alpha.h"
+#include "elf/amdgcn.h"
 #include "elf/arc.h"
 #include "elf/arm.h"
 #include "elf/avr.h"
@@ -1591,6 +1593,10 @@ dump_relocations (Filedata *          filedata,
        case EM_Z80:
          rtype = elf_z80_reloc_type (type);
          break;
+
+       case EM_AMDGPU:
+         rtype = elf_amdgcn_reloc_type (type);
+         break;
        }
 
       if (rtype == NULL)
@@ -3253,6 +3259,27 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine)
            }
          break;
 
+       case EM_AMDGPU:
+         switch (e_flags & EF_AMDGPU_MACH)
+           {
+           case EF_AMDGPU_MACH_AMDGCN_GFX801 : strcat (buf, ", gfx801"); break;
+           case EF_AMDGPU_MACH_AMDGCN_GFX802 : strcat (buf, ", gfx802"); break;
+           case EF_AMDGPU_MACH_AMDGCN_GFX803 : strcat (buf, ", gfx803"); break;
+           case EF_AMDGPU_MACH_AMDGCN_GFX810 : strcat (buf, ", gfx810"); break;
+           case EF_AMDGPU_MACH_AMDGCN_GFX900 : strcat (buf, ", gfx900"); break;
+           case EF_AMDGPU_MACH_AMDGCN_GFX902 : strcat (buf, ", gfx902"); break;
+           case EF_AMDGPU_MACH_AMDGCN_GFX904 : strcat (buf, ", gfx904"); break;
+           case EF_AMDGPU_MACH_AMDGCN_GFX906 : strcat (buf, ", gfx906"); break;
+           case EF_AMDGPU_MACH_AMDGCN_GFX908 : strcat (buf, ", gfx908"); break;
+           case EF_AMDGPU_MACH_AMDGCN_GFX909 : strcat (buf, ", gfx909"); break;
+           default: strcat (buf, _(", <unknown AMDGPU gpu type>")); break;
+           }
+
+         if (e_flags & ~ EF_AMDGPU_MACH)
+           sprintf (buf + strlen (buf), _(", unknown flags bits: %#x"),
+                    e_flags & ~ EF_AMDGPU_MACH);
+         break;
+
        case EM_CYGNUS_MEP:
          switch (e_flags & EF_MEP_CPU_MASK)
            {
@@ -3805,6 +3832,15 @@ get_osabi_name (Filedata * filedata, unsigned int osabi)
       if (osabi >= 64)
        switch (filedata->file_header.e_machine)
          {
+         case EM_AMDGPU:
+           switch (osabi)
+             {
+             case ELFOSABI_AMDGPU_HSA: return "AMD HSA Runtime";
+             default:
+               break;
+             }
+           break;
+
          case EM_ARM:
            switch (osabi)
              {
@@ -17761,6 +17797,82 @@ decode_x86_isa (unsigned int bitmask)
     }
 }
 
+static const char *
+get_amd_elf_note_type (unsigned e_type)
+{
+  static char buff[64];
+
+  switch (e_type)
+    {
+    case NT_AMDGPU_HSA_CODE_OBJECT_VERSION:
+      return _("NT_AMDGPU_HSA_CODE_OBJECT_VERSION (code object version)");
+    case NT_AMDGPU_HSA_HSAIL:
+      return _("NT_AMDGPU_HSA_HSAIL (hsail)");
+    case NT_AMDGPU_HSA_ISA:
+      return _("NT_AMDGPU_HSA_ISA (ISA name)");
+    case NT_AMDGPU_HSA_PRODUCER:
+      return _("NT_AMDGPU_HSA_PRODUCER (producer name)");
+    case NT_AMDGPU_HSA_PRODUCER_OPTIONS:
+      return _("NT_AMDGPU_HSA_PRODUCER_OPTIONS (producer options");
+    case NT_AMDGPU_HSA_EXTENSION:
+      return _("NT_AMDGPU_HSA_EXTENSION (extension)");
+    case NT_AMDGPU_HSA_METADATA:
+      return _("NT_AMDGPU_HSA_METADATA (code object metadata)");
+    case NT_AMDGPU_ISA:
+      return _("NT_AMDGPU_ISA");
+    case NT_AMDGPU_PAL_METADATA:
+      return _("NT_AMDGPU_PAL_METADATA (code object metadata)");
+    case NT_AMDGPU_METADATA:
+      return _("NT_AMDGPU_METADATA (code object metadata)");
+    default:
+      break;
+    }
+
+  snprintf (buff, sizeof (buff), _("Unknown note type: (0x%08x)"), e_type);
+  return buff;
+}
+
+static int
+print_amd_note (Elf_Internal_Note *pnote)
+{
+  switch (pnote->type)
+    {
+    case NT_AMDGPU_HSA_CODE_OBJECT_VERSION:
+      {
+        unsigned int major, minor;
+
+        major = byte_get ((unsigned char*) pnote->descdata, 4);
+        minor = byte_get ((unsigned char*) pnote->descdata + 4, 4);
+
+        printf (_("    Version: %d.%d\n"), major, minor);
+      }
+      break;
+
+    case NT_AMDGPU_HSA_ISA:
+      {
+        unsigned long i, vendorsz;
+        unsigned int major, minor, stepping;
+
+        vendorsz = byte_get ((unsigned char*) pnote->descdata, 2);
+        major = byte_get ((unsigned char*) pnote->descdata + 4, 4);
+        minor = byte_get ((unsigned char*) pnote->descdata + 8, 4);
+        stepping = byte_get ((unsigned char*) pnote->descdata + 12, 4);
+
+        printf (_("    Vendor: "));
+        for (i = 16; i < pnote->descsz && pnote->descdata[i] != '\0'; ++i)
+          printf ("%c", pnote->descdata[i]);
+        printf (_(", Architecture: "));
+        for (i = 16 + vendorsz; i < pnote->descsz && pnote->descdata[i] != '\0'; ++i)
+          printf ("%c", pnote->descdata[i]);
+
+        printf (_(", Version: %d.%d.%d"), major, minor, stepping);
+        printf ("\n");
+      }
+      break;
+    }
+  return 1;
+}
+
 static void
 decode_x86_feature_1 (unsigned int bitmask)
 {
@@ -19208,6 +19320,11 @@ process_note (Elf_Internal_Note *  pnote,
     /* GNU-specific object file notes.  */
     nt = get_gnu_elf_note_type (pnote->type);
 
+  else if (const_strneq (pnote->namedata, "AMD")
+           || const_strneq (pnote->namedata, "AMDGPU"))
+    /* AMD-specific object file notes.  */
+    nt = get_amd_elf_note_type (pnote->type);
+
   else if (const_strneq (pnote->namedata, "FreeBSD"))
     /* FreeBSD-specific core file notes.  */
     nt = get_freebsd_elfcore_note_type (filedata, pnote->type);
@@ -19263,6 +19380,9 @@ process_note (Elf_Internal_Note *  pnote,
     return print_ia64_vms_note (pnote);
   else if (const_strneq (pnote->namedata, "GNU"))
     return print_gnu_note (filedata, pnote);
+  else if (const_strneq (pnote->namedata, "AMD")
+           || const_strneq (pnote->namedata, "AMDGPU"))
+    return print_amd_note (pnote);
   else if (const_strneq (pnote->namedata, "stapsdt"))
     return print_stapsdt_note (pnote);
   else if (const_strneq (pnote->namedata, "CORE"))
index 6df0f46b5ed91d4abcb0a59d73bcee7ec7cd3b02..e852b140e7acd0306e77347694ed59e95231226f 100644 (file)
@@ -1,4 +1,5 @@
 # Copyright (C) 1989-2020 Free Software Foundation, Inc.
+# Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
 # This file is part of GDB.
 
@@ -609,7 +610,7 @@ INTERNAL_LDFLAGS = \
 CLIBS = $(SIM) $(READLINE) $(OPCODES) $(BFD) $(LIBCTF) $(ZLIB) \
         $(INTL) $(LIBIBERTY) $(LIBDECNUMBER) \
        $(XM_CLIBS) $(GDBTKLIBS) \
-       @LIBS@ @GUILE_LIBS@ @PYTHON_LIBS@ \
+       @LIBS@ @GUILE_LIBS@ @PYTHON_LIBS@ @ROCM_DBGAPI_LIBS@ \
        $(LIBEXPAT) $(LIBLZMA) $(LIBBABELTRACE) $(LIBIPT) \
        $(LIBIBERTY) $(WIN32LIBS) $(LIBGNU) $(LIBICONV) $(LIBMPFR) \
        $(SRCHIGH_LIBS) $(LIBXXHASH) $(PTHREAD_LIBS)
@@ -1220,6 +1221,7 @@ HFILES_NO_SRCDIR = \
        amd64-linux-tdep.h \
        amd64-nat.h \
        amd64-tdep.h \
+       amdgcn-rocm-tdep.h \
        annotate.h \
        arc-tdep.h \
        arch-utils.h \
@@ -1385,6 +1387,7 @@ HFILES_NO_SRCDIR = \
        riscv-fbsd-tdep.h \
        riscv-ravenscar-thread.h \
        riscv-tdep.h \
+       rocm-tdep.h \
        rs6000-aix-tdep.h \
        rs6000-tdep.h \
        run-on-main-thread.h \
@@ -2186,6 +2189,7 @@ ALLDEPFILES = \
        amd64-obsd-tdep.c \
        amd64-sol2-tdep.c \
        amd64-tdep.c \
+       amdgcn-rocm-tdep.c \
        arc-tdep.c \
        arm.c \
        arm-bsd-tdep.c \
@@ -2305,6 +2309,7 @@ ALLDEPFILES = \
        riscv-linux-tdep.c \
        riscv-ravenscar-thread.c \
        riscv-tdep.c \
+       rocm-tdep.c \
        rl78-tdep.c \
        rs6000-lynx178-tdep.c \
        rs6000-nat.c \
@@ -2324,6 +2329,7 @@ ALLDEPFILES = \
        sh-tdep.c \
        sol2-tdep.c \
        solib-aix.c \
+       solib-rocm.c \
        solib-svr4.c \
        sparc-linux-nat.c \
        sparc-linux-tdep.c \
diff --git a/gdb/NOTICES.txt b/gdb/NOTICES.txt
new file mode 100644 (file)
index 0000000..086a56d
--- /dev/null
@@ -0,0 +1,808 @@
+Notices and licenses file
+________________________
+
+AMD copyrighted code (GPLv3)
+Copyright (C) 2019-2020 Free Software Foundation, Inc.
+Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+This file is part of GDB.
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+AMD copyrighted code (UoI)
+The University of Illinois/NCSA
+Open Source License (NCSA)
+Copyright (c) 2018, Advanced Micro Devices, Inc. All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal with the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+ - Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimers.
+ - Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimers in
+   the documentation and/or other materials provided with the distribution.
+ - Neither the names of Advanced Micro Devices, Inc,
+   nor the names of its contributors may be used to endorse or promote
+   products derived from this Software without specific prior written
+   permission.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS WITH THE SOFTWARE.
+
+
+Dependencies on gnu-gdb v-u (GPLv3)
+Copyright (C) 1986-2020 Free Software Foundation, Inc.
+
+This file is part of GDB.
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+gnu-gdb v-u (GPLv3)
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 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.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  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, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+
+
+gnu-bash v-u (GPLv3)
+Copyright (C) 1987,1991 Free Software Foundation, Inc.
+
+This file is part of GNU Bash, the Bourne Again SHell.
+
+Bash 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.
+
+Bash 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 Bash.  If not, see <http://www.gnu.org/licenses/>.
+
+
+gnu-glibc v-u (LGPL2.1)
+Copyright (C) 2006-2020 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+MA 02110-1301, USA.
+
+
+zlib 1.2.11
+Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
+Jean-loup Gailly        Mark Adler
+jloup@gzip.org          madler@alumni.caltech.edu
diff --git a/gdb/amdgcn-rocm-tdep.c b/gdb/amdgcn-rocm-tdep.c
new file mode 100644 (file)
index 0000000..920291e
--- /dev/null
@@ -0,0 +1,610 @@
+/* Target-dependent code for the ROCm amdgcn architecture.
+
+   Copyright (C) 2019-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "defs.h"
+
+#include "amdgcn-rocm-tdep.h"
+#include "arch-utils.h"
+#include "dwarf2-frame.h"
+#include "frame-base.h"
+#include "frame-unwind.h"
+#include "gdbarch.h"
+#include "inferior.h"
+#include "osabi.h"
+#include "reggroups.h"
+#include "rocm-tdep.h"
+
+bool
+rocm_is_amdgcn_gdbarch (struct gdbarch *arch)
+{
+  return (gdbarch_bfd_arch_info (arch)->arch == bfd_arch_amdgcn);
+}
+
+/* Return the name of register REGNUM.  */
+static const char *
+amdgcn_register_name (struct gdbarch *gdbarch, int regnum)
+{
+  amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id ();
+  amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (inferior_ptid);
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+  amd_dbgapi_size_t unused;
+  if (amd_dbgapi_wave_register_get_info (
+          process_id, wave_id, tdep->register_ids[regnum],
+          AMD_DBGAPI_REGISTER_INFO_SIZE, sizeof (unused), &unused)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    return "";
+
+  return tdep->register_names[regnum].c_str ();
+}
+
+static int
+amdgcn_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg)
+{
+  amd_dbgapi_architecture_id_t architecture_id;
+  amd_dbgapi_register_id_t register_id;
+
+  if (amd_dbgapi_get_architecture (gdbarch_bfd_arch_info (gdbarch)->mach,
+                                   &architecture_id)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    return -1;
+
+  if (amd_dbgapi_dwarf_register_to_register (architecture_id, reg,
+                                             &register_id)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    return -1;
+
+  return gdbarch_tdep (gdbarch)->regnum_map[register_id];
+}
+
+static struct type *
+gdb_type_from_type_name (struct gdbarch *gdbarch, const std::string &type_name)
+{
+  size_t pos;
+
+  /* vector types.  */
+  if ((pos = type_name.find_last_of ('[')) != std::string::npos)
+    {
+      struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+      auto it = tdep->vector_type_map.find (type_name);
+      if (it != tdep->vector_type_map.end ())
+        return it->second;
+
+      struct type *vector_type = init_vector_type (
+          gdb_type_from_type_name (gdbarch, type_name.substr (0, pos)),
+          std::stoi (type_name.substr (pos + 1)));
+
+      tdep->vector_type_map[type_name] = vector_type;
+      return vector_type;
+    }
+  /* scalar types.  */
+  else if (type_name == "int32_t")
+    return builtin_type (gdbarch)->builtin_int32;
+  else if (type_name == "uint32_t")
+    return builtin_type (gdbarch)->builtin_uint32;
+  else if (type_name == "int64_t")
+    return builtin_type (gdbarch)->builtin_int64;
+  else if (type_name == "uint64_t")
+    return builtin_type (gdbarch)->builtin_uint64;
+  else if (type_name == "float")
+    return builtin_type (gdbarch)->builtin_float;
+  else if (type_name == "double")
+    return builtin_type (gdbarch)->builtin_double;
+  else if (type_name == "void (*)()")
+    return builtin_type (gdbarch)->builtin_func_ptr;
+
+  return builtin_type (gdbarch)->builtin_void;
+}
+
+static struct type *
+amdgcn_register_type (struct gdbarch *gdbarch, int regnum)
+{
+  amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id ();
+  amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (inferior_ptid);
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+  char *bytes;
+  if (amd_dbgapi_wave_register_get_info (
+          process_id, wave_id, tdep->register_ids[regnum],
+          AMD_DBGAPI_REGISTER_INFO_TYPE, sizeof (bytes), &bytes)
+      == AMD_DBGAPI_STATUS_SUCCESS)
+    {
+      std::string type_name (bytes);
+      xfree (bytes);
+
+      return gdb_type_from_type_name (gdbarch, type_name);
+    }
+
+  return builtin_type (gdbarch)->builtin_void;
+}
+
+static int
+amdgcn_register_reggroup_p (struct gdbarch *gdbarch, int regnum,
+                            struct reggroup *group)
+{
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  const char *name = reggroup_name (group);
+
+  auto it = tdep->register_class_map.find (name);
+  if (it == tdep->register_class_map.end ())
+    return group == all_reggroup;
+
+  amd_dbgapi_architecture_id_t architecture_id;
+
+  if (amd_dbgapi_get_architecture (gdbarch_bfd_arch_info (gdbarch)->mach,
+                                   &architecture_id)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    return group == all_reggroup;
+
+  amd_dbgapi_register_class_state_t state;
+
+  if (amd_dbgapi_register_is_in_register_class (
+          architecture_id, tdep->register_ids[regnum], it->second, &state)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    return group == all_reggroup;
+
+  return state == AMD_DBGAPI_REGISTER_CLASS_STATE_MEMBER
+         || group == all_reggroup;
+}
+
+static int
+amdgcn_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *)
+{
+  return gdbarch_tdep (gdbarch)->breakpoint_instruction_size;
+}
+
+static const gdb_byte *
+amdgcn_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
+{
+  *size = kind;
+  return gdbarch_tdep (gdbarch)->breakpoint_instruction_bytes.get ();
+}
+
+struct amdgcn_frame_cache
+{
+  CORE_ADDR base;
+  CORE_ADDR pc;
+};
+
+static struct amdgcn_frame_cache *
+amdgcn_frame_cache (struct frame_info *this_frame, void **this_cache)
+{
+  if (*this_cache)
+    return (struct amdgcn_frame_cache *)*this_cache;
+
+  struct amdgcn_frame_cache *cache
+      = FRAME_OBSTACK_ZALLOC (struct amdgcn_frame_cache);
+  (*this_cache) = cache;
+
+  cache->pc = get_frame_func (this_frame);
+  cache->base = 0;
+
+  return cache;
+}
+
+static void
+amdgcn_frame_this_id (struct frame_info *this_frame, void **this_cache,
+                      struct frame_id *this_id)
+{
+  struct amdgcn_frame_cache *cache
+      = amdgcn_frame_cache (this_frame, this_cache);
+
+  if (get_frame_type (this_frame) == INLINE_FRAME)
+    (*this_id) = frame_id_build (cache->base, cache->pc);
+  else
+    (*this_id) = outer_frame_id;
+
+  if (frame_debug)
+    {
+      fprintf_unfiltered (
+          gdb_stdlog, "{ amdgcn_frame_this_id (this_frame=%d) type=%d -> ",
+          frame_relative_level (this_frame), get_frame_type (this_frame));
+      fprint_frame_id (gdb_stdlog, *this_id);
+      fprintf_unfiltered (gdb_stdlog, "}\n");
+    }
+
+  return;
+}
+
+static struct frame_id
+amdgcn_dummy_id (struct gdbarch *gdbarch, struct frame_info *this_frame)
+{
+  return frame_id_build (0, get_frame_pc (this_frame));
+}
+
+static struct value *
+amdgcn_frame_prev_register (struct frame_info *this_frame, void **this_cache,
+                            int regnum)
+{
+  return frame_unwind_got_register (this_frame, regnum, regnum);
+}
+
+static const struct frame_unwind amdgcn_frame_unwind = {
+  NORMAL_FRAME,
+  default_frame_unwind_stop_reason,
+  amdgcn_frame_this_id,
+  amdgcn_frame_prev_register,
+  NULL,
+  default_frame_sniffer,
+  NULL,
+  NULL,
+};
+
+struct rocm_displaced_step_closure : public displaced_step_closure
+{
+  amd_dbgapi_process_id_t process_id;
+  amd_dbgapi_wave_id_t wave_id;
+  amd_dbgapi_displaced_stepping_id_t displaced_stepping_id;
+};
+
+static CORE_ADDR
+amdgcn_rocm_displaced_step_location (struct gdbarch *gdbarch)
+{
+  size_t size = gdbarch_tdep (gdbarch)->breakpoint_instruction_size;
+  gdb::unique_xmalloc_ptr<gdb_byte> buffer (
+      static_cast<gdb_byte *> (xmalloc (size)));
+
+  /* Read the bytes that were overwritten by the breakpoint instruction.  */
+  if (target_read_memory (regcache_read_pc (get_current_regcache ()),
+                          buffer.get (), size))
+    return 0;
+
+  amd_dbgapi_displaced_stepping_id_t stepping_id;
+  if (amd_dbgapi_displaced_stepping_start (
+          get_amd_dbgapi_process_id (), get_amd_dbgapi_wave_id (inferior_ptid),
+          buffer.get (), &stepping_id)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    return 0;
+
+  return stepping_id.handle;
+}
+
+static struct displaced_step_closure *
+amdgcn_rocm_displaced_step_copy_insn (struct gdbarch *gdbarch, CORE_ADDR from,
+                                      CORE_ADDR to, struct regcache *regcache)
+{
+  rocm_displaced_step_closure *closure = new rocm_displaced_step_closure;
+
+  closure->process_id = get_amd_dbgapi_process_id ();
+  closure->wave_id = get_amd_dbgapi_wave_id (inferior_ptid);
+  closure->displaced_stepping_id = { to };
+
+  return closure;
+}
+
+static void
+amdgcn_rocm_displaced_step_fixup (struct gdbarch *gdbarch,
+                                  struct displaced_step_closure *closure_,
+                                  CORE_ADDR from, CORE_ADDR to,
+                                  struct regcache *regcache)
+{
+  rocm_displaced_step_closure *closure
+      = reinterpret_cast<rocm_displaced_step_closure *> (closure_);
+
+  amd_dbgapi_status_t status = amd_dbgapi_displaced_stepping_complete (
+      closure->process_id, closure->wave_id, closure->displaced_stepping_id);
+
+  if (status != AMD_DBGAPI_STATUS_SUCCESS)
+    error (_ ("amd_dbgapi_displaced_stepping_complete failed (rc=%d)"),
+           status);
+
+  /* We may have written some registers, so flush the register cache.  */
+  registers_changed_ptid (regcache->target (), regcache->ptid ());
+}
+
+static int
+print_insn_amdgcn (bfd_vma memaddr, struct disassemble_info *di)
+{
+  gdb_disassembler *self
+      = static_cast<gdb_disassembler *> (di->application_data);
+
+  /* Try to read at most instruction_size bytes.  */
+
+  amd_dbgapi_size_t instruction_size = gdbarch_max_insn_length (self->arch ());
+  gdb::unique_xmalloc_ptr<gdb_byte> buffer (
+      (gdb_byte *)xmalloc (instruction_size));
+
+  instruction_size
+      = target_read (current_top_target (), TARGET_OBJECT_CODE_MEMORY, NULL,
+                     buffer.get (), memaddr, instruction_size);
+  if (instruction_size == TARGET_XFER_E_IO || instruction_size == 0)
+    {
+      (*di->memory_error_func) (-1, memaddr, di);
+      return -1;
+    }
+
+  amd_dbgapi_architecture_id_t architecture_id;
+  if (amd_dbgapi_get_architecture (gdbarch_bfd_arch_info (self->arch ())->mach,
+                                   &architecture_id)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    return -1;
+
+  char *instruction_text = nullptr;
+  amd_dbgapi_global_address_t *operands = nullptr;
+  amd_dbgapi_size_t operand_count = 0;
+
+  if (amd_dbgapi_disassemble_instruction (
+          architecture_id, static_cast<amd_dbgapi_global_address_t> (memaddr),
+          &instruction_size, buffer.get (), &instruction_text, &operand_count,
+          &operands)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    {
+      size_t alignment;
+      if (amd_dbgapi_architecture_get_info (
+              architecture_id,
+              AMD_DBGAPI_ARCHITECTURE_INFO_MINIMUM_INSTRUCTION_ALIGNMENT,
+              sizeof (alignment), &alignment)
+          != AMD_DBGAPI_STATUS_SUCCESS)
+        error (_ ("amd_dbgapi_architecture_get_info failed"));
+
+      (*di->fprintf_func) (di->stream, "<illegal instruction>");
+      /* Skip to the next valid instruction address.  */
+      return align_up (memaddr + 1, alignment) - memaddr;
+    }
+
+  /* Print the instruction.  */
+  (*di->fprintf_func) (di->stream, "%s", instruction_text);
+
+  /* Print the operands.  */
+  for (size_t i = 0; i < operand_count; ++i)
+    {
+      (*di->fprintf_func) (di->stream, (i == 0) ? "  # " : ", ");
+      (*di->print_address_func) (static_cast<bfd_vma> (operands[i]), di);
+    }
+
+  /* Free the memory allocated by the amd-dbgapi.  */
+  xfree (instruction_text);
+  xfree (operands);
+
+  return static_cast<int> (instruction_size);
+}
+
+static CORE_ADDR
+amdgcn_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
+{
+  CORE_ADDR func_addr;
+
+  /* See if we can determine the end of the prologue via the symbol table.
+     If so, then return either PC, or the PC after the prologue, whichever
+     is greater.  */
+  if (find_pc_partial_function (start_pc, NULL, &func_addr, NULL))
+    {
+      CORE_ADDR post_prologue_pc
+          = skip_prologue_using_sal (gdbarch, func_addr);
+      struct compunit_symtab *cust = find_pc_compunit_symtab (func_addr);
+
+      /* Clang always emits a line note before the prologue and another
+         one after.  We trust clang to emit usable line notes.  */
+      if (post_prologue_pc
+          && (cust != NULL && COMPUNIT_PRODUCER (cust) != NULL
+              && startswith (COMPUNIT_PRODUCER (cust), "clang ")))
+        return std::max (start_pc, post_prologue_pc);
+    }
+
+  /* Can't determine prologue from the symbol table, need to examine
+     instructions.  */
+
+  return start_pc;
+}
+
+static struct gdbarch *
+amdgcn_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
+{
+  /* If there is already a candidate, use it.  */
+  arches = gdbarch_list_lookup_by_info (arches, &info);
+  if (arches != NULL)
+    return arches->gdbarch;
+
+  struct gdbarch_deleter
+  {
+    void
+    operator() (struct gdbarch *gdbarch) const
+    {
+      gdbarch_free (gdbarch);
+    }
+  };
+
+  /* Allocate space for the new architecture.  */
+  std::unique_ptr<struct gdbarch_tdep> tdep (new struct gdbarch_tdep);
+  std::unique_ptr<struct gdbarch, gdbarch_deleter> gdbarch_u (
+      gdbarch_alloc (&info, tdep.get ()));
+
+  struct gdbarch *gdbarch = gdbarch_u.get ();
+
+  /* Data types.  */
+  set_gdbarch_char_signed (gdbarch, 0);
+  set_gdbarch_ptr_bit (gdbarch, 64);
+  set_gdbarch_addr_bit (gdbarch, 64);
+  set_gdbarch_short_bit (gdbarch, 16);
+  set_gdbarch_int_bit (gdbarch, 32);
+  set_gdbarch_long_bit (gdbarch, 64);
+  set_gdbarch_long_long_bit (gdbarch, 64);
+  set_gdbarch_float_bit (gdbarch, 32);
+  set_gdbarch_double_bit (gdbarch, 64);
+  set_gdbarch_long_double_bit (gdbarch, 128);
+  set_gdbarch_float_format (gdbarch, floatformats_ieee_single);
+  set_gdbarch_double_format (gdbarch, floatformats_ieee_double);
+  set_gdbarch_long_double_format (gdbarch, floatformats_ieee_double);
+
+  /* Frame Interpretation.  */
+  set_gdbarch_skip_prologue (gdbarch, amdgcn_skip_prologue);
+  set_gdbarch_inner_than (gdbarch, core_addr_lessthan);
+  dwarf2_append_unwinders (gdbarch);
+  frame_unwind_append_unwinder (gdbarch, &amdgcn_frame_unwind);
+  set_gdbarch_dummy_id (gdbarch, amdgcn_dummy_id);
+
+  /* Registers and Memory.  */
+  amd_dbgapi_architecture_id_t architecture_id;
+  if (amd_dbgapi_get_architecture (gdbarch_bfd_arch_info (gdbarch)->mach,
+                                   &architecture_id)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    return nullptr;
+
+  size_t register_class_count;
+  amd_dbgapi_register_class_id_t *register_class_ids;
+
+  if (amd_dbgapi_architecture_register_class_list (
+          architecture_id, &register_class_count, &register_class_ids)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    return nullptr;
+
+  /* Add register groups.  */
+  reggroup_add (gdbarch, all_reggroup);
+
+  for (size_t i = 0; i < register_class_count; ++i)
+    {
+      char *bytes;
+      if (amd_dbgapi_architecture_register_class_get_info (
+              architecture_id, register_class_ids[i],
+              AMD_DBGAPI_REGISTER_CLASS_INFO_NAME, sizeof (bytes), &bytes)
+          != AMD_DBGAPI_STATUS_SUCCESS)
+        continue;
+
+      gdb::unique_xmalloc_ptr<char> name (bytes);
+
+      auto inserted = tdep->register_class_map.emplace (name.get (),
+                                                        register_class_ids[i]);
+
+      if (!inserted.second)
+        continue;
+
+      /* Allocate the reggroup in the gdbarch.  */
+      auto *group = reggroup_gdbarch_new (gdbarch, name.get (), USER_REGGROUP);
+      if (!group)
+        {
+          tdep->register_class_map.erase (inserted.first);
+          continue;
+        }
+
+      reggroup_add (gdbarch, group);
+    }
+  xfree (register_class_ids);
+
+  /* Add registers. */
+  size_t register_count;
+  amd_dbgapi_register_id_t *register_ids;
+
+  if (amd_dbgapi_architecture_register_list (architecture_id, &register_count,
+                                             &register_ids)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    return nullptr;
+
+  tdep->register_ids.insert (tdep->register_ids.end (), &register_ids[0],
+                             &register_ids[register_count]);
+
+  set_gdbarch_num_regs (gdbarch, register_count);
+  set_gdbarch_num_pseudo_regs (gdbarch, 0);
+  xfree (register_ids);
+
+  tdep->register_names.resize (register_count);
+  for (size_t i = 0; i < register_count; ++i)
+    {
+      if (!tdep->regnum_map.emplace (tdep->register_ids[i], i).second)
+        return nullptr;
+
+      char *bytes;
+      if (amd_dbgapi_architecture_register_get_info (
+              architecture_id, tdep->register_ids[i],
+              AMD_DBGAPI_REGISTER_INFO_NAME, sizeof (bytes), &bytes)
+          != AMD_DBGAPI_STATUS_SUCCESS)
+        continue;
+
+      tdep->register_names[i] = bytes;
+      xfree (bytes);
+    }
+
+  amd_dbgapi_register_id_t pc_register_id;
+  if (amd_dbgapi_architecture_get_info (
+          architecture_id, AMD_DBGAPI_ARCHITECTURE_INFO_PC_REGISTER,
+          sizeof (pc_register_id), &pc_register_id)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    return nullptr;
+
+  set_gdbarch_pc_regnum (gdbarch, tdep->regnum_map[pc_register_id]);
+  set_gdbarch_ps_regnum (gdbarch, -1);
+  set_gdbarch_sp_regnum (gdbarch, -1);
+  set_gdbarch_fp0_regnum (gdbarch, -1);
+
+  set_gdbarch_dwarf2_reg_to_regnum (gdbarch, amdgcn_dwarf_reg_to_regnum);
+
+  /* Register Representation.  */
+  set_gdbarch_register_name (gdbarch, amdgcn_register_name);
+  set_gdbarch_register_type (gdbarch, amdgcn_register_type);
+  set_gdbarch_register_reggroup_p (gdbarch, amdgcn_register_reggroup_p);
+
+  /* Disassembly.  */
+  set_gdbarch_print_insn (gdbarch, print_insn_amdgcn);
+
+  /* Displaced stepping.  */
+  set_gdbarch_displaced_step_location (gdbarch,
+                                       amdgcn_rocm_displaced_step_location);
+
+  set_gdbarch_displaced_step_copy_insn (gdbarch,
+                                        amdgcn_rocm_displaced_step_copy_insn);
+  set_gdbarch_displaced_step_fixup (gdbarch, amdgcn_rocm_displaced_step_fixup);
+
+  /* Instructions.  */
+  amd_dbgapi_size_t max_insn_length = 0;
+  if (amd_dbgapi_architecture_get_info (
+          architecture_id,
+          AMD_DBGAPI_ARCHITECTURE_INFO_LARGEST_INSTRUCTION_SIZE,
+          sizeof (max_insn_length), &max_insn_length)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    error (_ ("amd_dbgapi_architecture_get_info failed"));
+
+  set_gdbarch_max_insn_length (gdbarch, max_insn_length);
+
+  if (amd_dbgapi_architecture_get_info (
+          architecture_id,
+          AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION_SIZE,
+          sizeof (tdep->breakpoint_instruction_size),
+          &tdep->breakpoint_instruction_size)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    error (_ ("amd_dbgapi_architecture_get_info failed"));
+
+  gdb_byte *breakpoint_instruction_bytes;
+  if (amd_dbgapi_architecture_get_info (
+          architecture_id, AMD_DBGAPI_ARCHITECTURE_INFO_BREAKPOINT_INSTRUCTION,
+          sizeof (breakpoint_instruction_bytes), &breakpoint_instruction_bytes)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    error (_ ("amd_dbgapi_architecture_get_info failed"));
+
+  tdep->breakpoint_instruction_bytes.reset (breakpoint_instruction_bytes);
+
+  set_gdbarch_breakpoint_kind_from_pc (gdbarch,
+                                       amdgcn_breakpoint_kind_from_pc);
+  set_gdbarch_sw_breakpoint_from_kind (gdbarch,
+                                       amdgcn_sw_breakpoint_from_kind);
+
+  tdep.release ();
+  gdbarch_u.release ();
+
+  return gdbarch;
+}
+
+/* Provide a prototype to silence -Wmissing-prototypes.  */
+extern initialize_file_ftype _initialize_amdgcn_rocm_tdep;
+
+void
+_initialize_amdgcn_rocm_tdep (void)
+{
+  gdbarch_register (bfd_arch_amdgcn, amdgcn_gdbarch_init, NULL);
+}
diff --git a/gdb/amdgcn-rocm-tdep.h b/gdb/amdgcn-rocm-tdep.h
new file mode 100644 (file)
index 0000000..e8dbff0
--- /dev/null
@@ -0,0 +1,73 @@
+/* Target-dependent code the amdgcn architecture.
+
+   Copyright (C) 2019-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef AMDGCN_TDEP_H
+#define AMDGCN_TDEP_H
+
+#include <gdbsupport/gdb_unique_ptr.h>
+
+#include <unordered_map>
+
+#include <amd-dbgapi.h>
+
+/* Provide std::unordered_map::Hash for amd_dbgapi_register_id_t.  */
+struct register_id_hash
+{
+  size_t
+  operator() (const amd_dbgapi_register_id_t &register_id) const
+  {
+    return std::hash<decltype (register_id.handle)> () (register_id.handle);
+  }
+};
+
+/* Provide std::unordered_map::Equal for amd_dbgapi_register_id_t.  */
+struct register_id_equal_to
+{
+  bool
+  operator() (const amd_dbgapi_register_id_t &lhs,
+              const amd_dbgapi_register_id_t &rhs) const
+  {
+    return std::equal_to<decltype (lhs.handle)> () (lhs.handle, rhs.handle);
+  }
+};
+
+/* amdgcn architecture specific information.  */
+struct gdbarch_tdep
+{
+  /* This architecture's breakpoint instruction.  */
+  gdb::unique_xmalloc_ptr<gdb_byte> breakpoint_instruction_bytes;
+  size_t breakpoint_instruction_size;
+
+  /* A vector of register_ids indexed by their equivalent gdb regnum.  */
+  std::vector<amd_dbgapi_register_id_t> register_ids;
+  /* A vector of register names indexed by their equivalent gdb regnum.  */
+  std::vector<std::string> register_names;
+  /* A map of gdb regnums keyed by they equivalent register_id.  */
+  std::unordered_map<amd_dbgapi_register_id_t, int, register_id_hash,
+                     register_id_equal_to>
+      regnum_map;
+  /* A map of register_class_ids keyed by their name.  */
+  std::unordered_map<std::string, amd_dbgapi_register_class_id_t>
+      register_class_map;
+  /* A cache of vector types.  */
+  std::unordered_map<std::string, struct type *> vector_type_map;
+};
+
+#endif /* amdgcn-rocm-tdep.h */
index 5b734abf1c161b41001b428782a0f27d19f13edb..9e8291b4af0d2084731d801ec3990899ba633d13 100644 (file)
@@ -1,6 +1,7 @@
 /* Everything about breakpoints, for GDB.
 
    Copyright (C) 1986-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GDB.
 
@@ -367,7 +368,10 @@ show_automatic_hardware_breakpoints (struct ui_file *file, int from_tty,
    breakpoints until the next resume, and removes them again when the
    target fully stops.  This is a bit safer in case GDB crashes while
    processing user input.  */
-static bool always_inserted_mode = false;
+/* FIXME: this is a temporary workaround to make sure waves created while
+   all known threads are stopped, and the gdb prompt is presented, do not
+   execute past the enabled breakpoints.  */
+static bool always_inserted_mode = true;
 
 static void
 show_always_inserted_mode (struct ui_file *file, int from_tty,
@@ -8511,7 +8515,9 @@ static void
 mention (struct breakpoint *b)
 {
   b->ops->print_mention (b);
-  current_uiout->text ("\n");
+  if (current_uiout->is_mi_like_p ())
+    return;
+  printf_filtered ("\n");
 }
 \f
 
index 5b2a92c75ae149acc0f787da8b8cdc417a4c7220..7ee8e023014acb47325f75786bf6c81fde2a8bb6 100644 (file)
@@ -1,5 +1,6 @@
 /* Support routines for building symbol tables in GDB's internal format.
    Copyright (C) 1986-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GDB.
 
@@ -1026,7 +1027,8 @@ buildsym_compunit::end_symtab_with_blockvector (struct block *static_block,
     }
 
   /* Save the debug format string (if any) in the symtab.  */
-  COMPUNIT_DEBUGFORMAT (cu) = m_debugformat;
+  COMPUNIT_DEBUGFORMAT (cu) = obstack_strdup (&m_objfile->objfile_obstack,
+                                              m_debugformat.get ());
 
   /* Similarly for the producer.  */
   COMPUNIT_PRODUCER (cu) = m_producer;
index c8e1bd0d5a734a55924e61b8f55d84b37b2dce69..1e57fe471120a57ed10657a4d0c93ddc2f460a49 100644 (file)
@@ -1,5 +1,6 @@
 /* Build symbol tables in GDB's internal format.
    Copyright (C) 1986-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GDB.
 
@@ -258,7 +259,7 @@ struct buildsym_compunit
 
   void record_debugformat (const char *format)
   {
-    m_debugformat = format;
+    m_debugformat = make_unique_xstrdup (format);
   }
 
   void record_producer (const char *producer)
@@ -325,9 +326,8 @@ private:
      the same lifetime as objfile.  */
   const char *m_producer = nullptr;
 
-  /* Space for this is not malloc'd, and is assumed to have at least
-     the same lifetime as objfile.  */
-  const char *m_debugformat = nullptr;
+  /* Space for this is malloc'd.  */
+  gdb::unique_xmalloc_ptr<char> m_debugformat;
 
   /* The compunit we are building.  */
   struct compunit_symtab *m_compunit_symtab = nullptr;
index c2ba3a4238ab64a0a2fa9a2ffb158f12237d50a8..e1204f74ef1aea3840f4c94007cdcaa158551fb8 100644 (file)
@@ -1,6 +1,7 @@
 /* GDB CLI commands.
 
    Copyright (C) 2000-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GDB.
 
@@ -1441,6 +1442,7 @@ static void
 disassemble_command (const char *arg, int from_tty)
 {
   struct gdbarch *gdbarch = get_current_arch ();
+  struct obj_section *section;
   CORE_ADDR low, high;
   const char *name;
   CORE_ADDR pc;
@@ -1492,6 +1494,14 @@ disassemble_command (const char *arg, int from_tty)
     }
 
   pc = value_as_address (parse_to_comma_and_eval (&p));
+
+  /* ROCM: get the gdbarch from the objfile, if found */
+  section = find_pc_overlay (pc);
+  if (section == NULL)
+    section = find_pc_section (pc);
+  if (section != NULL)
+    gdbarch = get_objfile_arch (section->objfile);
+
   if (p[0] == ',')
     ++p;
   if (p[0] == '\0')
index cb886ba8e1a91890b4d8cda5d0fcd8d02a1ea77e..8822e83481d5f4b1782f52c946963be73003c297 100644 (file)
 /* Define if you have the mpfr library. */
 #undef HAVE_LIBMPFR
 
+/* Define to 1 if you have the <rocm-dbgapi.h> header file. */
+#undef HAVE_ROCM_DBGAPI_H
+
 /* Define to 1 if you have the <libunwind-ia64.h> header file. */
 #undef HAVE_LIBUNWIND_IA64_H
 
index b572d414ca514a966f6b35a3cec34a16f6cd7fa7..35ddd98f2de4f906487cd7295d0e2d24799ddd17 100755 (executable)
@@ -4,6 +4,7 @@
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -760,6 +761,7 @@ PKGVERSION
 CODESIGN_CERT
 HAVE_NATIVE_GCORE_TARGET
 TARGET_OBS
+ROCM_DBGAPI_LIBS
 subdirs
 GDB_DATADIR
 DEBUGDIR
@@ -866,6 +868,7 @@ with_auto_load_dir
 with_auto_load_safe_path
 enable_targets
 enable_64_bit_bfd
+with_rocm_dbgapi
 enable_gdbmi
 enable_tui
 enable_gdbtk
@@ -1598,6 +1601,8 @@ Optional Packages:
                           [--with-auto-load-dir]
   --without-auto-load-safe-path
                           do not restrict auto-loaded files locations
+  --with-rocm-dbgapi=PATH specify prefix directory for installed ROCm-dbgapi
+                          package
   --with-libunwind-ia64   use libunwind frame unwinding for ia64 targets
   --with-curses           use the curses library instead of the termcap
                           library
@@ -6732,6 +6737,101 @@ _ACEOF
   fi
 fi
 
+# ROCm dbgapi support.
+
+
+# Check whether --with-rocm-dbgapi was given.
+if test "${with_rocm_dbgapi+set}" = set; then :
+  withval=$with_rocm_dbgapi;
+else
+  with_rocm_dbgapi=/opt/rocm
+fi
+
+
+save_CPPFLAGS=${CPPFLAGS}
+CPPFLAGS="${CPPFLAGS} -I$with_rocm_dbgapi/include"
+for ac_header in amd-dbgapi.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "amd-dbgapi.h" "ac_cv_header_amd_dbgapi_h" "$ac_includes_default"
+if test "x$ac_cv_header_amd_dbgapi_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_AMD_DBGAPI_H 1
+_ACEOF
+
+fi
+
+done
+
+CPPFLAGS=${save_CPPFLAGS}
+
+save_LIBS=${LIBS}
+save_LDFLAGS=${LDFLAGS}
+LDFLAGS="${LDFLAGS} -L$with_rocm_dbgapi/lib"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for amd_dbgapi_initialize in -lrocm-dbgapi" >&5
+$as_echo_n "checking for amd_dbgapi_initialize in -lrocm-dbgapi... " >&6; }
+if ${ac_cv_lib_rocm_dbgapi_amd_dbgapi_initialize+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrocm-dbgapi  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char amd_dbgapi_initialize ();
+int
+main ()
+{
+return amd_dbgapi_initialize ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_rocm_dbgapi_amd_dbgapi_initialize=yes
+else
+  ac_cv_lib_rocm_dbgapi_amd_dbgapi_initialize=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rocm_dbgapi_amd_dbgapi_initialize" >&5
+$as_echo "$ac_cv_lib_rocm_dbgapi_amd_dbgapi_initialize" >&6; }
+if test "x$ac_cv_lib_rocm_dbgapi_amd_dbgapi_initialize" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBROCM_DBGAPI 1
+_ACEOF
+
+  LIBS="-lrocm-dbgapi $LIBS"
+
+fi
+
+LDFLAGS=${save_LDFLAGS}
+LIBS=${save_LIBS}
+
+if test x"$ac_cv_header_amd_dbgapi_h" = xyes \
+    -a x"$ac_cv_lib_rocm_dbgapi_amd_dbgapi_initialize" = xyes; then
+
+  if test x"$require_rocm_dbgapi" = xyes -o x"$all_targets" = xtrue; then
+    TARGET_OBS="$TARGET_OBS amdgcn-rocm-tdep.o rocm-tdep.o solib-rocm.o"
+  fi
+
+  CPPFLAGS="${CPPFLAGS} -I$with_rocm_dbgapi/include"
+  ROCM_DBGAPI_LIBS="-L$with_rocm_dbgapi/lib -lrocm-dbgapi"
+
+else
+  if test x"$require_rocm_dbgapi" = xyes; then
+    as_fn_error $? "amdgcn*-*-* requires rocm-dbgapi to be installed, or use \
+--with-rocm-dbgapi=PATH" "$LINENO" 5
+  fi
+fi
+
 
 
 
index ca0da7980cc0136958680c72aa480947cdf7201a..1d342f17526b2413e1da06efac3ab424221818dc 100644 (file)
@@ -1,5 +1,6 @@
 dnl Autoconf configure script for GDB, the GNU debugger.
 dnl Copyright (C) 1995-2020 Free Software Foundation, Inc.
+dnl Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 dnl
 dnl This file is part of GDB.
 dnl
@@ -248,6 +249,42 @@ if test x${all_targets} = xtrue; then
   fi
 fi
 
+# ROCm dbgapi support.
+
+AC_ARG_WITH(rocm-dbgapi,
+AS_HELP_STRING([--with-rocm-dbgapi=PATH],
+               [specify prefix directory for installed ROCm-dbgapi package]),,
+  [with_rocm_dbgapi=/opt/rocm])
+
+save_CPPFLAGS=${CPPFLAGS}
+CPPFLAGS="${CPPFLAGS} -I$with_rocm_dbgapi/include"
+AC_CHECK_HEADERS(amd-dbgapi.h)
+CPPFLAGS=${save_CPPFLAGS}
+
+save_LIBS=${LIBS}
+save_LDFLAGS=${LDFLAGS}
+LDFLAGS="${LDFLAGS} -L$with_rocm_dbgapi/lib"
+AC_CHECK_LIB(rocm-dbgapi,amd_dbgapi_initialize)
+LDFLAGS=${save_LDFLAGS}
+LIBS=${save_LIBS}
+
+if test x"$ac_cv_header_amd_dbgapi_h" = xyes \
+    -a x"$ac_cv_lib_rocm_dbgapi_amd_dbgapi_initialize" = xyes; then
+
+  if test x"$require_rocm_dbgapi" = xyes -o x"$all_targets" = xtrue; then
+    TARGET_OBS="$TARGET_OBS amdgcn-rocm-tdep.o rocm-tdep.o solib-rocm.o"
+  fi
+
+  CPPFLAGS="${CPPFLAGS} -I$with_rocm_dbgapi/include"
+  ROCM_DBGAPI_LIBS="-L$with_rocm_dbgapi/lib -lrocm-dbgapi"
+  AC_SUBST(ROCM_DBGAPI_LIBS)
+else
+  if test x"$require_rocm_dbgapi" = xyes; then
+    AC_MSG_ERROR([amdgcn*-*-* requires rocm-dbgapi to be installed, or use \
+--with-rocm-dbgapi=PATH])
+  fi
+fi
+
 AC_SUBST(TARGET_OBS)
 AC_SUBST(HAVE_NATIVE_GCORE_TARGET)
 
index ab4c098c0dadcbc60e78e7e2cee19cbb284479e1..7d514fef527caa4d8df666c61e5427bb4ec612de 100644 (file)
@@ -148,6 +148,11 @@ alpha*-*-openbsd*)
                        alpha-nbsd-tdep.o alpha-obsd-tdep.o nbsd-tdep.o"
        ;;
 
+amdgcn*-*-*)
+       # Target: AMDGPU
+       require_rocm_dbgapi=yes
+       ;;
+
 am33_2.0*-*-linux*)
        # Target: Matsushita mn10300 (AM33) running Linux
        gdb_target_obs="mn10300-tdep.o mn10300-linux-tdep.o linux-tdep.o \
index 567f214b81de73c45a0454c4d2aa2d8e346a1160..9a7507719e140145c5c2877747a1599d7796daf9 100644 (file)
@@ -2,6 +2,7 @@
                      for now.  */
 /* Basic, host-specific, and target-specific definitions for GDB.
    Copyright (C) 1986-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GDB.
 
@@ -496,6 +497,7 @@ enum gdb_osabi
   GDB_OSABI_NEWLIB,
   GDB_OSABI_SDE,
   GDB_OSABI_PIKEOS,
+  GDB_OSABI_AMDGPU_HSA,
 
   GDB_OSABI_INVALID            /* keep this last */
 };
index 04979f3d12fa6f8e365abe83290694f30b671125..51fb06e3b6617fbda5c4203cdae56c4253ba74c1 100644 (file)
@@ -1,6 +1,7 @@
 /* DWARF 2 debugging format support for GDB.
 
    Copyright (C) 1994-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
    Inc.  with support from Florida State University (under contract
@@ -21702,7 +21703,7 @@ dwarf2_cu::start_symtab (const char *name, const char *comp_dir,
 
   list_in_scope = get_builder ()->get_file_symbols ();
 
-  get_builder ()->record_debugformat ("DWARF 2");
+  get_builder ()->record_debugformat (xstrprintf ("DWARF %d", this->header.version));
   get_builder ()->record_producer (producer);
 
   processing_has_namespace_info = false;
index c746a6a231ed8abc7a12856cbbdf8690e060b3a8..49f29fb62bd551238dc78feb86952dda9fa627e3 100644 (file)
@@ -1,6 +1,7 @@
 /* Cache and manage frames for GDB, the GNU debugger.
 
    Copyright (C) 1986-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GDB.
 
@@ -694,8 +695,8 @@ frame_id_p (struct frame_id l)
 
   /* The frame is valid iff it has a valid stack address.  */
   p = l.stack_status != FID_STACK_INVALID;
-  /* outer_frame_id is also valid.  */
-  if (!p && memcmp (&l, &outer_frame_id, sizeof (l)) == 0)
+  /* outer_frame_id and functions inlined into it are also valid.  */
+  if (!p && l.special_addr_p)
     p = 1;
   if (frame_debug)
     {
@@ -722,12 +723,13 @@ frame_id_eq (struct frame_id l, struct frame_id r)
 
   if (l.stack_status == FID_STACK_INVALID && l.special_addr_p
       && r.stack_status == FID_STACK_INVALID && r.special_addr_p)
-    /* The outermost frame marker is equal to itself.  This is the
-       dodgy thing about outer_frame_id, since between execution steps
+    /* The outermost frame marker, and any inline frame markers
+       derived from it, are equal to themselves.  This is the dodgy
+       thing about outer_frame_id, since between execution steps
        we might step into another function - from which we can't
        unwind either.  More thought required to get rid of
        outer_frame_id.  */
-    eq = 1;
+    eq = l.artificial_depth == r.artificial_depth;
   else if (l.stack_status == FID_STACK_INVALID
           || r.stack_status == FID_STACK_INVALID)
     /* Like a NaN, if either ID is invalid, the result is false.
index cfc15022ed5b0da93c853b372a53d68c2a8dc17e..44f285cb63d110c72d78551c269d54d1ca9ccaf5 100644 (file)
@@ -1,6 +1,7 @@
 /* Definitions for dealing with stack frames, for GDB, the GNU debugger.
 
    Copyright (C) 1986-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GDB.
 
@@ -195,7 +196,8 @@ extern const struct frame_id sentinel_frame_id;
 
 /* This means "there is no frame ID, but there is a frame".  It should be
    replaced by best-effort frame IDs for the outermost frame, somehow.
-   The implementation is only special_addr_p set.  */
+   The implementation is only special_addr_p, and possibly
+   artificial_depth, set.  */
 extern const struct frame_id outer_frame_id;
 
 /* Flag to control debugging.  */
@@ -237,8 +239,8 @@ extern struct frame_id
 extern struct frame_id frame_id_build_wild (CORE_ADDR stack_addr);
 
 /* Returns non-zero when L is a valid frame (a valid frame has a
-   non-zero .base).  The outermost frame is valid even without an
-   ID.  */
+   non-zero .base).  The outermost frame and any frames inlined into it
+   are valid even without an ID.  */
 extern int frame_id_p (struct frame_id l);
 
 /* Returns non-zero when L is a valid frame representing a frame made up by GDB
index a0583a8e65868ecdcc63d324908ea2c4df339a50..8209b08d0834acb1ecc169ff824188d8e2ba62db 100644 (file)
@@ -2,6 +2,7 @@
    process.
 
    Copyright (C) 1986-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GDB.
 
@@ -5737,7 +5738,12 @@ finish_step_over (struct execution_control_state *ecs)
       context_switch (ecs);
       insert_breakpoints ();
 
-      restart_threads (ecs->event_thread);
+      {
+        scoped_restore save_defer_tc
+          = make_scoped_defer_target_commit_resume ();
+        restart_threads (ecs->event_thread);
+      }
+      target_commit_resume ();
 
       /* If we have events pending, go through handle_inferior_event
         again, picking up a pending event at random.  This avoids
index 0ee1de3a1f1c6a423eec4486e5beb7090520d2f5..ae0af2e5a523797b1c1c1ca27bcebe9559fde726 100644 (file)
@@ -1,6 +1,7 @@
 /* Inline frame unwinder for GDB.
 
    Copyright (C) 2008-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GDB.
 
@@ -171,10 +172,6 @@ inline_frame_this_id (struct frame_info *this_frame,
      frame").  This will take work.  */
   gdb_assert (frame_id_p (*this_id));
 
-  /* For now, require we don't match outer_frame_id either (see
-     comment above).  */
-  gdb_assert (!frame_id_eq (*this_id, outer_frame_id));
-
   /* Future work NOTE: Alexandre Oliva applied a patch to GCC 4.3
      which generates DW_AT_entry_pc for inlined functions when
      possible.  If this attribute is available, we should use it
index dec1bddc4cef84b47c0a2b4c13622dcbd792e7a2..e250e019b7501baa4c8d5062fdfb4705a2a44428 100644 (file)
@@ -1,6 +1,7 @@
 /* OS ABI variant handling for GDB.
 
    Copyright (C) 2001-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GDB.
 
@@ -81,6 +82,7 @@ static const struct osabi_names gdb_osabi_names[] =
   { "Newlib", NULL },
   { "SDE", NULL },
   { "PikeOS", NULL },
+  { "AMD HSA Runtime" },
 
   { "<invalid>", NULL }
 };
diff --git a/gdb/rocm-tdep.c b/gdb/rocm-tdep.c
new file mode 100644 (file)
index 0000000..e694df4
--- /dev/null
@@ -0,0 +1,1738 @@
+/* Target-dependent code for ROCm.
+
+   Copyright (C) 2019-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "defs.h"
+
+#include "amdgcn-rocm-tdep.h"
+#include "arch-utils.h"
+#include "cli/cli-style.h"
+#include "environ.h"
+#include "event-loop.h"
+#include "filenames.h"
+#include "gdbcmd.h"
+#include "gdbcore.h"
+#include "gdbsupport/filestuff.h"
+#include "gdbsupport/scoped_fd.h"
+#include "gdbthread.h"
+#include "hashtab.h"
+#include "inf-loop.h"
+#include "inferior.h"
+#include "location.h"
+#include "objfiles.h"
+#include "observable.h"
+#include "progspace-and-thread.h"
+#include "regcache.h"
+#include "rocm-tdep.h"
+#include "solib.h"
+#include "solist.h"
+#include "symfile.h"
+
+#include <dlfcn.h>
+#include <list>
+#include <set>
+#include <signal.h>
+#include <stdarg.h>
+#include <unordered_map>
+
+#include <amd-dbgapi.h>
+
+/* Big enough to hold the size of the largest register in bytes.  */
+#define AMDGCN_MAX_REGISTER_SIZE 256
+
+#define DEFINE_OBSERVABLE(name) decltype (name) name (#name)
+
+DEFINE_OBSERVABLE (amd_dbgapi_activated);
+DEFINE_OBSERVABLE (amd_dbgapi_deactivated);
+DEFINE_OBSERVABLE (amd_dbgapi_code_object_list_updated);
+
+#undef DEFINE_OBSERVABLE
+
+struct rocm_notify_shared_library_info
+{
+  std::string compare; /* Compare loaded library names with this string.  */
+  struct so_list *solib;
+  bool is_loaded;
+};
+
+/* ROCm-specific inferior data.  */
+
+struct rocm_inferior_info
+{
+  /* The amd_dbgapi_process_id for this inferior.  */
+  amd_dbgapi_process_id_t process_id{ AMD_DBGAPI_PROCESS_NONE };
+
+  /* The amd_dbgapi_notifier_t for this inferior.  */
+  amd_dbgapi_notifier_t notifier{ -1 };
+
+  /* True if commit_resume should all-start the GPU queues.  */
+  bool commit_resume_all_start;
+
+  std::unordered_map<decltype (amd_dbgapi_breakpoint_id_t::handle),
+                     struct breakpoint *>
+      breakpoint_map;
+
+  /* List of pending events the rocm target retrieved from the dbgapi.  */
+  std::list<std::pair<amd_dbgapi_wave_id_t, amd_dbgapi_wave_stop_reason_t>>
+      wave_stop_events;
+
+  /* Map of rocm_notify_shared_library_info's for libraries that have been
+     registered to receive notifications when loading/unloading.  */
+  std::unordered_map<decltype (amd_dbgapi_shared_library_id_t::handle),
+                     struct rocm_notify_shared_library_info>
+      notify_solib_map;
+};
+
+static amd_dbgapi_event_id_t
+rocm_process_event_queue (amd_dbgapi_event_kind_t until_event_kind
+                          = AMD_DBGAPI_EVENT_KIND_NONE);
+
+/* Return the inferior's rocm_inferior_info struct.  */
+static struct rocm_inferior_info *
+get_rocm_inferior_info (struct inferior *inferior = nullptr);
+
+static const target_info rocm_ops_info
+    = { "rocm", N_ ("ROCm GPU debugging support"),
+        N_ ("ROCm GPU debugging support") };
+
+static amd_dbgapi_log_level_t get_debug_amd_dbgapi_log_level ();
+
+struct rocm_target_ops final : public target_ops
+{
+  const target_info &
+  info () const override
+  {
+    return rocm_ops_info;
+  }
+  strata
+  stratum () const override
+  {
+    return arch_stratum;
+  }
+
+  void mourn_inferior () override;
+
+  void async (int enable) override;
+
+  ptid_t wait (ptid_t, struct target_waitstatus *, int) override;
+  void resume (ptid_t, int, enum gdb_signal) override;
+  void commit_resume () override;
+  void stop (ptid_t ptid) override;
+
+  void fetch_registers (struct regcache *, int) override;
+  void store_registers (struct regcache *, int) override;
+
+  void update_thread_list () override;
+
+  struct gdbarch *thread_architecture (ptid_t) override;
+
+  std::string pid_to_str (ptid_t ptid) override;
+
+  const char *thread_name (thread_info *tp) override;
+
+  const char *extra_thread_info (thread_info *tp) override;
+
+  bool thread_alive (ptid_t ptid) override;
+
+  enum target_xfer_status xfer_partial (enum target_object object,
+                                        const char *annex, gdb_byte *readbuf,
+                                        const gdb_byte *writebuf,
+                                        ULONGEST offset, ULONGEST len,
+                                        ULONGEST *xfered_len) override;
+
+  bool
+  stopped_by_watchpoint () override
+  {
+    return !ptid_is_gpu (inferior_ptid)
+           && beneath ()->stopped_by_watchpoint ();
+  }
+
+  bool
+  stopped_data_address (CORE_ADDR *addr_p) override
+  {
+    return !ptid_is_gpu (inferior_ptid)
+           && beneath ()->stopped_data_address (addr_p);
+  }
+
+  bool
+  supports_stopped_by_sw_breakpoint () override
+  {
+    return true;
+  }
+
+  bool stopped_by_sw_breakpoint () override;
+
+  bool
+  stopped_by_hw_breakpoint () override
+  {
+    return !ptid_is_gpu (inferior_ptid)
+           && beneath ()->stopped_by_hw_breakpoint ();
+  }
+};
+
+/* ROCm's target vector.  */
+static struct rocm_target_ops rocm_ops;
+
+/* ROCm breakpoint ops.  */
+static struct breakpoint_ops rocm_breakpoint_ops;
+
+/* Per-inferior data key.  */
+static const struct inferior_key<rocm_inferior_info> rocm_inferior_data;
+
+/* The read/write ends of the pipe registered as waitable file in the
+   event loop.  */
+static int rocm_event_pipe[2] = { -1, -1 };
+
+/* Flush the event pipe.  */
+
+void
+async_file_flush (void)
+{
+  int ret;
+  char buf;
+
+  do
+    {
+      ret = read (rocm_event_pipe[0], &buf, 1);
+    }
+  while (ret >= 0 || (ret == -1 && errno == EINTR));
+}
+
+/* Put something (anything, doesn't matter what, or how much) in event
+   pipe, so that the select/poll in the event-loop realizes we have
+   something to process.  */
+
+static void
+async_file_mark (void)
+{
+  int ret;
+
+  /* It doesn't really matter what the pipe contains, as long we end
+     up with something in it.  Might as well flush the previous
+     left-overs.  */
+  async_file_flush ();
+
+  do
+    {
+      ret = write (rocm_event_pipe[1], "+", 1);
+    }
+  while (ret == -1 && errno == EINTR);
+
+  /* Ignore EAGAIN.  If the pipe is full, the event loop will already
+     be awakened anyway.  */
+}
+
+/* Fetch the rocm_inferior_info data for the given inferior.  */
+
+static struct rocm_inferior_info *
+get_rocm_inferior_info (struct inferior *inferior)
+{
+  if (!inferior)
+    inferior = current_inferior ();
+
+  struct rocm_inferior_info *info = rocm_inferior_data.get (inferior);
+
+  if (!info)
+    info = rocm_inferior_data.emplace (inferior);
+
+  return info;
+}
+
+/* Fetch the amd_dbgapi_process_id for the given inferior.  */
+
+amd_dbgapi_process_id_t
+get_amd_dbgapi_process_id (struct inferior *inferior)
+{
+  return get_rocm_inferior_info (inferior)->process_id;
+}
+
+static void
+rocm_breakpoint_check_status (struct bpstats *bs)
+{
+  struct rocm_inferior_info *info = get_rocm_inferior_info ();
+  amd_dbgapi_process_id_t process_id = info->process_id;
+  amd_dbgapi_status_t status;
+
+  bs->stop = 0;
+  bs->print_it = print_it_noop;
+
+  /* Find the address the breakpoint is set at.  */
+  auto it = std::find_if (
+      info->breakpoint_map.begin (), info->breakpoint_map.end (),
+      [=] (const decltype (info->breakpoint_map)::value_type &value) {
+        return value.second == bs->breakpoint_at;
+      });
+
+  if (it == info->breakpoint_map.end ())
+    error (_ ("Could not find breakpoint_id for breakpoint at %#lx"),
+           bs->bp_location_at->address);
+
+  amd_dbgapi_breakpoint_id_t breakpoint_id{ it->first };
+  amd_dbgapi_breakpoint_action_t action;
+
+  status = amd_dbgapi_report_breakpoint_hit (process_id, breakpoint_id,
+                                             inferior_thread (), &action);
+
+  if (status != AMD_DBGAPI_STATUS_SUCCESS)
+    error (_ ("amd_dbgapi_report_breakpoint_hit failed: breakpoint_%ld "
+              "at %#lx (rc=%d)"),
+           breakpoint_id.handle, bs->bp_location_at->address, status);
+
+  if (action == AMD_DBGAPI_BREAKPOINT_ACTION_RESUME)
+    return;
+
+  /* If the action is AMD_DBGAPI_BREAKPOINT_ACTION_HALT, we need to wait until
+     a breakpoint resume event for this breakpoint_id is seen.  */
+
+  amd_dbgapi_event_id_t resume_event_id
+      = rocm_process_event_queue (AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME);
+
+  /* We should always get a breakpoint_resume event after processing all
+     events generated by reporting the breakpoint was hit.  */
+  gdb_assert (resume_event_id.handle != AMD_DBGAPI_EVENT_NONE.handle);
+
+  amd_dbgapi_breakpoint_id_t resume_breakpoint_id;
+  status = amd_dbgapi_event_get_info (
+      process_id, resume_event_id, AMD_DBGAPI_EVENT_INFO_BREAKPOINT,
+      sizeof (resume_breakpoint_id), &resume_breakpoint_id);
+
+  if (status != AMD_DBGAPI_STATUS_SUCCESS)
+    error (_ ("amd_dbgapi_event_get_info failed (rc=%d)"), status);
+
+  /* The debugger API guarantees that [breakpoint_hit...resume_breakpoint]
+     sequences cannot interleave, so this breakpoint resume event must be
+     for our breakpoint_id.  */
+  if (resume_breakpoint_id.handle != breakpoint_id.handle)
+    error (_ ("breakpoint resume event is not for this breakpoint. "
+              "Expected breakpoint_%ld, got breakpoint_%ld"),
+           breakpoint_id.handle, resume_breakpoint_id.handle);
+
+  amd_dbgapi_event_processed (process_id, resume_event_id);
+}
+
+static void
+rocm_target_dbgapi_activated ()
+{
+  /* FIXME: only push on the first activation.  */
+  /* Engage the ROCm target_ops and so_ops.  */
+  push_target (&rocm_ops);
+}
+
+static void
+rocm_target_dbgapi_deactivated ()
+{
+  /* FIXME: only unpush on the last activation.  */
+  /* Disengage the ROCm target_ops.  */
+  unpush_target (&rocm_ops);
+}
+
+bool
+rocm_target_ops::thread_alive (ptid_t ptid)
+{
+  if (!ptid_is_gpu (ptid))
+    return beneath ()->thread_alive (ptid);
+
+  /* Check that the wave_id is valid.  */
+
+  amd_dbgapi_wave_state_t state;
+  return amd_dbgapi_wave_get_info (
+             get_amd_dbgapi_process_id (), get_amd_dbgapi_wave_id (ptid),
+             AMD_DBGAPI_WAVE_INFO_STATE, sizeof (state), &state)
+         == AMD_DBGAPI_STATUS_SUCCESS;
+}
+
+const char *
+rocm_target_ops::thread_name (thread_info *tp)
+{
+  if (!ptid_is_gpu (tp->ptid))
+    return beneath ()->thread_name (tp);
+
+  amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id ();
+  amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (tp->ptid);
+  amd_dbgapi_dispatch_id_t dispatch_id;
+  amd_dbgapi_global_address_t kernel_addr;
+
+  if (amd_dbgapi_wave_get_info (process_id, wave_id,
+                                AMD_DBGAPI_WAVE_INFO_DISPATCH,
+                                sizeof (dispatch_id), &dispatch_id)
+          != AMD_DBGAPI_STATUS_SUCCESS
+      || amd_dbgapi_dispatch_get_info (
+             process_id, dispatch_id,
+             AMD_DBGAPI_DISPATCH_INFO_KERNEL_ENTRY_ADDRESS,
+             sizeof (kernel_addr), &kernel_addr)
+             != AMD_DBGAPI_STATUS_SUCCESS)
+    return NULL;
+
+  struct bound_minimal_symbol msymbol
+      = lookup_minimal_symbol_by_pc_section (kernel_addr, nullptr);
+
+  if (msymbol.minsym != NULL)
+    {
+      static char buf[256];
+      char *endp;
+
+      xsnprintf (buf, sizeof (buf), "%s", msymbol.minsym->print_name ());
+
+      /* Strip the arguments from the demangled function name.  */
+      if ((endp = strchr (buf, '(')))
+        *endp = '\0';
+
+      return buf;
+    }
+
+  return NULL;
+}
+
+std::string
+rocm_target_ops::pid_to_str (ptid_t ptid)
+{
+  if (!ptid_is_gpu (ptid))
+    {
+      return beneath ()->pid_to_str (ptid);
+    }
+
+  amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id ();
+  amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (ptid);
+  amd_dbgapi_dispatch_id_t dispatch_id;
+  uint32_t group_ids[3], wave_in_group;
+
+  if (amd_dbgapi_wave_get_info (process_id, wave_id,
+                                AMD_DBGAPI_WAVE_INFO_DISPATCH,
+                                sizeof (dispatch_id), &dispatch_id)
+          != AMD_DBGAPI_STATUS_SUCCESS
+      || amd_dbgapi_wave_get_info (process_id, wave_id,
+                                   AMD_DBGAPI_WAVE_INFO_WORK_GROUP_COORD,
+                                   sizeof (group_ids), &group_ids)
+             != AMD_DBGAPI_STATUS_SUCCESS
+      || amd_dbgapi_wave_get_info (
+             process_id, wave_id,
+             AMD_DBGAPI_WAVE_INFO_WAVE_NUMBER_IN_WORK_GROUP,
+             sizeof (wave_in_group), &wave_in_group)
+             != AMD_DBGAPI_STATUS_SUCCESS)
+    return std::string ("AMDGPU Thread");
+  else
+    return string_printf ("AMDGPU Thread %ld.%ld (%d,%d,%d)/%d",
+                          dispatch_id.handle, wave_id.handle, group_ids[2],
+                          group_ids[1], group_ids[0], wave_in_group);
+}
+
+const char *
+rocm_target_ops::extra_thread_info (thread_info *tp)
+{
+  if (!ptid_is_gpu (tp->ptid))
+    beneath ()->extra_thread_info (tp);
+
+  return NULL;
+}
+
+enum target_xfer_status
+rocm_target_ops::xfer_partial (enum target_object object, const char *annex,
+                               gdb_byte *readbuf, const gdb_byte *writebuf,
+                               ULONGEST offset, ULONGEST requested_len,
+                               ULONGEST *xfered_len)
+{
+  gdb::optional<scoped_restore_current_thread> maybe_restore_thread;
+
+  if (ptid_is_gpu (inferior_ptid))
+    {
+      gdb_assert (requested_len && xfered_len && "checking invariants");
+
+      if (object != TARGET_OBJECT_MEMORY)
+        return TARGET_XFER_E_IO;
+
+      amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id ();
+      amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (inferior_ptid);
+
+      amd_dbgapi_architecture_id_t architecture_id;
+      amd_dbgapi_address_space_id_t address_space_id;
+
+      if (amd_dbgapi_wave_get_info (process_id, wave_id,
+                                    AMD_DBGAPI_WAVE_INFO_ARCHITECTURE,
+                                    sizeof (architecture_id), &architecture_id)
+              != AMD_DBGAPI_STATUS_SUCCESS
+          || amd_dbgapi_architecture_get_info (
+                 architecture_id,
+                 AMD_DBGAPI_ARCHITECTURE_INFO_DEFAULT_GLOBAL_ADDRESS_SPACE,
+                 sizeof (address_space_id), &address_space_id)
+                 != AMD_DBGAPI_STATUS_SUCCESS)
+        error (_ ("Couldn't get default global address space"));
+
+      size_t len = requested_len;
+      amd_dbgapi_status_t status;
+
+      if (readbuf)
+        status = amd_dbgapi_read_memory (
+            process_id, wave_id, 0, address_space_id, offset, &len, readbuf);
+      else
+        status = amd_dbgapi_write_memory (
+            process_id, wave_id, 0, address_space_id, offset, &len, writebuf);
+
+      if (status != AMD_DBGAPI_STATUS_SUCCESS)
+        {
+          if (status != AMD_DBGAPI_STATUS_ERROR_MEMORY_ACCESS)
+            error (_ ("amd_dbgapi_%s_memory failed (rc=%d"),
+                   readbuf ? "read" : "write", status);
+          return TARGET_XFER_EOF;
+        }
+
+      *xfered_len = len;
+      return TARGET_XFER_OK;
+    }
+  else
+    return beneath ()->xfer_partial (object, annex, readbuf, writebuf, offset,
+                                     requested_len, xfered_len);
+}
+
+void
+rocm_target_ops::resume (ptid_t ptid, int step, enum gdb_signal signo)
+{
+  struct rocm_inferior_info *info = get_rocm_inferior_info ();
+
+  if (debug_infrun)
+    fprintf_unfiltered (
+        gdb_stdlog,
+        "\e[1;34minfrun: rocm_target_ops::resume ([%d,%ld,%ld])\e[0m\n",
+        ptid.pid (), ptid.lwp (), ptid.tid ());
+
+  /* Check if the thread focus is on the GPU device.  */
+  if (ptid == minus_one_ptid || !ptid_is_gpu (ptid))
+    {
+      beneath ()->resume (ptid, step, signo);
+      if (ptid != minus_one_ptid)
+        return;
+    }
+
+  /* A specific PTID means `step only this process id'.  */
+  bool resume_one = ptid != minus_one_ptid && !ptid.is_pid ();
+  gdb_assert (resume_one || !step);
+
+  if (!resume_one)
+    error (_ ("internal error - unimplemented "));
+
+  amd_dbgapi_process_set_progress (info->process_id,
+                                   AMD_DBGAPI_PROGRESS_NO_FORWARD);
+
+  amd_dbgapi_status_t status = amd_dbgapi_wave_resume (
+      info->process_id, get_amd_dbgapi_wave_id (ptid),
+      step ? AMD_DBGAPI_RESUME_MODE_SINGLE_STEP
+           : AMD_DBGAPI_RESUME_MODE_NORMAL);
+  if (status != AMD_DBGAPI_STATUS_SUCCESS)
+    warning (_ ("Could not resume %s (rc=%d)"),
+             target_pid_to_str (ptid).c_str (), status);
+
+  info->commit_resume_all_start = true;
+}
+
+void
+rocm_target_ops::commit_resume ()
+{
+  struct rocm_inferior_info *info = get_rocm_inferior_info ();
+
+  if (debug_infrun)
+    fprintf_unfiltered (
+        gdb_stdlog,
+        "\e[1;34minfrun: rocm_target_ops::commit_resume ()\e[0m\n");
+
+  beneath ()->commit_resume ();
+
+  if (info->commit_resume_all_start)
+    {
+      amd_dbgapi_process_set_progress (info->process_id,
+                                       AMD_DBGAPI_PROGRESS_NORMAL);
+      info->commit_resume_all_start = false;
+    }
+
+  if (target_can_async_p ())
+    target_async (1);
+}
+
+static void
+rocm_target_stop_one_wave (ptid_t ptid)
+{
+  amd_dbgapi_status_t status;
+
+  status = amd_dbgapi_wave_stop (get_amd_dbgapi_process_id (),
+                                 get_amd_dbgapi_wave_id (ptid));
+
+  if (status == AMD_DBGAPI_STATUS_ERROR_INVALID_WAVE_ID)
+    {
+      /* the wave must have exited, set the thread status to reflect that.  */
+      auto *tp = find_thread_ptid (current_inferior (), ptid);
+      gdb_assert (tp);
+
+      tp->state = THREAD_EXITED;
+    }
+  else if (status != AMD_DBGAPI_STATUS_SUCCESS)
+    warning (_ ("Could not stop %s (rc=%d)"),
+             target_pid_to_str (ptid).c_str (), status);
+}
+
+void
+rocm_target_ops::stop (ptid_t ptid)
+{
+  if (debug_infrun)
+    fprintf_unfiltered (
+        gdb_stdlog,
+        "\e[1;34minfrun: rocm_target_ops::stop ([%d,%ld,%ld])\e[0m\n",
+        ptid.pid (), ptid.lwp (), ptid.tid ());
+
+  if (ptid == minus_one_ptid || !ptid_is_gpu (ptid))
+    {
+      beneath ()->stop (ptid);
+      if (ptid != minus_one_ptid)
+        return;
+    }
+
+  if (ptid == minus_one_ptid)
+    error (_ ("internal error - unimplemented "));
+
+  rocm_target_stop_one_wave (ptid);
+}
+
+static void
+handle_target_event (int error, gdb_client_data client_data)
+{
+  struct rocm_inferior_info *info = get_rocm_inferior_info ();
+  amd_dbgapi_process_id_t process_id = info->process_id;
+
+  amd_dbgapi_process_set_progress (process_id, AMD_DBGAPI_PROGRESS_NO_FORWARD);
+
+  /* Flush the async file first.  */
+  if (target_is_async_p ())
+    async_file_flush ();
+
+  rocm_process_event_queue ();
+
+  /* In all-stop mode, unless the event queue is empty (spurious wake-up),
+     we can keep the process in progress_no_forward mode.  The infrun loop
+     will enable forward progress when a thread is resumed.  */
+  if (non_stop || info->wave_stop_events.empty ())
+    amd_dbgapi_process_set_progress (process_id, AMD_DBGAPI_PROGRESS_NORMAL);
+
+  if (!info->wave_stop_events.empty ())
+    inferior_event_handler (INF_REG_EVENT, nullptr);
+}
+
+void
+rocm_target_ops::async (int enable)
+{
+  beneath ()->async (enable);
+
+  if (enable)
+    {
+      if (rocm_event_pipe[0] != -1)
+        return;
+
+      if (gdb_pipe_cloexec (rocm_event_pipe) == -1)
+        internal_error (__FILE__, __LINE__, "creating event pipe failed.");
+
+      ::fcntl (rocm_event_pipe[0], F_SETFL, O_NONBLOCK);
+      ::fcntl (rocm_event_pipe[1], F_SETFL, O_NONBLOCK);
+
+      add_file_handler (rocm_event_pipe[0], handle_target_event, nullptr);
+
+      /* There may be pending events to handle.  Tell the event loop
+         to poll them.  */
+      async_file_mark ();
+    }
+  else
+    {
+      delete_file_handler (rocm_event_pipe[0]);
+
+      if (rocm_event_pipe[0] == -1)
+        return;
+
+      ::close (rocm_event_pipe[0]);
+      ::close (rocm_event_pipe[1]);
+      rocm_event_pipe[0] = -1;
+      rocm_event_pipe[1] = -1;
+    }
+}
+
+static void
+rocm_process_one_event (amd_dbgapi_event_id_t event_id,
+                        amd_dbgapi_event_kind_t event_kind)
+{
+  struct rocm_inferior_info *info = get_rocm_inferior_info ();
+  amd_dbgapi_process_id_t process_id = info->process_id;
+  amd_dbgapi_status_t status;
+
+  switch (event_kind)
+    {
+    case AMD_DBGAPI_EVENT_KIND_WAVE_STOP:
+      {
+        amd_dbgapi_wave_id_t wave_id;
+        if ((status = amd_dbgapi_event_get_info (process_id, event_id,
+                                                 AMD_DBGAPI_EVENT_INFO_WAVE,
+                                                 sizeof (wave_id), &wave_id))
+            != AMD_DBGAPI_STATUS_SUCCESS)
+          error (_ ("event_get_info for event_%ld failed (rc=%d)"),
+                 event_id.handle, status);
+
+        amd_dbgapi_wave_stop_reason_t stop_reason;
+        status = amd_dbgapi_wave_get_info (process_id, wave_id,
+                                           AMD_DBGAPI_WAVE_INFO_STOP_REASON,
+                                           sizeof (stop_reason), &stop_reason);
+
+        if (status != AMD_DBGAPI_STATUS_SUCCESS
+            && status != AMD_DBGAPI_STATUS_ERROR_INVALID_WAVE_ID)
+          error (_ ("wave_get_info for wave_%ld failed (rc=%d)"),
+                 wave_id.handle, status);
+
+        /* The wave may have exited, or the queue went into an error
+           state.  In such cases, we will see another wave command
+           terminated event, and handle the wave termination then.  */
+
+        if (status == AMD_DBGAPI_STATUS_SUCCESS)
+          info->wave_stop_events.emplace_back (
+              std::make_pair (wave_id, stop_reason));
+      }
+      break;
+
+    case AMD_DBGAPI_EVENT_KIND_CODE_OBJECT_LIST_UPDATED:
+      amd_dbgapi_code_object_list_updated.notify ();
+      break;
+
+    case AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME:
+      /* Breakpoint resume events should be handled by the breakpoint
+         action, and this code should not reach this.  */
+      gdb_assert_not_reached (_ ("unhandled event kind"));
+      break;
+
+    case AMD_DBGAPI_EVENT_KIND_RUNTIME:
+      {
+        amd_dbgapi_runtime_state_t runtime_state;
+
+        if ((status = amd_dbgapi_event_get_info (
+                 process_id, event_id, AMD_DBGAPI_EVENT_INFO_RUNTIME_STATE,
+                 sizeof (runtime_state), &runtime_state))
+            != AMD_DBGAPI_STATUS_SUCCESS)
+          error (_ ("event_get_info for event_%ld failed (rc=%d)"),
+                 event_id.handle, status);
+
+        switch (runtime_state)
+          {
+          case AMD_DBGAPI_RUNTIME_STATE_LOADED_SUPPORTED:
+            amd_dbgapi_activated.notify ();
+            break;
+          case AMD_DBGAPI_RUNTIME_STATE_LOADED_UNSUPPORTED:
+            warning (_ ("ROCm-GDB: low-level runtime version not supported"));
+            break;
+
+          case AMD_DBGAPI_RUNTIME_STATE_UNLOADED:
+            amd_dbgapi_deactivated.notify ();
+            break;
+          }
+      }
+      break;
+
+    default:
+      error (_ ("event kind (%d) not supported"), event_kind);
+    }
+
+  amd_dbgapi_event_processed (process_id, event_id);
+}
+
+/* Drain the amd_dbgapi event queue until an event of the given type is seen.
+   If no particular event kind is specified (AMD_DBGAPI_EVENT_KIND_NONE), the
+   event queue is completely drained. Wave stop events that are not returned
+   are re-queued into the current's process pending wave events. */
+static amd_dbgapi_event_id_t
+rocm_process_event_queue (amd_dbgapi_event_kind_t until_event_kind)
+{
+  struct rocm_inferior_info *info = get_rocm_inferior_info ();
+
+  while (true)
+    {
+      amd_dbgapi_event_id_t event_id;
+      amd_dbgapi_event_kind_t event_kind;
+
+      amd_dbgapi_status_t status = amd_dbgapi_next_pending_event (
+          info->process_id, &event_id, &event_kind);
+
+      if (status != AMD_DBGAPI_STATUS_SUCCESS)
+        error (_ ("next_pending_event failed (rc=%d)"), status);
+
+      if (event_id.handle == AMD_DBGAPI_EVENT_NONE.handle
+          || event_kind == until_event_kind)
+        return event_id;
+
+      rocm_process_one_event (event_id, event_kind);
+    }
+}
+
+ptid_t
+rocm_target_ops::wait (ptid_t ptid, struct target_waitstatus *ws,
+                       int target_options)
+{
+  if (debug_infrun)
+    fprintf_unfiltered (gdb_stdlog,
+                        "\e[1;34minfrun: rocm_target_ops::wait\e[0m\n");
+
+  if (!ptid_is_gpu (ptid))
+    {
+      ptid_t event_ptid = beneath ()->wait (ptid, ws, target_options);
+      if (event_ptid != minus_one_ptid)
+        return event_ptid;
+    }
+
+  struct rocm_inferior_info *info = get_rocm_inferior_info ();
+  amd_dbgapi_process_id_t process_id = info->process_id;
+
+  /* Drain all the events from the amd_dbgapi, and preserve the ordering.  */
+  if (info->wave_stop_events.empty ())
+    {
+      amd_dbgapi_process_set_progress (process_id,
+                                       AMD_DBGAPI_PROGRESS_NO_FORWARD);
+
+      /* Flush the async file first.  */
+      if (target_is_async_p ())
+        async_file_flush ();
+
+      rocm_process_event_queue ();
+
+      /* In all-stop mode, unless the event queue is empty (spurious wake-up),
+         we can keep the process in progress_no_forward mode.  The infrun loop
+         will enable forward progress when a thread is resumed.  */
+      if (non_stop || info->wave_stop_events.empty ())
+        amd_dbgapi_process_set_progress (process_id,
+                                         AMD_DBGAPI_PROGRESS_NORMAL);
+    }
+
+  if (info->wave_stop_events.empty ())
+    return minus_one_ptid;
+
+  amd_dbgapi_wave_id_t event_wave_id;
+  amd_dbgapi_wave_stop_reason_t stop_reason;
+
+  std::tie (event_wave_id, stop_reason) = info->wave_stop_events.front ();
+  info->wave_stop_events.pop_front ();
+
+  struct inferior *inf = current_inferior ();
+  ptid_t event_ptid (inf->pid, 1, event_wave_id.handle);
+
+  if (!find_thread_ptid (inf->process_target (), event_ptid))
+    {
+      add_thread_silent (inf->process_target (), event_ptid);
+      set_running (inf->process_target (), event_ptid, 1);
+      set_executing (inf->process_target (), event_ptid, 1);
+    }
+
+  /* Since we are manipulating the register cache for the event thread,
+     make sure it is the current thread.  */
+  switch_to_thread (inf->process_target (), event_ptid);
+
+  /* By caching the PC now, we avoid having to suspend/resume the queue
+     later when we need to access it.  */
+  amd_dbgapi_global_address_t stop_pc;
+  if (amd_dbgapi_wave_get_info (process_id, event_wave_id,
+                                AMD_DBGAPI_WAVE_INFO_PC, sizeof (stop_pc),
+                                &stop_pc)
+      == AMD_DBGAPI_STATUS_SUCCESS)
+    {
+      struct regcache *regcache = get_thread_regcache_for_ptid (event_ptid);
+      regcache->raw_supply (gdbarch_pc_regnum (regcache->arch ()), &stop_pc);
+    }
+  ws->kind = TARGET_WAITKIND_STOPPED;
+
+  if (stop_reason
+      & (AMD_DBGAPI_WAVE_STOP_REASON_BREAKPOINT
+         | AMD_DBGAPI_WAVE_STOP_REASON_SINGLE_STEP))
+    ws->value.sig = GDB_SIGNAL_TRAP;
+  else if (stop_reason & AMD_DBGAPI_WAVE_STOP_REASON_MEMORY_VIOLATION)
+    ws->value.sig = GDB_SIGNAL_SEGV;
+  else if (stop_reason
+           & (AMD_DBGAPI_WAVE_STOP_REASON_FP_INPUT_DENORMAL
+              | AMD_DBGAPI_WAVE_STOP_REASON_FP_DIVIDE_BY_0
+              | AMD_DBGAPI_WAVE_STOP_REASON_FP_OVERFLOW
+              | AMD_DBGAPI_WAVE_STOP_REASON_FP_UNDERFLOW
+              | AMD_DBGAPI_WAVE_STOP_REASON_FP_INEXACT
+              | AMD_DBGAPI_WAVE_STOP_REASON_FP_INVALID_OPERATION
+              | AMD_DBGAPI_WAVE_STOP_REASON_INT_DIVIDE_BY_0))
+    ws->value.sig = GDB_SIGNAL_FPE;
+  else
+    ws->value.sig = GDB_SIGNAL_0;
+
+  /* If there are more events in the list, mark the async file so that
+     rocm_target_ops::wait gets called again.  */
+  if (target_is_async_p () && !info->wave_stop_events.empty ())
+    async_file_mark ();
+
+  return event_ptid;
+}
+
+bool
+rocm_target_ops::stopped_by_sw_breakpoint ()
+{
+  if (!ptid_is_gpu (inferior_ptid))
+    return beneath ()->supports_stopped_by_sw_breakpoint ()
+           && beneath ()->stopped_by_sw_breakpoint ();
+
+  /* FIXME: we should check that the wave is not single-stepping.  */
+
+  struct regcache *regcache = get_thread_regcache_for_ptid (inferior_ptid);
+
+  CORE_ADDR bkpt_pc = regcache_read_pc (regcache)
+                      - gdbarch_decr_pc_after_break (regcache->arch ());
+
+  return software_breakpoint_inserted_here_p (regcache->aspace (), bkpt_pc);
+}
+
+void
+rocm_target_ops::mourn_inferior ()
+{
+  /* FIXME: only unpush on the last activation.  */
+  /* Disengage the ROCm target_ops.  */
+  unpush_target (&rocm_ops);
+
+  beneath ()->mourn_inferior ();
+}
+
+void
+rocm_target_ops::fetch_registers (struct regcache *regcache, int regno)
+{
+  struct gdbarch *gdbarch = regcache->arch ();
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+  /* delegate to the host routines when not on the device */
+
+  if (!rocm_is_amdgcn_gdbarch (gdbarch))
+    {
+      beneath ()->fetch_registers (regcache, regno);
+      return;
+    }
+
+  amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id ();
+  amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (regcache->ptid ());
+
+  gdb_byte raw[AMDGCN_MAX_REGISTER_SIZE];
+
+  amd_dbgapi_status_t status = amd_dbgapi_read_register (
+      process_id, wave_id, tdep->register_ids[regno], 0,
+      TYPE_LENGTH (register_type (gdbarch, regno)), raw);
+
+  if (status == AMD_DBGAPI_STATUS_SUCCESS)
+    {
+      regcache->raw_supply (regno, raw);
+    }
+  else if (status != AMD_DBGAPI_STATUS_ERROR_INVALID_REGISTER_ID)
+    {
+      warning (_ ("Couldn't read register %s (#%d)."),
+               gdbarch_register_name (gdbarch, regno), regno);
+    }
+}
+
+void
+rocm_target_ops::store_registers (struct regcache *regcache, int regno)
+{
+  struct gdbarch *gdbarch = regcache->arch ();
+  struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+  gdb_byte raw[AMDGCN_MAX_REGISTER_SIZE];
+
+  if (!rocm_is_amdgcn_gdbarch (gdbarch))
+    {
+      beneath ()->store_registers (regcache, regno);
+      return;
+    }
+
+  amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id ();
+  amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (regcache->ptid ());
+
+  regcache->raw_collect (regno, &raw);
+
+  amd_dbgapi_status_t status = amd_dbgapi_write_register (
+      process_id, wave_id, tdep->register_ids[regno], 0,
+      TYPE_LENGTH (register_type (gdbarch, regno)), raw);
+
+  if (status != AMD_DBGAPI_STATUS_SUCCESS)
+    {
+      warning (_ ("Couldn't write register %s (#%d)."),
+               gdbarch_register_name (gdbarch, regno), regno);
+    }
+}
+
+/* Fix breakpoints created with an address location while the
+   architecture was set to the host (could be fixed in core GDB).  */
+
+static void
+rocm_target_breakpoint_fixup (struct breakpoint *b)
+{
+  if (b->location.get ()
+      && event_location_type (b->location.get ()) == ADDRESS_LOCATION
+      && gdbarch_bfd_arch_info (b->loc->gdbarch)->arch == bfd_arch_amdgcn
+      && gdbarch_bfd_arch_info (b->gdbarch)->arch != bfd_arch_amdgcn)
+    {
+      b->gdbarch = b->loc->gdbarch;
+    }
+}
+
+struct gdbarch *
+rocm_target_ops::thread_architecture (ptid_t ptid)
+{
+  static std::result_of<decltype (&ptid_t::tid) (ptid_t)>::type last_tid = 0;
+  static struct gdbarch *cached_arch = nullptr;
+
+  if (!ptid_is_gpu (ptid))
+    return beneath ()->thread_architecture (ptid);
+
+  /* We can cache the gdbarch for a given wave_id (ptid::tid) because
+     wave IDs are unique, and aren't reused.  */
+  if (ptid.tid () == last_tid)
+    return cached_arch;
+
+  amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id ();
+  amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (ptid);
+  amd_dbgapi_architecture_id_t architecture_id;
+
+  if (amd_dbgapi_wave_get_info (process_id, wave_id,
+                                AMD_DBGAPI_WAVE_INFO_ARCHITECTURE,
+                                sizeof (architecture_id), &architecture_id)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    error (_ ("Couldn't get architecture for wave_%ld"), ptid.tid ());
+
+  uint32_t elf_amdgpu_machine;
+  if (amd_dbgapi_architecture_get_info (
+          architecture_id, AMD_DBGAPI_ARCHITECTURE_INFO_ELF_AMDGPU_MACHINE,
+          sizeof (elf_amdgpu_machine), &elf_amdgpu_machine)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    error (_ ("Couldn't get elf_amdgpu_machine for architecture_%ld"),
+           architecture_id.handle);
+
+  struct gdbarch_info info;
+  gdbarch_info_init (&info);
+
+  info.bfd_arch_info = bfd_lookup_arch (bfd_arch_amdgcn, elf_amdgpu_machine);
+  info.byte_order = BFD_ENDIAN_LITTLE;
+  info.osabi = GDB_OSABI_AMDGPU_HSA;
+
+  last_tid = ptid.tid ();
+  if (!(cached_arch = gdbarch_find_by_info (info)))
+    error (_ ("Couldn't get elf_amdgpu_machine (%#x)"), elf_amdgpu_machine);
+
+  return cached_arch;
+}
+
+void
+rocm_target_ops::update_thread_list ()
+{
+  for (inferior *inf : all_inferiors ())
+    {
+      amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id (inf);
+      amd_dbgapi_wave_id_t *wave_list;
+      size_t count;
+
+      amd_dbgapi_changed_t changed;
+      amd_dbgapi_status_t status;
+      if ((status
+           = amd_dbgapi_wave_list (process_id, &count, &wave_list, &changed))
+          != AMD_DBGAPI_STATUS_SUCCESS)
+        error (_ ("amd_dbgapi_wave_list failed (rc=%d"), status);
+
+      if (changed == AMD_DBGAPI_CHANGED_NO)
+        continue;
+
+      /* Create a set and free the wave list.  */
+      std::set<std::result_of<decltype (&ptid_t::tid) (ptid_t)>::type> threads;
+      for (size_t i = 0; i < count; ++i)
+        threads.emplace (wave_list[i].handle);
+      xfree (wave_list);
+
+      /* Then prune the wave_ids that already have a thread_info.  */
+      for (thread_info *tp : inf->non_exited_threads ())
+        if (ptid_is_gpu (tp->ptid))
+          threads.erase (tp->ptid.tid ());
+
+      /* The wave_ids that are left require a new thread_info.  */
+      for (auto &&tid : threads)
+        {
+          ptid_t wave_ptid (inf->pid, 1, tid);
+          amd_dbgapi_wave_state_t state;
+
+          if (amd_dbgapi_wave_get_info (
+                  process_id, get_amd_dbgapi_wave_id (wave_ptid),
+                  AMD_DBGAPI_WAVE_INFO_STATE, sizeof (state), &state)
+              != AMD_DBGAPI_STATUS_SUCCESS)
+            continue;
+
+          add_thread_silent (inf->process_target (), wave_ptid);
+          set_running (inf->process_target (), wave_ptid, 1);
+          set_executing (inf->process_target (), wave_ptid, 1);
+        }
+    }
+
+  /* Give the beneath target a chance to do extra processing.  */
+  this->beneath ()->update_thread_list ();
+}
+
+static void
+rocm_target_solib_loaded (struct so_list *solib)
+{
+  /* Notify the amd_dbgapi that a shared library has been loaded.  */
+  for (auto &&value : get_rocm_inferior_info ()->notify_solib_map)
+    /* TODO: If we want to support file name wildcards, change this code.  */
+    if (::strstr (solib->so_original_name, value.second.compare.c_str ())
+        && !value.second.is_loaded)
+      {
+        value.second.solib = solib;
+        value.second.is_loaded = true;
+
+        amd_dbgapi_report_shared_library (
+            get_amd_dbgapi_process_id (),
+            amd_dbgapi_shared_library_id_t{ value.first },
+            AMD_DBGAPI_SHARED_LIBRARY_STATE_LOADED);
+      }
+}
+
+static void
+rocm_target_solib_unloaded (struct so_list *solib)
+{
+  /* Notify the amd_dbgapi that a shared library will unload.  */
+  for (auto &&value : get_rocm_inferior_info ()->notify_solib_map)
+    /* TODO: If we want to support file name wildcards, change this code.  */
+    if (::strstr (solib->so_original_name, value.second.compare.c_str ())
+        && value.second.is_loaded)
+      {
+        struct rocm_inferior_info *info = get_rocm_inferior_info ();
+
+        amd_dbgapi_report_shared_library (
+            info->process_id, amd_dbgapi_shared_library_id_t{ value.first },
+            AMD_DBGAPI_SHARED_LIBRARY_STATE_UNLOADED);
+
+        /* Delete breakpoints that were left inserted in this shared library.
+         */
+        for (auto it = info->breakpoint_map.begin ();
+             it != info->breakpoint_map.end ();)
+          if (solib_contains_address_p (solib, it->second->loc->address))
+            {
+              warning (_ ("breakpoint_%ld is still inserted after "
+                          "shared_library_%ld was unloaded"),
+                       it->first, value.first);
+              delete_breakpoint (it->second);
+              it = info->breakpoint_map.erase (it);
+            }
+          else
+            ++it;
+
+        value.second.solib = nullptr;
+        value.second.is_loaded = false;
+      }
+}
+
+static void
+rocm_target_inferior_created (struct target_ops *target, int from_tty)
+{
+  struct inferior *inf = current_inferior ();
+  auto *info = get_rocm_inferior_info (inf);
+  amd_dbgapi_status_t status;
+
+  if (!target_can_async_p ())
+    {
+      warning (
+          _ ("ROCm-GDB requires target-async, GPU debugging is disabled"));
+      return;
+    }
+
+  gdb_assert (info->wave_stop_events.empty ());
+
+  status = amd_dbgapi_process_attach (inf, &info->process_id);
+
+  if (status == AMD_DBGAPI_STATUS_ERROR_VERSION_MISMATCH)
+    warning (_ ("The version of the kernel driver does not match the version "
+                "required by the ROCm debugger library"));
+
+  if (status != AMD_DBGAPI_STATUS_SUCCESS)
+    {
+      warning (_ ("Could not attach to process %d"), inf->pid);
+      return;
+    }
+
+  if (amd_dbgapi_process_get_info (info->process_id,
+                                   AMD_DBGAPI_PROCESS_INFO_NOTIFIER,
+                                   sizeof (info->notifier), &info->notifier)
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    {
+      warning (_ ("Could not retrieve process %d's notifier"), inf->pid);
+      amd_dbgapi_process_detach (info->process_id);
+      return;
+    }
+
+  /* We add a file handler for events returned by the debugger api. We'll use
+     this handler to signal our async handler that events are available.  */
+  add_file_handler (
+      info->notifier,
+      [] (int error, gdb_client_data client_data) {
+        auto info_ = static_cast<struct rocm_inferior_info *> (client_data);
+        int ret;
+
+        /* Drain the notifier pipe.  */
+        do
+          {
+            char buf;
+            ret = read (info_->notifier, &buf, 1);
+          }
+        while (ret >= 0 || (ret == -1 && errno == EINTR));
+
+        /* Signal our async handler.  */
+        async_file_mark ();
+      },
+      info);
+
+  /* Attaching to the inferior may have generated runtime events, process
+     them now.  */
+  rocm_process_event_queue ();
+}
+
+static void
+rocm_target_inferior_exit (struct inferior *inf)
+{
+  auto *info = get_rocm_inferior_info (inf);
+
+  amd_dbgapi_deactivated.notify ();
+
+  if (info->notifier != -1)
+    delete_file_handler (info->notifier);
+
+  amd_dbgapi_process_detach (info->process_id);
+
+  /* Delete the breakpoints that are still active.  */
+  for (auto &&value : info->breakpoint_map)
+    delete_breakpoint (value.second);
+
+  rocm_inferior_data.clear (inf);
+}
+
+static cli_style_option warning_style ("rocm_warning", ui_file_style::RED);
+static cli_style_option info_style ("rocm_info", ui_file_style::GREEN);
+static cli_style_option verbose_style ("rocm_verbose", ui_file_style::BLUE);
+
+static amd_dbgapi_callbacks_t dbgapi_callbacks = {
+  /* allocate_memory.  */
+  .allocate_memory = xmalloc,
+
+  /* deallocate_memory.  */
+  .deallocate_memory = xfree,
+
+  /* get_os_pid.  */
+  .get_os_pid = [] (amd_dbgapi_client_process_id_t client_process_id,
+                    pid_t *pid) -> amd_dbgapi_status_t {
+    inferior *inf = static_cast<inferior *> (client_process_id);
+
+    *pid = inf->pid;
+    return AMD_DBGAPI_STATUS_SUCCESS;
+  },
+
+  /* enable_notify_shared_library callback.  */
+  .enable_notify_shared_library
+  = [] (amd_dbgapi_client_process_id_t client_process_id,
+        const char *library_name, amd_dbgapi_shared_library_id_t library_id,
+        amd_dbgapi_shared_library_state_t *library_state)
+      -> amd_dbgapi_status_t {
+    inferior *inf = static_cast<inferior *> (client_process_id);
+    struct rocm_inferior_info *info = get_rocm_inferior_info (inf);
+
+    if (!library_name || !library_state)
+      return AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT;
+
+    if (info->notify_solib_map.find (library_id.handle)
+        != info->notify_solib_map.end ())
+      {
+        /* This library id is already registered.  */
+        return AMD_DBGAPI_STATUS_ERROR;
+      }
+
+    /* Check whether the library is already loaded.  */
+    bool is_loaded = false;
+    struct so_list *solib;
+    for (solib = inf->pspace->so_list; solib; solib = solib->next)
+      if (::strstr (solib->so_original_name, library_name))
+        {
+          is_loaded = true;
+          break;
+        }
+
+    /* Check that the library_name is valid.  If must not be empty, and
+       should not have wildcard characters.  */
+    if (*library_name == '\0'
+        || std::string (library_name).find_first_of ("*?[]")
+               != std::string::npos)
+      return AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT;
+
+    /* Add a new entry in the notify_solib_map.  */
+    if (!info->notify_solib_map
+             .emplace (std::piecewise_construct,
+                       std::forward_as_tuple (library_id.handle),
+                       std::forward_as_tuple (rocm_notify_shared_library_info{
+                           library_name, solib, is_loaded }))
+             .second)
+      return AMD_DBGAPI_STATUS_ERROR;
+
+    *library_state = is_loaded ? AMD_DBGAPI_SHARED_LIBRARY_STATE_LOADED
+                               : AMD_DBGAPI_SHARED_LIBRARY_STATE_UNLOADED;
+
+    return AMD_DBGAPI_STATUS_SUCCESS;
+  },
+
+  /* disable_notify_shared_library callback.  */
+  .disable_notify_shared_library
+  = [] (amd_dbgapi_client_process_id_t client_process_id,
+        amd_dbgapi_shared_library_id_t library_id) -> amd_dbgapi_status_t {
+    inferior *inf = static_cast<inferior *> (client_process_id);
+    struct rocm_inferior_info *info = get_rocm_inferior_info (inf);
+
+    auto it = info->notify_solib_map.find (library_id.handle);
+    if (it == info->notify_solib_map.end ())
+      return AMD_DBGAPI_STATUS_ERROR_INVALID_SHARED_LIBRARY_ID;
+
+    info->notify_solib_map.erase (it);
+    return AMD_DBGAPI_STATUS_SUCCESS;
+  },
+
+  /* get_symbol_address callback.  */
+  .get_symbol_address =
+      [] (amd_dbgapi_client_process_id_t client_process_id,
+          amd_dbgapi_shared_library_id_t library_id, const char *symbol_name,
+          amd_dbgapi_global_address_t *address) {
+        inferior *inf = static_cast<inferior *> (client_process_id);
+        struct rocm_inferior_info *info = get_rocm_inferior_info (inf);
+
+        auto it = info->notify_solib_map.find (library_id.handle);
+        if (it == info->notify_solib_map.end ())
+          return AMD_DBGAPI_STATUS_ERROR_INVALID_SHARED_LIBRARY_ID;
+
+        struct so_list *solib = it->second.solib;
+        if (!solib)
+          return AMD_DBGAPI_STATUS_ERROR_LIBRARY_NOT_LOADED;
+
+        solib_read_symbols (solib, 0);
+        gdb_assert (solib->objfile);
+
+        struct bound_minimal_symbol msymbol
+            = lookup_minimal_symbol (symbol_name, NULL, solib->objfile);
+
+        if (!msymbol.minsym || BMSYMBOL_VALUE_ADDRESS (msymbol) == 0)
+          return AMD_DBGAPI_STATUS_ERROR_SYMBOL_NOT_FOUND;
+
+        *address = BMSYMBOL_VALUE_ADDRESS (msymbol);
+        return AMD_DBGAPI_STATUS_SUCCESS;
+      },
+
+  /* set_breakpoint callback.  */
+  .add_breakpoint =
+      [] (amd_dbgapi_client_process_id_t client_process_id,
+          amd_dbgapi_shared_library_id_t shared_library_id,
+          amd_dbgapi_global_address_t address,
+          amd_dbgapi_breakpoint_id_t breakpoint_id) {
+        inferior *inf = static_cast<inferior *> (client_process_id);
+        struct rocm_inferior_info *info = get_rocm_inferior_info (inf);
+
+        /* Initialize the breakpoint ops lazily since we depend on
+           bkpt_breakpoint_ops and we can't control the order in which
+           initializers are called.  */
+        if (rocm_breakpoint_ops.check_status == NULL)
+          {
+            rocm_breakpoint_ops = bkpt_breakpoint_ops;
+            rocm_breakpoint_ops.check_status = rocm_breakpoint_check_status;
+          }
+
+        auto it = info->breakpoint_map.find (breakpoint_id.handle);
+        if (it != info->breakpoint_map.end ())
+          return AMD_DBGAPI_STATUS_ERROR_INVALID_BREAKPOINT_ID;
+
+        /* Create a new breakpoint.  */
+        struct obj_section *section = find_pc_section (address);
+        if (!section || !section->objfile)
+          return AMD_DBGAPI_STATUS_ERROR;
+
+        event_location_up location
+            = new_address_location (address, nullptr, 0);
+        if (!create_breakpoint (
+                get_objfile_arch (section->objfile), location.get (),
+                /*cond_string*/ NULL, /*thread*/ -1, /*extra_sring*/ NULL,
+                /*parse_extra*/ 0, /*tempflag*/ 0, /*bptype*/ bp_breakpoint,
+                /*ignore_count*/ 0, /*pending_break*/ AUTO_BOOLEAN_FALSE,
+                /*ops*/ &rocm_breakpoint_ops, /*from_tty*/ 0,
+                /*enabled*/ 1, /*internal*/ 1, /*flags*/ 0))
+          return AMD_DBGAPI_STATUS_ERROR;
+
+        /* Find our breakpoint in the breakpoint list.  */
+        auto bp_loc = std::make_pair (inf->aspace, address);
+        auto bp = breakpoint_find_if (
+            [] (struct breakpoint *b, void *data) {
+              auto *arg = static_cast<decltype (&bp_loc)> (data);
+              if (b->ops == &rocm_breakpoint_ops && b->loc
+                  && b->loc->pspace->aspace == arg->first
+                  && b->loc->address == arg->second)
+                return 1;
+              return 0;
+            },
+            reinterpret_cast<void *> (&bp_loc));
+
+        if (!bp)
+          error (_ ("Could not find breakpoint"));
+
+        info->breakpoint_map.emplace (breakpoint_id.handle, bp);
+        return AMD_DBGAPI_STATUS_SUCCESS;
+      },
+
+  /* remove_breakpoint callback.  */
+  .remove_breakpoint =
+      [] (amd_dbgapi_client_process_id_t client_process_id,
+          amd_dbgapi_breakpoint_id_t breakpoint_id) {
+        inferior *inf = static_cast<inferior *> (client_process_id);
+        struct rocm_inferior_info *info = get_rocm_inferior_info (inf);
+
+        auto it = info->breakpoint_map.find (breakpoint_id.handle);
+        if (it == info->breakpoint_map.end ())
+          return AMD_DBGAPI_STATUS_ERROR_INVALID_BREAKPOINT_ID;
+
+        delete_breakpoint (it->second);
+        info->breakpoint_map.erase (it);
+
+        return AMD_DBGAPI_STATUS_SUCCESS;
+      },
+
+  /* set_breakpoint_state callback.  */
+  .set_breakpoint_state =
+      [] (amd_dbgapi_client_process_id_t client_process_id,
+          amd_dbgapi_breakpoint_id_t breakpoint_id,
+          amd_dbgapi_breakpoint_state_t breakpoint_state) {
+        inferior *inf = static_cast<inferior *> (client_process_id);
+        struct rocm_inferior_info *info = get_rocm_inferior_info (inf);
+
+        auto it = info->breakpoint_map.find (breakpoint_id.handle);
+        if (it == info->breakpoint_map.end ())
+          return AMD_DBGAPI_STATUS_ERROR_INVALID_BREAKPOINT_ID;
+
+        if (breakpoint_state == AMD_DBGAPI_BREAKPOINT_STATE_ENABLE)
+          it->second->enable_state = bp_enabled;
+        else if (breakpoint_state == AMD_DBGAPI_BREAKPOINT_STATE_DISABLE)
+          it->second->enable_state = bp_disabled;
+        else
+          return AMD_DBGAPI_STATUS_ERROR_INVALID_ARGUMENT;
+
+        return AMD_DBGAPI_STATUS_SUCCESS;
+      },
+
+  .log_message
+  = [] (amd_dbgapi_log_level_t level, const char *message) -> void {
+    gdb::optional<target_terminal::scoped_restore_terminal_state> tstate;
+
+    if (level > get_debug_amd_dbgapi_log_level ())
+      return;
+
+    if (target_supports_terminal_ours ())
+      {
+        tstate.emplace ();
+        target_terminal::ours_for_output ();
+      }
+
+    if (filtered_printing_initialized ())
+      wrap_here ("");
+
+    struct ui_file *out_file
+        = (level >= AMD_DBGAPI_LOG_LEVEL_INFO) ? gdb_stdlog : gdb_stderr;
+
+    switch (level)
+      {
+      case AMD_DBGAPI_LOG_LEVEL_FATAL_ERROR:
+        fputs_unfiltered ("[amd-dbgapi]: ", out_file);
+        break;
+      case AMD_DBGAPI_LOG_LEVEL_WARNING:
+        fputs_styled ("[amd-dbgapi]: ", warning_style.style (), out_file);
+        break;
+      case AMD_DBGAPI_LOG_LEVEL_INFO:
+        fputs_styled ("[amd-dbgapi]: ", info_style.style (), out_file);
+        break;
+      case AMD_DBGAPI_LOG_LEVEL_VERBOSE:
+        fputs_styled ("[amd-dbgapi]: ", verbose_style.style (), out_file);
+        break;
+      }
+
+    fputs_unfiltered (message, out_file);
+    fputs_unfiltered ("\n", out_file);
+  }
+};
+
+/* Implementation of `_wave_id' variable.  */
+
+static struct value *
+rocm_wave_id_make_value (struct gdbarch *gdbarch, struct internalvar *var,
+                         void *ignore)
+{
+  if (ptid_is_gpu (inferior_ptid))
+    {
+      amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id ();
+      amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (inferior_ptid);
+      uint32_t group_ids[3], wave_in_group;
+
+      if (amd_dbgapi_wave_get_info (process_id, wave_id,
+                                    AMD_DBGAPI_WAVE_INFO_WORK_GROUP_COORD,
+                                    sizeof (group_ids), &group_ids)
+              == AMD_DBGAPI_STATUS_SUCCESS
+          && amd_dbgapi_wave_get_info (
+                 process_id, wave_id,
+                 AMD_DBGAPI_WAVE_INFO_WAVE_NUMBER_IN_WORK_GROUP,
+                 sizeof (wave_in_group), &wave_in_group)
+                 == AMD_DBGAPI_STATUS_SUCCESS)
+        {
+          std::string wave_id_str
+              = string_printf ("(%d,%d,%d)/%d", group_ids[2], group_ids[1],
+                               group_ids[0], wave_in_group);
+
+          return value_cstring (wave_id_str.data (), wave_id_str.length () + 1,
+                                builtin_type (gdbarch)->builtin_char);
+        }
+    }
+
+  return allocate_value (builtin_type (gdbarch)->builtin_void);
+}
+
+static const struct internalvar_funcs rocm_wave_id_funcs
+    = { rocm_wave_id_make_value, NULL, NULL };
+
+/* List of set/show debug amd_dbgapi commands.  */
+struct cmd_list_element *set_debug_amd_dbgapi_list;
+struct cmd_list_element *show_debug_amd_dbgapi_list;
+
+static void
+set_debug_amd_dbgapi (const char *arg, int from_tty)
+{
+  help_list (set_debug_amd_dbgapi_list, "set debug amd-dbgapi ",
+             (enum command_class) - 1, gdb_stdout);
+}
+
+static void
+show_debug_amd_dbgapi (const char *args, int from_tty)
+{
+  cmd_show_list (show_debug_amd_dbgapi_list, from_tty, "");
+}
+
+constexpr char amd_dbgapi_log_level_off[] = "off";
+constexpr char amd_dbgapi_log_level_error[] = "error";
+constexpr char amd_dbgapi_log_level_warning[] = "warning";
+constexpr char amd_dbgapi_log_level_info[] = "info";
+constexpr char amd_dbgapi_log_level_verbose[] = "verbose";
+
+constexpr const char *debug_amd_dbgapi_log_level_enums[]
+    = { [AMD_DBGAPI_LOG_LEVEL_NONE] = amd_dbgapi_log_level_off,
+        [AMD_DBGAPI_LOG_LEVEL_FATAL_ERROR] = amd_dbgapi_log_level_error,
+        [AMD_DBGAPI_LOG_LEVEL_WARNING] = amd_dbgapi_log_level_warning,
+        [AMD_DBGAPI_LOG_LEVEL_INFO] = amd_dbgapi_log_level_info,
+        [AMD_DBGAPI_LOG_LEVEL_VERBOSE] = amd_dbgapi_log_level_verbose,
+        nullptr };
+
+static const char *debug_amd_dbgapi_log_level = amd_dbgapi_log_level_error;
+
+static amd_dbgapi_log_level_t
+get_debug_amd_dbgapi_log_level ()
+{
+  size_t pos;
+  for (pos = 0; debug_amd_dbgapi_log_level_enums[pos]; ++pos)
+    if (debug_amd_dbgapi_log_level == debug_amd_dbgapi_log_level_enums[pos])
+      break;
+
+  gdb_assert (debug_amd_dbgapi_log_level_enums[pos]);
+  return static_cast<amd_dbgapi_log_level_t> (pos);
+}
+
+static void
+set_debug_amd_dbgapi_log_level (const char *args, int from_tty,
+                                struct cmd_list_element *c)
+{
+  amd_dbgapi_set_log_level (get_debug_amd_dbgapi_log_level ());
+}
+
+static void
+show_debug_amd_dbgapi_log_level (struct ui_file *file, int from_tty,
+                                 struct cmd_list_element *c, const char *value)
+{
+  fprintf_filtered (file, _ ("The amd-dbgapi log level is %s.\n"), value);
+}
+
+static void
+info_agents_command (const char *args, int from_tty)
+{
+  amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id ();
+  struct ui_out *uiout = current_uiout;
+  amd_dbgapi_status_t status;
+
+  amd_dbgapi_agent_id_t *agent_list;
+  size_t count = 0;
+
+  if (process_id.handle != AMD_DBGAPI_PROCESS_NONE.handle
+      && (status
+          = amd_dbgapi_agent_list (process_id, &count, &agent_list, nullptr))
+             != AMD_DBGAPI_STATUS_SUCCESS)
+    error (_ ("amd_dbgapi_agent_list failed (rc=%d)"), status);
+
+  if (!count && !uiout->is_mi_like_p ())
+    {
+      uiout->field_string (NULL, _ ("No agents are currently active.\n"));
+      return;
+    }
+
+  /* Calculate the maximum size needed to print the agents names.  */
+  std::vector<std::string> agent_names (count);
+
+  size_t max_name_len = 0;
+  for (size_t i = 0; i < count; ++i)
+    {
+      char *agent_name;
+
+      if ((status = amd_dbgapi_agent_get_info (
+               process_id, agent_list[i], AMD_DBGAPI_AGENT_INFO_NAME,
+               sizeof (agent_name), &agent_name))
+          != AMD_DBGAPI_STATUS_SUCCESS)
+        {
+          if (status == AMD_DBGAPI_STATUS_ERROR_INVALID_AGENT_ID)
+            agent_names[i] = "N/A";
+          else
+            error (_ ("amd_dbgapi_agent_get_info failed (rc=%d"), status);
+        }
+      else
+        {
+          agent_names[i] = agent_name;
+          xfree (agent_name);
+        }
+
+      max_name_len = std::max (max_name_len, agent_names[i].size ());
+    }
+
+  /* Header:  */
+  ui_out_emit_table table_emmitter (uiout, 7, count, "InfoRocmDevicesTable");
+
+  uiout->table_header (2, ui_left, "agent_id", "Id");
+  uiout->table_header (8, ui_left, "location_id", "PCI Slot");
+  uiout->table_header (std::max (11ul, max_name_len), ui_left, "name",
+                       "Device Name");
+  uiout->table_header (14, ui_left, "num_se", "Shader Engines");
+  uiout->table_header (13, ui_left, "num_cu", "Compute Units");
+  uiout->table_header (7, ui_left, "simd", "SIMD/CU");
+  uiout->table_header (15, ui_left, "waves", "Wavefronts/SIMD");
+  uiout->table_body ();
+
+  /* Rows:  */
+  for (size_t i = 0; i < count; ++i)
+    {
+      ui_out_emit_tuple tuple_emitter (uiout, "InfoRocmDevicesRow");
+
+      /* agent  */
+      uiout->field_signed ("agent_id", agent_list[i].handle);
+
+      /* location  */
+      uint32_t location_id;
+      if ((status = amd_dbgapi_agent_get_info (
+               process_id, agent_list[i], AMD_DBGAPI_AGENT_INFO_PCIE_SLOT,
+               sizeof (location_id), &location_id))
+          != AMD_DBGAPI_STATUS_SUCCESS)
+        {
+          if (status == AMD_DBGAPI_STATUS_ERROR_INVALID_AGENT_ID)
+            uiout->field_string ("location_id", "N/A");
+          else
+            error (_ ("amd_dbgapi_agent_get_info failed (rc=%d"), status);
+        }
+      else
+        uiout->field_string (
+            "location_id",
+            string_printf ("%02x:%02x.%d", (location_id >> 8) & 0xFF,
+                           (location_id >> 3) & 0x1F, location_id & 0x7));
+
+      /* name  */
+      uiout->field_string ("name", agent_names[i]);
+
+      /* num_se, num_cu, simd, waves  */
+
+#define UIOUT_FIELD_INT(name, query)                                          \
+  uint32_t name;                                                              \
+  if ((status = amd_dbgapi_agent_get_info (process_id, agent_list[i], query,  \
+                                           sizeof (name), &name))             \
+      != AMD_DBGAPI_STATUS_SUCCESS)                                           \
+    {                                                                         \
+      if (status == AMD_DBGAPI_STATUS_ERROR_INVALID_AGENT_ID)                 \
+        uiout->field_string (#name, "N/A");                                   \
+      else                                                                    \
+        error (_ ("amd_dbgapi_agent_get_info failed (rc=%d"), status);        \
+    }                                                                         \
+  else                                                                        \
+    uiout->field_signed (#name, name);
+
+      UIOUT_FIELD_INT (num_se, AMD_DBGAPI_AGENT_INFO_SHADER_ENGINE_COUNT);
+      UIOUT_FIELD_INT (num_cu, AMD_DBGAPI_AGENT_INFO_COMPUTE_UNIT_COUNT);
+      UIOUT_FIELD_INT (simd, AMD_DBGAPI_AGENT_INFO_NUM_SIMD_PER_COMPUTE_UNIT);
+      UIOUT_FIELD_INT (waves, AMD_DBGAPI_AGENT_INFO_MAX_WAVES_PER_SIMD);
+
+#undef UIOUT_FIELD_INT
+
+      uiout->text ("\n");
+    }
+
+  xfree (agent_list);
+  gdb_flush (gdb_stdout);
+}
+
+/* -Wmissing-prototypes */
+extern initialize_file_ftype _initialize_rocm_tdep;
+
+void
+_initialize_rocm_tdep (void)
+{
+  /* Initialize the ROCm Debug API.  */
+  if (amd_dbgapi_initialize (&dbgapi_callbacks) != AMD_DBGAPI_STATUS_SUCCESS)
+    return;
+
+  /* Set the initial log level.  */
+  amd_dbgapi_set_log_level (get_debug_amd_dbgapi_log_level ());
+
+  /* Install observers.  */
+  gdb::observers::breakpoint_created.attach (rocm_target_breakpoint_fixup);
+  gdb::observers::solib_loaded.attach (rocm_target_solib_loaded);
+  gdb::observers::solib_unloaded.attach (rocm_target_solib_unloaded);
+  gdb::observers::inferior_created.attach (rocm_target_inferior_created);
+  gdb::observers::inferior_exit.attach (rocm_target_inferior_exit);
+
+  amd_dbgapi_activated.attach (rocm_target_dbgapi_activated);
+  amd_dbgapi_deactivated.attach (rocm_target_dbgapi_deactivated);
+
+  create_internalvar_type_lazy ("_wave_id", &rocm_wave_id_funcs, NULL);
+
+  add_prefix_cmd ("amd-dbgapi", no_class, set_debug_amd_dbgapi,
+                  _ ("Generic command for setting amd-dbgapi debugging flags"),
+                  &set_debug_amd_dbgapi_list, "set debug amd-dbgapi ", 0,
+                  &setdebuglist);
+
+  add_prefix_cmd ("amd-dbgapi", no_class, show_debug_amd_dbgapi,
+                  _ ("Generic command for showing amd-dbgapi debugging flags"),
+                  &show_debug_amd_dbgapi_list, "show debug amd-dbgapi ", 0,
+                  &showdebuglist);
+
+  add_setshow_enum_cmd (
+      "log-level", class_maintenance, debug_amd_dbgapi_log_level_enums,
+      &debug_amd_dbgapi_log_level, _ ("Set the amd-dbgapi log level."),
+      _ ("Show the amd-dbgapi log level."),
+      _ ("off     == no logging is enabled\n"
+         "error   == fatal errors are reported\n"
+         "warning == fatal errors and warnings are reported\n"
+         "info    == fatal errors, warnings, and info messages are reported\n"
+         "verbose == all messages are reported"),
+      set_debug_amd_dbgapi_log_level, show_debug_amd_dbgapi_log_level,
+      &set_debug_amd_dbgapi_list, &show_debug_amd_dbgapi_list);
+
+  add_cmd ("agents", class_info, info_agents_command,
+           _ ("Info about currently active agents."), &infolist);
+}
diff --git a/gdb/rocm-tdep.h b/gdb/rocm-tdep.h
new file mode 100644 (file)
index 0000000..00e8238
--- /dev/null
@@ -0,0 +1,60 @@
+/* Target-dependent code for ROCm.
+
+   Copyright (C) 2019-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _ROCM_TDEP_H
+#define _ROCM_TDEP_H 1
+
+#include "gdbsupport/common-defs.h"
+#include "gdbsupport/observable.h"
+
+#include <type_traits>
+
+#include <amd-dbgapi.h>
+
+/* ROCm Debug API event observers.  */
+
+extern gdb::observers::observable<> amd_dbgapi_activated;
+extern gdb::observers::observable<> amd_dbgapi_deactivated;
+extern gdb::observers::observable<> amd_dbgapi_code_object_list_updated;
+
+/* Return true if the given ptid is a GPU thread (wave) ptid.  */
+
+static inline bool
+ptid_is_gpu (ptid_t ptid)
+{
+  return ptid.pid () != 1 && ptid.lwp () == 1;
+}
+
+/* Return true if this is the AMDGCN architecture.  */
+extern bool rocm_is_amdgcn_gdbarch (struct gdbarch *gdbarch);
+
+/* Return the current inferior's amd_dbgapi process id.  */
+extern amd_dbgapi_process_id_t
+get_amd_dbgapi_process_id (struct inferior *inferior = nullptr);
+
+static inline amd_dbgapi_wave_id_t
+get_amd_dbgapi_wave_id (ptid_t ptid)
+{
+  return amd_dbgapi_wave_id_t{
+    static_cast<decltype (amd_dbgapi_wave_id_t::handle)> (ptid.tid ())
+  };
+}
+
+#endif /* rocm-tdep.h */
diff --git a/gdb/solib-rocm.c b/gdb/solib-rocm.c
new file mode 100644 (file)
index 0000000..cb2322f
--- /dev/null
@@ -0,0 +1,397 @@
+/* Handle ROCm Code Objects for GDB, the GNU Debugger.
+
+   Copyright (C) 2019-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+   This file is part of GDB.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#include "defs.h"
+
+#include "arch-utils.h"
+#include "elf-bfd.h"
+#include "gdbcore.h"
+#include "inferior.h"
+#include "objfiles.h"
+#include "observable.h"
+#include "rocm-tdep.h"
+#include "solib-svr4.h"
+#include "solib.h"
+#include "solist.h"
+#include "symfile.h"
+
+#include <functional>
+#include <string>
+
+#define ROCM_DSO_NAME_PREFIX "AMDGPU shared object [loaded from memory "
+
+#define ROCM_DSO_NAME_SUFFIX "]"
+
+/* ROCm-specific inferior data.  */
+
+struct solib_info
+{
+  /* List of code objects loaded into the inferior.  */
+  struct so_list *solib_list;
+};
+
+/* Per-inferior data key.  */
+static const struct inferior_key<solib_info> rocm_solib_data;
+
+struct target_so_ops rocm_solib_ops;
+
+/* Free the solib linked list.  */
+
+static void
+rocm_free_solib_list (struct solib_info *info)
+{
+  while (info->solib_list != NULL)
+    {
+      struct so_list *next = info->solib_list->next;
+
+      free_so (info->solib_list);
+      info->solib_list = next;
+    }
+
+  info->solib_list = NULL;
+}
+
+/* Fetch the solib_info data for the current inferior.  */
+
+static struct solib_info *
+get_solib_info (void)
+{
+  struct inferior *inf = current_inferior ();
+
+  struct solib_info *info = rocm_solib_data.get (inf);
+  if (info == NULL)
+    info = rocm_solib_data.emplace (inf);
+
+  return info;
+}
+
+/* Relocate section addresses.  */
+
+static void
+rocm_solib_relocate_section_addresses (struct so_list *so,
+                                       struct target_section *sec)
+{
+  if (!rocm_is_amdgcn_gdbarch (gdbarch_from_bfd (so->abfd)))
+    {
+      svr4_so_ops.relocate_section_addresses (so, sec);
+      return;
+    }
+
+  lm_info_svr4 *li = (lm_info_svr4 *)so->lm_info;
+  sec->addr = sec->addr + li->l_addr;
+  sec->endaddr = sec->endaddr + li->l_addr;
+}
+
+/* Make a deep copy of the solib linked list.  */
+
+static struct so_list *
+rocm_solib_copy_list (const struct so_list *src)
+{
+  struct so_list *dst = NULL;
+  struct so_list **link = &dst;
+
+  while (src != NULL)
+    {
+      struct so_list *newobj;
+
+      newobj = XNEW (struct so_list);
+      memcpy (newobj, src, sizeof (struct so_list));
+
+      lm_info_svr4 *src_li = (lm_info_svr4 *)src->lm_info;
+      newobj->lm_info = new lm_info_svr4 (*src_li);
+
+      newobj->next = NULL;
+      *link = newobj;
+      link = &newobj->next;
+
+      src = src->next;
+    }
+
+  return dst;
+}
+
+/* Build a list of `struct so_list' objects describing the shared
+   objects currently loaded in the inferior.  */
+
+static struct so_list *
+rocm_solib_current_sos (void)
+{
+  /* First, retrieve the host-side shared library list.  */
+  struct so_list *head = svr4_so_ops.current_sos ();
+
+  /* Then, the device-side shared library list.  */
+  struct so_list *list = get_solib_info ()->solib_list;
+
+  if (!list)
+    return head;
+
+  list = rocm_solib_copy_list (list);
+
+  if (!head)
+    return list;
+
+  /* Append our libraries to the end of the list.  */
+  struct so_list *tail;
+  for (tail = head; tail->next; tail = tail->next)
+    /* Nothing.  */;
+  tail->next = list;
+
+  return head;
+}
+
+struct target_elf_image
+{
+  /* The base address of the ELF file image in the inferior's memory.  */
+  CORE_ADDR base_addr;
+
+  /* The size of the ELF file image.  */
+  ULONGEST size;
+};
+
+static void *
+rocm_bfd_iovec_open (bfd *nbfd, void *open_closure)
+{
+  return open_closure;
+}
+
+static int
+rocm_bfd_iovec_close (bfd *nbfd, void *stream)
+{
+  xfree (stream);
+  return 0;
+}
+
+static file_ptr
+rocm_bfd_iovec_pread (bfd *abfd, void *stream, void *buf, file_ptr nbytes,
+                      file_ptr offset)
+{
+  CORE_ADDR addr = ((target_elf_image *)stream)->base_addr;
+
+  if (target_read_memory (addr + offset, (gdb_byte *)buf, nbytes) != 0)
+    {
+      bfd_set_error (bfd_error_invalid_operation);
+      return -1;
+    }
+
+  return nbytes;
+}
+
+static int
+rocm_bfd_iovec_stat (bfd *abfd, void *stream, struct stat *sb)
+{
+  memset (sb, '\0', sizeof (struct stat));
+  sb->st_size = ((struct target_elf_image *)stream)->size;
+  return 0;
+}
+
+static gdb_bfd_ref_ptr
+rocm_solib_bfd_open (const char *pathname)
+{
+  struct target_elf_image *open_closure;
+  CORE_ADDR addr, end;
+
+  /* Handle regular SVR4 libraries.  */
+  if (strstr (pathname, ROCM_DSO_NAME_PREFIX) != pathname)
+    return svr4_so_ops.bfd_open (pathname);
+
+  /* Decode the start and end addresses.  */
+  if (sscanf (pathname + sizeof (ROCM_DSO_NAME_PREFIX) - 1, "0x%lx..0x%lx",
+              &addr, &end)
+      != 2)
+    internal_error (__FILE__, __LINE__, "ROCm-GDB Error: bad DSO name: `%s'",
+                    pathname);
+
+  open_closure = XNEW (struct target_elf_image);
+  open_closure->base_addr = addr;
+  open_closure->size = end - addr;
+
+  gdb_bfd_ref_ptr abfd (gdb_bfd_openr_iovec (
+      pathname, "elf64-amdgcn", rocm_bfd_iovec_open, open_closure,
+      rocm_bfd_iovec_pread, rocm_bfd_iovec_close, rocm_bfd_iovec_stat));
+
+  /* Check bfd format.  */
+  if (!bfd_check_format (abfd.get (), bfd_object))
+    error (_ ("`%s': not in executable format: %s"),
+           bfd_get_filename (abfd.get ()), bfd_errmsg (bfd_get_error ()));
+
+  unsigned char osabi = elf_elfheader (abfd)->e_ident[EI_OSABI];
+  unsigned char osabiversion = elf_elfheader (abfd)->e_ident[EI_ABIVERSION];
+
+  /* Make a check if the code object in the elf is V3. ROCM-gdb has
+     support only for V3.  */
+  if (osabi != ELFOSABI_AMDGPU_HSA)
+    error (_ ("`%s': ELF file OS ABI invalid (%d)."),
+           bfd_get_filename (abfd.get ()), osabi);
+
+  if (osabi == ELFOSABI_AMDGPU_HSA && osabiversion < 1)
+    error (_ ("`%s': ELF file ABI version (%d) is not supported."),
+           bfd_get_filename (abfd.get ()), osabiversion);
+
+  return abfd;
+}
+
+static void
+rocm_solib_create_inferior_hook (int from_tty)
+{
+  rocm_free_solib_list (get_solib_info ());
+
+  svr4_so_ops.solib_create_inferior_hook (from_tty);
+}
+
+static void
+rocm_update_solib_list ()
+{
+  amd_dbgapi_process_id_t process_id = get_amd_dbgapi_process_id ();
+  solib_info *info = get_solib_info ();
+  amd_dbgapi_status_t status;
+
+  rocm_free_solib_list (info);
+  struct so_list **link = &info->solib_list;
+
+  amd_dbgapi_code_object_id_t *code_object_list;
+  size_t count;
+
+  if ((status = amd_dbgapi_code_object_list (process_id, &count,
+                                             &code_object_list, nullptr))
+      != AMD_DBGAPI_STATUS_SUCCESS)
+    {
+      warning (_ ("amd_dbgapi_code_object_list failed (%d)"), status);
+      return;
+    }
+
+  for (size_t i = 0; i < count; ++i)
+    {
+      struct so_list *so = XCNEW (struct so_list);
+      lm_info_svr4 *li = new lm_info_svr4;
+      so->lm_info = li;
+
+      char *uri_bytes;
+
+      if (amd_dbgapi_code_object_get_info (
+              process_id, code_object_list[i],
+              AMD_DBGAPI_CODE_OBJECT_INFO_LOAD_ADDRESS, sizeof (li->l_addr),
+              &li->l_addr)
+              != AMD_DBGAPI_STATUS_SUCCESS
+          || amd_dbgapi_code_object_get_info (
+                 process_id, code_object_list[i],
+                 AMD_DBGAPI_CODE_OBJECT_INFO_URI_NAME, sizeof (uri_bytes),
+                 &uri_bytes)
+                 != AMD_DBGAPI_STATUS_SUCCESS)
+        continue;
+
+      /* FIXME: We need to properly decode the URI.  */
+
+      std::string uri (uri_bytes);
+      xfree (uri_bytes);
+
+      size_t address_pos = uri.find ("://");
+      if (address_pos == std::string::npos)
+        continue;
+      address_pos += 3;
+
+      size_t fragment_pos = uri.find ('#', address_pos);
+      if (address_pos == std::string::npos)
+        continue;
+
+      std::string fragment = uri.substr (fragment_pos);
+
+      /* Decode the offset and size.  */
+      amd_dbgapi_global_address_t mem_addr;
+      amd_dbgapi_size_t mem_size;
+
+      if (sscanf (fragment.c_str (), "#offset=0x%lx&size=0x%lx", &mem_addr,
+                  &mem_size)
+          != 2)
+        internal_error (__FILE__, __LINE__,
+                        "ROCm-GDB Error: bad DSO name: `%s'", uri.c_str ());
+
+      xsnprintf (so->so_name, sizeof so->so_name,
+                 ROCM_DSO_NAME_PREFIX "%s..%s" ROCM_DSO_NAME_SUFFIX,
+                 hex_string (mem_addr), hex_string (mem_addr + mem_size));
+      strcpy (so->so_original_name, so->so_name);
+
+      so->next = nullptr;
+      *link = so;
+      link = &so->next;
+    }
+
+  xfree (code_object_list);
+
+  /* Force GDB to reload the solibs.  */
+  clear_program_space_solib_cache (current_inferior ()->pspace);
+
+  /* Switch terminal for any messages produced by
+     breakpoint_re_set.  */
+  target_terminal::ours_for_output ();
+
+  solib_add (NULL, 0, auto_solib_add);
+
+  /* Switch it back.  */
+  target_terminal::inferior ();
+}
+
+static void
+rocm_solib_dbgapi_activated ()
+{
+  if (rocm_solib_ops.current_sos == NULL)
+    {
+      /* Override what we need to */
+      rocm_solib_ops = svr4_so_ops;
+      rocm_solib_ops.current_sos = rocm_solib_current_sos;
+      rocm_solib_ops.solib_create_inferior_hook
+          = rocm_solib_create_inferior_hook;
+      rocm_solib_ops.bfd_open = rocm_solib_bfd_open;
+      rocm_solib_ops.relocate_section_addresses
+          = rocm_solib_relocate_section_addresses;
+    }
+
+  /* Engage the ROCm so_ops.  */
+  set_solib_ops (target_gdbarch (), &rocm_solib_ops);
+}
+
+static void
+rocm_solib_dbgapi_deactivated ()
+{
+  /* Disengage the ROCm so_ops.  */
+  set_solib_ops (target_gdbarch (), &svr4_so_ops);
+}
+
+static void
+rocm_solib_target_inferior_created (struct target_ops *target, int from_tty)
+{
+  rocm_free_solib_list (get_solib_info ());
+  rocm_update_solib_list ();
+}
+
+/* -Wmissing-prototypes */
+extern initialize_file_ftype _initialize_rocm_solib;
+
+void
+_initialize_rocm_solib (void)
+{
+  /* Install our observers.  */
+  amd_dbgapi_activated.attach (rocm_solib_dbgapi_activated);
+  amd_dbgapi_deactivated.attach (rocm_solib_dbgapi_deactivated);
+  amd_dbgapi_code_object_list_updated.attach (rocm_update_solib_list);
+
+  /* FIXME: remove this when we can clear the solist in
+     rocm_solib_create_inferior_hook.  */
+  gdb::observers::inferior_created.attach (rocm_solib_target_inferior_created);
+}
diff --git a/gdb/testsuite/gdb.rocm/bit_extract_asm.S b/gdb/testsuite/gdb.rocm/bit_extract_asm.S
new file mode 100644 (file)
index 0000000..3cf48a3
--- /dev/null
@@ -0,0 +1,18325 @@
+       .text
+       .file   "bit_extract.cpp"
+       .file   1 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8/bits/atomic_word.h"
+       .file   2 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/ios_base.h"
+       .file   3 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/iostream"
+       .file   4 "/usr/include/x86_64-linux-gnu/bits/types.h"
+       .file   5 "/usr/include/x86_64-linux-gnu/bits/stdint-uintn.h"
+       .file   6 "/home/qingchuan/workspace/tests/bit_extract_s/bit_extract.cpp"
+       .file   7 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/ext/concurrence.h"
+       .file   8 "/opt/rocm/hip/include/hip/hip_runtime_api.h"
+       .file   9 "/opt/rocm/hip/include/hip/hcc_detail/driver_types.h"
+       .file   10 "/usr/include/x86_64-linux-gnu/bits/types/__mbstate_t.h"
+       .file   11 "/usr/include/x86_64-linux-gnu/bits/types/mbstate_t.h"
+       .file   12 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/cwchar"
+       .file   13 "/usr/include/x86_64-linux-gnu/bits/types/wint_t.h"
+       .file   14 "/usr/include/wchar.h"
+       .file   15 "/usr/include/x86_64-linux-gnu/bits/libio.h"
+       .file   16 "/opt/rocm/llvm/lib/clang/10.0.0/include/stddef.h"
+       .file   17 "/usr/include/x86_64-linux-gnu/bits/types/__FILE.h"
+       .file   18 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/exception_ptr.h"
+       .file   19 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8/bits/c++config.h"
+       .file   20 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/debug/debug.h"
+       .file   21 "/usr/include/x86_64-linux-gnu/bits/stdint-intn.h"
+       .file   22 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/cstdint"
+       .file   23 "/usr/include/stdint.h"
+       .file   24 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/clocale"
+       .file   25 "/usr/include/locale.h"
+       .file   26 "/usr/include/ctype.h"
+       .file   27 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/cctype"
+       .file   28 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/ext/new_allocator.h"
+       .file   29 "/usr/include/stdlib.h"
+       .file   30 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/std_abs.h"
+       .file   31 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/cstdlib"
+       .file   32 "/usr/include/x86_64-linux-gnu/bits/stdlib-float.h"
+       .file   33 "/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h"
+       .file   34 "/usr/include/x86_64-linux-gnu/bits/types/FILE.h"
+       .file   35 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/cstdio"
+       .file   36 "/usr/include/x86_64-linux-gnu/bits/_G_config.h"
+       .file   37 "/usr/include/stdio.h"
+       .file   38 "/usr/include/x86_64-linux-gnu/bits/stdio.h"
+       .file   39 "/usr/include/wctype.h"
+       .file   40 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/cwctype"
+       .file   41 "/usr/include/x86_64-linux-gnu/bits/wctype-wchar.h"
+       .file   42 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/stdlib.h"
+       .file   43 "/usr/include/x86_64-linux-gnu/bits/types/clock_t.h"
+       .file   44 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/ctime"
+       .file   45 "/usr/include/x86_64-linux-gnu/bits/types/time_t.h"
+       .file   46 "/usr/include/time.h"
+       .file   47 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/shared_ptr_base.h"
+       .file   48 "/usr/include/x86_64-linux-gnu/bits/mathcalls.h"
+       .file   49 "/usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/cmath"
+       .file   50 "/usr/include/math.h"
+       .file   51 "/opt/rocm/llvm/lib/clang/10.0.0/include/__clang_cuda_math_forward_declares.h"
+       .section        .rodata.cst8,"aM",@progbits,8
+       .p2align        3               # -- Begin function main
+.LCPI0_0:
+       .quad   4620275953019387904     # double 7.62939453125
+       .section        .rodata.cst16,"aM",@progbits,16
+       .p2align        4
+.LCPI0_1:
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   2                       # 0x2
+       .long   3                       # 0x3
+.LCPI0_2:
+       .long   4                       # 0x4
+       .long   4                       # 0x4
+       .long   4                       # 0x4
+       .long   4                       # 0x4
+.LCPI0_3:
+       .long   8                       # 0x8
+       .long   8                       # 0x8
+       .long   8                       # 0x8
+       .long   8                       # 0x8
+.LCPI0_4:
+       .long   12                      # 0xc
+       .long   12                      # 0xc
+       .long   12                      # 0xc
+       .long   12                      # 0xc
+.LCPI0_5:
+       .long   16                      # 0x10
+       .long   16                      # 0x10
+       .long   16                      # 0x10
+       .long   16                      # 0x10
+.LCPI0_6:
+       .long   20                      # 0x14
+       .long   20                      # 0x14
+       .long   20                      # 0x14
+       .long   20                      # 0x14
+.LCPI0_7:
+       .long   24                      # 0x18
+       .long   24                      # 0x18
+       .long   24                      # 0x18
+       .long   24                      # 0x18
+.LCPI0_8:
+       .long   28                      # 0x1c
+       .long   28                      # 0x1c
+       .long   28                      # 0x1c
+       .long   28                      # 0x1c
+.LCPI0_9:
+       .long   32                      # 0x20
+       .long   32                      # 0x20
+       .long   32                      # 0x20
+       .long   32                      # 0x20
+.LCPI0_10:
+       .long   36                      # 0x24
+       .long   36                      # 0x24
+       .long   36                      # 0x24
+       .long   36                      # 0x24
+.LCPI0_11:
+       .long   40                      # 0x28
+       .long   40                      # 0x28
+       .long   40                      # 0x28
+       .long   40                      # 0x28
+       .text
+       .globl  main
+       .p2align        4, 0x90
+       .type   main,@function
+main:                                   # @main
+.Lfunc_begin0:
+       .loc    6 1160 0                # bit_extract.cpp:1160:0
+       .cfi_startproc
+# %bb.0:
+       #DEBUG_VALUE: main:argc <- $edi
+       #DEBUG_VALUE: main:argv <- $rsi
+       pushq   %rbp
+       .cfi_def_cfa_offset 16
+       pushq   %r15
+       .cfi_def_cfa_offset 24
+       pushq   %r14
+       .cfi_def_cfa_offset 32
+       pushq   %r12
+       .cfi_def_cfa_offset 40
+       pushq   %rbx
+       .cfi_def_cfa_offset 48
+       subq    $544, %rsp              # imm = 0x220
+       .cfi_def_cfa_offset 592
+       .cfi_offset %rbx, -48
+       .cfi_offset %r12, -40
+       .cfi_offset %r14, -32
+       .cfi_offset %r15, -24
+       .cfi_offset %rbp, -16
+.Ltmp0:
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1163 12 prologue_end  # bit_extract.cpp:1163:12
+       movq    $1000000, 8(%rsp)       # imm = 0xF4240
+.Ltmp1:
+       #DEBUG_VALUE: main:deviceId <- [DW_OP_plus_uconst 4, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       .loc    6 0 12 is_stmt 0        # bit_extract.cpp:0:12
+       leaq    4(%rsp), %rdi
+.Ltmp2:
+       .loc    6 1167 5 is_stmt 1      # bit_extract.cpp:1167:5
+       callq   hipGetDevice
+.Ltmp3:
+       .loc    6 1167 5 is_stmt 0      # bit_extract.cpp:1167:5
+       testl   %eax, %eax
+.Ltmp4:
+       .loc    6 1167 5                # bit_extract.cpp:1167:5
+       jne     .LBB0_1
+.Ltmp5:
+# %bb.2:
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:deviceId <- [DW_OP_plus_uconst 4, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1169 5 is_stmt 1      # bit_extract.cpp:1169:5
+       movl    4(%rsp), %esi
+.Ltmp6:
+       #DEBUG_VALUE: main:deviceId <- $esi
+       .loc    6 0 5 is_stmt 0         # bit_extract.cpp:0:5
+       leaq    72(%rsp), %rdi
+       .loc    6 1169 5                # bit_extract.cpp:1169:5
+       callq   hipGetDeviceProperties
+.Ltmp7:
+       .loc    6 1169 5                # bit_extract.cpp:1169:5
+       testl   %eax, %eax
+.Ltmp8:
+       .loc    6 1169 5                # bit_extract.cpp:1169:5
+       jne     .LBB0_3
+.Ltmp9:
+# %bb.4:
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1170 48 is_stmt 1     # bit_extract.cpp:1170:48
+       movl    4(%rsp), %esi
+.Ltmp10:
+       #DEBUG_VALUE: main:deviceId <- $esi
+       .loc    6 0 48 is_stmt 0        # bit_extract.cpp:0:48
+       xorl    %r15d, %r15d
+       leaq    72(%rsp), %rdx
+       .loc    6 1170 5                # bit_extract.cpp:1170:5
+       movl    $.L.str.2, %edi
+       xorl    %eax, %eax
+       callq   printf
+.Ltmp11:
+       .loc    6 0 5                   # bit_extract.cpp:0:5
+       movsd   .LCPI0_0(%rip), %xmm0   # xmm0 = mem[0],zero
+       .loc    6 1173 5 is_stmt 1      # bit_extract.cpp:1173:5
+       movl    $.L.str.3, %edi
+       movb    $1, %al
+       callq   printf
+       .loc    6 1174 22               # bit_extract.cpp:1174:22
+       movl    $4000000, %edi          # imm = 0x3D0900
+       callq   malloc
+       movl    $1002, %ebp             # imm = 0x3EA
+.Ltmp12:
+       .loc    6 1175 5                # bit_extract.cpp:1175:5
+       movl    $0, %ebx
+       testq   %rax, %rax
+       cmovel  %ebp, %ebx
+.Ltmp13:
+       #DEBUG_VALUE: error <- $ebx
+       je      .LBB0_5
+.Ltmp14:
+# %bb.7:
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       movq    %rax, %r12
+       .loc    6 1176 22 is_stmt 1     # bit_extract.cpp:1176:22
+       movl    $4000000, %edi          # imm = 0x3D0900
+       callq   malloc
+.Ltmp15:
+       .loc    6 1177 5                # bit_extract.cpp:1177:5
+       testq   %rax, %rax
+       cmovel  %ebp, %r15d
+.Ltmp16:
+       #DEBUG_VALUE: error <- $r15d
+       je      .LBB0_30
+.Ltmp17:
+# %bb.8:
+       #DEBUG_VALUE: error <- $r15d
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 0 5 is_stmt 0         # bit_extract.cpp:0:5
+       movq    %rax, %r14
+       movdqa  .LCPI0_1(%rip), %xmm0   # xmm0 = [0,1,2,3]
+       movl    $36, %eax
+       movdqa  .LCPI0_2(%rip), %xmm8   # xmm8 = [4,4,4,4]
+       movdqa  .LCPI0_3(%rip), %xmm9   # xmm9 = [8,8,8,8]
+       movdqa  .LCPI0_4(%rip), %xmm10  # xmm10 = [12,12,12,12]
+       movdqa  .LCPI0_5(%rip), %xmm11  # xmm11 = [16,16,16,16]
+       movdqa  .LCPI0_6(%rip), %xmm12  # xmm12 = [20,20,20,20]
+       movdqa  .LCPI0_7(%rip), %xmm6   # xmm6 = [24,24,24,24]
+       movdqa  .LCPI0_8(%rip), %xmm7   # xmm7 = [28,28,28,28]
+       movdqa  .LCPI0_9(%rip), %xmm1   # xmm1 = [32,32,32,32]
+       movdqa  .LCPI0_10(%rip), %xmm2  # xmm2 = [36,36,36,36]
+       movdqa  .LCPI0_11(%rip), %xmm3  # xmm3 = [40,40,40,40]
+.Ltmp18:
+       .p2align        4, 0x90
+.LBB0_9:                                # =>This Inner Loop Header: Depth=1
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1180 18 is_stmt 1     # bit_extract.cpp:1180:18
+       movdqa  %xmm0, %xmm4
+       paddd   %xmm8, %xmm4
+       .loc    6 1180 16 is_stmt 0     # bit_extract.cpp:1180:16
+       movdqu  %xmm0, -144(%r12,%rax,4)
+       movdqu  %xmm4, -128(%r12,%rax,4)
+       .loc    6 1180 18               # bit_extract.cpp:1180:18
+       movdqa  %xmm0, %xmm4
+       paddd   %xmm9, %xmm4
+       movdqa  %xmm0, %xmm5
+       paddd   %xmm10, %xmm5
+       .loc    6 1180 16               # bit_extract.cpp:1180:16
+       movdqu  %xmm4, -112(%r12,%rax,4)
+       movdqu  %xmm5, -96(%r12,%rax,4)
+       .loc    6 1180 18               # bit_extract.cpp:1180:18
+       movdqa  %xmm0, %xmm4
+       paddd   %xmm11, %xmm4
+       movdqa  %xmm0, %xmm5
+       paddd   %xmm12, %xmm5
+       .loc    6 1180 16               # bit_extract.cpp:1180:16
+       movdqu  %xmm4, -80(%r12,%rax,4)
+       movdqu  %xmm5, -64(%r12,%rax,4)
+       .loc    6 1180 18               # bit_extract.cpp:1180:18
+       movdqa  %xmm0, %xmm4
+       paddd   %xmm6, %xmm4
+       movdqa  %xmm0, %xmm5
+       paddd   %xmm7, %xmm5
+       .loc    6 1180 16               # bit_extract.cpp:1180:16
+       movdqu  %xmm4, -48(%r12,%rax,4)
+       movdqu  %xmm5, -32(%r12,%rax,4)
+       .loc    6 1180 18               # bit_extract.cpp:1180:18
+       movdqa  %xmm0, %xmm4
+       paddd   %xmm1, %xmm4
+       movdqa  %xmm0, %xmm5
+       paddd   %xmm2, %xmm5
+       .loc    6 1180 16               # bit_extract.cpp:1180:16
+       movdqu  %xmm4, -16(%r12,%rax,4)
+       movdqu  %xmm5, (%r12,%rax,4)
+       .loc    6 1180 18               # bit_extract.cpp:1180:18
+       paddd   %xmm3, %xmm0
+.Ltmp19:
+       .loc    6 1179 32 is_stmt 1     # bit_extract.cpp:1179:32
+       addq    $40, %rax
+       cmpq    $1000036, %rax          # imm = 0xF4264
+       jne     .LBB0_9
+.Ltmp20:
+# %bb.10:
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 0 32 is_stmt 0        # bit_extract.cpp:0:32
+       movsd   .LCPI0_0(%rip), %xmm0   # xmm0 = mem[0],zero
+       .loc    6 1183 5 is_stmt 1      # bit_extract.cpp:1183:5
+       movl    $.L.str.4, %edi
+       movb    $1, %al
+       callq   printf
+.Ltmp21:
+       #DEBUG_VALUE: hipMalloc<unsigned int>:size <- 4000000
+       #DEBUG_VALUE: hipMalloc<unsigned int>:devPtr <- [DW_OP_plus_uconst 40, DW_OP_stack_value] $rsp
+       #DEBUG_VALUE: main:A_d <- [DW_OP_plus_uconst 40, DW_OP_deref] $rsp
+       .loc    6 0 5 is_stmt 0         # bit_extract.cpp:0:5
+       leaq    40(%rsp), %r15
+.Ltmp22:
+       .loc    8 362 12 is_stmt 1      # /opt/rocm/hip/include/hip/hip_runtime_api.h:362:12
+       movl    $4000000, %esi          # imm = 0x3D0900
+       movq    %r15, %rdi
+       callq   hipMalloc
+.Ltmp23:
+       .loc    6 1184 5                # bit_extract.cpp:1184:5
+       testl   %eax, %eax
+.Ltmp24:
+       .loc    6 1184 5 is_stmt 0      # bit_extract.cpp:1184:5
+       jne     .LBB0_11
+.Ltmp25:
+# %bb.12:
+       #DEBUG_VALUE: main:A_d <- [DW_OP_plus_uconst 40, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       #DEBUG_VALUE: main:C_d <- [DW_OP_plus_uconst 32, DW_OP_deref] $rsp
+       #DEBUG_VALUE: hipMalloc<unsigned int>:devPtr <- [DW_OP_plus_uconst 32, DW_OP_stack_value] $rsp
+       #DEBUG_VALUE: hipMalloc<unsigned int>:size <- 4000000
+       .loc    6 0 5                   # bit_extract.cpp:0:5
+       leaq    32(%rsp), %rbp
+.Ltmp26:
+       .loc    8 362 12 is_stmt 1      # /opt/rocm/hip/include/hip/hip_runtime_api.h:362:12
+       movl    $4000000, %esi          # imm = 0x3D0900
+       movq    %rbp, %rdi
+       callq   hipMalloc
+.Ltmp27:
+       .loc    6 1185 5                # bit_extract.cpp:1185:5
+       testl   %eax, %eax
+.Ltmp28:
+       .loc    6 1185 5 is_stmt 0      # bit_extract.cpp:1185:5
+       jne     .LBB0_13
+.Ltmp29:
+# %bb.14:
+       #DEBUG_VALUE: main:C_d <- [DW_OP_plus_uconst 32, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:A_d <- [DW_OP_plus_uconst 40, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1187 5 is_stmt 1      # bit_extract.cpp:1187:5
+       movl    $.Lstr, %edi
+       callq   puts
+.Ltmp30:
+       .loc    6 1188 5                # bit_extract.cpp:1188:5
+       movq    40(%rsp), %rdi
+       movl    $4000000, %edx          # imm = 0x3D0900
+       movq    %r12, %rsi
+       movl    $1, %ecx
+       callq   hipMemcpy
+.Ltmp31:
+       .loc    6 1188 5 is_stmt 0      # bit_extract.cpp:1188:5
+       testl   %eax, %eax
+.Ltmp32:
+       .loc    6 1188 5                # bit_extract.cpp:1188:5
+       jne     .LBB0_15
+.Ltmp33:
+# %bb.16:
+       #DEBUG_VALUE: main:C_d <- [DW_OP_plus_uconst 32, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:A_d <- [DW_OP_plus_uconst 40, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1190 5 is_stmt 1      # bit_extract.cpp:1190:5
+       movl    $.Lstr.13, %edi
+       callq   puts
+.Ltmp34:
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:blocks <- 512
+       .loc    6 1195 21               # bit_extract.cpp:1195:21
+       movq    %rbp, 48(%rsp)
+       movq    %r15, 56(%rsp)
+       leaq    8(%rsp), %rax
+       movq    %rax, 64(%rsp)
+.Ltmp35:
+       #DEBUG_VALUE: main:module <- [DW_OP_plus_uconst 24, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:config <- [DW_OP_LLVM_fragment 192 64] undef
+       #DEBUG_VALUE: main:config <- [DW_OP_plus_uconst 48, DW_OP_stack_value, DW_OP_LLVM_fragment 64 64] $rsp
+       #DEBUG_VALUE: main:argSize <- 24
+       .loc    6 0 21 is_stmt 0        # bit_extract.cpp:0:21
+       leaq    24(%rsp), %rdi
+.Ltmp36:
+       .loc    6 1202 5 is_stmt 1      # bit_extract.cpp:1202:5
+       movl    $bit_extract_kernel_co_gfx900, %esi
+       callq   hipModuleLoadData
+.Ltmp37:
+       .loc    6 1202 5 is_stmt 0      # bit_extract.cpp:1202:5
+       testl   %eax, %eax
+.Ltmp38:
+       #DEBUG_VALUE: main:config <- [DW_OP_LLVM_fragment 256 64] undef
+       #DEBUG_VALUE: main:config <- [DW_OP_LLVM_fragment 128 64] undef
+       #DEBUG_VALUE: main:config <- [DW_OP_LLVM_fragment 0 64] undef
+       #DEBUG_VALUE: main:kernelName <- undef
+       .loc    6 1202 5                # bit_extract.cpp:1202:5
+       jne     .LBB0_17
+.Ltmp39:
+# %bb.18:
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:config <- [DW_OP_plus_uconst 48, DW_OP_stack_value, DW_OP_LLVM_fragment 64 64] $rsp
+       #DEBUG_VALUE: main:module <- [DW_OP_plus_uconst 24, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:C_d <- [DW_OP_plus_uconst 32, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:A_d <- [DW_OP_plus_uconst 40, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1203 5 is_stmt 1      # bit_extract.cpp:1203:5
+       movq    24(%rsp), %rsi
+.Ltmp40:
+       #DEBUG_VALUE: main:function <- [DW_OP_plus_uconst 16, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:module <- $rsi
+       .loc    6 0 5 is_stmt 0         # bit_extract.cpp:0:5
+       leaq    16(%rsp), %rdi
+       .loc    6 1203 5                # bit_extract.cpp:1203:5
+       movl    $.L.str.7, %edx
+       callq   hipModuleGetFunction
+.Ltmp41:
+       .loc    6 1203 5                # bit_extract.cpp:1203:5
+       testl   %eax, %eax
+.Ltmp42:
+       .loc    6 1203 5                # bit_extract.cpp:1203:5
+       jne     .LBB0_19
+.Ltmp43:
+# %bb.20:
+       #DEBUG_VALUE: main:function <- [DW_OP_plus_uconst 16, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:config <- [DW_OP_plus_uconst 48, DW_OP_stack_value, DW_OP_LLVM_fragment 64 64] $rsp
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:C_d <- [DW_OP_plus_uconst 32, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:A_d <- [DW_OP_plus_uconst 40, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1204 5 is_stmt 1      # bit_extract.cpp:1204:5
+       movq    16(%rsp), %rdi
+.Ltmp44:
+       #DEBUG_VALUE: main:function <- $rdi
+       subq    $8, %rsp
+.Ltmp45:
+       .cfi_adjust_cfa_offset 8
+       .loc    6 0 5 is_stmt 0         # bit_extract.cpp:0:5
+       leaq    56(%rsp), %rax
+       .loc    6 1204 5                # bit_extract.cpp:1204:5
+       movl    $512, %esi              # imm = 0x200
+       movl    $1, %edx
+       movl    $1, %ecx
+       movl    $256, %r8d              # imm = 0x100
+       movl    $1, %r9d
+       pushq   $0
+       .cfi_adjust_cfa_offset 8
+       pushq   %rax
+       .cfi_adjust_cfa_offset 8
+       pushq   $0
+       .cfi_adjust_cfa_offset 8
+       pushq   $0
+       .cfi_adjust_cfa_offset 8
+       pushq   $1
+       .cfi_adjust_cfa_offset 8
+       callq   hipModuleLaunchKernel
+.Ltmp46:
+       addq    $48, %rsp
+       .cfi_adjust_cfa_offset -48
+.Ltmp47:
+       .loc    6 1204 5                # bit_extract.cpp:1204:5
+       testl   %eax, %eax
+.Ltmp48:
+       .loc    6 1204 5                # bit_extract.cpp:1204:5
+       jne     .LBB0_21
+.Ltmp49:
+# %bb.22:
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1206 5 is_stmt 1      # bit_extract.cpp:1206:5
+       movl    $.Lstr.14, %edi
+       callq   puts
+.Ltmp50:
+       .loc    6 1207 5                # bit_extract.cpp:1207:5
+       movq    32(%rsp), %rsi
+       movl    $4000000, %edx          # imm = 0x3D0900
+       movq    %r14, %rdi
+       movl    $2, %ecx
+       callq   hipMemcpy
+.Ltmp51:
+       .loc    6 1207 5 is_stmt 0      # bit_extract.cpp:1207:5
+       testl   %eax, %eax
+.Ltmp52:
+       .loc    6 1207 5                # bit_extract.cpp:1207:5
+       jne     .LBB0_23
+.Ltmp53:
+# %bb.24:
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1209 5 is_stmt 1      # bit_extract.cpp:1209:5
+       movl    $.Lstr.15, %edi
+       callq   puts
+.Ltmp54:
+       #DEBUG_VALUE: i <- 0
+       .loc    6 1210 28               # bit_extract.cpp:1210:28
+       movq    8(%rsp), %rax
+.Ltmp55:
+       #DEBUG_VALUE: main:N <- $rax
+       .loc    6 1210 26 is_stmt 0     # bit_extract.cpp:1210:26
+       testq   %rax, %rax
+.Ltmp56:
+       .loc    6 1210 5                # bit_extract.cpp:1210:5
+       je      .LBB0_29
+.Ltmp57:
+# %bb.25:
+       #DEBUG_VALUE: main:N <- $rax
+       #DEBUG_VALUE: i <- 0
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       .loc    6 0 5                   # bit_extract.cpp:0:5
+       xorl    %ebp, %ebp
+.Ltmp58:
+       .p2align        4, 0x90
+.LBB0_26:                               # =>This Inner Loop Header: Depth=1
+       #DEBUG_VALUE: main:N <- $rax
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: i <- $rbp
+       .loc    6 1211 28 is_stmt 1     # bit_extract.cpp:1211:28
+       movl    (%r12,%rbp,4), %ebx
+       .loc    6 1211 44 is_stmt 0     # bit_extract.cpp:1211:44
+       shrl    $8, %ebx
+       andl    $15, %ebx
+.Ltmp59:
+       #DEBUG_VALUE: Agold <- $ebx
+       .loc    6 1212 20 is_stmt 1     # bit_extract.cpp:1212:20
+       cmpl    %ebx, (%r14,%rbp,4)
+.Ltmp60:
+       .loc    6 1212 13 is_stmt 0     # bit_extract.cpp:1212:13
+       jne     .LBB0_27
+.Ltmp61:
+# %bb.28:                               #   in Loop: Header=BB0_26 Depth=1
+       #DEBUG_VALUE: i <- $rbp
+       #DEBUG_VALUE: main:N <- $rax
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       .loc    6 1210 32 is_stmt 1     # bit_extract.cpp:1210:32
+       addq    $1, %rbp
+.Ltmp62:
+       #DEBUG_VALUE: i <- $rbp
+       .loc    6 1210 26 is_stmt 0     # bit_extract.cpp:1210:26
+       cmpq    %rax, %rbp
+.Ltmp63:
+       .loc    6 1210 5                # bit_extract.cpp:1210:5
+       jb      .LBB0_26
+.Ltmp64:
+.LBB0_29:
+       #DEBUG_VALUE: main:N <- $rax
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       .loc    6 1218 5 is_stmt 1      # bit_extract.cpp:1218:5
+       movl    $.Lstr.16, %edi
+       callq   puts
+.Ltmp65:
+       .loc    6 1219 1                # bit_extract.cpp:1219:1
+       xorl    %eax, %eax
+       addq    $544, %rsp              # imm = 0x220
+       .cfi_def_cfa_offset 48
+       popq    %rbx
+       .cfi_def_cfa_offset 40
+       popq    %r12
+       .cfi_def_cfa_offset 32
+       popq    %r14
+       .cfi_def_cfa_offset 24
+       popq    %r15
+       .cfi_def_cfa_offset 16
+       popq    %rbp
+       .cfi_def_cfa_offset 8
+       retq
+.Ltmp66:
+.LBB0_27:
+       .cfi_def_cfa_offset 592
+       #DEBUG_VALUE: Agold <- $ebx
+       #DEBUG_VALUE: i <- $rbp
+       #DEBUG_VALUE: main:N <- $rax
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       .loc    6 1213 21               # bit_extract.cpp:1213:21
+       movq    stderr(%rip), %rcx
+       .loc    6 1213 13 is_stmt 0     # bit_extract.cpp:1213:13
+       movl    $.L.str.10, %edi
+       movl    $19, %esi
+       movl    $1, %edx
+       callq   fwrite
+.Ltmp67:
+       .loc    6 1214 57 is_stmt 1     # bit_extract.cpp:1214:57
+       movl    (%r14,%rbp,4), %edx
+       .loc    6 1214 72 is_stmt 0     # bit_extract.cpp:1214:72
+       movl    (%r12,%rbp,4), %r8d
+       .loc    6 1214 13               # bit_extract.cpp:1214:13
+       movl    $.L.str.11, %edi
+       movq    %rbp, %rsi
+       movl    %ebx, %ecx
+       xorl    %eax, %eax
+       callq   printf
+.Ltmp68:
+       #DEBUG_VALUE: error <- 1030
+       .loc    6 1215 13 is_stmt 1     # bit_extract.cpp:1215:13
+       movq    stderr(%rip), %rbx
+.Ltmp69:
+       movl    $1030, %edi             # imm = 0x406
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbx, %rdi
+       movq    %rax, %rdx
+       movl    $1030, %ecx             # imm = 0x406
+       movl    $1215, %r9d             # imm = 0x4BF
+.Ltmp70:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp71:
+.LBB0_1:
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:deviceId <- [DW_OP_plus_uconst 4, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:N <- 1000000
+       movl    %eax, %ebx
+.Ltmp72:
+       #DEBUG_VALUE: error <- $ebx
+       .loc    6 1167 5 is_stmt 1      # bit_extract.cpp:1167:5
+       movq    stderr(%rip), %rbp
+       movl    %eax, %edi
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbp, %rdi
+       movq    %rax, %rdx
+       movl    %ebx, %ecx
+       movl    $1167, %r9d             # imm = 0x48F
+.Ltmp73:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp74:
+.LBB0_3:
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       movl    %eax, %ebx
+.Ltmp75:
+       #DEBUG_VALUE: error <- $ebx
+       .loc    6 1169 5 is_stmt 1      # bit_extract.cpp:1169:5
+       movq    stderr(%rip), %rbp
+       movl    %eax, %edi
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbp, %rdi
+       movq    %rax, %rdx
+       movl    %ebx, %ecx
+       movl    $1169, %r9d             # imm = 0x491
+.Ltmp76:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp77:
+.LBB0_5:
+       #DEBUG_VALUE: error <- $ebx
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1175 5 is_stmt 1      # bit_extract.cpp:1175:5
+       movq    stderr(%rip), %rbp
+       movl    %ebx, %edi
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbp, %rdi
+       movq    %rax, %rdx
+       movl    %ebx, %ecx
+       movl    $1175, %r9d             # imm = 0x497
+.Ltmp78:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp79:
+.LBB0_30:
+       #DEBUG_VALUE: error <- $r15d
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       .loc    6 1177 5 is_stmt 1      # bit_extract.cpp:1177:5
+       movq    stderr(%rip), %rbx
+       movl    %r15d, %edi
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbx, %rdi
+       movq    %rax, %rdx
+       movl    %r15d, %ecx
+       movl    $1177, %r9d             # imm = 0x499
+.Ltmp80:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp81:
+.LBB0_11:
+       #DEBUG_VALUE: main:A_d <- [DW_OP_plus_uconst 40, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       movl    %eax, %ebx
+.Ltmp82:
+       #DEBUG_VALUE: error <- $ebx
+       .loc    6 1184 5 is_stmt 1      # bit_extract.cpp:1184:5
+       movq    stderr(%rip), %rbp
+       movl    %eax, %edi
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbp, %rdi
+       movq    %rax, %rdx
+       movl    %ebx, %ecx
+       movl    $1184, %r9d             # imm = 0x4A0
+.Ltmp83:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp84:
+.LBB0_13:
+       #DEBUG_VALUE: main:C_d <- [DW_OP_plus_uconst 32, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:A_d <- [DW_OP_plus_uconst 40, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       movl    %eax, %ebx
+.Ltmp85:
+       #DEBUG_VALUE: error <- $ebx
+       .loc    6 1185 5 is_stmt 1      # bit_extract.cpp:1185:5
+       movq    stderr(%rip), %rbp
+       movl    %eax, %edi
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbp, %rdi
+       movq    %rax, %rdx
+       movl    %ebx, %ecx
+       movl    $1185, %r9d             # imm = 0x4A1
+.Ltmp86:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp87:
+.LBB0_15:
+       #DEBUG_VALUE: main:C_d <- [DW_OP_plus_uconst 32, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:A_d <- [DW_OP_plus_uconst 40, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       movl    %eax, %ebx
+.Ltmp88:
+       #DEBUG_VALUE: error <- $ebx
+       .loc    6 1188 5 is_stmt 1      # bit_extract.cpp:1188:5
+       movq    stderr(%rip), %rbp
+       movl    %eax, %edi
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbp, %rdi
+       movq    %rax, %rdx
+       movl    %ebx, %ecx
+       movl    $1188, %r9d             # imm = 0x4A4
+.Ltmp89:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp90:
+.LBB0_17:
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:config <- [DW_OP_plus_uconst 48, DW_OP_stack_value, DW_OP_LLVM_fragment 64 64] $rsp
+       #DEBUG_VALUE: main:module <- [DW_OP_plus_uconst 24, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:C_d <- [DW_OP_plus_uconst 32, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:A_d <- [DW_OP_plus_uconst 40, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       movl    %eax, %ebx
+.Ltmp91:
+       #DEBUG_VALUE: error <- $ebx
+       .loc    6 1202 5 is_stmt 1      # bit_extract.cpp:1202:5
+       movq    stderr(%rip), %rbp
+       movl    %eax, %edi
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbp, %rdi
+       movq    %rax, %rdx
+       movl    %ebx, %ecx
+       movl    $1202, %r9d             # imm = 0x4B2
+.Ltmp92:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp93:
+.LBB0_19:
+       #DEBUG_VALUE: main:function <- [DW_OP_plus_uconst 16, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:config <- [DW_OP_plus_uconst 48, DW_OP_stack_value, DW_OP_LLVM_fragment 64 64] $rsp
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:C_d <- [DW_OP_plus_uconst 32, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:A_d <- [DW_OP_plus_uconst 40, DW_OP_deref] $rsp
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       movl    %eax, %ebx
+.Ltmp94:
+       #DEBUG_VALUE: error <- $ebx
+       .loc    6 1203 5 is_stmt 1      # bit_extract.cpp:1203:5
+       movq    stderr(%rip), %rbp
+       movl    %eax, %edi
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbp, %rdi
+       movq    %rax, %rdx
+       movl    %ebx, %ecx
+       movl    $1203, %r9d             # imm = 0x4B3
+.Ltmp95:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp96:
+.LBB0_21:
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       movl    %eax, %ebx
+.Ltmp97:
+       #DEBUG_VALUE: error <- $ebx
+       .loc    6 1204 5 is_stmt 1      # bit_extract.cpp:1204:5
+       movq    stderr(%rip), %rbp
+       movl    %eax, %edi
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbp, %rdi
+       movq    %rax, %rdx
+       movl    %ebx, %ecx
+       movl    $1204, %r9d             # imm = 0x4B4
+.Ltmp98:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp99:
+.LBB0_23:
+       #DEBUG_VALUE: main:argSize <- 24
+       #DEBUG_VALUE: main:blocks <- 512
+       #DEBUG_VALUE: main:threadsPerBlock <- 256
+       #DEBUG_VALUE: main:Nbytes <- 4000000
+       #DEBUG_VALUE: main:N <- 1000000
+       movl    %eax, %ebx
+.Ltmp100:
+       #DEBUG_VALUE: error <- $ebx
+       .loc    6 1207 5 is_stmt 1      # bit_extract.cpp:1207:5
+       movq    stderr(%rip), %rbp
+       movl    %eax, %edi
+       callq   hipGetErrorString
+       movl    $.L.str, %esi
+       movl    $.L.str.1, %r8d
+       movq    %rbp, %rdi
+       movq    %rax, %rdx
+       movl    %ebx, %ecx
+       movl    $1207, %r9d             # imm = 0x4B7
+.Ltmp101:
+       .loc    6 0 0 is_stmt 0         # bit_extract.cpp:0:0
+       xorl    %eax, %eax
+       callq   fprintf
+       movl    $1, %edi
+       callq   exit
+.Ltmp102:
+.Lfunc_end0:
+       .size   main, .Lfunc_end0-main
+       .cfi_endproc
+                                        # -- End function
+       .section        .text.startup,"ax",@progbits
+       .p2align        4, 0x90         # -- Begin function _GLOBAL__sub_I_bit_extract.cpp
+       .type   _GLOBAL__sub_I_bit_extract.cpp,@function
+_GLOBAL__sub_I_bit_extract.cpp:         # @_GLOBAL__sub_I_bit_extract.cpp
+.Lfunc_begin1:
+       .loc    6 0 0 is_stmt 1         # bit_extract.cpp:0:0
+       .cfi_startproc
+# %bb.0:
+       pushq   %rax
+       .cfi_def_cfa_offset 16
+.Ltmp103:
+       .loc    3 74 25 prologue_end    # /usr/lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/iostream:74:25
+       movl    $_ZStL8__ioinit, %edi
+       callq   _ZNSt8ios_base4InitC1Ev
+       movl    $_ZNSt8ios_base4InitD1Ev, %edi
+       movl    $_ZStL8__ioinit, %esi
+       movl    $__dso_handle, %edx
+       popq    %rax
+       .cfi_def_cfa_offset 8
+       jmp     __cxa_atexit            # TAILCALL
+.Ltmp104:
+.Lfunc_end1:
+       .size   _GLOBAL__sub_I_bit_extract.cpp, .Lfunc_end1-_GLOBAL__sub_I_bit_extract.cpp
+       .cfi_endproc
+                                        # -- End function
+       .type   _ZStL8__ioinit,@object  # @_ZStL8__ioinit
+       .local  _ZStL8__ioinit
+       .comm   _ZStL8__ioinit,1,1
+       .hidden __dso_handle
+       .type   bit_extract_kernel_co_gfx900,@object # @bit_extract_kernel_co_gfx900
+       .data
+       .globl  bit_extract_kernel_co_gfx900
+       .p2align        4
+bit_extract_kernel_co_gfx900:
+       .long   1179403647              # 0x464c457f
+       .long   1073807618              # 0x40010102
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   14680067                # 0xe00003
+       .long   1                       # 0x1
+       .long   6144                    # 0x1800
+       .long   0                       # 0x0
+       .long   64                      # 0x40
+       .long   0                       # 0x0
+       .long   25272                   # 0x62b8
+       .long   0                       # 0x0
+       .long   44                      # 0x2c
+       .long   3670080                 # 0x380040
+       .long   4194313                 # 0x400009
+       .long   1245205                 # 0x130015
+       .long   6                       # 0x6
+       .long   4                       # 0x4
+       .long   64                      # 0x40
+       .long   0                       # 0x0
+       .long   64                      # 0x40
+       .long   0                       # 0x0
+       .long   64                      # 0x40
+       .long   0                       # 0x0
+       .long   504                     # 0x1f8
+       .long   0                       # 0x0
+       .long   504                     # 0x1f8
+       .long   0                       # 0x0
+       .long   8                       # 0x8
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   4                       # 0x4
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   2048                    # 0x800
+       .long   0                       # 0x0
+       .long   2048                    # 0x800
+       .long   0                       # 0x0
+       .long   4096                    # 0x1000
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   5                       # 0x5
+       .long   2048                    # 0x800
+       .long   0                       # 0x0
+       .long   6144                    # 0x1800
+       .long   0                       # 0x0
+       .long   6144                    # 0x1800
+       .long   0                       # 0x0
+       .long   368                     # 0x170
+       .long   0                       # 0x0
+       .long   368                     # 0x170
+       .long   0                       # 0x0
+       .long   4096                    # 0x1000
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   6                       # 0x6
+       .long   2416                    # 0x970
+       .long   0                       # 0x0
+       .long   10608                   # 0x2970
+       .long   0                       # 0x0
+       .long   10608                   # 0x2970
+       .long   0                       # 0x0
+       .long   112                     # 0x70
+       .long   0                       # 0x0
+       .long   112                     # 0x70
+       .long   0                       # 0x0
+       .long   4096                    # 0x1000
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   6                       # 0x6
+       .long   2528                    # 0x9e0
+       .long   0                       # 0x0
+       .long   14816                   # 0x39e0
+       .long   0                       # 0x0
+       .long   14816                   # 0x39e0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   4456448                 # 0x440000
+       .long   0                       # 0x0
+       .long   4096                    # 0x1000
+       .long   0                       # 0x0
+       .long   2                       # 0x2
+       .long   6                       # 0x6
+       .long   2416                    # 0x970
+       .long   0                       # 0x0
+       .long   10608                   # 0x2970
+       .long   0                       # 0x0
+       .long   10608                   # 0x2970
+       .long   0                       # 0x0
+       .long   112                     # 0x70
+       .long   0                       # 0x0
+       .long   112                     # 0x70
+       .long   0                       # 0x0
+       .long   8                       # 0x8
+       .long   0                       # 0x0
+       .long   1685382482              # 0x6474e552
+       .long   4                       # 0x4
+       .long   2416                    # 0x970
+       .long   0                       # 0x0
+       .long   10608                   # 0x2970
+       .long   0                       # 0x0
+       .long   10608                   # 0x2970
+       .long   0                       # 0x0
+       .long   112                     # 0x70
+       .long   0                       # 0x0
+       .long   1680                    # 0x690
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   1685382481              # 0x6474e551
+       .long   6                       # 0x6
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   4                       # 0x4
+       .long   4                       # 0x4
+       .long   568                     # 0x238
+       .long   0                       # 0x0
+       .long   568                     # 0x238
+       .long   0                       # 0x0
+       .long   568                     # 0x238
+       .long   0                       # 0x0
+       .long   1120                    # 0x460
+       .long   0                       # 0x0
+       .long   1120                    # 0x460
+       .long   0                       # 0x0
+       .long   4                       # 0x4
+       .long   0                       # 0x0
+       .long   7                       # 0x7
+       .long   1098                    # 0x44a
+       .long   32                      # 0x20
+       .long   1195658561              # 0x47444d41
+       .long   21840                   # 0x5550
+       .long   1835118210              # 0x6d61ae82
+       .long   1634953316              # 0x61736864
+       .long   1919249198              # 0x72656b2e
+       .long   1936483694              # 0x736c656e
+       .long   782602129               # 0x2ea58f91
+       .long   1936159329              # 0x73677261
+       .long   783189402               # 0x2eae859a
+       .long   1919181921              # 0x72646461
+       .long   1601401701              # 0x5f737365
+       .long   1667330163              # 0x63617073
+       .long   1701291877              # 0x6567a765
+       .long   1769104750              # 0x6972656e
+       .long   1865328483              # 0x6f2ea763
+       .long   1702061670              # 0x65736666
+       .long   782565492               # 0x2ea50074
+       .long   1702521203              # 0x657a6973
+       .long   1982769928              # 0x762eab08
+       .long   1702194273              # 0x65756c61
+       .long   1852402527              # 0x6e696b5f
+       .long   1818733924              # 0x6c67ad64
+       .long   1818321519              # 0x6c61626f
+       .long   1718968927              # 0x6675625f
+       .long   2876400998              # 0xab726566
+       .long   1818326574              # 0x6c61762e
+       .long   1952408949              # 0x745f6575
+       .long   2741334137              # 0xa3657079
+       .long   2234659689              # 0x85323369
+       .long   1684090542              # 0x64612eae
+       .long   1936028260              # 0x73657264
+       .long   1886609267              # 0x70735f73
+       .long   2808439649              # 0xa7656361
+       .long   1701733735              # 0x656e6567
+       .long   2808310130              # 0xa7636972
+       .long   1717989166              # 0x66666f2e
+       .long   141845875               # 0x8746573
+       .long   1769156261              # 0x69732ea5
+       .long   2869454202              # 0xab08657a
+       .long   1818326574              # 0x6c61762e
+       .long   1801414005              # 0x6b5f6575
+       .long   2909040233              # 0xad646e69
+       .long   1651469415              # 0x626f6c67
+       .long   1650420833              # 0x625f6c61
+       .long   1701209717              # 0x65666675
+       .long   1982770034              # 0x762eab72
+       .long   1702194273              # 0x65756c61
+       .long   1887007839              # 0x7079745f
+       .long   862561125               # 0x3369a365
+       .long   782730290               # 0x2ea78432
+       .long   1936090735              # 0x7366666f
+       .long   2769319013              # 0xa5107465
+       .long   2053731118              # 0x7a69732e
+       .long   782960741               # 0x2eab0865
+       .long   1970037110              # 0x756c6176
+       .long   1768644453              # 0x696b5f65
+       .long   1655202926              # 0x62a8646e
+       .long   1635147641              # 0x61765f79
+       .long   2875553132              # 0xab65756c
+       .long   1818326574              # 0x6c61762e
+       .long   1952408949              # 0x745f6575
+       .long   2741334137              # 0xa3657079
+       .long   2218014313              # 0x84343669
+       .long   1718562471              # 0x666f2ea7
+       .long   1952805734              # 0x74657366
+       .long   1932436760              # 0x732ea518
+       .long   140868201               # 0x8657a69
+       .long   1635135147              # 0x61762eab
+       .long   1600484716              # 0x5f65756c
+       .long   1684957547              # 0x646e696b
+       .long   1684629686              # 0x646968b6
+       .long   1601070436              # 0x5f6e6564
+       .long   1651469415              # 0x626f6c67
+       .long   1868524641              # 0x6f5f6c61
+       .long   1702061670              # 0x65736666
+       .long   2876792692              # 0xab785f74
+       .long   1818326574              # 0x6c61762e
+       .long   1952408949              # 0x745f6575
+       .long   2741334137              # 0xa3657079
+       .long   2218014313              # 0x84343669
+       .long   1718562471              # 0x666f2ea7
+       .long   1952805734              # 0x74657366
+       .long   1932436768              # 0x732ea520
+       .long   140868201               # 0x8657a69
+       .long   1635135147              # 0x61762eab
+       .long   1600484716              # 0x5f65756c
+       .long   1684957547              # 0x646e696b
+       .long   1684629686              # 0x646968b6
+       .long   1601070436              # 0x5f6e6564
+       .long   1651469415              # 0x626f6c67
+       .long   1868524641              # 0x6f5f6c61
+       .long   1702061670              # 0x65736666
+       .long   2876858228              # 0xab795f74
+       .long   1818326574              # 0x6c61762e
+       .long   1952408949              # 0x745f6575
+       .long   2741334137              # 0xa3657079
+       .long   2218014313              # 0x84343669
+       .long   1718562471              # 0x666f2ea7
+       .long   1952805734              # 0x74657366
+       .long   1932436776              # 0x732ea528
+       .long   140868201               # 0x8657a69
+       .long   1635135147              # 0x61762eab
+       .long   1600484716              # 0x5f65756c
+       .long   1684957547              # 0x646e696b
+       .long   1684629686              # 0x646968b6
+       .long   1601070436              # 0x5f6e6564
+       .long   1651469415              # 0x626f6c67
+       .long   1868524641              # 0x6f5f6c61
+       .long   1702061670              # 0x65736666
+       .long   2876923764              # 0xab7a5f74
+       .long   1818326574              # 0x6c61762e
+       .long   1952408949              # 0x745f6575
+       .long   2741334137              # 0xa3657079
+       .long   2234791529              # 0x85343669
+       .long   1684090542              # 0x64612eae
+       .long   1936028260              # 0x73657264
+       .long   1886609267              # 0x70735f73
+       .long   2791662433              # 0xa6656361
+       .long   1651469415              # 0x626f6c67
+       .long   782724193               # 0x2ea76c61
+       .long   1936090735              # 0x7366666f
+       .long   2771416165              # 0xa5307465
+       .long   2053731118              # 0x7a69732e
+       .long   782960741               # 0x2eab0865
+       .long   1970037110              # 0x756c6176
+       .long   1768644453              # 0x696b5f65
+       .long   1756062830              # 0x68ab646e
+       .long   1701078121              # 0x65646469
+       .long   1869504366              # 0x6f6e5f6e
+       .long   782984558               # 0x2eab656e
+       .long   1970037110              # 0x756c6176
+       .long   2037669733              # 0x79745f65
+       .long   1772250480              # 0x69a26570
+       .long   783189304               # 0x2eae8538
+       .long   1919181921              # 0x72646461
+       .long   1601401701              # 0x5f737365
+       .long   1667330163              # 0x63617073
+       .long   1818732133              # 0x6c67a665
+       .long   1818321519              # 0x6c61626f
+       .long   1718562471              # 0x666f2ea7
+       .long   1952805734              # 0x74657366
+       .long   1932436792              # 0x732ea538
+       .long   140868201               # 0x8657a69
+       .long   1635135147              # 0x61762eab
+       .long   1600484716              # 0x5f65756c
+       .long   1684957547              # 0x646e696b
+       .long   1684629675              # 0x646968ab
+       .long   1601070436              # 0x5f6e6564
+       .long   1701736302              # 0x656e6f6e
+       .long   1635135147              # 0x61762eab
+       .long   1600484716              # 0x5f65756c
+       .long   1701869940              # 0x65707974
+       .long   2235066786              # 0x853869a2
+       .long   1684090542              # 0x64612eae
+       .long   1936028260              # 0x73657264
+       .long   1886609267              # 0x70735f73
+       .long   2791662433              # 0xa6656361
+       .long   1651469415              # 0x626f6c67
+       .long   782724193               # 0x2ea76c61
+       .long   1936090735              # 0x7366666f
+       .long   2772464741              # 0xa5407465
+       .long   2053731118              # 0x7a69732e
+       .long   782960741               # 0x2eab0865
+       .long   1970037110              # 0x756c6176
+       .long   1768644453              # 0x696b5f65
+       .long   1756062830              # 0x68ab646e
+       .long   1701078121              # 0x65646469
+       .long   1869504366              # 0x6f6e5f6e
+       .long   782984558               # 0x2eab656e
+       .long   1970037110              # 0x756c6176
+       .long   2037669733              # 0x79745f65
+       .long   1772250480              # 0x69a26570
+       .long   783189304               # 0x2eae8538
+       .long   1919181921              # 0x72646461
+       .long   1601401701              # 0x5f737365
+       .long   1667330163              # 0x63617073
+       .long   1818732133              # 0x6c67a665
+       .long   1818321519              # 0x6c61626f
+       .long   1718562471              # 0x666f2ea7
+       .long   1952805734              # 0x74657366
+       .long   1932436808              # 0x732ea548
+       .long   140868201               # 0x8657a69
+       .long   1635135147              # 0x61762eab
+       .long   1600484716              # 0x5f65756c
+       .long   1684957547              # 0x646e696b
+       .long   1684629689              # 0x646968b9
+       .long   1601070436              # 0x5f6e6564
+       .long   1953265005              # 0x746c756d
+       .long   1769105257              # 0x69726769
+       .long   2037604196              # 0x79735f64
+       .long   1633641326              # 0x615f636e
+       .long   782985074               # 0x2eab6772
+       .long   1970037110              # 0x756c6176
+       .long   2037669733              # 0x79745f65
+       .long   1772250480              # 0x69a26570
+       .long   1731115320              # 0x672eb938
+       .long   1886744434              # 0x70756f72
+       .long   1734701919              # 0x6765735f
+       .long   1953391981              # 0x746e656d
+       .long   2020173407              # 0x7869665f
+       .long   1935631461              # 0x735f6465
+       .long   6650473                 # 0x657a69
+       .long   1701523126              # 0x656b2eb6
+       .long   1918987890              # 0x72616e72
+       .long   1702059879              # 0x65735f67
+       .long   1852140903              # 0x6e656d67
+       .long   1818320756              # 0x6c615f74
+       .long   141453161               # 0x86e6769
+       .long   1701523125              # 0x656b2eb5
+       .long   1918987890              # 0x72616e72
+       .long   1702059879              # 0x65735f67
+       .long   1852140903              # 0x6e656d67
+       .long   1769168756              # 0x69735f74
+       .long   2840618362              # 0xa950657a
+       .long   1851878446              # 0x6e616c2e
+       .long   1734440295              # 0x67617567
+       .long   1884268645              # 0x704fa865
+       .long   1279487589              # 0x4c436e65
+       .long   783368992               # 0x2eb14320
+       .long   1735287148              # 0x676e616c
+       .long   1701273973              # 0x65676175
+       .long   1919252063              # 0x7265765f
+       .long   1852795251              # 0x6e6f6973
+       .long   3087008402              # 0xb8000292
+       .long   2019650862              # 0x78616d2e
+       .long   1634494047              # 0x616c665f
+       .long   1870094196              # 0x6f775f74
+       .long   1919380338              # 0x72676b72
+       .long   1601205615              # 0x5f70756f
+       .long   1702521203              # 0x657a6973
+       .long   2768241101              # 0xa50001cd
+       .long   1835101742              # 0x6d616e2e
+       .long   1768075877              # 0x6962b265
+       .long   2019909492              # 0x78655f74
+       .long   1667330676              # 0x63617274
+       .long   1701535604              # 0x656b5f74
+       .long   1818586738              # 0x6c656e72
+       .long   1919954619              # 0x72702ebb
+       .long   1952544361              # 0x74617669
+       .long   1702059877              # 0x65735f65
+       .long   1852140903              # 0x6e656d67
+       .long   1768316788              # 0x69665f74
+       .long   1600415096              # 0x5f646578
+       .long   1702521203              # 0x657a6973
+       .long   1932438272              # 0x732eab00
+       .long   1601335399              # 0x5f727067
+       .long   1853189987              # 0x6e756f63
+       .long   783360884               # 0x2eb12374
+       .long   1919969139              # 0x72706773
+       .long   1768977247              # 0x6970735f
+       .long   1667198060              # 0x635f6c6c
+       .long   1953396079              # 0x746e756f
+       .long   1932437248              # 0x732ea700
+       .long   1868721529              # 0x6f626d79
+       .long   1768076652              # 0x6962b56c
+       .long   2019909492              # 0x78655f74
+       .long   1667330676              # 0x63617274
+       .long   1701535604              # 0x656b5f74
+       .long   1818586738              # 0x6c656e72
+       .long   2875484974              # 0xab646b2e
+       .long   1885828654              # 0x7067762e
+       .long   1868783474              # 0x6f635f72
+       .long   208957045               # 0xc746e75
+       .long   1735798449              # 0x67762eb1
+       .long   1935635056              # 0x735f7270
+       .long   1819044208              # 0x6c6c6970
+       .long   1970234207              # 0x756f635f
+       .long   2936042606              # 0xaf00746e
+       .long   1986098990              # 0x7661772e
+       .long   1869768293              # 0x6f726665
+       .long   1935635566              # 0x735f746e
+       .long   1080392297              # 0x40657a69
+       .long   1684890030              # 0x646d61ae
+       .long   778138472               # 0x2e617368
+       .long   1936876918              # 0x73726576
+       .long   2456711017              # 0x926e6f69
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   590625                  # 0x90321
+       .long   14816                   # 0x39e0
+       .long   0                       # 0x0
+       .long   4194304                 # 0x400000
+       .long   0                       # 0x0
+       .long   19                      # 0x13
+       .long   590625                  # 0x90321
+       .long   4209120                 # 0x4039e0
+       .long   0                       # 0x0
+       .long   262144                  # 0x40000
+       .long   0                       # 0x0
+       .long   42                      # 0x2a
+       .long   459538                  # 0x70312
+       .long   6144                    # 0x1800
+       .long   0                       # 0x0
+       .long   368                     # 0x170
+       .long   0                       # 0x0
+       .long   61                      # 0x3d
+       .long   394001                  # 0x60311
+       .long   1984                    # 0x7c0
+       .long   0                       # 0x0
+       .long   64                      # 0x40
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   1                       # 0x1
+       .long   1                       # 0x1
+       .long   26                      # 0x1a
+       .long   134299906               # 0x8014102
+       .long   1074003984              # 0x40040010
+       .long   1                       # 0x1
+       .long   69086096                # 0x41e2b90
+       .long   2459543176              # 0x9299a688
+       .long   945090814               # 0x3854f0fe
+       .long   3422226971              # 0xcbfb0a1b
+       .long   5                       # 0x5
+       .long   5                       # 0x5
+       .long   0                       # 0x0
+       .long   4                       # 0x4
+       .long   3                       # 0x3
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   2                       # 0x2
+       .long   0                       # 0x0
+       .long   1751080704              # 0x685f5f00
+       .long   1683976297              # 0x645f7069
+       .long   1667855973              # 0x63697665
+       .long   1701338981              # 0x65685f65
+       .long   1593864289              # 0x5f007061
+       .long   1885956191              # 0x7069685f
+       .long   1986356319              # 0x7665645f
+       .long   1600480105              # 0x5f656369
+       .long   1701273968              # 0x65676170
+       .long   1634494047              # 0x616c665f
+       .long   1768030311              # 0x69620067
+       .long   2019909492              # 0x78655f74
+       .long   1667330676              # 0x63617274
+       .long   1701535604              # 0x656b5f74
+       .long   1818586738              # 0x6c656e72
+       .long   1953063424              # 0x74696200
+       .long   1954047327              # 0x7478655f
+       .long   1952670066              # 0x74636172
+       .long   1919249247              # 0x72656b5f
+       .long   778855790               # 0x2e6c656e
+       .long   25707                   # 0x646b
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   4160                    # 0x1040
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   11469058                # 0xaf0102
+       .long   144                     # 0x90
+       .long   11                      # 0xb
+       .long   0                       # 0x0
+       .long   3221356546              # 0xc0020002
+       .long   4                       # 0x4
+       .long   3221356674              # 0xc0020082
+       .long   12                      # 0xc
+       .long   3221881603              # 0xc00a0303
+       .long   16                      # 0x10
+       .long   2114060928              # 0x7e020280
+       .long   3196715017              # 0xbe8a0009
+       .long   3213672575              # 0xbf8cc07f
+       .long   2248408832              # 0x8603ff00
+       .long   65535                   # 0xffff
+       .long   2449474312              # 0x92000308
+       .long   2172649474              # 0x81800002
+       .long   2206466816              # 0x83840300
+       .long   2449475588              # 0x92000804
+       .long   1744830464              # 0x68000000
+       .long   2111307788              # 0x7dd8000c
+       .long   3198156810              # 0xbea0000a
+       .long   3196067946              # 0xbe80206a
+       .long   3213361223              # 0xbf880047
+       .long   2114194435              # 0x7e040c03
+       .long   3196584320              # 0xbe880180
+       .long   2114209538              # 0x7e044702
+       .long   168035583               # 0xa0404ff
+       .long   1333788672              # 0x4f800000
+       .long   2114195202              # 0x7e040f02
+       .long   3531931651              # 0xd2850003
+       .long   1794                    # 0x702
+       .long   3531997188              # 0xd2860004
+       .long   1794                    # 0x702
+       .long   1779041920              # 0x6a0a0680
+       .long   2106853504              # 0x7d940880
+       .long   396035                  # 0x60b03
+       .long   3531997187              # 0xd2860003
+       .long   132355                  # 0x20503
+       .long   1745356546              # 0x68080702
+       .long   1778648834              # 0x6a040702
+       .long   264450                  # 0x40902
+       .long   3531997186              # 0xd2860002
+       .long   1282                    # 0x502
+       .long   3531931651              # 0xd2850003
+       .long   1794                    # 0x702
+       .long   1745355905              # 0x68080481
+       .long   1745487041              # 0x680a04c1
+       .long   1779172866              # 0x6a0c0602
+       .long   2107377154              # 0x7d9c0602
+       .long   3502964736              # 0xd0cb0000
+       .long   134147                  # 0x20c03
+       .long   2256562688              # 0x86806a00
+       .long   3506438146              # 0xd1000002
+       .long   133378                  # 0x20902
+       .long   263429                  # 0x40505
+       .long   3531931651              # 0xd2850003
+       .long   1794                    # 0x702
+       .long   3532587012              # 0xd28f0004
+       .long   131202                  # 0x20082
+       .long   2107115010              # 0x7d980602
+       .long   939787392               # 0x38040480
+       .long   3531931650              # 0xd2850002
+       .long   2306                    # 0x902
+       .long   3221881091              # 0xc00a0103
+       .long   0                       # 0x0
+       .long   2114323072              # 0x7e060280
+       .long   3532587014              # 0xd28f0006
+       .long   132226                  # 0x20482
+       .long   3213672575              # 0xbf8cc07f
+       .long   2114322951              # 0x7e060207
+       .long   3508076554              # 0xd119000a
+       .long   133126                  # 0x20806
+       .long   3508273163              # 0xd11c000b
+       .long   133891                  # 0x20b03
+       .long   3696263168              # 0xdc508000
+       .long   58654730                # 0x37f000a
+       .long   839911428               # 0x32100804
+       .long   2115109381              # 0x7e120205
+       .long   3508077060              # 0xd1190204
+       .long   134404                  # 0x20d04
+       .long   940706569               # 0x38120b09
+       .long   3508300293              # 0xd11c6a05
+       .long   659205                  # 0xa0f05
+       .long   838862080               # 0x32000500
+       .long   939655808               # 0x38020280
+       .long   2111176716              # 0x7dd6000c
+       .long   2273839210              # 0x8788086a
+       .long   3213627248              # 0xbf8c0f70
+       .long   3519545347              # 0xd1c80003
+       .long   34672899                # 0x2111103
+       .long   3698360320              # 0xdc708000
+       .long   8323848                 # 0x7f0308
+       .long   2315126910              # 0x89fe087e
+       .long   3213492198              # 0xbf89ffe6
+       .long   3212902400              # 0xbf810000
+       .long   6                       # 0x6
+       .long   0                       # 0x0
+       .long   1688                    # 0x698
+       .long   0                       # 0x0
+       .long   11                      # 0xb
+       .long   0                       # 0x0
+       .long   24                      # 0x18
+       .long   0                       # 0x0
+       .long   5                       # 0x5
+       .long   0                       # 0x0
+       .long   1900                    # 0x76c
+       .long   0                       # 0x0
+       .long   10                      # 0xa
+       .long   0                       # 0x0
+       .long   83                      # 0x53
+       .long   0                       # 0x0
+       .long   1879047925              # 0x6ffffef5
+       .long   0                       # 0x0
+       .long   1808                    # 0x710
+       .long   0                       # 0x0
+       .long   4                       # 0x4
+       .long   0                       # 0x0
+       .long   1852                    # 0x73c
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1834963807              # 0x6d5f535f
+       .long   2019914869              # 0x78657475
+       .long   1885298432              # 0x705f5f00
+       .long   3368033                 # 0x336461
+       .long   1953719159              # 0x74736377
+       .long   6581359                 # 0x646c6f
+       .long   1852399455              # 0x6e695f5f
+       .long   2019650932              # 0x78616d74
+       .long   1761637471              # 0x6900745f
+       .long   1634493043              # 0x616c6273
+       .long   1811966830              # 0x6c006b6e
+       .long   1601595748              # 0x5f766964
+       .long   1768161396              # 0x69640074
+       .long   1818427510              # 0x6c630076
+       .long   1701994853              # 0x65726165
+       .long   1711305330              # 0x66007272
+       .long   1953067639              # 0x74697277
+       .long   1970274405              # 0x75700065
+       .long   1634231156              # 0x61686374
+       .long   1836318834              # 0x6d740072
+       .long   1818846832              # 0x6c696670
+       .long   1936261221              # 0x73690065
+       .long   1634759543              # 0x61707377
+       .long   1761633635              # 0x69006563
+       .long   1685616499              # 0x64787773
+       .long   1953064809              # 0x74696769
+       .long   1919050496              # 0x72626300
+       .long   1811967092              # 0x6c006c74
+       .long   1853190002              # 0x6e756f72
+       .long   1912630372              # 0x72006c64
+       .long   1767992677              # 0x69616d65
+       .long   1919247470              # 0x7265646e
+       .long   1970435072              # 0x75727400
+       .long   1761633134              # 0x6900636e
+       .long   1701996403              # 0x65726773
+       .long   1919251553              # 0x72657461
+       .long   1819502848              # 0x6c736900
+       .long   7566181                 # 0x737365
+       .long   845378163               # 0x32637273
+       .long   1953063424              # 0x74696200
+       .long   1954047327              # 0x7478655f
+       .long   1952670066              # 0x74636172
+       .long   1886413614              # 0x7070632e
+       .long   1330208512              # 0x4f495f00
+       .long   1769109343              # 0x6972775f
+       .long   1885300084              # 0x705f6574
+       .long   1593864820              # 0x5f007274
+       .long   1936090735              # 0x7366666f
+       .long   1593865317              # 0x5f007465
+       .long   1684107359              # 0x6461705f
+       .long   1668743220              # 0x63770034
+       .long   1819239283              # 0x6c6f6373
+       .long   1970143340              # 0x756e006c
+       .long   1953524844              # 0x74706c6c
+       .long   7626610                 # 0x745f72
+       .long   1601465961              # 0x5f746e69
+       .long   1935762796              # 0x7361656c
+       .long   1597387124              # 0x5f363174
+       .long   1769275508              # 0x69750074
+       .long   1818195054              # 0x6c5f746e
+       .long   1953718629              # 0x74736165
+       .long   1952395827              # 0x745f3233
+       .long   1634953472              # 0x61736900
+       .long   1634234476              # 0x6168706c
+       .long   1920234240              # 0x72747300
+       .long   1819635572              # 0x6c756f74
+       .long   2004052224              # 0x77736900
+       .long   1752198241              # 0x68706c61
+       .long   1835401313              # 0x6d660061
+       .long   7108705                 # 0x6c7861
+       .long   894196319               # 0x354c5a5f
+       .long   2019910764              # 0x7865646c
+       .long   6907504                 # 0x696670
+       .long   877419103               # 0x344c5a5f
+       .long   1718509934              # 0x666e616e
+       .long   6507344                 # 0x634b50
+       .long   2003792994              # 0x776f7462
+       .long   1668743267              # 0x63770063
+       .long   1601331560              # 0x5f726168
+       .long   1769275508              # 0x69750074
+       .long   1818195054              # 0x6c5f746e
+       .long   1953718629              # 0x74736165
+       .long   7626552                 # 0x745f38
+       .long   1768190825              # 0x69647369
+       .long   7629159                 # 0x746967
+       .long   1953657971              # 0x74727473
+       .long   1593863279              # 0x5f006c6f
+       .long   1597591130              # 0x5f394e5a
+       .long   1970169695              # 0x756e675f
+       .long   2021155679              # 0x7878635f
+       .long   1986618419              # 0x76696433
+       .long   7895109                 # 0x787845
+       .long   1920099686              # 0x72726566
+       .long   1946186351              # 0x7400726f
+       .long   1886746479              # 0x7075776f
+       .long   7497072                 # 0x726570
+       .long   1752395619              # 0x68736f63
+       .long   1701996032              # 0x65726600
+       .long   1660973176              # 0x63007078
+       .long   1937338479              # 0x7379706f
+       .long   1718511465              # 0x666e6769
+       .long   1769106432              # 0x69726c00
+       .long   6714478                 # 0x66746e
+       .long   1954047342              # 0x7478656e
+       .long   1702127201              # 0x65746661
+       .long   1593861746              # 0x5f006672
+       .long   1765166170              # 0x69364c5a
+       .long   1936026739              # 0x73656c73
+       .long   6710899                 # 0x666673
+       .long   827087455               # 0x314c5a5f
+       .long   1970497841              # 0x75736931
+       .long   1685221230              # 0x64726f6e
+       .long   1684370021              # 0x64657265
+       .long   1090545254              # 0x41006666
+       .long   1593861215              # 0x5f00645f
+       .long   1970234207              # 0x756f635f
+       .long   1828746350              # 0x6d00746e
+       .long   1635021666              # 0x61747362
+       .long   1952408948              # 0x745f6574
+       .long   1634557696              # 0x616d5f00
+       .long   1919249266              # 0x72656b72
+       .long   1717502067              # 0x665f0073
+       .long   1852140649              # 0x6e656c69
+       .long   1885732975              # 0x7066006f
+       .long   1937208437              # 0x73777475
+       .long   1668511488              # 0x63737700
+       .long   6712929                 # 0x666e61
+       .long   1953719159              # 0x74736377
+       .long   7105647                 # 0x6c6c6f
+       .long   1633635679              # 0x615f4d5f
+       .long   1701995620              # 0x65726464
+       .long   1600061542              # 0x5f5f0066
+       .long   1953393013              # 0x746e6975
+       .long   7626552                 # 0x745f38
+       .long   1953393013              # 0x746e6975
+       .long   1935763039              # 0x7361665f
+       .long   1952397428              # 0x745f3874
+       .long   1634953472              # 0x61736900
+       .long   1836412524              # 0x6d756e6c
+       .long   1970238464              # 0x756f7400
+       .long   1919250544              # 0x72657070
+       .long   1684827136              # 0x646c6c00
+       .long   1952413289              # 0x745f7669
+       .long   2017812224              # 0x78455f00
+       .long   1711305833              # 0x66007469
+       .long   7170404                 # 0x6d6964
+       .long   1869642088              # 0x6f707968
+       .long   1811965556              # 0x6c006674
+       .long   1853190002              # 0x6e756f72
+       .long   1701970020              # 0x65720064
+       .long   1852399981              # 0x6e69616d
+       .long   1819436388              # 0x6c726564
+       .long   1970237952              # 0x756f7200
+       .long   1761633390              # 0x6900646e
+       .long   1701996403              # 0x65726773
+       .long   1919251553              # 0x72657461
+       .long   1635086693              # 0x61757165
+       .long   1936261228              # 0x7369006c
+       .long   1936942444              # 0x7373656c
+       .long   1634038375              # 0x61657267
+       .long   7497076                 # 0x726574
+       .long   843995743               # 0x324e5a5f
+       .long   1751080756              # 0x685f5f34
+       .long   1650421865              # 0x625f7069
+       .long   1953261941              # 0x746c6975
+       .long   1650421353              # 0x625f6e69
+       .long   1801678700              # 0x6b636f6c
+       .long   1601005892              # 0x5f6d6944
+       .long   1600075636              # 0x5f5f3774
+       .long   1601463655              # 0x5f746567
+       .long   7751032                 # 0x764578
+       .long   1701273439              # 0x65675f5f
+       .long   8019828                 # 0x7a5f74
+       .long   1768447839              # 0x69685f5f
+       .long   1969381232              # 0x75625f70
+       .long   1769237609              # 0x69746c69
+       .long   1818386286              # 0x6c625f6e
+       .long   1147888495              # 0x446b636f
+       .long   1952410985              # 0x745f6d69
+       .long   1852795904              # 0x6e6f6c00
+       .long   1853169767              # 0x6e752067
+       .long   1852270963              # 0x6e676973
+       .long   1763730533              # 0x69206465
+       .long   1996518510              # 0x7700746e
+       .long   1935897443              # 0x73637363
+       .long   1996516976              # 0x77006e70
+       .long   1869902691              # 0x6f747363
+       .long   1668743268              # 0x63770064
+       .long   1919318131              # 0x72667873
+       .long   1668743277              # 0x6377006d
+       .long   1919053939              # 0x72627073
+       .long   1516175467              # 0x5a5f006b
+       .long   1951615822              # 0x74534b4e
+       .long   1600075057              # 0x5f5f3531
+       .long   1701017701              # 0x65637865
+       .long   1869182064              # 0x6f697470
+       .long   1953521518              # 0x74705f6e
+       .long   1697853810              # 0x65333172
+       .long   1885692792              # 0x70656378
+       .long   1852795252              # 0x6e6f6974
+       .long   1920233567              # 0x7274705f
+       .long   1164080739              # 0x45627663
+       .long   1869873270              # 0x6f740076
+       .long   1702326124              # 0x65776f6c
+       .long   1701970034              # 0x65720072
+       .long   1953693805              # 0x7473006d
+       .long   1970238578              # 0x756f7472
+       .long   1929407596              # 0x73006c6c
+       .long   1769107566              # 0x6972706e
+       .long   6714478                 # 0x66746e
+       .long   1668510582              # 0x63737376
+       .long   6712929                 # 0x666e61
+       .long   1718776947              # 0x66727473
+       .long   1701669236              # 0x656d6974
+       .long   1650550272              # 0x62616600
+       .long   1769144435              # 0x69730073
+       .long   1660971118              # 0x6300686e
+       .long   7631458                 # 0x747262
+       .long   846231653               # 0x32707865
+       .long   1634559488              # 0x616d6600
+       .long   1818820716              # 0x6c69006c
+       .long   6449007                 # 0x62676f
+       .long   1769106540              # 0x69726c6c
+       .long   1845523566              # 0x6e00746e
+       .long   1635022949              # 0x61747865
+       .long   1919251558              # 0x72657466
+       .long   1701970028              # 0x6572006c
+       .long   1869967725              # 0x6f75716d
+       .long   1869742182              # 0x6f720066
+       .long   1717857909              # 0x66646e75
+       .long   1280990976              # 0x4c5a5f00
+       .long   1936274225              # 0x73693331
+       .long   1936942444              # 0x7373656c
+       .long   1634038375              # 0x61657267
+       .long   1718773108              # 0x66726574
+       .long   1717502054              # 0x665f0066
+       .long   1936154988              # 0x7367616c
+       .long   1668743218              # 0x63770032
+       .long   6451060                 # 0x626f74
+       .long   1601465961              # 0x5f746e69
+       .long   1935762796              # 0x7361656c
+       .long   1597125492              # 0x5f323374
+       .long   1853161588              # 0x6e750074
+       .long   1852270963              # 0x6e676973
+       .long   1663067237              # 0x63206465
+       .long   7496040                 # 0x726168
+       .long   1685222512              # 0x64727470
+       .long   1600546409              # 0x5f666669
+       .long   1885732980              # 0x70660074
+       .long   1952412527              # 0x745f736f
+       .long   1702127104              # 0x65746600
+       .long   1929407596              # 0x73006c6c
+       .long   1651930213              # 0x62767465
+       .long   1811965557              # 0x6c006675
+       .long   808544111               # 0x3031676f
+       .long   1919050496              # 0x72626300
+       .long   1929406068              # 0x73006674
+       .long   1651269987              # 0x626c6163
+       .long   7106156                 # 0x6c6e6c
+       .long   1953693801              # 0x74730069
+       .long   1600061540              # 0x5f5f0064
+       .long   1651008375              # 0x62686377
+       .long   1869373184              # 0x6f6c5f00
+       .long   1593863011              # 0x5f006b63
+       .long   1180651337              # 0x465f4f49
+       .long   4541513                 # 0x454c49
+       .long   1953853542              # 0x74757066
+       .long   1728078711              # 0x67006377
+       .long   1668772965              # 0x63777465
+       .long   7496040                 # 0x726168
+       .long   1953718893              # 0x7473626d
+       .long   1935898479              # 0x7363776f
+       .long   1935898368              # 0x73637700
+       .long   1651339124              # 0x626d6f74
+       .long   1885732979              # 0x70660073
+       .long   1953393010              # 0x746e6972
+       .long   1936064614              # 0x73660066
+       .long   1718509923              # 0x666e6163
+       .long   1953853440              # 0x74757000
+       .long   1701970019              # 0x65720063
+       .long   1701667182              # 0x656d616e
+       .long   1668510464              # 0x63737300
+       .long   6712929                 # 0x666e61
+       .long   7827312                 # 0x776f70
+       .long   1852404577              # 0x6e697361
+       .long   1694525032              # 0x65006668
+       .long   1815244920              # 0x6c327078
+       .long   1735355392              # 0x676f6c00
+       .long   1593861730              # 0x5f006662
+       .long   909200474               # 0x36314c5a
+       .long   1768054623              # 0x69625f5f
+       .long   1954047348              # 0x74786574
+       .long   1952670066              # 0x74636172
+       .long   842233183               # 0x3233755f
+       .long   6974058                 # 0x6a6a6a
+       .long   1768447839              # 0x69685f5f
+       .long   1701076848              # 0x65645f70
+       .long   1701013878              # 0x65636976
+       .long   1634035807              # 0x6165685f
+       .long   1600061552              # 0x5f5f0070
+       .long   1095914049              # 0x41525241
+       .long   1230200665              # 0x49535f59
+       .long   1415529818              # 0x545f455a
+       .long   1598378073              # 0x5f455059
+       .long   1853161567              # 0x6e75005f
+       .long   1852270963              # 0x6e676973
+       .long   1931502693              # 0x73206465
+       .long   1953656680              # 0x74726f68
+       .long   1935898368              # 0x73637700
+       .long   7237747                 # 0x6e7073
+       .long   1668772713              # 0x63777369
+       .long   1819440238              # 0x6c72746e
+       .long   1668246528              # 0x636f6c00
+       .long   1769237601              # 0x69746c61
+       .long   1627415917              # 0x6100656d
+       .long   7565155                 # 0x736f63
+       .long   1836087397              # 0x6d707865
+       .long   1929407537              # 0x73006c31
+       .long   1651269987              # 0x626c6163
+       .long   1516175470              # 0x5a5f006e
+       .long   1764831564              # 0x6931314c
+       .long   1936026739              # 0x73656c73
+       .long   1970365811              # 0x75716573
+       .long   1717988449              # 0x66666c61
+       .long   1650417408              # 0x625f5f00
+       .long   2019914857              # 0x78657469
+       .long   1667330676              # 0x63617274
+       .long   863330164               # 0x33755f74
+       .long   5111858                 # 0x4e0032
+       .long   7630441                 # 0x746e69
+       .long   1599031647              # 0x5f4f495f
+       .long   1953067639              # 0x74697277
+       .long   1852137317              # 0x6e655f65
+       .long   1230962788              # 0x495f0064
+       .long   1969381199              # 0x75625f4f
+       .long   1852137318              # 0x6e655f66
+       .long   1970274404              # 0x75700064
+       .long   6518644                 # 0x637774
+       .long   1886876534              # 0x70777376
+       .long   1953393010              # 0x746e6972
+       .long   1852375142              # 0x6e690066
+       .long   1597257332              # 0x5f343674
+       .long   1852375156              # 0x6e690074
+       .long   1634099060              # 0x61665f74
+       .long   842232947               # 0x32337473
+       .long   1828746335              # 0x6d00745f
+       .long   1869376609              # 0x6f6c6c61
+       .long   1651310691              # 0x626d0063
+       .long   7234924                 # 0x6e656c
+       .long   1718576486              # 0x666f6566
+       .long   1702061568              # 0x65736600
+       .long   1936683124              # 0x736f7074
+       .long   1953853440              # 0x74757000
+       .long   1516175475              # 0x5a5f0073
+       .long   1634612044              # 0x616e334c
+       .long   1665880174              # 0x634b506e
+       .long   1953063424              # 0x74696200
+       .long   1954047327              # 0x7478655f
+       .long   1952670066              # 0x74636172
+       .long   1919249247              # 0x72656b5f
+       .long   7103854                 # 0x6c656e
+       .long   1852270963              # 0x6e676973
+       .long   1663067237              # 0x63206465
+       .long   7496040                 # 0x726168
+       .long   1953719159              # 0x74736377
+       .long   1819047279              # 0x6c6c756f
+       .long   1598906112              # 0x5f4d5f00
+       .long   1701602674              # 0x656c6572
+       .long   6648673                 # 0x657361
+       .long   1601465961              # 0x5f746e69
+       .long   1935762796              # 0x7361656c
+       .long   1952397428              # 0x745f3874
+       .long   1852404992              # 0x6e697500
+       .long   1634099060              # 0x61665f74
+       .long   875983987               # 0x34367473
+       .long   1711305823              # 0x6600745f
+       .long   6645106                 # 0x656572
+       .long   1869898615              # 0x6f746377
+       .long   1811964525              # 0x6c00626d
+       .long   1986618476              # 0x7669646c
+       .long   1970300416              # 0x75706600
+       .long   1627415412              # 0x61006374
+       .long   1752064372              # 0x686e6174
+       .long   1936261222              # 0x73690066
+       .long   1919905397              # 0x726f6e75
+       .long   1701995876              # 0x65726564
+       .long   1600061540              # 0x5f5f0064
+       .long   1601463655              # 0x5f746567
+       .long   1230962809              # 0x495f0079
+       .long   1633836879              # 0x61625f4f
+       .long   1886743395              # 0x70756b63
+       .long   1935762015              # 0x7361625f
+       .long   1600061541              # 0x5f5f0065
+       .long   1162627398              # 0x454c4946
+       .long   2003203584              # 0x77667600
+       .long   1851876211              # 0x6e616373
+       .long   1668743270              # 0x63770066
+       .long   2037408627              # 0x79706373
+       .long   1852795904              # 0x6e6f6c00
+       .long   1869357159              # 0x6f6c2067
+       .long   1965057902              # 0x7520676e
+       .long   1734964078              # 0x6769736e
+       .long   543450478               # 0x2064656e
+       .long   7630441                 # 0x746e69
+       .long   1919250543              # 0x7265706f
+       .long   1919906913              # 0x726f7461
+       .long   1869570592              # 0x6f6f6220
+       .long   1869348972              # 0x6f6c006c
+       .long   1701601635              # 0x656c6163
+       .long   1986948963              # 0x766e6f63
+       .long   1869897984              # 0x6f746100
+       .long   1935802470              # 0x73620066
+       .long   1668440421              # 0x63726165
+       .long   1668743272              # 0x63770068
+       .long   1851880052              # 0x6e617274
+       .long   7626611                 # 0x745f73
+       .long   1819766644              # 0x6c776f74
+       .long   1919252335              # 0x7265776f
+       .long   1953326848              # 0x746d6700
+       .long   6647145                 # 0x656d69
+       .long   1769106540              # 0x69726c6c
+       .long   7107694                 # 0x6c746e
+       .long   1954047342              # 0x7478656e
+       .long   1635217268              # 0x61776f74
+       .long   6710386                 # 0x666472
+       .long   877419103               # 0x344c5a5f
+       .long   1935827308              # 0x7362616c
+       .long   1598226540              # 0x5f43006c
+       .long   1281294436              # 0x4c5f0064
+       .long   1600873327              # 0x5f6b636f
+       .long   1768714096              # 0x696c6f70
+       .long   1593866595              # 0x5f007963
+       .long   1918848841              # 0x725f4f49
+       .long   1600414053              # 0x5f646165
+       .long   6581861                 # 0x646e65
+       .long   1634231135              # 0x6168635f
+       .long   1728081513              # 0x67006e69
+       .long   1668772965              # 0x63777465
+       .long   1953392896              # 0x746e6900
+       .long   1935763039              # 0x7361665f
+       .long   1597387124              # 0x5f363174
+       .long   1936261236              # 0x73690074
+       .long   1885434471              # 0x70617267
+       .long   2019885160              # 0x78650068
+       .long   1929409641              # 0x73007469
+       .long   1684955506              # 0x646e6172
+       .long   1869897984              # 0x6f746100
+       .long   1929407596              # 0x73006c6c
+       .long   1869902452              # 0x6f747274
+       .long   1936261222              # 0x73690066
+       .long   1853190263              # 0x6e757077
+       .long   1694528611              # 0x65007463
+       .long   1811968120              # 0x6c007078
+       .long   1835884903              # 0x6d6d6167
+       .long   1845519969              # 0x6e006661
+       .long   1635022949              # 0x61747865
+       .long   1919251558              # 0x72657466
+       .long   1634169856              # 0x61677400
+       .long   1717661037              # 0x66616d6d
+       .long   1634169856              # 0x61677400
+       .long   1818324333              # 0x6c616d6d
+       .long   1314545408              # 0x4e5a5f00
+       .long   1600074546              # 0x5f5f3332
+       .long   1601202536              # 0x5f706968
+       .long   1818850658              # 0x6c697562
+       .long   1601071476              # 0x5f6e6974
+       .long   1684632167              # 0x64697267
+       .long   1601005892              # 0x5f6d6944
+       .long   1600075636              # 0x5f5f3774
+       .long   1601463655              # 0x5f746567
+       .long   7751032                 # 0x764578
+       .long   1769299807              # 0x69755f5f
+       .long   842232942               # 0x3233746e
+       .long   1593865311              # 0x5f00745f
+       .long   1600416879              # 0x5f646c6f
+       .long   1936090735              # 0x7366666f
+       .long   1593865317              # 0x5f007465
+       .long   1650553974              # 0x62617476
+       .long   1868522860              # 0x6f5f656c
+       .long   1702061670              # 0x65736666
+       .long   2003173492              # 0x77660074
+       .long   6644841                 # 0x656469
+       .long   1819501431              # 0x6c736377
+       .long   1996516965              # 0x77006e65
+       .long   1668113773              # 0x636d656d
+       .long   1761638768              # 0x69007970
+       .long   842232942               # 0x3233746e
+       .long   1593865311              # 0x5f00745f
+       .long   1852405087              # 0x6e69755f
+       .long   1597387124              # 0x5f363174
+       .long   1702035572              # 0x65730074
+       .long   1668246644              # 0x636f6c74
+       .long   6646881                 # 0x656c61
+       .long   1818322290              # 0x6c616572
+       .long   6516588                 # 0x636f6c
+       .long   1953853542              # 0x74757066
+       .long   1919287411              # 0x72660073
+       .long   6578533                 # 0x646165
+       .long   1851876211              # 0x6e616373
+       .long   1818427494              # 0x6c630066
+       .long   1600873327              # 0x5f6b636f
+       .long   1634992244              # 0x61740074
+       .long   1919221870              # 0x7265006e
+       .long   1811967078              # 0x6c006c66
+       .long   1852404332              # 0x6e69726c
+       .long   1912628852              # 0x72006674
+       .long   1718906473              # 0x66746e69
+       .long   1668310528              # 0x63706600
+       .long   1936941420              # 0x7373616c
+       .long   7956073                 # 0x796669
+       .long   1701606249              # 0x656c7369
+       .long   1902474099              # 0x71657373
+       .long   7102837                 # 0x6c6175
+       .long   843864671               # 0x324c5a5f
+       .long   1751080752              # 0x685f5f30
+       .long   1734307945              # 0x675f7069
+       .long   1734308965              # 0x675f7465
+       .long   1600416114              # 0x5f646972
+       .long   1601005924              # 0x5f6d6964
+       .long   1929410168              # 0x73007678
+       .long   3236722                 # 0x316372
+       .long   1836017711              # 0x6d6f682f
+       .long   1769025381              # 0x69712f65
+       .long   1751345006              # 0x6863676e
+       .long   795763061               # 0x2f6e6175
+       .long   1802661751              # 0x6b726f77
+       .long   1667330163              # 0x63617073
+       .long   1702113125              # 0x65742f65
+       .long   796095603               # 0x2f737473
+       .long   1601464674              # 0x5f746962
+       .long   1920235621              # 0x72747865
+       .long   7627617                 # 0x746361
+       .long   1918986339              # 0x72616863
+       .long   1936618752              # 0x736e7500
+       .long   1701734249              # 0x656e6769
+       .long   1852383332              # 0x6e692064
+       .long   1668743284              # 0x63770074
+       .long   1869902451              # 0x6f747273
+       .long   7561837                 # 0x73626d
+       .long   1935827308              # 0x7362616c
+       .long   1634495488              # 0x616c6c00
+       .long   1711305570              # 0x66007362
+       .long   1937075302              # 0x73756c66
+       .long   1516175464              # 0x5a5f0068
+       .long   1630762067              # 0x61337453
+       .long   6648674                 # 0x657362
+       .long   2037411683              # 0x79706f63
+       .long   1852270963              # 0x6e676973
+       .long   1886938368              # 0x70786500
+       .long   1593861682              # 0x5f006632
+       .long   1933003866              # 0x73374c5a
+       .long   1651269987              # 0x626c6163
+       .long   1818652268              # 0x6c666e6c
+       .long   1919121152              # 0x72637700
+       .long   1651339124              # 0x626d6f74
+       .long   1852795904              # 0x6e6f6c00
+       .long   1868832871              # 0x6f642067
+       .long   1701601909              # 0x656c6275
+       .long   1314545408              # 0x4e5a5f00
+       .long   892433491               # 0x35317453
+       .long   2019909471              # 0x78655f5f
+       .long   1953523043              # 0x74706563
+       .long   1601073001              # 0x5f6e6f69
+       .long   829584496               # 0x31727470
+       .long   1668834611              # 0x63786533
+       .long   1769238629              # 0x69747065
+       .long   1885302383              # 0x705f6e6f
+       .long   1597600372              # 0x5f397274
+       .long   1684102989              # 0x64615f4d
+       .long   1717924452              # 0x66657264
+       .long   1593865797              # 0x5f007645
+       .long   1701273421              # 0x65675f4d
+       .long   1600061556              # 0x5f5f0074
+       .long   1600223331              # 0x5f617863
+       .long   1701017701              # 0x65637865
+       .long   1869182064              # 0x6f697470
+       .long   2037669742              # 0x79745f6e
+       .long   1929405808              # 0x73006570
+       .long   1953656680              # 0x74726f68
+       .long   1767857920              # 0x695f5f00
+       .long   875983982               # 0x3436746e
+       .long   1761637471              # 0x6900745f
+       .long   1634563182              # 0x616d746e
+       .long   7626616                 # 0x745f78
+       .long   7561825                 # 0x736261
+       .long   1668572519              # 0x63746567
+       .long   7496040                 # 0x726168
+       .long   1769107571              # 0x69727073
+       .long   6714478                 # 0x66746e
+       .long   1852861812              # 0x6e706d74
+       .long   1962962273              # 0x75006d61
+       .long   1952802670              # 0x7465676e
+       .long   1936261219              # 0x73690063
+       .long   1852596599              # 0x6e6c6177
+       .long   1761635701              # 0x69006d75
+       .long   1768191859              # 0x69647773
+       .long   7629159                 # 0x746967
+       .long   2037670775              # 0x79746377
+       .long   1761633648              # 0x69006570
+       .long   1650945900              # 0x62676f6c
+       .long   1516175468              # 0x5a5f006c
+       .long   1714434380              # 0x6630314c
+       .long   1634493296              # 0x616c6370
+       .long   1718186867              # 0x66697373
+       .long   1593861753              # 0x5f006679
+       .long   1885956191              # 0x7069685f
+       .long   1952802655              # 0x7465675f
+       .long   1869374047              # 0x6f6c625f
+       .long   1683975011              # 0x645f6b63
+       .long   2019519849              # 0x785f6d69
+       .long   1852404992              # 0x6e697500
+       .long   1597125492              # 0x5f323374
+       .long   1230962804              # 0x495f0074
+       .long   1634950991              # 0x61735f4f
+       .long   1700750710              # 0x655f6576
+       .long   1593861230              # 0x5f00646e
+       .long   1834962761              # 0x6d5f4f49
+       .long   1701540449              # 0x656b7261
+       .long   1600061554              # 0x5f5f0072
+       .long   1600546415              # 0x5f66666f
+       .long   1230962804              # 0x495f0074
+       .long   1869373263              # 0x6f6c5f4f
+       .long   1952410467              # 0x745f6b63
+       .long   1735292160              # 0x676e7500
+       .long   1668772965              # 0x63777465
+       .long   1767857920              # 0x695f5f00
+       .long   909210734               # 0x3631746e
+       .long   1962964063              # 0x7500745f
+       .long   913600105               # 0x36746e69
+       .long   7626548                 # 0x745f34
+       .long   1852793708              # 0x6e6f636c
+       .long   1936261238              # 0x73690076
+       .long   1920233059              # 0x72746e63
+       .long   1768161388              # 0x6964006c
+       .long   7626614                 # 0x745f76
+       .long   1886286710              # 0x706e7376
+       .long   1953393010              # 0x746e6972
+       .long   1936261222              # 0x73690066
+       .long   1634493047              # 0x616c6277
+       .long   1828744046              # 0x6d006b6e
+       .long   1835627627              # 0x6d69746b
+       .long   1869348965              # 0x6f6c0065
+       .long   1869414503              # 0x6f6d0067
+       .long   1627416164              # 0x61006664
+       .long   1752395619              # 0x68736f63
+       .long   1869348966              # 0x6f6c0066
+       .long   1845506663              # 0x6e003267
+       .long   1651663205              # 0x62726165
+       .long   1953393017              # 0x746e6979
+       .long   1970237952              # 0x756f7200
+       .long   7103598                 # 0x6c646e
+       .long   1818321779              # 0x6c616373
+       .long   7236706                 # 0x6e6c62
+       .long   877419103               # 0x344c5a5f
+       .long   1717858157              # 0x66646f6d
+       .long   6705254                 # 0x665066
+       .long   843995743               # 0x324e5a5f
+       .long   1751080756              # 0x685f5f34
+       .long   1650421865              # 0x625f7069
+       .long   1953261941              # 0x746c6975
+       .long   1650421353              # 0x625f6e69
+       .long   1801678700              # 0x6b636f6c
+       .long   1601005892              # 0x5f6d6944
+       .long   1600075636              # 0x5f5f3774
+       .long   1601463655              # 0x5f746567
+       .long   7751034                 # 0x76457a
+       .long   843995743               # 0x324e5a5f
+       .long   1751080755              # 0x685f5f33
+       .long   1650421865              # 0x625f7069
+       .long   1953261941              # 0x746c6975
+       .long   1734307433              # 0x675f6e69
+       .long   1147431282              # 0x44646972
+       .long   1952410985              # 0x745f6d69
+       .long   1734303543              # 0x675f5f37
+       .long   2036298853              # 0x795f7465
+       .long   1593865797              # 0x5f007645
+       .long   1937075829              # 0x73756e75
+       .long   3302501                 # 0x326465
+       .long   2019909471              # 0x78655f5f
+       .long   1953523043              # 0x74706563
+       .long   1601073001              # 0x5f6e6f69
+       .long   7500912                 # 0x727470
+       .long   1397643871              # 0x534e5a5f
+       .long   1597321588              # 0x5f353174
+       .long   1668834655              # 0x6378655f
+       .long   1769238629              # 0x69747065
+       .long   1885302383              # 0x705f6e6f
+       .long   858878580               # 0x33317274
+       .long   1701017701              # 0x65637865
+       .long   1869182064              # 0x6f697470
+       .long   1953521518              # 0x74705f6e
+       .long   1596993906              # 0x5f303172
+       .long   1701994317              # 0x65725f4d
+       .long   1935762796              # 0x7361656c
+       .long   7751013                 # 0x764565
+       .long   1886678633              # 0x70746e69
+       .long   1952412276              # 0x745f7274
+       .long   1852404992              # 0x6e697500
+       .long   1597387124              # 0x5f363174
+       .long   1952514164              # 0x74610074
+       .long   1929407599              # 0x73006c6f
+       .long   1869902452              # 0x6f747274
+       .long   1946184812              # 0x74006c6c
+       .long   6844001                 # 0x686e61
+       .long   1936679777              # 0x736f6361
+       .long   1230962792              # 0x495f0068
+       .long   1920425807              # 0x72775f4f
+       .long   1600484457              # 0x5f657469
+       .long   1702060386              # 0x65736162
+       .long   1969446656              # 0x75635f00
+       .long   1868783474              # 0x6f635f72
+       .long   1852667244              # 0x6e6d756c
+       .long   1752391424              # 0x68735f00
+       .long   1651798639              # 0x6274726f
+       .long   1593861749              # 0x5f006675
+       .long   1684107359              # 0x6461705f
+       .long   1769144373              # 0x69730035
+       .long   1952408954              # 0x745f657a
+       .long   1935898368              # 0x73637700
+       .long   1952539502              # 0x7461636e
+       .long   1935898368              # 0x73637700
+       .long   6713204                 # 0x666f74
+       .long   1953393013              # 0x746e6975
+       .long   1601724781              # 0x5f78616d
+       .long   1936261236              # 0x73690074
+       .long   1886418295              # 0x70707577
+       .long   1593864805              # 0x5f007265
+       .long   1869374303              # 0x6f6c635f
+       .long   1952410467              # 0x745f6b63
+       .long   1668505856              # 0x63736100
+       .long   1701669236              # 0x656d6974
+       .long   1683971840              # 0x645f5f00
+       .long   1969317477              # 0x75616665
+       .long   1818195052              # 0x6c5f746c
+       .long   1600873327              # 0x5f6b636f
+       .long   1768714096              # 0x696c6f70
+       .long   1811970403              # 0x6c007963
+       .long   1886938468              # 0x70786564
+       .long   1920037632              # 0x72717300
+       .long   1667301492              # 0x63610074
+       .long   1818784623              # 0x6c68736f
+       .long   1769169152              # 0x69736100
+       .long   7104622                 # 0x6c686e
+       .long   6713957                 # 0x667265
+       .long   1852404332              # 0x6e69726c
+       .long   1634599028              # 0x616e0074
+       .long   1701707886              # 0x656e006e
+       .long   1869902968              # 0x6f747478
+       .long   1685217655              # 0x64726177
+       .long   1600061548              # 0x5f5f006c
+       .long   1601463655              # 0x5f746567
+       .long   2004025464              # 0x77730078
+       .long   1851876211              # 0x6e616373
+       .long   1668743270              # 0x63770066
+       .long   1919443827              # 0x72686373
+       .long   1598906112              # 0x5f4d5f00
+       .long   1701017701              # 0x65637865
+       .long   1869182064              # 0x6f697470
+       .long   1651466094              # 0x626f5f6e
+       .long   1952671082              # 0x7463656a
+       .long   1314545408              # 0x4e5a5f00
+       .long   829707083               # 0x3174534b
+       .long   1700749109              # 0x655f5f35
+       .long   1885692792              # 0x70656378
+       .long   1852795252              # 0x6e6f6974
+       .long   1920233567              # 0x7274705f
+       .long   2019898161              # 0x78653331
+       .long   1953523043              # 0x74706563
+       .long   1601073001              # 0x5f6e6f69
+       .long   913470576               # 0x36727470
+       .long   1734298975              # 0x675f4d5f
+       .long   1984263269              # 0x76457465
+       .long   1701867264              # 0x65706f00
+       .long   1869898098              # 0x6f746172
+       .long   1644182898              # 0x62003d72
+       .long   7106415                 # 0x6c6f6f
+       .long   1818846563              # 0x6c696563
+       .long   1769169152              # 0x69736100
+       .long   1627416686              # 0x6100686e
+       .long   1752064372              # 0x686e6174
+       .long   2019885164              # 0x7865006c
+       .long   3239280                 # 0x316d70
+       .long   1735355497              # 0x676f6c69
+       .long   1593861730              # 0x5f006662
+       .long   1916161114              # 0x72364c5a
+       .long   1970367845              # 0x75716d65
+       .long   1348888175              # 0x5066666f
+       .long   1769275497              # 0x69750069
+       .long   1862300782              # 0x6f00746e
+       .long   1702061670              # 0x65736666
+       .long   1600061556              # 0x5f5f0074
+       .long   1601202536              # 0x5f706968
+       .long   1769366884              # 0x69766564
+       .long   1885300067              # 0x705f6563
+       .long   1600481121              # 0x5f656761
+       .long   1734437990              # 0x67616c66
+       .long   1852405504              # 0x6e697700
+       .long   7626612                 # 0x745f74
+       .long   1634494047              # 0x616c665f
+       .long   1593865063              # 0x5f007367
+       .long   1935626057              # 0x735f4f49
+       .long   1600484961              # 0x5f657661
+       .long   1702060386              # 0x65736162
+       .long   1953853440              # 0x74757000
+       .long   1634231159              # 0x61686377
+       .long   2004222066              # 0x77760072
+       .long   1852404336              # 0x6e697270
+       .long   1996514932              # 0x77006674
+       .long   1668182883              # 0x636e7363
+       .long   1996519792              # 0x77007970
+       .long   1835885933              # 0x6d6d656d
+       .long   6649455                 # 0x65766f
+       .long   1601465961              # 0x5f746e69
+       .long   1935762796              # 0x7361656c
+       .long   1597257332              # 0x5f343674
+       .long   1936261236              # 0x73690074
+       .long   1702326124              # 0x65776f6c
+       .long   1650524274              # 0x62610072
+       .long   7631471                 # 0x74726f
+       .long   1684955506              # 0x646e6172
+       .long   1920234240              # 0x72747300
+       .long   6582132                 # 0x646f74
+       .long   961436255               # 0x394e5a5f
+       .long   1852268383              # 0x6e675f5f
+       .long   2019778421              # 0x78635f75
+       .long   825379960               # 0x31324c78
+       .long   1701076831              # 0x65645f5f
+       .long   1819631974              # 0x6c756166
+       .long   1869373300              # 0x6f6c5f74
+       .long   1885301603              # 0x705f6b63
+       .long   1667853423              # 0x63696c6f
+       .long   1711293817              # 0x66004579
+       .long   1718446436              # 0x666d6964
+       .long   1768187392              # 0x69646600
+       .long   1929407597              # 0x73006c6d
+       .long   1651269987              # 0x626c6163
+       .long   1946183278              # 0x7400666e
+       .long   1668183410              # 0x636e7572
+       .long   1516175462              # 0x5a5f0066
+       .long   1919300940              # 0x7266354c
+       .long   1718646885              # 0x66707865
+       .long   1593862480              # 0x5f006950
+       .long   1932938330              # 0x73364c5a
+       .long   1651269987              # 0x626c6163
+       .long   6907502                 # 0x69666e
+       .long   1599031647              # 0x5f4f495f
+       .long   1684104562              # 0x64616572
+       .long   1920233567              # 0x7274705f
+       .long   1886873088              # 0x70776600
+       .long   1953393010              # 0x746e6972
+       .long   1668743270              # 0x63770066
+       .long   1886217075              # 0x706d6373
+       .long   7173120                 # 0x6d7400
+       .long   1835363703              # 0x6d656d77
+       .long   7628147                 # 0x746573
+       .long   1818453348              # 0x6c636564
+       .long   1701869940              # 0x65707974
+       .long   1819635240              # 0x6c756e28
+       .long   1920233580              # 0x7274706c
+       .long   2004025385              # 0x77730029
+       .long   1761636449              # 0x69007061
+       .long   1717531758              # 0x665f746e
+       .long   947155809               # 0x38747361
+       .long   1962964063              # 0x7500745f
+       .long   1601465961              # 0x5f746e69
+       .long   1935762796              # 0x7361656c
+       .long   1597387124              # 0x5f363174
+       .long   1633878132              # 0x61630074
+       .long   1668246636              # 0x636f6c6c
+       .long   1920234240              # 0x72747300
+       .long   1684828020              # 0x646c6f74
+       .long   1952675584              # 0x74637700
+       .long   1600483449              # 0x5f657079
+       .long   1769209972              # 0x69740074
+       .long   1811965293              # 0x6c00656d
+       .long   1714579311              # 0x6632676f
+       .long   1280990976              # 0x4c5a5f00
+       .long   1935827251              # 0x73626133
+       .long   1600061548              # 0x5f5f006c
+       .long   1601202536              # 0x5f706968
+       .long   1818850658              # 0x6c697562
+       .long   1601071476              # 0x5f6e6974
+       .long   1684632167              # 0x64697267
+       .long   1601005892              # 0x5f6d6944
+       .long   2003173492              # 0x77660074
+       .long   1851876211              # 0x6e616373
+       .long   1668743270              # 0x63770066
+       .long   1751347827              # 0x68637273
+       .long   1600061554              # 0x5f5f0072
+       .long   1601531495              # 0x5f756e67
+       .long   1969382756              # 0x75626564
+       .long   1769275495              # 0x69750067
+       .long   1597535342              # 0x5f38746e
+       .long   1769275508              # 0x69750074
+       .long   1717531758              # 0x665f746e
+       .long   863269729               # 0x33747361
+       .long   7626546                 # 0x745f32
+       .long   1953393013              # 0x746e6975
+       .long   1601336432              # 0x5f727470
+       .long   1936261236              # 0x73690074
+       .long   1667330163              # 0x63617073
+       .long   1952514149              # 0x74610065
+       .long   1769304415              # 0x6975715f
+       .long   1700752227              # 0x655f6b63
+       .long   7629176                 # 0x746978
+       .long   1953724787              # 0x74737973
+       .long   1711304037              # 0x66006d65
+       .long   1886348658              # 0x706f6572
+       .long   1879076453              # 0x70006e65
+       .long   1869771365              # 0x6f727265
+       .long   1701970034              # 0x65720072
+       .long   1684957559              # 0x646e6977
+       .long   1919972864              # 0x72707600
+       .long   1718906473              # 0x66746e69
+       .long   1869440512              # 0x6f6d6600
+       .long   1818624100              # 0x6c660064
+       .long   1601462639              # 0x5f74616f
+       .long   1819017332              # 0x6c6c0074
+       .long   1853190002              # 0x6e756f72
+       .long   1869348964              # 0x6f6c0064
+       .long   1819292007              # 0x6c703167
+       .long   1851878912              # 0x6e616e00
+       .long   1920204902              # 0x72740066
+       .long   1818455669              # 0x6c636e75
+       .long   1599299328              # 0x5f535f00
+       .long   1735289203              # 0x676e6973
+       .long   1979737452              # 0x7600656c
+       .long   1668511603              # 0x63737773
+       .long   6712929                 # 0x666e61
+       .long   1735290732              # 0x676e6f6c
+       .long   1852795936              # 0x6e6f6c20
+       .long   1852383335              # 0x6e692067
+       .long   1516175476              # 0x5a5f0074
+       .long   1951615822              # 0x74534b4e
+       .long   1600075057              # 0x5f5f3531
+       .long   1701017701              # 0x65637865
+       .long   1869182064              # 0x6f697470
+       .long   1953521518              # 0x74705f6e
+       .long   1697853810              # 0x65333172
+       .long   1885692792              # 0x70656378
+       .long   1852795252              # 0x6e6f6974
+       .long   1920233567              # 0x7274705f
+       .long   1600073778              # 0x5f5f3032
+       .long   1600223331              # 0x5f617863
+       .long   1701017701              # 0x65637865
+       .long   1869182064              # 0x6f697470
+       .long   2037669742              # 0x79745f6e
+       .long   1984259440              # 0x76456570
+       .long   1767857920              # 0x695f5f00
+       .long   842232942               # 0x3233746e
+       .long   1593865311              # 0x5f00745f
+       .long   1852405087              # 0x6e69755f
+       .long   1597257332              # 0x5f343674
+       .long   1936261236              # 0x73690074
+       .long   1852404336              # 0x6e697270
+       .long   1936261236              # 0x73690074
+       .long   1668183408              # 0x636e7570
+       .long   1197408372              # 0x475f0074
+       .long   1869637215              # 0x6f70665f
+       .long   7626611                 # 0x745f73
+       .long   1852404336              # 0x6e697270
+       .long   1929406068              # 0x73006674
+       .long   1969386597              # 0x75627465
+       .long   1936261222              # 0x73690066
+       .long   2037670775              # 0x79746377
+       .long   1660970352              # 0x63006570
+       .long   1701669236              # 0x656d6974
+       .long   1635016960              # 0x61746100
+       .long   1769144430              # 0x6973006e
+       .long   1919680622              # 0x726c006e
+       .long   1684960623              # 0x646e756f
+       .long   1516175462              # 0x5a5f0066
+       .long   1597256270              # 0x5f34324e
+       .long   1885956191              # 0x7069685f
+       .long   1769300575              # 0x6975625f
+       .long   1852404844              # 0x6e69746c
+       .long   1869374047              # 0x6f6c625f
+       .long   1766091619              # 0x69446b63
+       .long   930373485               # 0x37745f6d
+       .long   1701273439              # 0x65675f5f
+       .long   1165582196              # 0x45795f74
+       .long   1600061558              # 0x5f5f0076
+       .long   912680559               # 0x3666666f
+       .long   7626548                 # 0x745f34
+       .long   1953653357              # 0x7472626d
+       .long   6518639                 # 0x63776f
+       .long   1651863396              # 0x62756f64
+       .long   1962960236              # 0x7500656c
+       .long   1601465961              # 0x5f746e69
+       .long   1953718630              # 0x74736166
+       .long   1952396849              # 0x745f3631
+       .long   1701275136              # 0x65676600
+       .long   1946182516              # 0x74006374
+       .long   1952675695              # 0x7463776f
+       .long   1936613746              # 0x736e6172
+       .long   1718182912              # 0x66696400
+       .long   1835627622              # 0x6d697466
+       .long   2019885157              # 0x78650065
+       .long   1714515312              # 0x66316d70
+       .long   1852404224              # 0x6e697200
+       .long   1516175476              # 0x5a5f0074
+       .long   1936275532              # 0x7369384c
+       .long   1836216174              # 0x6d726f6e
+       .long   6712417                 # 0x666c61
+       .long   1852268383              # 0x6e675f5f
+       .long   2019778421              # 0x78635f75
+       .long   1834942584              # 0x6d5f0078
+       .long   6644847                 # 0x65646f
+       .long   1668511606              # 0x63737776
+       .long   6712929                 # 0x666e61
+       .long   1853055863              # 0x6e736377
+       .long   7368035                 # 0x706d63
+       .long   1397643871              # 0x534e5a5f
+       .long   1597321588              # 0x5f353174
+       .long   1668834655              # 0x6378655f
+       .long   1769238629              # 0x69747065
+       .long   1885302383              # 0x705f6e6f
+       .long   858878580               # 0x33317274
+       .long   1701017701              # 0x65637865
+       .long   1869182064              # 0x6f697470
+       .long   1953521518              # 0x74705f6e
+       .long   1163092338              # 0x45536172
+       .long   1597002575              # 0x5f30534f
+       .long   1398431488              # 0x535a5f00
+       .long   1916219764              # 0x72373174
+       .long   1919448165              # 0x72687465
+       .long   1700755311              # 0x655f776f
+       .long   1885692792              # 0x70656378
+       .long   1852795252              # 0x6e6f6974
+       .long   829707086               # 0x3174534e
+       .long   1700749109              # 0x655f5f35
+       .long   1885692792              # 0x70656378
+       .long   1852795252              # 0x6e6f6974
+       .long   1920233567              # 0x7274705f
+       .long   2019898161              # 0x78653331
+       .long   1953523043              # 0x74706563
+       .long   1601073001              # 0x5f6e6f69
+       .long   1165128816              # 0x45727470
+       .long   1952805376              # 0x74657200
+       .long   2003792488              # 0x776f7268
+       .long   1668834655              # 0x6378655f
+       .long   1769238629              # 0x69747065
+       .long   1979739759              # 0x76006e6f
+       .long   1851876211              # 0x6e616373
+       .long   1868759142              # 0x6f630066
+       .long   1769175408              # 0x69737970
+       .long   7106151                 # 0x6c6e67
+       .long   1717989989              # 0x66667265
+       .long   1634559488              # 0x616d6600
+       .long   1633907456              # 0x61637300
+       .long   1819173484              # 0x6c6e626c
+       .long   1634169856              # 0x61677400
+       .long   6385005                 # 0x616d6d
+       .long   894196319               # 0x354c5a5f
+       .long   1650551916              # 0x62616c6c
+       .long   1593866355              # 0x5f007873
+       .long   1882410074              # 0x70334c5a
+       .long   1768322927              # 0x6966776f
+       .long   1751080704              # 0x685f5f00
+       .long   1734307945              # 0x675f7069
+       .long   1734308965              # 0x675f7465
+       .long   1600416114              # 0x5f646972
+       .long   1601005924              # 0x5f6d6964
+       .long   1920139384              # 0x72730078
+       .long   1996501091              # 0x77003063
+       .long   1752458345              # 0x68746469
+       .long   1985961728              # 0x765f5f00
+       .long   1702194273              # 0x65756c61
+       .long   1330208512              # 0x4f495f00
+       .long   1718968927              # 0x6675625f
+       .long   1935762015              # 0x7361625f
+       .long   1869348965              # 0x6f6c0065
+       .long   1763731310              # 0x6920676e
+       .long   1828746350              # 0x6d00746e
+       .long   1701605986              # 0x656c7262
+       .long   1651310702              # 0x626d006e
+       .long   1869902451              # 0x6f747273
+       .long   7562103                 # 0x736377
+       .long   1886873206              # 0x70776676
+       .long   1953393010              # 0x746e6972
+       .long   2037645414              # 0x79740066
+       .long   1767859568              # 0x695f6570
+       .long   7300718                 # 0x6f666e
+       .long   829714025               # 0x31746e69
+       .long   7626550                 # 0x745f36
+       .long   1953393013              # 0x746e6975
+       .long   1634036831              # 0x61656c5f
+       .long   875983987               # 0x34367473
+       .long   1895855199              # 0x7100745f
+       .long   7630709                 # 0x746f75
+       .long   1986618476              # 0x7669646c
+       .long   1952607488              # 0x74626d00
+       .long   6518639                 # 0x63776f
+       .long   1869440370              # 0x6f6d6572
+       .long   1761633654              # 0x69006576
+       .long   1919383411              # 0x72677773
+       .long   6844513                 # 0x687061
+       .long   1851880545              # 0x6e617461
+       .long   1818624050              # 0x6c660032
+       .long   7499631                 # 0x726f6f
+       .long   1667658341              # 0x63667265
+       .long   1887004672              # 0x70796800
+       .long   1811969135              # 0x6c00746f
+       .long   1835884903              # 0x6d6d6167
+       .long   1701707873              # 0x656e0061
+       .long   2036494945              # 0x79627261
+       .long   1718906473              # 0x66746e69
+       .long   1835364864              # 0x6d657200
+       .long   1684957537              # 0x646e6961
+       .long   6713957                 # 0x667265
+       .long   860641887               # 0x334c5a5f
+       .long   1717661030              # 0x66616d66
+       .long   1593861734              # 0x5f006666
+       .long   1951616602              # 0x74534e5a
+       .long   1600075057              # 0x5f5f3531
+       .long   1701017701              # 0x65637865
+       .long   1869182064              # 0x6f697470
+       .long   1953521518              # 0x74705f6e
+       .long   1697853810              # 0x65333172
+       .long   1885692792              # 0x70656378
+       .long   1852795252              # 0x6e6f6974
+       .long   1920233567              # 0x7274705f
+       .long   1380275041              # 0x52455361
+       .long   1597002571              # 0x5f30534b
+       .long   1953392896              # 0x746e6900
+       .long   7626552                 # 0x745f38
+       .long   1868783455              # 0x6f635f5f
+       .long   1918988397              # 0x7261706d
+       .long   1601070687              # 0x5f6e665f
+       .long   1935736948              # 0x73610074
+       .long   1660972649              # 0x63006e69
+       .long   1711305583              # 0x6600736f
+       .long   7889261                 # 0x78616d
+       .long   1650945900              # 0x62676f6c
+       .long   1701707884              # 0x656e006c
+       .long   1869902968              # 0x6f747478
+       .long   1685217655              # 0x64726177
+       .long   1835364864              # 0x6d657200
+       .long   7304561                 # 0x6f7571
+       .long   1869509481              # 0x6f6e7369
+       .long   1818324338              # 0x6c616d72
+       .long   1314545408              # 0x4e5a5f00
+       .long   1600074546              # 0x5f5f3332
+       .long   1601202536              # 0x5f706968
+       .long   1818850658              # 0x6c697562
+       .long   1601071476              # 0x5f6e6974
+       .long   1684632167              # 0x64697267
+       .long   1601005892              # 0x5f6d6944
+       .long   1600075636              # 0x5f5f3774
+       .long   1601463655              # 0x5f746567
+       .long   7751034                 # 0x76457a
+       .long   1633637215              # 0x615f535f
+       .long   1768779636              # 0x696d6f74
+       .long   1600061539              # 0x5f5f0063
+       .long   1818850658              # 0x6c697562
+       .long   1601071476              # 0x5f6e6974
+       .long   1818190198              # 0x6c5f6176
+       .long   7631721                 # 0x747369
+       .long   1718838135              # 0x66736377
+       .long   1701669236              # 0x656d6974
+       .long   1869374976              # 0x6f6c6600
+       .long   1996518497              # 0x77007461
+       .long   1668113773              # 0x636d656d
+       .long   2113957997              # 0x7e00706d
+       .long   1701017701              # 0x65637865
+       .long   1869182064              # 0x6f697470
+       .long   1953521518              # 0x74705f6e
+       .long   1701249138              # 0x65670072
+       .long   1979736948              # 0x76006374
+       .long   1769107558              # 0x69727066
+       .long   6714478                 # 0x66746e
+       .long   1701669236              # 0x656d6974
+       .long   1711305823              # 0x6600745f
+       .long   6709613                 # 0x66616d
+       .long   1869769836              # 0x6f726c6c
+       .long   1818521205              # 0x6c646e75
+       .long   1735355392              # 0x676f6c00
+       .long   6713393                 # 0x667031
+       .long   1918985582              # 0x7261656e
+       .long   1852406114              # 0x6e697962
+       .long   1912630388              # 0x72006c74
+       .long   1970367845              # 0x75716d65
+       .long   1593863279              # 0x5f006c6f
+       .long   1684107359              # 0x6461705f
+       .long   1600061489              # 0x5f5f0031
+       .long   947154537               # 0x38746e69
+       .long   1627419743              # 0x6100745f
+       .long   6909812                 # 0x696f74
+       .long   1667855729              # 0x63697571
+       .long   2019909483              # 0x78655f6b
+       .long   1711305833              # 0x66007469
+       .long   1886676327              # 0x70746567
+       .long   1711305583              # 0x6600736f
+       .long   1852141679              # 0x6e65706f
+       .long   1702061568              # 0x65736600
+       .long   1728080741              # 0x67006b65
+       .long   7566437                 # 0x737465
+       .long   1668507254              # 0x63736676
+       .long   6712929                 # 0x666e61
+       .long   1651863396              # 0x62756f64
+       .long   1952408940              # 0x745f656c
+       .long   1634559488              # 0x616d6600
+       .long   1811965560              # 0x6c006678
+       .long   1835884903              # 0x6d6d6167
+       .long   1593863265              # 0x5f006c61
+       .long   1935830367              # 0x73626d5f
+       .long   1702125940              # 0x65746174
+       .long   1711305823              # 0x6600745f
+       .long   2004116839              # 0x77746567
+       .long   2004025443              # 0x77730063
+       .long   1852404336              # 0x6e697270
+       .long   1593861748              # 0x5f006674
+       .long   1970169695              # 0x756e675f
+       .long   1635147619              # 0x61765f63
+       .long   1936288863              # 0x73696c5f
+       .long   1668743284              # 0x63770074
+       .long   1819243635              # 0x6c6f7473
+       .long   1919973120              # 0x72707700
+       .long   1718906473              # 0x66746e69
+       .long   1935898368              # 0x73637700
+       .long   7500915                 # 0x727473
+       .long   1701017701              # 0x65637865
+       .long   1869182064              # 0x6f697470
+       .long   1953521518              # 0x74705f6e
+       .long   1600061554              # 0x5f5f0072
+       .long   1953393013              # 0x746e6975
+       .long   1601724781              # 0x5f78616d
+       .long   1936261236              # 0x73690074
+       .long   1734960248              # 0x67696478
+       .long   1728083049              # 0x67007469
+       .long   1852142693              # 0x6e657465
+       .long   1936785526              # 0x73710076
+       .long   7631471                 # 0x74726f
+       .long   1162627398              # 0x454c4946
+       .long   1886615040              # 0x70737600
+       .long   1953393010              # 0x746e6972
+       .long   1835401318              # 0x6d660066
+       .long   1811967593              # 0x6c006e69
+       .long   1953393010              # 0x746e6972
+       .long   1769078892              # 0x6972006c
+       .long   7107694                 # 0x6c746e
+       .long   1668767583              # 0x63775f5f
+       .long   1668743272              # 0x63770068
+       .long   1802466419              # 0x6b6f7473
+       .long   1953392896              # 0x746e6900
+       .long   1935763039              # 0x7361665f
+       .long   1597257332              # 0x5f343674
+       .long   1936261236              # 0x73690074
+       .long   1769107575              # 0x69727077
+       .long   1627419758              # 0x6100746e
+       .long   1752064372              # 0x686e6174
+       .long   1718772992              # 0x66726500
+       .long   1811967075              # 0x6c006c63
+       .long   1882285935              # 0x7031676f
+       .long   1735355392              # 0x676f6c00
+       .long   1811967026              # 0x6c006c32
+       .long   6449007                 # 0x62676f
+       .long   1851878499              # 0x6e616c63
+       .long   1702240359              # 0x65762067
+       .long   1869181810              # 0x6f697372
+       .long   808525934               # 0x3031206e
+       .long   808333358               # 0x302e302e
+       .long   1680812064              # 0x642f2820
+       .long   794915937               # 0x2f617461
+       .long   1802397034              # 0x6b6e656a
+       .long   762539625               # 0x2d736e69
+       .long   1802661751              # 0x6b726f77
+       .long   1667330163              # 0x63617073
+       .long   1868771173              # 0x6f632f65
+       .long   1953853549              # 0x7475706d
+       .long   1869753701              # 0x6f722d65
+       .long   1680698723              # 0x642d6d63
+       .long   762539371               # 0x2d736d6b
+       .long   761884782               # 0x2d69706e
+       .long   1668311400              # 0x63706968
+       .long   1735287148              # 0x676e616c
+       .long   1954047279              # 0x7478652f
+       .long   1634628197              # 0x616e7265
+       .long   1819029356              # 0x6c6c2f6c
+       .long   1663921526              # 0x632d6d76
+       .long   1735287148              # 0x676e616c
+       .long   859399712               # 0x33396620
+       .long   1630745393              # 0x61333331
+       .long   876110182               # 0x34386166
+       .long   962684004               # 0x39616464
+       .long   1681143905              # 0x64343861
+       .long   1714696550              # 0x66343166
+       .long   809056051               # 0x30393733
+       .long   1633968949              # 0x61646335
+       .long   962736994               # 0x39623362
+       .long   842020152               # 0x32303538
+       .long   673196338               # 0x28202932
+       .long   1952539695              # 0x7461642f
+       .long   1701457761              # 0x656a2f61
+       .long   1852402542              # 0x6e696b6e
+       .long   1870081395              # 0x6f772d73
+       .long   1886612338              # 0x70736b72
+       .long   795173729               # 0x2f656361
+       .long   1886220131              # 0x706d6f63
+       .long   761623669               # 0x2d657475
+       .long   1835233138              # 0x6d636f72
+       .long   1835754541              # 0x6d6b642d
+       .long   1886268787              # 0x706e2d73
+       .long   1768435049              # 0x69682d69
+       .long   1634493296              # 0x616c6370
+       .long   1697605486              # 0x652f676e
+       .long   1919251576              # 0x72657478
+       .long   795631982               # 0x2f6c616e
+       .long   1836477548              # 0x6d766c6c
+       .long   1630549280              # 0x61303520
+       .long   1698181475              # 0x65383163
+       .long   845428537               # 0x32643739
+       .long   845570401               # 0x32666161
+       .long   925918777               # 0x37306639
+       .long   945895269               # 0x38613765
+       .long   878798178               # 0x34616562
+       .long   862270565               # 0x33653465
+       .long   926246244               # 0x37356564
+       .long   1664431412              # 0x63353534
+       .long   1593846118              # 0x5f002966
+       .long   1918848841              # 0x725f4f49
+       .long   1600414053              # 0x5f646165
+       .long   1702060386              # 0x65736162
+       .long   1885298432              # 0x705f5f00
+       .long   3302497                 # 0x326461
+       .long   1952802662              # 0x74656766
+       .long   1828746103              # 0x6d007377
+       .long   1852404578              # 0x6e697362
+       .long   1996518505              # 0x77007469
+       .long   1633907555              # 0x61637363
+       .long   1668743284              # 0x63770074
+       .long   1970238579              # 0x756f7473
+       .long   1836515436              # 0x6d77006c
+       .long   1751346533              # 0x68636d65
+       .long   1516175474              # 0x5a5f0072
+       .long   829707086               # 0x3174534e
+       .long   1700749109              # 0x655f5f35
+       .long   1885692792              # 0x70656378
+       .long   1852795252              # 0x6e6f6974
+       .long   1920233567              # 0x7274705f
+       .long   2019898161              # 0x78653331
+       .long   1953523043              # 0x74706563
+       .long   1601073001              # 0x5f6e6f69
+       .long   879916144               # 0x34727470
+       .long   1885435763              # 0x70617773
+       .long   810766917               # 0x30535245
+       .long   1600061535              # 0x5f5f005f
+       .long   1969382756              # 0x75626564
+       .long   1936261223              # 0x73690067
+       .long   1701867637              # 0x65707075
+       .long   1952514162              # 0x74610072
+       .long   1953069157              # 0x74697865
+       .long   1818453504              # 0x6c636600
+       .long   6648687                 # 0x65736f
+       .long   1952802662              # 0x74656766
+       .long   1936261235              # 0x73690073
+       .long   2003790967              # 0x776f6c77
+       .long   1996517989              # 0x77007265
+       .long   1634890851              # 0x61727463
+       .long   1593865070              # 0x5f00736e
+       .long   1835627615              # 0x6d69745f
+       .long   7626597                 # 0x745f65
+       .long   1668246627              # 0x636f6c63
+       .long   1919221867              # 0x7265006b
+       .long   6710118                 # 0x666366
+       .long   1852403046              # 0x6e696d66
+       .long   1835401318              # 0x6d660066
+       .long   7106153                 # 0x6c6e69
+       .long   1869642088              # 0x6f707968
+       .long   1811967092              # 0x6c006c74
+       .long   1970238060              # 0x756f726c
+       .long   6710382                 # 0x66646e
+       .long   1819173230              # 0x6c6e616e
+       .long   1633907456              # 0x61637300
+       .long   1852596844              # 0x6e6c626c
+       .long   1516175462              # 0x5a5f0066
+       .long   1936275788              # 0x7369394c
+       .long   1634038375              # 0x61657267
+       .long   1718773108              # 0x66726574
+       .long   1516175462              # 0x5a5f0066
+       .long   1765028172              # 0x6934314c
+       .long   1701996403              # 0x65726773
+       .long   1919251553              # 0x72657461
+       .long   1635086693              # 0x61757165
+       .long   6710892                 # 0x66666c
+       .long   843864671               # 0x324c5a5f
+       .long   1751080753              # 0x685f5f31
+       .long   1734307945              # 0x675f7069
+       .long   1650422885              # 0x625f7465
+       .long   1801678700              # 0x6b636f6c
+       .long   1835623519              # 0x6d69645f
+       .long   7764063                 # 0x76785f
+       .long   1769108595              # 0x69727473
+       .long   16803172                # 0x1006564
+       .long   237306129               # 0xe250111
+       .long   235078931               # 0xe030513
+       .long   236652048               # 0xe1b0610
+       .long   17957137                # 0x1120111
+       .long   872546304               # 0x34020000
+       .long   1225655040              # 0x490e0300
+       .long   973881107               # 0x3a0c3f13
+       .long   34290443                # 0x20b3b0b
+       .long   50331658                # 0x300000a
+       .long   323551489               # 0x13490101
+       .long   553910272               # 0x21040000
+       .long   924010752               # 0x37134900
+       .long   83886086                # 0x5000006
+       .long   235077668               # 0xe030024
+       .long   185273150               # 0xb0b0b3e
+       .long   604372992               # 0x24060000
+       .long   185467648               # 0xb0e0300
+       .long   736779                  # 0xb3e0b
+       .long   1443584                 # 0x160700
+       .long   235082569               # 0xe031349
+       .long   188418874               # 0xb3b0b3a
+       .long   956825600               # 0x39080000
+       .long   918273                  # 0xe0301
+       .long   17041664                # 0x1040900
+       .long   185273859               # 0xb0b0e03
+       .long   188418874               # 0xb3b0b3a
+       .long   671744000               # 0x280a0000
+       .long   470680320               # 0x1c0e0300
+       .long   184549391               # 0xb00000f
+       .long   188350472               # 0xb3a0008
+       .long   320342843               # 0x13180b3b
+       .long   135004160               # 0x80c0000
+       .long   990591488               # 0x3b0b3a00
+       .long   1251333                 # 0x131805
+       .long   19795200                # 0x12e0d00
+       .long   51265671                # 0x30e4087
+       .long   990591502               # 0x3b0b3a0e
+       .long   1007896843              # 0x3c13490b
+       .long   802572                  # 0xc3f0c
+       .long   331264                  # 0x50e00
+       .long   4937                    # 0x1349
+       .long   50344975                # 0x300340f
+       .long   974342414               # 0x3a13490e
+       .long   1007368971              # 0x3c0b3b0b
+       .long   239109900               # 0xe40870c
+       .long   34603008                # 0x2100000
+       .long   51066369                # 0x30b3601
+       .long   973802254               # 0x3a0b0b0e
+       .long   736011                  # 0xb3b0b
+       .long   856320                  # 0xd1100
+       .long   323554819               # 0x13490e03
+       .long   188418874               # 0xb3b0b3a
+       .long   2616                    # 0xa38
+       .long   50408978                # 0x3012e12
+       .long   990591502               # 0x3b0b3a0e
+       .long   1057766411              # 0x3f0c3c0b
+       .long   811788                  # 0xc630c
+       .long   332544                  # 0x51300
+       .long   204739401               # 0xc341349
+       .long   773062656               # 0x2e140000
+       .long   239109889               # 0xe408701
+       .long   188354051               # 0xb3a0e03
+       .long   205261627               # 0xc3c0b3b
+       .long   3135                    # 0xc3f
+       .long   50408981                # 0x3012e15
+       .long   990591502               # 0x3b0b3a0e
+       .long   1057766411              # 0x3f0c3c0b
+       .long   733708                  # 0xb320c
+       .long   19797504                # 0x12e1600
+       .long   51265671                # 0x30e4087
+       .long   990591502               # 0x3b0b3a0e
+       .long   1007896843              # 0x3c13490b
+       .long   839663372               # 0x320c3f0c
+       .long   385875979               # 0x1700000b
+       .long   1082589486              # 0x4087012e
+       .long   973996814               # 0x3a0e030e
+       .long   1007368971              # 0x3c0b3b0b
+       .long   839663372               # 0x320c3f0c
+       .long   402653195               # 0x1800000b
+       .long   1082589486              # 0x4087012e
+       .long   973996814               # 0x3a0e030e
+       .long   1225472779              # 0x490b3b0b
+       .long   1057766419              # 0x3f0c3c13
+       .long   1661678092              # 0x630b320c
+       .long   419430412               # 0x1900000c
+       .long   235077634               # 0xe030002
+       .long   3132                    # 0xc3c
+       .long   2265001498              # 0x87012e1a
+       .long   235081280               # 0xe030e40
+       .long   188418874               # 0xb3b0b3a
+       .long   205458492               # 0xc3f0c3c
+       .long   786823                  # 0xc0187
+       .long   3742464                 # 0x391b00
+       .long   3587                    # 0xe03
+       .long   906040092               # 0x3601131c
+       .long   973802251               # 0x3a0b0b0b
+       .long   736011                  # 0xb3b0b
+       .long   18291968                # 0x1171d00
+       .long   185273142               # 0xb0b0b36
+       .long   188418874               # 0xb3b0b3a
+       .long   555614208               # 0x211e0000
+       .long   924010752               # 0x37134900
+       .long   520093707               # 0x1f00000b
+       .long   235077934               # 0xe03012e
+       .long   87755578                # 0x53b0b3a
+       .long   205263689               # 0xc3c1349
+       .long   3135                    # 0xc3f
+       .long   1224740640              # 0x49000f20
+       .long   553648147               # 0x21000013
+       .long   188088595               # 0xb360113
+       .long   185273859               # 0xb0b0e03
+       .long   188418874               # 0xb3b0b3a
+       .long   220332032               # 0xd220000
+       .long   1225655040              # 0x490e0300
+       .long   990591507               # 0x3b0b3a13
+       .long   669701                  # 0xa3805
+       .long   1254144                 # 0x132300
+       .long   205262339               # 0xc3c0e03
+       .long   371458048               # 0x16240000
+       .long   973996800               # 0x3a0e0300
+       .long   736011                  # 0xb3b0b
+       .long   992512                  # 0xf2500
+       .long   640024576               # 0x26260000
+       .long   1263872                 # 0x134900
+       .long   1582848                 # 0x182700
+       .long   774373376               # 0x2e280000
+       .long   973996800               # 0x3a0e0300
+       .long   1225079563              # 0x49053b0b
+       .long   1057766419              # 0x3f0c3c13
+       .long   687865868               # 0x2900000c
+       .long   323551254               # 0x13490016
+       .long   3587                    # 0xe03
+       .long   50409002                # 0x3012e2a
+       .long   990591502               # 0x3b0b3a0e
+       .long   1007896843              # 0x3c13490b
+       .long   802572                  # 0xc3f0c
+       .long   1059584                 # 0x102b00
+       .long   4937                    # 0x1349
+       .long   50346796                # 0x3003b2c
+       .long   754974734               # 0x2d00000e
+       .long   323551298               # 0x13490042
+       .long   976093184               # 0x3a2e0000
+       .long   990591488               # 0x3b0b3a00
+       .long   1251339                 # 0x13180b
+       .long   3026688                 # 0x2e2f00
+       .long   188354051               # 0xb3a0e03
+       .long   323554107               # 0x13490b3b
+       .long   205458492               # 0xc3f0c3c
+       .long   321912832               # 0x13300000
+       .long   801792                  # 0xc3c00
+       .long   3027200                 # 0x2e3100
+       .long   188354051               # 0xb3a0e03
+       .long   205260091               # 0xc3c053b
+       .long   25627711                # 0x1870c3f
+       .long   838860812               # 0x3200000c
+       .long   21                      # 0x15
+       .long   9779                    # 0x2633
+       .long   1455104                 # 0x163400
+       .long   235082569               # 0xe031349
+       .long   87755578                # 0x53b0b3a
+       .long   355794944               # 0x15350000
+       .long   1263873                 # 0x134901
+       .long   19805696                # 0x12e3600
+       .long   188354051               # 0xb3a0e03
+       .long   205260091               # 0xc3c053b
+       .long   25627711                # 0x1870c3f
+       .long   922746892               # 0x3700000c
+       .long   235077934               # 0xe03012e
+       .long   87755578                # 0x53b0b3a
+       .long   205458492               # 0xc3f0c3c
+       .long   775421952               # 0x2e380000
+       .long   239109889               # 0xe408701
+       .long   188354051               # 0xb3a0e03
+       .long   323554107               # 0x13490b3b
+       .long   3132                    # 0xc3c
+       .long   2264935993              # 0x87002e39
+       .long   235081280               # 0xe030e40
+       .long   87755578                # 0x53b0b3a
+       .long   186651465               # 0xb201349
+       .long   322568192               # 0x133a0000
+       .long   51066369                # 0x30b3601
+       .long   973802254               # 0x3a0b0b0e
+       .long   342795                  # 0x53b0b
+       .long   3029760                 # 0x2e3b00
+       .long   51265671                # 0x30e4087
+       .long   990591502               # 0x3b0b3a0e
+       .long   1007896837              # 0x3c134905
+       .long   802572                  # 0xc3f0c
+       .long   3030016                 # 0x2e3c00
+       .long   186651463               # 0xb201347
+       .long   775749632               # 0x2e3d0000
+       .long   239109889               # 0xe408701
+       .long   188354051               # 0xb3a0e03
+       .long   323554107               # 0x13490b3b
+       .long   2848                    # 0xb20
+       .long   50332990                # 0x300053e
+       .long   990591502               # 0x3b0b3a0e
+       .long   1263883                 # 0x13490b
+       .long   3424000                 # 0x343f00
+       .long   188354051               # 0xb3a0e03
+       .long   323554107               # 0x13490b3b
+       .long   775946240               # 0x2e400000
+       .long   302059777               # 0x12011101
+       .long   2265595905              # 0x870a4001
+       .long   235081280               # 0xe030e40
+       .long   188418874               # 0xb3b0b3a
+       .long   3135                    # 0xc3f
+       .long   822156609               # 0x31011d41
+       .long   1476810003              # 0x58065513
+       .long   1460361483              # 0x570b590b
+       .long   1107296267              # 0x4200000b
+       .long   321978397               # 0x1331001d
+       .long   190318165               # 0xb580655
+       .long   190252377               # 0xb570559
+       .long   188940288               # 0xb430000
+       .long   414977                  # 0x65501
+       .long   1917952                 # 0x1d4400
+       .long   17896241                # 0x1111331
+       .long   190316818               # 0xb580112
+       .long   190253913               # 0xb570b59
+       .long   1694498816              # 0x65000000
+       .long   33554485                # 0x2000035
+       .long   0                       # 0x0
+       .long   2751531008              # 0xa4010800
+       .long   67108883                # 0x4000013
+       .long   40192                   # 0x9d00
+       .long   0                       # 0x0
+       .long   533504                  # 0x82400
+       .long   1572864                 # 0x180000
+       .long   0                       # 0x0
+       .long   1667072                 # 0x197000
+       .long   0                       # 0x0
+       .long   77332992                # 0x49c0200
+       .long   4456448                 # 0x440000
+       .long   16842752                # 0x1010000
+       .long   3758295341              # 0xe003092d
+       .long   57                      # 0x39
+       .long   50331648                # 0x3000000
+       .long   83                      # 0x53
+       .long   23044                   # 0x5a04
+       .long   1073741824              # 0x40000000
+       .long   1342504960              # 0x50050000
+       .long   100663304               # 0x6000008
+       .long   78513665                # 0x4ae0601
+       .long   117964800               # 0x7080000
+       .long   809474                  # 0xc5a02
+       .long   30464                   # 0x7700
+       .long   788594944               # 0x2f010100
+       .long   970982153               # 0x39e00309
+       .long   64                      # 0x40
+       .long   2248343552              # 0x86030000
+       .long   67108864                # 0x4000000
+       .long   90                      # 0x5a
+       .long   65536                   # 0x10000
+       .long   9504512                 # 0x910700
+       .long   159973376               # 0x9890000
+       .long   436404224               # 0x1a030000
+       .long   39943                   # 0x9c07
+       .long   482304                  # 0x75c00
+       .long   86573568                # 0x5290200
+       .long   2133                    # 0x855
+       .long   2953315335              # 0xb0080407
+       .long   150994959               # 0x900000f
+       .long   1714                    # 0x6b2
+       .long   170984452               # 0xa310404
+       .long   3697                    # 0xe71
+       .long   2560                    # 0xa00
+       .long   167837696               # 0xa010000
+       .long   4604                    # 0x11fc
+       .long   118161410               # 0x70b0002
+       .long   1534200                 # 0x1768f8
+       .long   17239040                # 0x1070c00
+       .long   1542145                 # 0x178801
+       .long   34016256                # 0x2070c00
+       .long   1551617                 # 0x17ad01
+       .long   739773184               # 0x2c180b00
+       .long   1590                    # 0x636
+       .long   1093474315              # 0x412d180b
+       .long   184549382               # 0xb000006
+       .long   503171099               # 0x1dfdc81b
+       .long   453705728               # 0x1b0b0000
+       .long   1977038                 # 0x1e2ace
+       .long   3524987648              # 0xd21b0b00
+       .long   7739                    # 0x1e3b
+       .long   1339562763              # 0x4fd81b0b
+       .long   184549406               # 0xb00001e
+       .long   510190363               # 0x1e68e31b
+       .long   453705728               # 0x1b0b0000
+       .long   1998052                 # 0x1e7ce4
+       .long   3843754752              # 0xe51b0b00
+       .long   7833                    # 0x1e99
+       .long   3068599051              # 0xb6e71b0b
+       .long   184549406               # 0xb00001e
+       .long   516876315               # 0x1ecee81b
+       .long   1527578624              # 0x5b0d0000
+       .long   838860801               # 0x32000001
+       .long   452984832               # 0x1b000000
+       .long   1965525                 # 0x1dfdd5
+       .long   234946816               # 0xe010100
+       .long   6054                    # 0x17a6
+       .long   1549838                 # 0x17a60e
+       .long   520814592               # 0x1f0b0000
+       .long   2282927                 # 0x22d5af
+       .long   2954824448              # 0xb01f0b00
+       .long   8948                    # 0x22f4
+       .long   313597707               # 0x12b11f0b
+       .long   184549411               # 0xb000023
+       .long   590066207               # 0x232bb21f
+       .long   520814592               # 0x1f0b0000
+       .long   2313907                 # 0x234eb3
+       .long   191696640               # 0xb6d0f00
+       .long   650444800               # 0x26c50000
+       .long   889454592               # 0x35040000
+       .long   841729                  # 0xcd801
+       .long   235405312               # 0xe080000
+       .long   184549380               # 0xb000004
+       .long   242237447               # 0xe704007
+       .long   118161408               # 0x70b0000
+       .long   974219                  # 0xedd8b
+       .long   2366049024              # 0x8d070b00
+       .long   3816                    # 0xee8
+       .long   4237166347              # 0xfc8e070b
+       .long   184549390               # 0xb00000e
+       .long   291147527               # 0x115a8f07
+       .long   118161408               # 0x70b0000
+       .long   1148048                 # 0x118490
+       .long   2433157888              # 0x91070b00
+       .long   4509                    # 0x119d
+       .long   3230795531              # 0xc092070b
+       .long   184549393               # 0xb000011
+       .long   299471623               # 0x11d99307
+       .long   118161408               # 0x70b0000
+       .long   1176468                 # 0x11f394
+       .long   2500266752              # 0x95070b00
+       .long   4621                    # 0x120d
+       .long   563480331               # 0x2196070b
+       .long   184549394               # 0xb000012
+       .long   305108743               # 0x122f9707
+       .long   118161408               # 0x70b0000
+       .long   1203352                 # 0x125c98
+       .long   2567375616              # 0x99070b00
+       .long   4735                    # 0x127f
+       .long   2644117259              # 0x9d9a070b
+       .long   184549394               # 0xb000012
+       .long   314940167               # 0x12c59b07
+       .long   118161408               # 0x70b0000
+       .long   1236636                 # 0x12de9c
+       .long   2651261696              # 0x9e070b00
+       .long   4850                    # 0x12f2
+       .long   295700235               # 0x11a0070b
+       .long   184549395               # 0xb000013
+       .long   321626375               # 0x132ba107
+       .long   118161408               # 0x70b0000
+       .long   1262754                 # 0x1344a2
+       .long   2751924992              # 0xa4070b00
+       .long   4982                    # 0x1376
+       .long   2493974283              # 0x94a7070b
+       .long   184549395               # 0xb000013
+       .long   330803719               # 0x13b7aa07
+       .long   118161408               # 0x70b0000
+       .long   1299884                 # 0x13d5ac
+       .long   2919697152              # 0xae070b00
+       .long   5102                    # 0x13ee
+       .long   128976651               # 0x7b0070b
+       .long   184549396               # 0xb000014
+       .long   338014471               # 0x1425b107
+       .long   118161408               # 0x70b0000
+       .long   1326514                 # 0x143db2
+       .long   3003583232              # 0xb3070b00
+       .long   5205                    # 0x1455
+       .long   1840514827              # 0x6db4070b
+       .long   184549396               # 0xb000014
+       .long   344306951               # 0x1485b507
+       .long   118161408               # 0x70b0000
+       .long   1351094                 # 0x149db6
+       .long   3070692096              # 0xb7070b00
+       .long   5328                    # 0x14d0
+       .long   3820488459              # 0xe3b8070b
+       .long   184549396               # 0xb000014
+       .long   352368903               # 0x1500b907
+       .long   118161408               # 0x70b0000
+       .long   1383866                 # 0x151dba
+       .long   3137800960              # 0xbb070b00
+       .long   5434                    # 0x153a
+       .long   1656489739              # 0x62bc070b
+       .long   184549397               # 0xb000015
+       .long   360365319               # 0x157abd07
+       .long   118161408               # 0x70b0000
+       .long   1417151                 # 0x159fbf
+       .long   3238464256              # 0xc1070b00
+       .long   5567                    # 0x15bf
+       .long   3703703307              # 0xdcc2070b
+       .long   184549397               # 0xb000015
+       .long   368755463               # 0x15fac307
+       .long   118161408               # 0x70b0000
+       .long   1448132                 # 0x1618c4
+       .long   3305573120              # 0xc5070b00
+       .long   5685                    # 0x1635
+       .long   1237714699              # 0x49c6070b
+       .long   184549398               # 0xb000016
+       .long   375899911               # 0x1667c707
+       .long   118161408               # 0x70b0000
+       .long   1476040                 # 0x1685c8
+       .long   3372681984              # 0xc9070b00
+       .long   5795                    # 0x16a3
+       .long   3251242763              # 0xc1ca070b
+       .long   184549398               # 0xb000016
+       .long   383175431               # 0x16d6cb07
+       .long   118161408               # 0x70b0000
+       .long   1502156                 # 0x16ebcc
+       .long   3439790848              # 0xcd070b00
+       .long   5891                    # 0x1703
+       .long   466487051               # 0x1bce070b
+       .long   184549399               # 0xb000017
+       .long   389271303               # 0x1733cf07
+       .long   118161408               # 0x70b0000
+       .long   1526736                 # 0x174bd0
+       .long   134679552               # 0x8070c00
+       .long   1533953                 # 0x176801
+       .long   151456768               # 0x9070c00
+       .long   1542145                 # 0x178801
+       .long   168233984               # 0xa070c00
+       .long   1551617                 # 0x17ad01
+       .long   403115008               # 0x18070c00
+       .long   1416961                 # 0x159f01
+       .long   453446656               # 0x1b070c00
+       .long   1275393                 # 0x137601
+       .long   503778304               # 0x1e070c00
+       .long   1292033                 # 0x13b701
+       .long   554109952               # 0x21070c00
+       .long   1306113                 # 0x13ee01
+       .long   621218816               # 0x25070c00
+       .long   1533953                 # 0x176801
+       .long   637996032               # 0x26070c00
+       .long   1542145                 # 0x178801
+       .long   654773248               # 0x27070c00
+       .long   1551617                 # 0x17ad01
+       .long   177735680               # 0xa980800
+       .long   68157440                # 0x4100000
+       .long   4884                    # 0x1314
+       .long   290393608               # 0x114f0e08
+       .long   3021                    # 0xbcd
+       .long   4411                    # 0x113b
+       .long   587354382               # 0x2302510e
+       .long   320082432               # 0x13141200
+       .long   1393426432              # 0x530e0000
+       .long   318832897               # 0x13010101
+       .long   6098                    # 0x17d2
+       .long   289082881               # 0x113b0e01
+       .long   335544320               # 0x14000000
+       .long   2233                    # 0x8b9
+       .long   516                     # 0x204
+       .long   16864526                # 0x101550e
+       .long   1561107                 # 0x17d213
+       .long   335544576               # 0x14000100
+       .long   2728                    # 0xaa8
+       .long   1465                    # 0x5b9
+       .long   16864782                # 0x101560e
+       .long   1561107                 # 0x17d213
+       .long   218104064               # 0xd000100
+       .long   3041                    # 0xbe1
+       .long   2283                    # 0x8eb
+       .long   289101838               # 0x113b580e
+       .long   16842752                # 0x1010000
+       .long   1562387                 # 0x17d713
+       .long   352321792               # 0x15000100
+       .long   4884                    # 0x1314
+       .long   16867342                # 0x101600e
+       .long   399643393               # 0x17d21301
+       .long   65536                   # 0x10000
+       .long   1250325                 # 0x131415
+       .long   23203328                # 0x1620e00
+       .long   3524460801              # 0xd2130101
+       .long   16777239                # 0x1000017
+       .long   1564942                 # 0x17e10e
+       .long   336920576               # 0x14150000
+       .long   234881043               # 0xe000013
+       .long   16843109                # 0x1010165
+       .long   1561107                 # 0x17d213
+       .long   3389915392              # 0xca0e0100
+       .long   4                       # 0x4
+       .long   1250325                 # 0x131415
+       .long   23662080                # 0x1690e00
+       .long   3524460801              # 0xd2130101
+       .long   16777239                # 0x1000017
+       .long   1567502                 # 0x17eb0e
+       .long   1662386176              # 0x63160000
+       .long   285212689               # 0x11000011
+       .long   234881036               # 0xe00000c
+       .long   1568886                 # 0x17f076
+       .long   16843008                # 0x1010100
+       .long   1561107                 # 0x17d213
+       .long   3775791360              # 0xe10e0100
+       .long   23                      # 0x17
+       .long   1036310                 # 0xfd016
+       .long   790784                  # 0xc1100
+       .long   4034530816              # 0xf07a0e00
+       .long   16777239                # 0x1000017
+       .long   3524460801              # 0xd2130101
+       .long   16777239                # 0x1000017
+       .long   1567502                 # 0x17eb0e
+       .long   789905408               # 0x2f150000
+       .long   234881042               # 0xe000012
+       .long   16843137                # 0x1010181
+       .long   1561107                 # 0x17d213
+       .long   385876224               # 0x17000100
+       .long   5338                    # 0x14da
+       .long   3438                    # 0xd6e
+       .long   16876558                # 0x101840e
+       .long   399643393               # 0x17d21301
+       .long   234946560               # 0xe010000
+       .long   6128                    # 0x17f0
+       .long   50206720                # 0x2fe1800
+       .long   105906176               # 0x6500000
+       .long   2416836608              # 0x900e0000
+       .long   6133                    # 0x17f5
+       .long   16843009                # 0x1010101
+       .long   1562387                 # 0x17d713
+       .long   369099008               # 0x16000100
+       .long   3730                    # 0xe92
+       .long   2290                    # 0x8f2
+       .long   402430222               # 0x17fc990e
+       .long   16842752                # 0x1010000
+       .long   399971073               # 0x17d71301
+       .long   65536                   # 0x10000
+       .long   1225657088              # 0x490e0b00
+       .long   1250                    # 0x4e2
+       .long   400951040               # 0x17e60700
+       .long   13762560                # 0xd20000
+       .long   4061069312              # 0xf20f0000
+       .long   1106457                 # 0x10e219
+       .long   235602176               # 0xe0b0100
+       .long   223033                  # 0x36739
+       .long   268245504               # 0xffd1a00
+       .long   272171008               # 0x10390000
+       .long   1158545408              # 0x450e0000
+       .long   234946817               # 0xe010101
+       .long   871                     # 0x367
+       .long   352983808               # 0x150a1b00
+       .long   302710784               # 0x120b0000
+       .long   1577776                 # 0x181330
+       .long   823266048               # 0x31120b00
+       .long   6185                    # 0x1829
+       .long   1177686539              # 0x4632120b
+       .long   184549400               # 0xb000018
+       .long   408695570               # 0x185c3312
+       .long   302710784               # 0x120b0000
+       .long   1602101                 # 0x187235
+       .long   907152128               # 0x36120b00
+       .long   6269                    # 0x187d
+       .long   2285310475              # 0x8837120b
+       .long   184549400               # 0xb000018
+       .long   412301330               # 0x18933812
+       .long   302710784               # 0x120b0000
+       .long   1613370                 # 0x189e3a
+       .long   991038208               # 0x3b120b00
+       .long   6313                    # 0x18a9
+       .long   3023835659              # 0xb43c120b
+       .long   184549400               # 0xb000018
+       .long   415186194               # 0x18bf3d12
+       .long   302710784               # 0x120b0000
+       .long   1624639                 # 0x18ca3f
+       .long   1074924288              # 0x40120b00
+       .long   6368                    # 0x18e0
+       .long   3946975755              # 0xeb42120b
+       .long   184549400               # 0xb000018
+       .long   419971858               # 0x19084312
+       .long   302710784               # 0x120b0000
+       .long   34372                   # 0x8644
+       .long   1158810368              # 0x45120b00
+       .long   6430                    # 0x191e
+       .long   877072907               # 0x3447120b
+       .long   184549401               # 0xb000019
+       .long   423577618               # 0x193f4812
+       .long   302710784               # 0x120b0000
+       .long   1657417                 # 0x194a49
+       .long   1242696448              # 0x4a120b00
+       .long   6485                    # 0x1955
+       .long   1615598091              # 0x604c120b
+       .long   184549401               # 0xb000019
+       .long   426462482               # 0x196b4d12
+       .long   302710784               # 0x120b0000
+       .long   1668686                 # 0x19764e
+       .long   1326582528              # 0x4f120b00
+       .long   6529                    # 0x1981
+       .long   2354123275              # 0x8c51120b
+       .long   184549401               # 0xb000019
+       .long   430068242               # 0x19a25212
+       .long   336265216               # 0x140b0000
+       .long   1682741                 # 0x19ad35
+       .long   907283200               # 0x36140b00
+       .long   6579                    # 0x19b3
+       .long   3409384459              # 0xcb37140b
+       .long   184549401               # 0xb000019
+       .long   433930263               # 0x19dd4017
+       .long   386596864               # 0x170b0000
+       .long   1699905                 # 0x19f041
+       .long   1108806400              # 0x42170b00
+       .long   6659                    # 0x1a03
+       .long   373495563               # 0x1643170b
+       .long   184549402               # 0xb00001a
+       .long   438912023               # 0x1a294417
+       .long   386596864               # 0x170b0000
+       .long   1719365                 # 0x1a3c45
+       .long   1175915264              # 0x46170b00
+       .long   6735                    # 0x1a4f
+       .long   1648826123              # 0x6247170b
+       .long   184549402               # 0xb00001a
+       .long   443893783               # 0x1a754817
+       .long   386596864               # 0x170b0000
+       .long   1738825                 # 0x1a8849
+       .long   1243024128              # 0x4a170b00
+       .long   6811                    # 0x1a9b
+       .long   2924156683              # 0xae4b170b
+       .long   184549402               # 0xb00001a
+       .long   448875543               # 0x1ac14c17
+       .long   386596864               # 0x170b0000
+       .long   1758295                 # 0x1ad457
+       .long   289867520               # 0x11470700
+       .long   187826176               # 0xb320000
+       .long   3993960448              # 0xee0f0000
+       .long   1114887                 # 0x110307
+       .long   251904                  # 0x3d800
+       .long   200216320               # 0xbef0f00
+       .long   451359770               # 0x1ae7341a
+       .long   453705728               # 0x1b0b0000
+       .long   1768319                 # 0x1afb7f
+       .long   2149255936              # 0x801b0b00
+       .long   6920                    # 0x1b08
+       .long   897719051               # 0x35821b0b
+       .long   184549403               # 0xb00001b
+       .long   457213467               # 0x1b40861b
+       .long   453705728               # 0x1b0b0000
+       .long   1792649                 # 0x1b5a89
+       .long   2350582528              # 0x8c1b0b00
+       .long   7022                    # 0x1b6e
+       .long   2173508363              # 0x818d1b0b
+       .long   184549403               # 0xb00001b
+       .long   462786075               # 0x1b958e1b
+       .long   453705728               # 0x1b0b0000
+       .long   1812879                 # 0x1ba98f
+       .long   2417691392              # 0x901b0b00
+       .long   7159                    # 0x1bf7
+       .long   277945099               # 0x10911b0b
+       .long   184549404               # 0xb00001c
+       .long   472486427               # 0x1c29921b
+       .long   453705728               # 0x1b0b0000
+       .long   1850003                 # 0x1c3a93
+       .long   2484800256              # 0x941b0b00
+       .long   7242                    # 0x1c4a
+       .long   1586830091              # 0x5e951b0b
+       .long   184549404               # 0xb00001c
+       .long   477271579               # 0x1c72961b
+       .long   453705728               # 0x1b0b0000
+       .long   1870743                 # 0x1c8b97
+       .long   2568686336              # 0x991b0b00
+       .long   7327                    # 0x1c9f
+       .long   3097107211              # 0xb89a1b0b
+       .long   184549404               # 0xb00001c
+       .long   483826459               # 0x1cd69b1b
+       .long   453705728               # 0x1b0b0000
+       .long   1897629                 # 0x1cf49d
+       .long   2686126848              # 0xa01b0b00
+       .long   7443                    # 0x1d13
+       .long   614669067               # 0x24a31b0b
+       .long   184549405               # 0xb00001d
+       .long   489858075               # 0x1d32a41b
+       .long   453705728               # 0x1b0b0000
+       .long   1919909                 # 0x1d4ba5
+       .long   2786790144              # 0xa61b0b00
+       .long   7515                    # 0x1d5b
+       .long   2024217355              # 0x78a71b0b
+       .long   184549405               # 0xb00001d
+       .long   496347163               # 0x1d95a81b
+       .long   453705728               # 0x1b0b0000
+       .long   1946281                 # 0x1db2a9
+       .long   2870676224              # 0xab1b0b00
+       .long   7622                    # 0x1dc6
+       .long   3836484363              # 0xe4ac1b0b
+       .long   184549405               # 0xb00001d
+       .long   503181339               # 0x1dfdf01b
+       .long   453705728               # 0x1b0b0000
+       .long   1977074                 # 0x1e2af2
+       .long   4095412992              # 0xf41b0b00
+       .long   7739                    # 0x1e3b
+       .long   670374667               # 0x27f51b0b
+       .long   184549377               # 0xb000001
+       .long   508556827               # 0x1e4ff61b
+       .long   453705728               # 0x1b0b0000
+       .long   1992952                 # 0x1e68f8
+       .long   4179299072              # 0xf91b0b00
+       .long   7862                    # 0x1eb6
+       .long   2096765707              # 0x7cfa1b0b
+       .long   184549406               # 0xb00001e
+       .long   513407771               # 0x1e99fb1b
+       .long   453705728               # 0x1b0b0000
+       .long   2019068                 # 0x1ecefc
+       .long   1646201600              # 0x621f0b00
+       .long   7910                    # 0x1ee6
+       .long   4049805067              # 0xf1631f0b
+       .long   184549406               # 0xb00001e
+       .long   520709407               # 0x1f09651f
+       .long   520814592               # 0x1f0b0000
+       .long   2039398                 # 0x1f1e66
+       .long   1730087680              # 0x671f0b00
+       .long   7985                    # 0x1f31
+       .long   1164451595              # 0x45681f0b
+       .long   184549407               # 0xb00001f
+       .long   525953311               # 0x1f59691f
+       .long   520814592               # 0x1f0b0000
+       .long   2059370                 # 0x1f6c6a
+       .long   1797196544              # 0x6b1f0b00
+       .long   8064                    # 0x1f80
+       .long   2657885963              # 0x9e6c1f0b
+       .long   184549407               # 0xb00001f
+       .long   532442399               # 0x1fbc6d1f
+       .long   520814592               # 0x1f0b0000
+       .long   2085998                 # 0x1fd46e
+       .long   1864305408              # 0x6f1f0b00
+       .long   8174                    # 0x1fee
+       .long   124788491               # 0x7701f0b
+       .long   184549408               # 0xb000020
+       .long   538997023               # 0x2020711f
+       .long   520814592               # 0x1f0b0000
+       .long   2114418                 # 0x204372
+       .long   1931414272              # 0x731f0b00
+       .long   8288                    # 0x2060
+       .long   2054430475              # 0x7a741f0b
+       .long   184549408               # 0xb000020
+       .long   546862367               # 0x2098751f
+       .long   520814592               # 0x1f0b0000
+       .long   2145142                 # 0x20bb76
+       .long   1998523136              # 0x771f0b00
+       .long   8399                    # 0x20cf
+       .long   4067958539              # 0xf2781f0b
+       .long   184549408               # 0xb000020
+       .long   554072351               # 0x2106791f
+       .long   520814592               # 0x1f0b0000
+       .long   2167676                 # 0x21137c
+       .long   2115963648              # 0x7e1f0b00
+       .long   8487                    # 0x2127
+       .long   931077899               # 0x377f1f0b
+       .long   184549409               # 0xb000021
+       .long   558661663               # 0x214c801f
+       .long   520814592               # 0x1f0b0000
+       .long   2188673                 # 0x216581
+       .long   2183072512              # 0x821f0b00
+       .long   8568                    # 0x2178
+       .long   2357403403              # 0x8c831f0b
+       .long   184549409               # 0xb000021
+       .long   564102175               # 0x219f841f
+       .long   520814592               # 0x1f0b0000
+       .long   2209669                 # 0x21b785
+       .long   2250181376              # 0x861f0b00
+       .long   8647                    # 0x21c7
+       .long   3699842827              # 0xdc871f0b
+       .long   184549409               # 0xb000021
+       .long   569477151               # 0x21f1881f
+       .long   520814592               # 0x1f0b0000
+       .long   2233481                 # 0x221489
+       .long   2317290240              # 0x8a1f0b00
+       .long   8750                    # 0x222e
+       .long   1217077003              # 0x488b1f0b
+       .long   184549410               # 0xb000022
+       .long   576032031               # 0x22558d1f
+       .long   520814592               # 0x1f0b0000
+       .long   2254991                 # 0x22688f
+       .long   2417953536              # 0x901f0b00
+       .long   8833                    # 0x2281
+       .long   2677088011              # 0x9f911f0b
+       .long   184549410               # 0xb000022
+       .long   582455839               # 0x22b7921f
+       .long   520814592               # 0x1f0b0000
+       .long   2282937                 # 0x22d5b9
+       .long   3122596608              # 0xba1f0b00
+       .long   8948                    # 0x22f4
+       .long   314253067               # 0x12bb1f0b
+       .long   184549411               # 0xb000023
+       .long   590068767               # 0x232bbc1f
+       .long   520814592               # 0x1f0b0000
+       .long   2313917                 # 0x234ebd
+       .long   1378093824              # 0x52240b00
+       .long   9068                    # 0x236c
+       .long   2169709579              # 0x8153240b
+       .long   184549411               # 0xb000023
+       .long   249386020               # 0xedd5424
+       .long   604700672               # 0x240b0000
+       .long   2329686                 # 0x238c56
+       .long   1461979904              # 0x57240b00
+       .long   9119                    # 0x239f
+       .long   2992186379              # 0xb259240b
+       .long   184549411               # 0xb000023
+       .long   600136484               # 0x23c55b24
+       .long   604700672               # 0x240b0000
+       .long   2349148                 # 0x23d85c
+       .long   1562643200              # 0x5d240b00
+       .long   9200                    # 0x23f0
+       .long   56501259                # 0x35e240b
+       .long   184549412               # 0xb000024
+       .long   605445924               # 0x24165f24
+       .long   604700672               # 0x240b0000
+       .long   2369888                 # 0x242960
+       .long   1629752064              # 0x61240b00
+       .long   9276                    # 0x243c
+       .long   1331831819              # 0x4f62240b
+       .long   184549412               # 0xb000024
+       .long   610427684               # 0x24626324
+       .long   604700672               # 0x240b0000
+       .long   2389348                 # 0x247564
+       .long   1696860928              # 0x65240b00
+       .long   9352                    # 0x2488
+       .long   2691048459              # 0xa066240b
+       .long   184549412               # 0xb000024
+       .long   615737124               # 0x24b36724
+       .long   604700672               # 0x240b0000
+       .long   2410088                 # 0x24c668
+       .long   1763969792              # 0x69240b00
+       .long   9433                    # 0x24d9
+       .long   556557                  # 0x87e0d
+       .long   598016                  # 0x92000
+       .long   2169379328              # 0x814e1a00
+       .long   16777239                # 0x1000017
+       .long   394333697               # 0x17810e01
+       .long   184549376               # 0xb000000
+       .long   634141736               # 0x25cc3c28
+       .long   671809536               # 0x280b0000
+       .long   2482749                 # 0x25e23d
+       .long   1042811648              # 0x3e280b00
+       .long   5322                    # 0x14ca
+       .long   4164954123              # 0xf840280b
+       .long   184549413               # 0xb000025
+       .long   637878568               # 0x26054128
+       .long   671809536               # 0x280b0000
+       .long   2497858                 # 0x261d42
+       .long   1126697728              # 0x43280b00
+       .long   9781                    # 0x2635
+       .long   1296312331              # 0x4d44280b
+       .long   184549414               # 0xb000026
+       .long   643843368               # 0x26604528
+       .long   671809536               # 0x280b0000
+       .long   2522438                 # 0x267d46
+       .long   1193806592              # 0x47280b00
+       .long   9872                    # 0x2690
+       .long   2739415051              # 0xa348280b
+       .long   184549414               # 0xb000026
+       .long   11032107                # 0xa8562b
+       .long   722141184               # 0x2b0b0000
+       .long   91735                   # 0x16657
+       .long   1395460864              # 0x532d0b00
+       .long   9930                    # 0x26ca
+       .long   3714460939              # 0xdd662d0b
+       .long   184549414               # 0xb000026
+       .long   653293869               # 0x26f0792d
+       .long   755695616               # 0x2d0b0000
+       .long   2556812                 # 0x27038c
+       .long   2704083712              # 0xa12d0b00
+       .long   10011                   # 0x271b
+       .long   783559947               # 0x2eb42d0b
+       .long   184549415               # 0xb000027
+       .long   658622253               # 0x2741c72d
+       .long   755695616               # 0x2d0b0000
+       .long   2577626                 # 0x2754da
+       .long   3979152128              # 0xed2d0b00
+       .long   10087                   # 0x2767
+       .long   16788748                # 0x1002d0c
+       .long   10106                   # 0x277a
+       .long   18033932                # 0x1132d0c
+       .long   10125                   # 0x278d
+       .long   19410188                # 0x1282d0c
+       .long   10149                   # 0x27a5
+       .long   20655372                # 0x13b2d0c
+       .long   10178                   # 0x27c2
+       .long   21900556                # 0x14e2d0c
+       .long   10202                   # 0x27da
+       .long   23145740                # 0x1612d0c
+       .long   10221                   # 0x27ed
+       .long   24390924                # 0x1742d0c
+       .long   10240                   # 0x2800
+       .long   25177356                # 0x1802d0c
+       .long   10269                   # 0x281d
+       .long   27602188                # 0x1a52d0c
+       .long   10293                   # 0x2835
+       .long   28847372                # 0x1b82d0c
+       .long   10312                   # 0x2848
+       .long   30092556                # 0x1cb2d0c
+       .long   10331                   # 0x285b
+       .long   31337740                # 0x1de2d0c
+       .long   10350                   # 0x286e
+       .long   32582924                # 0x1f12d0c
+       .long   10369                   # 0x2881
+       .long   69807372                # 0x4292d0c
+       .long   10388                   # 0x2894
+       .long   69872908                # 0x42a2d0c
+       .long   10399                   # 0x289f
+       .long   70069516                # 0x42d2d0c
+       .long   10410                   # 0x28aa
+       .long   70135052                # 0x42e2d0c
+       .long   10429                   # 0x28bd
+       .long   70200588                # 0x42f2d0c
+       .long   10448                   # 0x28d0
+       .long   70331660                # 0x4312d0c
+       .long   10467                   # 0x28e3
+       .long   70397196                # 0x4322d0c
+       .long   10486                   # 0x28f6
+       .long   70462732                # 0x4332d0c
+       .long   10505                   # 0x2909
+       .long   70593804                # 0x4352d0c
+       .long   10524                   # 0x291c
+       .long   70659340                # 0x4362d0c
+       .long   10543                   # 0x292f
+       .long   70724876                # 0x4372d0c
+       .long   10562                   # 0x2942
+       .long   70855948                # 0x4392d0c
+       .long   10581                   # 0x2955
+       .long   70921484                # 0x43a2d0c
+       .long   10600                   # 0x2968
+       .long   70987020                # 0x43b2d0c
+       .long   10619                   # 0x297b
+       .long   71118092                # 0x43d2d0c
+       .long   10638                   # 0x298e
+       .long   71183628                # 0x43e2d0c
+       .long   10662                   # 0x29a6
+       .long   71249164                # 0x43f2d0c
+       .long   10686                   # 0x29be
+       .long   71380236                # 0x4412d0c
+       .long   10710                   # 0x29d6
+       .long   71445772                # 0x4422d0c
+       .long   10729                   # 0x29e9
+       .long   71511308                # 0x4432d0c
+       .long   10748                   # 0x29fc
+       .long   71642380                # 0x4452d0c
+       .long   10767                   # 0x2a0f
+       .long   71707916                # 0x4462d0c
+       .long   10786                   # 0x2a22
+       .long   71773452                # 0x4472d0c
+       .long   10805                   # 0x2a35
+       .long   71904524                # 0x4492d0c
+       .long   10824                   # 0x2a48
+       .long   71970060                # 0x44a2d0c
+       .long   10843                   # 0x2a5b
+       .long   72035596                # 0x44b2d0c
+       .long   10862                   # 0x2a6e
+       .long   72166668                # 0x44d2d0c
+       .long   10881                   # 0x2a81
+       .long   72232204                # 0x44e2d0c
+       .long   10900                   # 0x2a94
+       .long   72297740                # 0x44f2d0c
+       .long   10919                   # 0x2aa7
+       .long   72428812                # 0x4512d0c
+       .long   10938                   # 0x2aba
+       .long   72494348                # 0x4522d0c
+       .long   10963                   # 0x2ad3
+       .long   72559884                # 0x4532d0c
+       .long   10988                   # 0x2aec
+       .long   72690956                # 0x4552d0c
+       .long   11013                   # 0x2b05
+       .long   72756492                # 0x4562d0c
+       .long   11043                   # 0x2b23
+       .long   72822028                # 0x4572d0c
+       .long   11073                   # 0x2b41
+       .long   72953100                # 0x4592d0c
+       .long   11103                   # 0x2b5f
+       .long   73018636                # 0x45a2d0c
+       .long   11128                   # 0x2b78
+       .long   73084172                # 0x45b2d0c
+       .long   11153                   # 0x2b91
+       .long   73215244                # 0x45d2d0c
+       .long   11178                   # 0x2baa
+       .long   73280780                # 0x45e2d0c
+       .long   11203                   # 0x2bc3
+       .long   73346316                # 0x45f2d0c
+       .long   11228                   # 0x2bdc
+       .long   73477388                # 0x4612d0c
+       .long   11253                   # 0x2bf5
+       .long   73542924                # 0x4622d0c
+       .long   11277                   # 0x2c0d
+       .long   73608460                # 0x4632d0c
+       .long   11301                   # 0x2c25
+       .long   73739532                # 0x4652d0c
+       .long   11325                   # 0x2c3d
+       .long   73805068                # 0x4662d0c
+       .long   11345                   # 0x2c51
+       .long   73870604                # 0x4672d0c
+       .long   11365                   # 0x2c65
+       .long   74001676                # 0x4692d0c
+       .long   11385                   # 0x2c79
+       .long   74067212                # 0x46a2d0c
+       .long   11404                   # 0x2c8c
+       .long   74132748                # 0x46b2d0c
+       .long   11423                   # 0x2c9f
+       .long   74329356                # 0x46e2d0c
+       .long   11442                   # 0x2cb2
+       .long   74394892                # 0x46f2d0c
+       .long   11462                   # 0x2cc6
+       .long   74460428                # 0x4702d0c
+       .long   11482                   # 0x2cda
+       .long   74591500                # 0x4722d0c
+       .long   11502                   # 0x2cee
+       .long   74657036                # 0x4732d0c
+       .long   11522                   # 0x2d02
+       .long   74722572                # 0x4742d0c
+       .long   11542                   # 0x2d16
+       .long   74919180                # 0x4772d0c
+       .long   11562                   # 0x2d2a
+       .long   74984716                # 0x4782d0c
+       .long   11581                   # 0x2d3d
+       .long   75050252                # 0x4792d0c
+       .long   11600                   # 0x2d50
+       .long   75181324                # 0x47b2d0c
+       .long   11619                   # 0x2d63
+       .long   75246860                # 0x47c2d0c
+       .long   11638                   # 0x2d76
+       .long   75312396                # 0x47d2d0c
+       .long   11657                   # 0x2d89
+       .long   75443468                # 0x47f2d0c
+       .long   11676                   # 0x2d9c
+       .long   75509004                # 0x4802d0c
+       .long   11695                   # 0x2daf
+       .long   75574540                # 0x4812d0c
+       .long   11714                   # 0x2dc2
+       .long   75705612                # 0x4832d0c
+       .long   11733                   # 0x2dd5
+       .long   75771148                # 0x4842d0c
+       .long   11753                   # 0x2de9
+       .long   75836684                # 0x4852d0c
+       .long   11773                   # 0x2dfd
+       .long   75967756                # 0x4872d0c
+       .long   11793                   # 0x2e11
+       .long   76033292                # 0x4882d0c
+       .long   11813                   # 0x2e25
+       .long   76098828                # 0x4892d0c
+       .long   11833                   # 0x2e39
+       .long   76229900                # 0x48b2d0c
+       .long   11853                   # 0x2e4d
+       .long   76295436                # 0x48c2d0c
+       .long   11872                   # 0x2e60
+       .long   76360972                # 0x48d2d0c
+       .long   11891                   # 0x2e73
+       .long   76492044                # 0x48f2d0c
+       .long   11910                   # 0x2e86
+       .long   76557580                # 0x4902d0c
+       .long   11930                   # 0x2e9a
+       .long   76623116                # 0x4912d0c
+       .long   11950                   # 0x2eae
+       .long   76754188                # 0x4932d0c
+       .long   11970                   # 0x2ec2
+       .long   76819724                # 0x4942d0c
+       .long   11995                   # 0x2edb
+       .long   76885260                # 0x4952d0c
+       .long   12020                   # 0x2ef4
+       .long   77016332                # 0x4972d0c
+       .long   12045                   # 0x2f0d
+       .long   77081868                # 0x4982d0c
+       .long   12070                   # 0x2f26
+       .long   77147404                # 0x4992d0c
+       .long   12095                   # 0x2f3f
+       .long   77278476                # 0x49b2d0c
+       .long   12120                   # 0x2f58
+       .long   77344012                # 0x49c2d0c
+       .long   12145                   # 0x2f71
+       .long   77409548                # 0x49d2d0c
+       .long   12170                   # 0x2f8a
+       .long   77540620                # 0x49f2d0c
+       .long   12195                   # 0x2fa3
+       .long   77606156                # 0x4a02d0c
+       .long   12225                   # 0x2fc1
+       .long   77671692                # 0x4a12d0c
+       .long   12255                   # 0x2fdf
+       .long   77802764                # 0x4a32d0c
+       .long   12285                   # 0x2ffd
+       .long   77868300                # 0x4a42d0c
+       .long   12305                   # 0x3011
+       .long   77933836                # 0x4a52d0c
+       .long   12325                   # 0x3025
+       .long   78064908                # 0x4a72d0c
+       .long   12345                   # 0x3039
+       .long   78130444                # 0x4a82d0c
+       .long   12365                   # 0x304d
+       .long   78195980                # 0x4a92d0c
+       .long   12385                   # 0x3061
+       .long   78327052                # 0x4ab2d0c
+       .long   12405                   # 0x3075
+       .long   78392588                # 0x4ac2d0c
+       .long   12430                   # 0x308e
+       .long   78458124                # 0x4ad2d0c
+       .long   12455                   # 0x30a7
+       .long   78589196                # 0x4af2d0c
+       .long   12480                   # 0x30c0
+       .long   78654732                # 0x4b02d0c
+       .long   12505                   # 0x30d9
+       .long   78720268                # 0x4b12d0c
+       .long   12530                   # 0x30f2
+       .long   78851340                # 0x4b32d0c
+       .long   12555                   # 0x310b
+       .long   78916876                # 0x4b42d0c
+       .long   12574                   # 0x311e
+       .long   78982412                # 0x4b52d0c
+       .long   12593                   # 0x3131
+       .long   79113484                # 0x4b72d0c
+       .long   12612                   # 0x3144
+       .long   79179020                # 0x4b82d0c
+       .long   12632                   # 0x3158
+       .long   79244556                # 0x4b92d0c
+       .long   12652                   # 0x316c
+       .long   2162110219              # 0x80df2f0b
+       .long   184549425               # 0xb000031
+       .long   831976495               # 0x3196f42f
+       .long   789250048               # 0x2f0b0000
+       .long   3258104                 # 0x31b6f8
+       .long   4180609792              # 0xf92f0b00
+       .long   12748                   # 0x31cc
+       .long   3892129547              # 0xe7fd2f0b
+       .long   184549425               # 0xb000031
+       .long   839056943               # 0x3202fe2f
+       .long   789315584               # 0x2f0c0000
+       .long   840761600               # 0x321d0100
+       .long   789315584               # 0x2f0c0000
+       .long   842531073               # 0x32380101
+       .long   789315584               # 0x2f0c0000
+       .long   844300546               # 0x32530102
+       .long   789315584               # 0x2f0c0000
+       .long   846070020               # 0x326e0104
+       .long   789315584               # 0x2f0c0000
+       .long   847511813               # 0x32840105
+       .long   789315584               # 0x2f0c0000
+       .long   849281286               # 0x329f0106
+       .long   789315584               # 0x2f0c0000
+       .long   850723079               # 0x32b50107
+       .long   789315584               # 0x2f0c0000
+       .long   852492553               # 0x32d00109
+       .long   789315584               # 0x2f0c0000
+       .long   853934355               # 0x32e60113
+       .long   789315584               # 0x2f0c0000
+       .long   856031508               # 0x33060114
+       .long   789315584               # 0x2f0c0000
+       .long   857473301               # 0x331c0115
+       .long   789315584               # 0x2f0c0000
+       .long   858915096               # 0x33320118
+       .long   789315584               # 0x2f0c0000
+       .long   860684570               # 0x334d011a
+       .long   789315584               # 0x2f0c0000
+       .long   862781725               # 0x336d011d
+       .long   789315584               # 0x2f0c0000
+       .long   864551198               # 0x3388011e
+       .long   117440512               # 0x7000000
+       .long   3707                    # 0xe7b
+       .long   467                     # 0x1d3
+       .long   2248607238              # 0x86070606
+       .long   3539992590              # 0xd300000e
+       .long   83886098                # 0x5000012
+       .long   134552597               # 0x8051c15
+       .long   3406892293              # 0xcb110d05
+       .long   3388997633              # 0xca000001
+       .long   83886094                # 0x500000e
+       .long   2294287                 # 0x23020f
+       .long   1091857                 # 0x10a911
+       .long   960256                  # 0xea700
+       .long   34866432                # 0x2140500
+       .long   85787683                # 0x51d0423
+       .long   286262532               # 0x11100504
+       .long   4964                    # 0x1364
+       .long   156                     # 0x9c
+       .long   587338245               # 0x23021205
+       .long   68292864                # 0x4121100
+       .long   248578048               # 0xed10000
+       .long   319094784               # 0x13050000
+       .long   8962                    # 0x2302
+       .long   86246656                # 0x5240500
+       .long   67436544                # 0x4050000
+       .long   21251                   # 0x5303
+       .long   5905920                 # 0x5a1e00
+       .long   262144                  # 0x40000
+       .long   39943                   # 0x9c07
+       .long   815360                  # 0xc7100
+       .long   521406464               # 0x1f140800
+       .long   304                     # 0x130
+       .long   3707846153              # 0xdd013e09
+       .long   16777230                # 0x100000e
+       .long   248122881               # 0xeca0e01
+       .long   520093696               # 0x1f000000
+       .long   4831                    # 0x12df
+       .long   3707950857              # 0xdd02d709
+       .long   16777230                # 0x100000e
+       .long   252710401               # 0xf100e01
+       .long   536870912               # 0x20000000
+       .long   3861                    # 0xf15
+       .long   991239                  # 0xf2007
+       .long   401920                  # 0x62200
+       .long   553978880               # 0x21050c00
+       .long   270085                  # 0x41f05
+       .long   4111128576              # 0xf50ad800
+       .long   817169                  # 0xc7811
+       .long   969216                  # 0xeca00
+       .long   49678848                # 0x2f60a00
+       .long   873529379               # 0x34110023
+       .long   3808428045              # 0xe300000d
+       .long   167772176               # 0xa000010
+       .long   136512251               # 0x82302fb
+       .long   442129                  # 0x6bf11
+       .long   1106688                 # 0x10e300
+       .long   50072064                # 0x2fc0a00
+       .long   2668695587              # 0x9f111023
+       .long   3808428052              # 0xe3000014
+       .long   167772176               # 0xa000010
+       .long   404947709               # 0x182302fd
+       .long   722449                  # 0xb0611
+       .long   1106688                 # 0x10e300
+       .long   50203136                # 0x2fe0a00
+       .long   2903580707              # 0xad112023
+       .long   3808428032              # 0xe3000000
+       .long   167772176               # 0xa000010
+       .long   673383167               # 0x282302ff
+       .long   337954                  # 0x52822
+       .long   1106688                 # 0x10e300
+       .long   16779776                # 0x1000a00
+       .long   573580034               # 0x22302302
+       .long   4273                    # 0x10b1
+       .long   4323                    # 0x10e3
+       .long   33620234                # 0x201010a
+       .long   908212259               # 0x36223823
+       .long   3808428037              # 0xe3000005
+       .long   167772176               # 0xa000010
+       .long   587333890               # 0x23020102
+       .long   209658432               # 0xc7f2240
+       .long   283312128               # 0x10e30000
+       .long   67764224                # 0x40a0000
+       .long   1210253825              # 0x48230201
+       .long   397858                  # 0x61222
+       .long   1106688                 # 0x10e300
+       .long   17107456                # 0x1050a00
+       .long   575677186               # 0x22502302
+       .long   2450                    # 0x992
+       .long   4323                    # 0x10e3
+       .long   33621514                # 0x201060a
+       .long   3710015523              # 0xdd225823
+       .long   3892314113              # 0xe8000001
+       .long   167772176               # 0xa000010
+       .long   587333896               # 0x23020108
+       .long   114041440               # 0x6cc2260
+       .long   284360704               # 0x10f30000
+       .long   168427520               # 0xa0a0000
+       .long   1747124737              # 0x68230201
+       .long   124450                  # 0x1e622
+       .long   969216                  # 0xeca00
+       .long   17566208                # 0x10c0a00
+       .long   577774338               # 0x22702302
+       .long   942                     # 0x3ae
+       .long   3786                    # 0xeca
+       .long   33624074                # 0x201100a
+       .long   1730311203              # 0x67227423
+       .long   4160749575              # 0xf8000007
+       .long   167772176               # 0xa000010
+       .long   587333906               # 0x23020112
+       .long   185934456               # 0xb152278
+       .long   285868032               # 0x110a0000
+       .long   369754112               # 0x160a0000
+       .long   2149778177              # 0x80230301
+       .long   124985857               # 0x7732201
+       .long   286326784               # 0x11110000
+       .long   386531328               # 0x170a0000
+       .long   2183332609              # 0x82230301
+       .long   186720769               # 0xb212201
+       .long   286785536               # 0x11180000
+       .long   403308544               # 0x180a0000
+       .long   2200109825              # 0x83230301
+       .long   68755969                # 0x4192201
+       .long   287571968               # 0x11240000
+       .long   470417408               # 0x1c0a0000
+       .long   2283995905              # 0x88230301
+       .long   12263937                # 0xbb2201
+       .long   288358400               # 0x11300000
+       .long   621412352               # 0x250a0000
+       .long   2418213633              # 0x90230301
+       .long   310059521               # 0x127b2201
+       .long   289079296               # 0x113b0000
+       .long   755630080               # 0x2d0a0000
+       .long   2552431361              # 0x98230301
+       .long   346890753               # 0x14ad2201
+       .long   289079296               # 0x113b0000
+       .long   772407296               # 0x2e0a0000
+       .long   2686649089              # 0xa0230301
+       .long   598529                  # 0x92201
+       .long   289079296               # 0x113b0000
+       .long   789184512               # 0x2f0a0000
+       .long   2820866817              # 0xa8230301
+       .long   12788225                # 0xc32201
+       .long   289079296               # 0x113b0000
+       .long   805961728               # 0x300a0000
+       .long   2955084545              # 0xb0230301
+       .long   187376129               # 0xb2b2201
+       .long   289144832               # 0x113c0000
+       .long   839516160               # 0x320a0000
+       .long   3089302273              # 0xb8230301
+       .long   263856641               # 0xfba2201
+       .long   248119296               # 0xeca0000
+       .long   856293376               # 0x330a0000
+       .long   3223520001              # 0xc0230301
+       .long   177152513               # 0xa8f2201
+       .long   290324480               # 0x114e0000
+       .long   889847808               # 0x350a0000
+       .long   3290628865              # 0xc4230301
+       .long   1394606081              # 0x53200001
+       .long   536870912               # 0x20000000
+       .long   4333                    # 0x10ed
+       .long   630563                  # 0x99f23
+       .long   538968320               # 0x20200100
+       .long   117440527               # 0x700000f
+       .long   4355                    # 0x1103
+       .long   2474                    # 0x9aa
+       .long   3188034562              # 0xbe058c02
+       .long   83886096                # 0x5000010
+       .long   79824136                # 0x4c20508
+       .long   34013184                # 0x2070000
+       .long   369669                  # 0x5a405
+       .long   50398720                # 0x3010600
+       .long   83                      # 0x53
+       .long   23070                   # 0x5a1e
+       .long   536871168               # 0x20000100
+       .long   4393                    # 0x1129
+       .long   635428                  # 0x9b224
+       .long   127535616               # 0x79a0a00
+       .long   4355                    # 0x1103
+       .long   3926                    # 0xf56
+       .long   119901442               # 0x7258d02
+       .long   4423                    # 0x1147
+       .long   2866                    # 0xb32
+       .long   3439668747              # 0xcd052e0b
+       .long   117440514               # 0x7000002
+       .long   5440264                 # 0x530308
+       .long   1511915520              # 0x5a1e0000
+       .long   335544320               # 0x14000000
+       .long   347348736               # 0x14b41f00
+       .long   4094230528              # 0xf4090000
+       .long   1144834                 # 0x117802
+       .long   234946816               # 0xe010100
+       .long   4472                    # 0x1178
+       .long   969230                  # 0xeca0e
+       .long   252710400               # 0xf100e00
+       .long   536870912               # 0x20000000
+       .long   4477                    # 0x117d
+       .long   79365                   # 0x13605
+       .long   520357120               # 0x1f040500
+       .long   1064                    # 0x428
+       .long   3707954441              # 0xdd02e509
+       .long   16777230                # 0x100000e
+       .long   293408257               # 0x117d0e01
+       .long   269352960               # 0x100e0000
+       .long   15                      # 0xf
+       .long   126495                  # 0x1ee1f
+       .long   50006272                # 0x2fb0900
+       .long   3786                    # 0xeca
+       .long   3054371073              # 0xb60e0101
+       .long   234881041               # 0xe000011
+       .long   3856                    # 0xf10
+       .long   297476096               # 0x11bb2000
+       .long   2099642368              # 0x7d260000
+       .long   520093713               # 0x1f000011
+       .long   1922                    # 0x782
+       .long   3389144329              # 0xca023d09
+       .long   16777230                # 0x100000e
+       .long   252710401               # 0xf100e01
+       .long   3389915136              # 0xca0e0000
+       .long   14                      # 0xe
+       .long   868639                  # 0xd411f
+       .long   38013184                # 0x2440900
+       .long   3786                    # 0xeca
+       .long   269353217               # 0x100e0101
+       .long   234881039               # 0xe00000f
+       .long   4534                    # 0x11b6
+       .long   3525247015              # 0xd21f0027
+       .long   150994957               # 0x900000d
+       .long   248119917               # 0xeca026d
+       .long   16842752                # 0x1010000
+       .long   987150                  # 0xf100e
+       .long   297143808               # 0x11b60e00
+       .long   2555904                 # 0x270000
+       .long   447263                  # 0x6d31f
+       .long   47712512                # 0x2d80900
+       .long   3805                    # 0xedd
+       .long   269353217               # 0x100e0101
+       .long   15                      # 0xf
+       .long   274216                  # 0x42f28
+       .long   48105728                # 0x2de0900
+       .long   3805                    # 0xedd
+       .long   3340697857              # 0xc71f0101
+       .long   150994960               # 0x9000010
+       .long   289145161               # 0x113c0149
+       .long   16842752                # 0x1010000
+       .long   1199374                 # 0x124d0e
+       .long   289148416               # 0x113c0e00
+       .long   1460535296              # 0x570e0000
+       .long   18                      # 0x12
+       .long   1200672                 # 0x125220
+       .long   5449216                 # 0x532600
+       .long   1881145344              # 0x70200000
+       .long   520093710               # 0x1f00000e
+       .long   3936                    # 0xf60
+       .long   1006708745              # 0x3c012809
+       .long   16777233                # 0x1000011
+       .long   293080577               # 0x11780e01
+       .long   1292763136              # 0x4d0e0000
+       .long   234881042               # 0xe000012
+       .long   4412                    # 0x113c
+       .long   1201934                 # 0x12570e
+       .long   3139371008              # 0xbb1f0000
+       .long   150994964               # 0x9000014
+       .long   248119588               # 0xeca0124
+       .long   16842752                # 0x1010000
+       .long   1217294                 # 0x12930e
+       .long   2552233984              # 0x98200000
+       .long   637534226               # 0x26000012
+       .long   3696                    # 0xe70
+       .long   1101343                 # 0x10ce1f
+       .long   22087936                # 0x1510900
+       .long   4412                    # 0x113c
+       .long   2014183681              # 0x780e0101
+       .long   234881041               # 0xe000011
+       .long   4800                    # 0x12c0
+       .long   1129486                 # 0x113c0e
+       .long   307695104               # 0x12570e00
+       .long   536870912               # 0x20000000
+       .long   4685                    # 0x124d
+       .long   344607                  # 0x5421f
+       .long   48630016                # 0x2e60900
+       .long   3805                    # 0xedd
+       .long   2098069761              # 0x7d0e0101
+       .long   234881041               # 0xe000011
+       .long   3856                    # 0xf10
+       .long   210575104               # 0xc8d1f00
+       .long   3960012800              # 0xec090000
+       .long   974082                  # 0xedd02
+       .long   234946816               # 0xe010100
+       .long   4477                    # 0x117d
+       .long   317071104               # 0x12e61f00
+       .long   1309212672              # 0x4e090000
+       .long   969218                  # 0xeca02
+       .long   234946816               # 0xe010100
+       .long   4472                    # 0x1178
+       .long   1129486                 # 0x113c0e
+       .long   297143808               # 0x11b60e00
+       .long   2555904                 # 0x270000
+       .long   769567                  # 0xbbe1f
+       .long   41355520                # 0x2770900
+       .long   3786                    # 0xeca
+       .long   3054371073              # 0xb60e0101
+       .long   234881041               # 0xe000011
+       .long   4534                    # 0x11b6
+       .long   3172925479              # 0xbd1f0027
+       .long   150994953               # 0x9000009
+       .long   249365251               # 0xedd0303
+       .long   16842752                # 0x1010000
+       .long   974094                  # 0xedd0e
+       .long   252710400               # 0xf100e00
+       .long   520093696               # 0x1f000000
+       .long   4312                    # 0x10d8
+       .long   3389150729              # 0xca025609
+       .long   16777230                # 0x100000e
+       .long   252710401               # 0xf100e01
+       .long   3054370816              # 0xb60e0000
+       .long   234881041               # 0xe000011
+       .long   4962                    # 0x1362
+       .long   325912320               # 0x136d0700
+       .long   317652992               # 0x12ef0000
+       .long   537722880               # 0x200d0000
+       .long   1106729                 # 0x10e329
+       .long   1181184                 # 0x120600
+       .long   103358208               # 0x6291f00
+       .long   2701721600              # 0xa1090000
+       .long   969218                  # 0xeca02
+       .long   234946816               # 0xe010100
+       .long   3856                    # 0xf10
+       .long   1160718                 # 0x11b60e
+       .long   325193216               # 0x13620e00
+       .long   520093696               # 0x1f000000
+       .long   1352                    # 0x548
+       .long   3389154057              # 0xca026309
+       .long   16777230                # 0x100000e
+       .long   293080577               # 0x11780e01
+       .long   1007550464              # 0x3c0e0000
+       .long   234881041               # 0xe000011
+       .long   4534                    # 0x11b6
+       .long   1270286                 # 0x13620e
+       .long   2065629184              # 0x7b1f0000
+       .long   150994958               # 0x900000e
+       .long   248119981               # 0xeca02ad
+       .long   16842752                # 0x1010000
+       .long   1160718                 # 0x11b60e
+       .long   297143808               # 0x11b60e00
+       .long   1645084672              # 0x620e0000
+       .long   19                      # 0x13
+       .long   824863                  # 0xc961f
+       .long   39717120                # 0x25e0900
+       .long   3786                    # 0xeca
+       .long   3054371073              # 0xb60e0101
+       .long   234881041               # 0xe000011
+       .long   4962                    # 0x1362
+       .long   264249088               # 0xfc01f00
+       .long   2835939328              # 0xa9090000
+       .long   969218                  # 0xeca02
+       .long   234946816               # 0xe010100
+       .long   4534                    # 0x11b6
+       .long   1270286                 # 0x13620e
+       .long   2770272256              # 0xa51f0000
+       .long   150994952               # 0x9000008
+       .long   289145133               # 0x113c012d
+       .long   16842752                # 0x1010000
+       .long   1106702                 # 0x10e30e
+       .long   293408256               # 0x117d0e00
+       .long   1460535296              # 0x570e0000
+       .long   18                      # 0x12
+       .long   1360682                 # 0x14c32a
+       .long   2019625216              # 0x78610900
+       .long   16777233                # 0x1000011
+       .long   293080577               # 0x11780e01
+       .long   3054370816              # 0xb60e0000
+       .long   17                      # 0x11
+       .long   870954                  # 0xd4a2a
+       .long   3395946752              # 0xca6a0900
+       .long   16777230                # 0x100000e
+       .long   297143809               # 0x11b60e01
+       .long   3054370816              # 0xb60e0000
+       .long   17                      # 0x11
+       .long   51754                   # 0xca2a
+       .long   3397585152              # 0xca830900
+       .long   16777230                # 0x100000e
+       .long   297143809               # 0x11b60e01
+       .long   3054370816              # 0xb60e0000
+       .long   17                      # 0x11
+       .long   406058                  # 0x6322a
+       .long   2018969856              # 0x78570900
+       .long   16777233                # 0x1000011
+       .long   293080577               # 0x11780e01
+       .long   3054370816              # 0xb60e0000
+       .long   17                      # 0x11
+       .long   188202                  # 0x2df2a
+       .long   1018890496              # 0x3cbb0900
+       .long   16777233                # 0x1000011
+       .long   297143809               # 0x11b60e01
+       .long   3054370816              # 0xb60e0000
+       .long   17                      # 0x11
+       .long   1185823                 # 0x12181f
+       .long   54724864                # 0x3430900
+       .long   4412                    # 0x113c
+       .long   2014183681              # 0x780e0101
+       .long   234881041               # 0xe000011
+       .long   4412                    # 0x113c
+       .long   1160718                 # 0x11b60e
+       .long   348130816               # 0x14c00e00
+       .long   536870912               # 0x20000000
+       .long   5317                    # 0x14c5
+       .long   1362470                 # 0x14ca26
+       .long   223421184               # 0xd512300
+       .long   704708608               # 0x2a010000
+       .long   1928                    # 0x788
+       .long   289201673               # 0x113cde09
+       .long   16842752                # 0x1010000
+       .long   1160718                 # 0x11b60e
+       .long   959053824               # 0x392a0000
+       .long   150994955               # 0x900000b
+       .long   1144933                 # 0x117865
+       .long   234946816               # 0xe010100
+       .long   4472                    # 0x1178
+       .long   1160718                 # 0x11b60e
+       .long   289148416               # 0x113c0e00
+       .long   704643072               # 0x2a000000
+       .long   4040                    # 0xfc8
+       .long   248147209               # 0xeca6d09
+       .long   16842752                # 0x1010000
+       .long   1160718                 # 0x11b60e
+       .long   297143808               # 0x11b60e00
+       .long   1007550464              # 0x3c0e0000
+       .long   17                      # 0x11
+       .long   827178                  # 0xc9f2a
+       .long   2019297536              # 0x785c0900
+       .long   16777233                # 0x1000011
+       .long   293080577               # 0x11780e01
+       .long   3054370816              # 0xb60e0000
+       .long   234881041               # 0xe000011
+       .long   4412                    # 0x113c
+       .long   140648192               # 0x8621f00
+       .long   1460207616              # 0x57090000
+       .long   1129473                 # 0x113c01
+       .long   234946816               # 0xe010100
+       .long   4323                    # 0x10e3
+       .long   1400078                 # 0x155d0e
+       .long   289148416               # 0x113c0e00
+       .long   1460535296              # 0x570e0000
+       .long   18                      # 0x12
+       .long   1160736                 # 0x11b620
+       .long   80816640                # 0x4d12a00
+       .long   3205038080              # 0xbf090000
+       .long   4412                    # 0x113c
+       .long   3054371073              # 0xb60e0101
+       .long   234881041               # 0xe000011
+       .long   4534                    # 0x11b6
+       .long   48701184                # 0x2e71f00
+       .long   2030632960              # 0x79090000
+       .long   1413889                 # 0x159301
+       .long   234946816               # 0xe010100
+       .long   4534                    # 0x11b6
+       .long   1415694                 # 0x159a0e
+       .long   1745158144              # 0x68050000
+       .long   67108879                # 0x400000f
+       .long   293085192               # 0x11782008
+       .long   1092550656              # 0x411f0000
+       .long   150994955               # 0x900000b
+       .long   364380542               # 0x15b8017e
+       .long   16842752                # 0x1010000
+       .long   1160718                 # 0x11b60e
+       .long   362417664               # 0x159a0e00
+       .long   83886080                # 0x5000000
+       .long   4641                    # 0x1221
+       .long   1781138436              # 0x6a2a0404
+       .long   150994963               # 0x9000013
+       .long   1145049                 # 0x1178d9
+       .long   234946816               # 0xe010100
+       .long   4472                    # 0x1178
+       .long   1160718                 # 0x11b60e
+       .long   362417664               # 0x159a0e00
+       .long   520093696               # 0x1f000000
+       .long   4862                    # 0x12fe
+       .long   50441225                # 0x301ac09
+       .long   16777233                # 0x1000011
+       .long   297143809               # 0x11b60e01
+       .long   2584608768              # 0x9a0e0000
+       .long   234881045               # 0xe000015
+       .long   3786                    # 0xeca
+       .long   348790528               # 0x14ca1f00
+       .long   2970157056              # 0xb1090000
+       .long   1132289                 # 0x114701
+       .long   234946816               # 0xe010100
+       .long   4534                    # 0x11b6
+       .long   1415694                 # 0x159a0e
+       .long   248122880               # 0xeca0e00
+       .long   704643072               # 0x2a000000
+       .long   750                     # 0x2ee
+       .long   289179401               # 0x113c8709
+       .long   16842752                # 0x1010000
+       .long   1144846                 # 0x11780e
+       .long   297143808               # 0x11b60e00
+       .long   1007550464              # 0x3c0e0000
+       .long   17                      # 0x11
+       .long   243231                  # 0x3b61f
+       .long   21235968                # 0x1440900
+       .long   3786                    # 0xeca
+       .long   3708682497              # 0xdd0e0101
+       .long   14                      # 0xe
+       .long   1189663                 # 0x12271f
+       .long   16910592                # 0x1020900
+       .long   3786                    # 0xeca
+       .long   3054371073              # 0xb60e0101
+       .long   234881041               # 0xe000011
+       .long   4534                    # 0x11b6
+       .long   1129486                 # 0x113c0e
+       .long   2401173504              # 0x8f1f0000
+       .long   150994951               # 0x9000007
+       .long   293077254               # 0x11780106
+       .long   16842752                # 0x1010000
+       .long   1144846                 # 0x11780e
+       .long   297143808               # 0x11b60e00
+       .long   1007550464              # 0x3c0e0000
+       .long   17                      # 0x11
+       .long   829215                  # 0xca71f
+       .long   17500416                # 0x10b0900
+       .long   4472                    # 0x1178
+       .long   2014183681              # 0x780e0101
+       .long   234881041               # 0xe000011
+       .long   4534                    # 0x11b6
+       .long   1129486                 # 0x113c0e
+       .long   1411317760              # 0x541f0000
+       .long   150994957               # 0x900000d
+       .long   293077263               # 0x1178010f
+       .long   16842752                # 0x1010000
+       .long   1144846                 # 0x11780e
+       .long   293408256               # 0x117d0e00
+       .long   1007550464              # 0x3c0e0000
+       .long   17                      # 0x11
+       .long   1246495                 # 0x13051f
+       .long   38471936                # 0x24b0900
+       .long   3786                    # 0xeca
+       .long   3054371073              # 0xb60e0101
+       .long   654311441               # 0x27000011
+       .long   32841472                # 0x1f51f00
+       .long   1946746880              # 0x74090000
+       .long   969218                  # 0xeca02
+       .long   234946816               # 0xe010100
+       .long   4534                    # 0x11b6
+       .long   3324641319              # 0xc62a0027
+       .long   150994955               # 0x900000b
+       .long   1144996                 # 0x1178a4
+       .long   234946816               # 0xe010100
+       .long   4534                    # 0x11b6
+       .long   1146126                 # 0x117d0e
+       .long   4129947648              # 0xf62a0000
+       .long   150994946               # 0x9000002
+       .long   1145033                 # 0x1178c9
+       .long   234946816               # 0xe010100
+       .long   4534                    # 0x11b6
+       .long   1160718                 # 0x11b60e
+       .long   3660185600              # 0xda2a0000
+       .long   150994957               # 0x900000d
+       .long   1145006                 # 0x1178ae
+       .long   234946816               # 0xe010100
+       .long   4534                    # 0x11b6
+       .long   1146126                 # 0x117d0e
+       .long   220856320               # 0xd2a0000
+       .long   150994963               # 0x9000013
+       .long   1145044                 # 0x1178d4
+       .long   234946816               # 0xe010100
+       .long   4534                    # 0x11b6
+       .long   1160718                 # 0x11b60e
+       .long   3525967872              # 0xd22a0000
+       .long   150994964               # 0x9000014
+       .long   1145085                 # 0x1178fd
+       .long   234946816               # 0xe010100
+       .long   4534                    # 0x11b6
+       .long   1146126                 # 0x117d0e
+       .long   289148416               # 0x113c0e00
+       .long   520093696               # 0x1f000000
+       .long   16                      # 0x10
+       .long   2164359177              # 0x81018009
+       .long   16777239                # 0x1000017
+       .long   297143809               # 0x11b60e01
+       .long   2584608768              # 0x9a0e0000
+       .long   21                      # 0x15
+       .long   568581                  # 0x8ad05
+       .long   521143296               # 0x1f100400
+       .long   508                     # 0x1fc
+       .long   2785130761              # 0xa601b909
+       .long   16777239                # 0x1000017
+       .long   297143809               # 0x11b60e01
+       .long   2584608768              # 0x9a0e0000
+       .long   234881045               # 0xe000015
+       .long   3786                    # 0xeca
+       .long   243533056               # 0xe840500
+       .long   134545408               # 0x8050000
+       .long   372767                  # 0x5b01f
+       .long   29362432                # 0x1c00900
+       .long   6091                    # 0x17cb
+       .long   3054371073              # 0xb60e0101
+       .long   234881041               # 0xe000011
+       .long   5530                    # 0x159a
+       .long   969230                  # 0xeca0e
+       .long   956628992               # 0x39050000
+       .long   117440518               # 0x7000006
+       .long   57090056                # 0x3672008
+       .long   3693084672              # 0xdc200000
+       .long   637534231               # 0x26000017
+       .long   871                     # 0x367
+       .long   1563691                 # 0x17dc2b
+       .long   224144384               # 0xd5c2c00
+       .long   1731002368              # 0x672d0000
+       .long   721420291               # 0x2b000003
+       .long   871                     # 0x367
+       .long   793349                  # 0xc1b05
+       .long   536936960               # 0x20010200
+       .long   6145                    # 0x1801
+       .long   316710                  # 0x4d526
+       .long   232916992               # 0xde20800
+       .long   271450112               # 0x102e0000
+       .long   325178                  # 0x4f63a
+       .long   503775232               # 0x1e070000
+       .long   2432696344              # 0x91000018
+       .long   285212689               # 0x11000011
+       .long   286328600               # 0x11110718
+       .long   310509568               # 0x12820000
+       .long   604110848               # 0x24020000
+       .long   1586183                 # 0x183407
+       .long   1108992                 # 0x10ec00
+       .long   119083264               # 0x7191100
+       .long   6207                    # 0x183f
+       .long   2501                    # 0x9c5
+       .long   117777922               # 0x7052602
+       .long   83886089                # 0x5000009
+       .long   407963394               # 0x18510702
+       .long   127336448               # 0x7970000
+       .long   437321728               # 0x1a110000
+       .long   969223                  # 0xeca07
+       .long   971008                  # 0xed100
+       .long   120062464               # 0x7280200
+       .long   6247                    # 0x1867
+       .long   1362                    # 0x552
+       .long   50797329                # 0x3071b11
+       .long   218103825               # 0xd000011
+       .long   33554441                # 0x2000009
+       .long   286328619               # 0x1111072b
+       .long   225640448               # 0xd730000
+       .long   1142095872              # 0x44130000
+       .long   1114887                 # 0x110307
+       .long   448768                  # 0x6d900
+       .long   122032896               # 0x7461300
+       .long   4355                    # 0x1103
+       .long   1370                    # 0x55a
+       .long   50808595                # 0x3074713
+       .long   1895825425              # 0x71000011
+       .long   318767123               # 0x13000013
+       .long   286328648               # 0x11110748
+       .long   96731136                # 0x5c40000
+       .long   722665472               # 0x2b130000
+       .long   1588999                 # 0x183f07
+       .long   56320                   # 0xdc00
+       .long   120328960               # 0x72c1300
+       .long   3786                    # 0xeca
+       .long   956                     # 0x3bc
+       .long   50801939                # 0x3072d13
+       .long   2952790033              # 0xb0000011
+       .long   318767116               # 0x1300000c
+       .long   416614191               # 0x18d5072f
+       .long   152502272               # 0x9170000
+       .long   1863516160              # 0x6f130000
+       .long   1114887                 # 0x110307
+       .long   6144                    # 0x1800
+       .long   121438720               # 0x73d0200
+       .long   4355                    # 0x1103
+       .long   2780                    # 0xadc
+       .long   4127678739              # 0xf6076113
+       .long   3992977432              # 0xee000018
+       .long   50331661                # 0x300000d
+       .long   419497752               # 0x19010718
+       .long   34471936                # 0x20e0000
+       .long   620888064               # 0x25020000
+       .long   248325                  # 0x3ca05
+       .long   117508096               # 0x7010800
+       .long   6419                    # 0x1913
+       .long   2789                    # 0xae5
+       .long   168237315               # 0xa071903
+       .long   2667577361              # 0x9f000011
+       .long   33554439                # 0x2000007
+       .long   422119207               # 0x19290727
+       .long   164560896               # 0x9cf0000
+       .long   453181440               # 0x1b030000
+       .long   1132295                 # 0x114707
+       .long   973568                  # 0xedb00
+       .long   120324608               # 0x72c0200
+       .long   6401                    # 0x1901
+       .long   536                     # 0x218
+       .long   1191661843              # 0x47075113
+       .long   1862270993              # 0x6f000011
+       .long   318767119               # 0x1300000f
+       .long   289867603               # 0x11470753
+       .long   234225664               # 0xdf60000
+       .long   1410531328              # 0x54130000
+       .long   1132295                 # 0x114707
+       .long   381184                  # 0x5d100
+       .long   123015936               # 0x7551300
+       .long   6401                    # 0x1901
+       .long   318                     # 0x13e
+       .long   168244755               # 0xa073613
+       .long   2130706449              # 0x7f000011
+       .long   318767117               # 0x1300000d
+       .long   10225463                # 0x9c0737
+       .long   15335424                # 0xea0000
+       .long   940769280               # 0x38130000
+       .long   1132295                 # 0x114707
+       .long   1111040                 # 0x10f400
+       .long   121246464               # 0x73a1300
+       .long   6551                    # 0x1997
+       .long   2888                    # 0xb48
+       .long   1191669779              # 0x47077013
+       .long   570425361               # 0x22000011
+       .long   33554451                # 0x2000013
+       .long   289867582               # 0x1147073e
+       .long   235143168               # 0xe040000
+       .long   1678966784              # 0x64130000
+       .long   645155                  # 0x9d823
+       .long   2854879488              # 0xaa2a0100
+       .long   352321543               # 0x15000007
+       .long   1106810                 # 0x10e37a
+       .long   234946816               # 0xe010100
+       .long   3786                    # 0xeca
+       .long   1199374                 # 0x124d0e
+       .long   1580138496              # 0x5e2f0000
+       .long   352321542               # 0x15000006
+       .long   1693821                 # 0x19d87d
+       .long   536936704               # 0x20010100
+       .long   6573                    # 0x19ad
+       .long   140586                  # 0x2252a
+       .long   3396081152              # 0xca6c1600
+       .long   16777230                # 0x100000e
+       .long   248122881               # 0xeca0e01
+       .long   704643072               # 0x2a000000
+       .long   249                     # 0xf9
+       .long   248147222               # 0xeca6d16
+       .long   16842752                # 0x1010000
+       .long   969230                  # 0xeca0e
+       .long   3727294464              # 0xde2a0000
+       .long   369098761               # 0x16000009
+       .long   969326                  # 0xeca6e
+       .long   234946816               # 0xe010100
+       .long   3786                    # 0xeca
+       .long   21768704                # 0x14c2a00
+       .long   1863712768              # 0x6f160000
+       .long   3786                    # 0xeca
+       .long   3389915393              # 0xca0e0101
+       .long   14                      # 0xe
+       .long   452138                  # 0x6e62a
+       .long   3396408832              # 0xca711600
+       .long   16777230                # 0x100000e
+       .long   248122881               # 0xeca0e01
+       .long   704643072               # 0x2a000000
+       .long   3262                    # 0xcbe
+       .long   248147990               # 0xeca7016
+       .long   16842752                # 0x1010000
+       .long   969230                  # 0xeca0e
+       .long   3861512192              # 0xe62a0000
+       .long   369098766               # 0x1600000e
+       .long   969330                  # 0xeca72
+       .long   234946816               # 0xe010100
+       .long   3786                    # 0xeca
+       .long   250489344               # 0xeee2a00
+       .long   1930821632              # 0x73160000
+       .long   3786                    # 0xeca
+       .long   3389915393              # 0xca0e0101
+       .long   14                      # 0xe
+       .long   921130                  # 0xe0e2a
+       .long   3396605440              # 0xca741600
+       .long   16777230                # 0x100000e
+       .long   248122881               # 0xeca0e01
+       .long   704643072               # 0x2a000000
+       .long   5394                    # 0x1512
+       .long   248149270               # 0xeca7516
+       .long   16842752                # 0x1010000
+       .long   969230                  # 0xeca0e
+       .long   774504448               # 0x2e2a0000
+       .long   369098771               # 0x16000013
+       .long   969334                  # 0xeca76
+       .long   234946816               # 0xe010100
+       .long   3786                    # 0xeca
+       .long   53094912                # 0x32a2a00
+       .long   2048262144              # 0x7a160000
+       .long   3786                    # 0xeca
+       .long   3389915393              # 0xca0e0101
+       .long   14                      # 0xe
+       .long   142634                  # 0x22d2a
+       .long   3397195264              # 0xca7d1600
+       .long   16777230                # 0x100000e
+       .long   248122881               # 0xeca0e01
+       .long   704643072               # 0x2a000000
+       .long   35                      # 0x23
+       .long   248152598               # 0xeca8216
+       .long   16842752                # 0x1010000
+       .long   969230                  # 0xeca0e
+       .long   538902528               # 0x201f0000
+       .long   419430409               # 0x19000009
+       .long   248120133               # 0xeca0345
+       .long   16842752                # 0x1010000
+       .long   969230                  # 0xeca0e
+       .long   101122048               # 0x6070000
+       .long   3858759707              # 0xe600001b
+       .long   419430409               # 0x19000009
+       .long   117518398               # 0x701303e
+       .long   6931                    # 0x1b13
+       .long   43                      # 0x2b
+       .long   85739033                # 0x51c4619
+       .long   289544464               # 0x11421910
+       .long   4355                    # 0x1103
+       .long   4355                    # 0x1103
+       .long   587351065               # 0x23024419
+       .long   53612800                # 0x3321100
+       .long   285409280               # 0x11030000
+       .long   1159266304              # 0x45190000
+       .long   533250                  # 0x82302
+       .long   837169                  # 0xcc631
+       .long   38541568                # 0x24c1900
+       .long   520159489               # 0x1f010101
+       .long   5402                    # 0x151a
+       .long   3389149209              # 0xca025019
+       .long   16777230                # 0x100000e
+       .long   458493441               # 0x1b540e01
+       .long   536870912               # 0x20000000
+       .long   7001                    # 0x1b59
+       .long   236330802               # 0xe161f32
+       .long   1427701760              # 0x55190000
+       .long   969218                  # 0xeca02
+       .long   234946816               # 0xe010100
+       .long   6996                    # 0x1b54
+       .long   107555328               # 0x6692a00
+       .long   421265408               # 0x191c0000
+       .long   5523                    # 0x1593
+       .long   1292763393              # 0x4d0e0101
+       .long   18                      # 0x12
+       .long   1215263                 # 0x128b1f
+       .long   23664896                # 0x1691900
+       .long   3786                    # 0xeca
+       .long   1292763393              # 0x4d0e0101
+       .long   18                      # 0x12
+       .long   716319                  # 0xaee1f
+       .long   23992576                # 0x16e1900
+       .long   4355                    # 0x1103
+       .long   1292763393              # 0x4d0e0101
+       .long   18                      # 0x12
+       .long   421418                  # 0x66e2a
+       .long   991173888               # 0x3b141d00
+       .long   16777233                # 0x1000011
+       .long   466619905               # 0x1bd00e01
+       .long   3490578432              # 0xd00e0000
+       .long   234881051               # 0xe00001b
+       .long   4412                    # 0x113c
+       .long   1129486                 # 0x113c0e
+       .long   467013120               # 0x1bd60e00
+       .long   536870912               # 0x20000000
+       .long   7125                    # 0x1bd5
+       .long   467809331               # 0x1be23433
+       .long   295174144               # 0x11980000
+       .long   622395392               # 0x25190000
+       .long   468131843               # 0x1be72003
+       .long   3392471040              # 0xca350000
+       .long   234881038               # 0xe00000e
+       .long   7120                    # 0x1bd0
+       .long   1822734                 # 0x1bd00e
+       .long   2384396288              # 0x8e1f0000
+       .long   419430413               # 0x1900000d
+       .long   289079837               # 0x113b021d
+       .long   16842752                # 0x1010000
+       .long   1129486                 # 0x113c0e
+       .long   289148416               # 0x113c0e00
+       .long   520093696               # 0x1f000000
+       .long   50                      # 0x32
+       .long   4211298585              # 0xfb035119
+       .long   16777242                # 0x100001a
+       .long   248122881               # 0xeca0e01
+       .long   3389915136              # 0xca0e0000
+       .long   14                      # 0xe
+       .long   454198                  # 0x6ee36
+       .long   40245504                # 0x2661900
+       .long   234946817               # 0xe010101
+       .long   3786                    # 0xeca
+       .long   98514688                # 0x5df3700
+       .long   857276416               # 0x33190000
+       .long   234946818               # 0xe010102
+       .long   4411                    # 0x113b
+       .long   322379520               # 0x13371f00
+       .long   1998127104              # 0x77190000
+       .long   1106690                 # 0x10e302
+       .long   234946816               # 0xe010100
+       .long   4685                    # 0x124d
+       .long   141303552               # 0x86c1f00
+       .long   1176043520              # 0x46190000
+       .long   1114883                 # 0x110303
+       .long   234946816               # 0xe010100
+       .long   4355                    # 0x1103
+       .long   285744896               # 0x11081f00
+       .long   1394147328              # 0x53190000
+       .long   1771523                 # 0x1b0803
+       .long   234946816               # 0xe010100
+       .long   4355                    # 0x1103
+       .long   1114894                 # 0x11030e
+       .long   1730084864              # 0x671f0000
+       .long   419430405               # 0x19000005
+       .long   289079835               # 0x113b021b
+       .long   16842752                # 0x1010000
+       .long   1129486                 # 0x113c0e
+       .long   1847525376              # 0x6e1f0000
+       .long   419430405               # 0x19000005
+       .long   248120215               # 0xeca0397
+       .long   16842752                # 0x1010000
+       .long   1199374                 # 0x124d0e
+       .long   289148416               # 0x113c0e00
+       .long   520093696               # 0x1f000000
+       .long   1080                    # 0x438
+       .long   1006871065              # 0x3c03a219
+       .long   16777233                # 0x1000011
+       .long   293080577               # 0x11780e01
+       .long   1292763136              # 0x4d0e0000
+       .long   234881042               # 0xe000012
+       .long   4412                    # 0x113c
+       .long   286072576               # 0x110d1f00
+       .long   2585329664              # 0x9a190000
+       .long   969219                  # 0xeca03
+       .long   234946816               # 0xe010100
+       .long   4472                    # 0x1178
+       .long   1199374                 # 0x124d0e
+       .long   289148416               # 0x113c0e00
+       .long   922746880               # 0x37000000
+       .long   4926                    # 0x133e
+       .long   16988953                # 0x1033b19
+       .long   289082881               # 0x113b0e01
+       .long   1007550464              # 0x3c0e0000
+       .long   234881041               # 0xe000011
+       .long   4412                    # 0x113c
+       .long   1824270                 # 0x1bd60e
+       .long   2419458048              # 0x90360000
+       .long   419430418               # 0x19000012
+       .long   16843372                # 0x101026c
+       .long   248122881               # 0xeca0e01
+       .long   671088640               # 0x28000000
+       .long   3276                    # 0xccc
+       .long   3389113625              # 0xca01c519
+       .long   16777230                # 0x100000e
+       .long   129244929               # 0x7b41f01
+       .long   622395392               # 0x25190000
+       .long   1129218                 # 0x113b02
+       .long   234946816               # 0xe010100
+       .long   4411                    # 0x113b
+       .long   1129486                 # 0x113c0e
+       .long   4080467968              # 0xf3370000
+       .long   419430406               # 0x19000006
+       .long   16843207                # 0x10101c7
+       .long   39950                   # 0x9c0e
+       .long   3509190656              # 0xd12a0000
+       .long   419430412               # 0x1900000c
+       .long   1414005                 # 0x159375
+       .long   234946816               # 0xe010100
+       .long   4685                    # 0x124d
+       .long   1929998                 # 0x1d730e
+       .long   3810525184              # 0xe3200000
+       .long   704643088               # 0x2a000010
+       .long   340                     # 0x154
+       .long   285454361               # 0x1103b019
+       .long   16842752                # 0x1010000
+       .long   1199374                 # 0x124d0e
+       .long   494079488               # 0x1d730e00
+       .long   3389915136              # 0xca0e0000
+       .long   14                      # 0xe
+       .long   65834                   # 0x1012a
+       .long   1202985216              # 0x47b41900
+       .long   16777233                # 0x1000011
+       .long   307039745               # 0x124d0e01
+       .long   1930297344              # 0x730e0000
+       .long   234881053               # 0xe00001d
+       .long   3786                    # 0xeca
+       .long   237248256               # 0xe241f00
+       .long   219742208               # 0xd190000
+       .long   969219                  # 0xeca03
+       .long   234946816               # 0xe010100
+       .long   4685                    # 0x124d
+       .long   71376640                # 0x4411f00
+       .long   2769879040              # 0xa5190000
+       .long   1129475                 # 0x113c03
+       .long   234946816               # 0xe010100
+       .long   4323                    # 0x10e3
+       .long   1160718                 # 0x11b60e
+       .long   289148416               # 0x113c0e00
+       .long   520093696               # 0x1f000000
+       .long   1508                    # 0x5e4
+       .long   3389234713              # 0xca039e19
+       .long   16777230                # 0x100000e
+       .long   283315713               # 0x10e30e01
+       .long   2098069504              # 0x7d0e0000
+       .long   17                      # 0x11
+       .long   1968135                 # 0x1e0807
+       .long   144640                  # 0x23500
+       .long   475011328               # 0x1c501900
+       .long   1276710917              # 0x4c191005
+       .long   1114897                 # 0x110311
+       .long   1549824                 # 0x17a600
+       .long   38672640                # 0x24e1900
+       .long   839974947               # 0x32110023
+       .long   2785017859              # 0xa6000003
+       .long   419430423               # 0x19000017
+       .long   136512079               # 0x823024f
+       .long   37565952                # 0x23d3600
+       .long   1914241024              # 0x72190000
+       .long   16843010                # 0x1010102
+       .long   969230                  # 0xeca0e
+       .long   1897857024              # 0x711f0000
+       .long   419430408               # 0x19000008
+       .long   396755785               # 0x17a60349
+       .long   16842752                # 0x1010000
+       .long   1549838                 # 0x17a60e
+       .long   3944677376              # 0xeb1f0000
+       .long   419430405               # 0x19000005
+       .long   503120727               # 0x1dfd0357
+       .long   16842752                # 0x1010000
+       .long   1549838                 # 0x17a60e
+       .long   396758528               # 0x17a60e00
+       .long   520093696               # 0x1f000000
+       .long   1785                    # 0x6f9
+       .long   2785113369              # 0xa6017519
+       .long   16777239                # 0x1000017
+       .long   307039745               # 0x124d0e01
+       .long   704643072               # 0x2a000000
+       .long   2803                    # 0xaf3
+       .long   396806169               # 0x17a6c819
+       .long   16842752                # 0x1010000
+       .long   1199374                 # 0x124d0e
+       .long   494079488               # 0x1d730e00
+       .long   3389915136              # 0xca0e0000
+       .long   14                      # 0xe
+       .long   210474                  # 0x3362a
+       .long   3419216128              # 0xcbcd1900
+       .long   16777239                # 0x1000017
+       .long   307039745               # 0x124d0e01
+       .long   1930297344              # 0x730e0000
+       .long   234881053               # 0xe00001d
+       .long   3786                    # 0xeca
+       .long   117385728               # 0x6ff2a00
+       .long   2065235968              # 0x7b190000
+       .long   5560                    # 0x15b8
+       .long   1292763393              # 0x4d0e0101
+       .long   234881042               # 0xe000012
+       .long   7539                    # 0x1d73
+       .long   227879424               # 0xd952a00
+       .long   2115567616              # 0x7e190000
+       .long   6017                    # 0x1781
+       .long   1292763393              # 0x4d0e0101
+       .long   234881042               # 0xe000012
+       .long   7539                    # 0x1d73
+       .long   253757184               # 0xf200700
+       .long   323223552               # 0x13440000
+       .long   119406592               # 0x71e0000
+       .long   2030599                 # 0x1efc07
+       .long   254464                  # 0x3e200
+       .long   122560768               # 0x74e2100
+       .long   7943                    # 0x1f07
+       .long   3830                    # 0xef6
+       .long   19930656                # 0x1301e20
+       .long   13879                   # 0x3637
+       .long   49619200                # 0x2f52100
+       .long   420348161               # 0x190e0101
+       .long   31                      # 0x1f
+       .long   2024992                 # 0x1ee620
+       .long   354494976               # 0x15212a00
+       .long   3340828672              # 0xc7210000
+       .long   3786                    # 0xeca
+       .long   420348161               # 0x190e0101
+       .long   31                      # 0x1f
+       .long   357407                  # 0x5741f
+       .long   49750272                # 0x2f72100
+       .long   3786                    # 0xeca
+       .long   420348161               # 0x190e0101
+       .long   31                      # 0x1f
+       .long   94239                   # 0x1701f
+       .long   49881344                # 0x2f92100
+       .long   3786                    # 0xeca
+       .long   420348161               # 0x190e0101
+       .long   31                      # 0x1f
+       .long   554794                  # 0x8772a
+       .long   3402375424              # 0xcacc2100
+       .long   16777230                # 0x100000e
+       .long   521735681               # 0x1f190e01
+       .long   520093696               # 0x1f000000
+       .long   3965                    # 0xf7d
+       .long   3389119777              # 0xca01dd21
+       .long   16777230                # 0x100000e
+       .long   521735681               # 0x1f190e01
+       .long   520093696               # 0x1f000000
+       .long   4763                    # 0x129b
+       .long   3389184801              # 0xca02db21
+       .long   16777230                # 0x100000e
+       .long   521735681               # 0x1f190e01
+       .long   2567831552              # 0x990e0000
+       .long   31                      # 0x1f
+       .long   2027808                 # 0x1ef120
+       .long   354950912               # 0x15281f00
+       .long   874577920               # 0x34210000
+       .long   1106690                 # 0x10e302
+       .long   234946816               # 0xe010100
+       .long   4323                    # 0x10e3
+       .long   969230                  # 0xeca0e
+       .long   521735680               # 0x1f190e00
+       .long   704643072               # 0x2a000000
+       .long   4771                    # 0x12a3
+       .long   521791521               # 0x1f19e821
+       .long   16842752                # 0x1010000
+       .long   1199374                 # 0x124d0e
+       .long   307039744               # 0x124d0e00
+       .long   520093696               # 0x1f000000
+       .long   1098                    # 0x44a
+       .long   3389077537              # 0xca013821
+       .long   16777230                # 0x100000e
+       .long   521735681               # 0x1f190e01
+       .long   1292763136              # 0x4d0e0000
+       .long   654311442               # 0x27000012
+       .long   99688192                # 0x5f11f00
+       .long   86048768                # 0x5210000
+       .long   969218                  # 0xeca02
+       .long   234946816               # 0xe010100
+       .long   3786                    # 0xeca
+       .long   2038030                 # 0x1f190e
+       .long   3156148224              # 0xbc1f0000
+       .long   553648135               # 0x21000007
+       .long   248119922               # 0xeca0272
+       .long   16842752                # 0x1010000
+       .long   1199374                 # 0x124d0e
+       .long   521735680               # 0x1f190e00
+       .long   520093696               # 0x1f000000
+       .long   1986                    # 0x7c2
+       .long   1006798369              # 0x3c028621
+       .long   16777233                # 0x1000011
+       .long   289082881               # 0x113b0e01
+       .long   1007550464              # 0x3c0e0000
+       .long   234881041               # 0xe000011
+       .long   4412                    # 0x113c
+       .long   2038030                 # 0x1f190e
+       .long   724172800               # 0x2b2a0000
+       .long   553648142               # 0x2100000e
+       .long   2038254                 # 0x1f19ee
+       .long   234946816               # 0xe010100
+       .long   4685                    # 0x124d
+       .long   1199374                 # 0x124d0e
+       .long   521735680               # 0x1f190e00
+       .long   520093696               # 0x1f000000
+       .long   1106                    # 0x452
+       .long   3389094177              # 0xca017921
+       .long   16777230                # 0x100000e
+       .long   521735681               # 0x1f190e01
+       .long   1292763136              # 0x4d0e0000
+       .long   654311442               # 0x27000012
+       .long   313073408               # 0x12a91f00
+       .long   2887843840              # 0xac210000
+       .long   969218                  # 0xeca02
+       .long   234946816               # 0xe010100
+       .long   7961                    # 0x1f19
+       .long   1114894                 # 0x11030e
+       .long   248122880               # 0xeca0e00
+       .long   520093696               # 0x1f000000
+       .long   1401                    # 0x579
+       .long   3389186081              # 0xca02e021
+       .long   16777230                # 0x100000e
+       .long   521735681               # 0x1f190e01
+       .long   2970484736              # 0xb10e0000
+       .long   32                      # 0x20
+       .long   2143776                 # 0x20b620
+       .long   519120384               # 0x1ef12600
+       .long   3911122944              # 0xe91f0000
+       .long   553648131               # 0x21000003
+       .long   285409969               # 0x110302b1
+       .long   16842752                # 0x1010000
+       .long   2038030                 # 0x1f190e
+       .long   1058996224              # 0x3f1f0000
+       .long   553648128               # 0x21000000
+       .long   289145484               # 0x113c028c
+       .long   16842752                # 0x1010000
+       .long   1822734                 # 0x1bd00e
+       .long   289148416               # 0x113c0e00
+       .long   1007550464              # 0x3c0e0000
+       .long   234881041               # 0xe000011
+       .long   7961                    # 0x1f19
+       .long   306061056               # 0x123e1f00
+       .long   3726704640              # 0xde210000
+       .long   969217                  # 0xeca01
+       .long   234946816               # 0xe010100
+       .long   7961                    # 0x1f19
+       .long   153366272               # 0x9242f00
+       .long   740425728               # 0x2c220000
+       .long   3786                    # 0xeca
+       .long   2938044673              # 0xaf1f0101
+       .long   553648146               # 0x21000012
+       .long   283312705               # 0x10e30241
+       .long   16842752                # 0x1010000
+       .long   1106702                 # 0x10e30e
+       .long   859242496               # 0x33370000
+       .long   553648142               # 0x2100000e
+       .long   16843527                # 0x1010307
+       .long   1199374                 # 0x124d0e
+       .long   2031616                 # 0x1f0000
+       .long   553648143               # 0x2100000f
+       .long   248119614               # 0xeca013e
+       .long   16842752                # 0x1010000
+       .long   1199374                 # 0x124d0e
+       .long   520103680               # 0x1f002700
+       .long   1113                    # 0x459
+       .long   3389130273              # 0xca020621
+       .long   16777230                # 0x100000e
+       .long   248122881               # 0xeca0e01
+       .long   420347904               # 0x190e0000
+       .long   31                      # 0x1f
+       .long   17962                   # 0x462a
+       .long   3394183680              # 0xca4f2200
+       .long   16777230                # 0x100000e
+       .long   248122881               # 0xeca0e01
+       .long   520093696               # 0x1f000000
+       .long   1409                    # 0x581
+       .long   3389159457              # 0xca027821
+       .long   16777230                # 0x100000e
+       .long   307039745               # 0x124d0e01
+       .long   704643072               # 0x2a000000
+       .long   4372                    # 0x1114
+       .long   248156193               # 0xeca9021
+       .long   16842752                # 0x1010000
+       .long   1199374                 # 0x124d0e
+       .long   1579810816              # 0x5e2a0000
+       .long   553648132               # 0x21000004
+       .long   969362                  # 0xeca92
+       .long   234946816               # 0xe010100
+       .long   4685                    # 0x124d
+       .long   1199374                 # 0x124d0e
+       .long   976683008               # 0x3a370000
+       .long   553648142               # 0x2100000e
+       .long   16843446                # 0x10102b6
+       .long   2038030                 # 0x1f190e
+       .long   3357474816              # 0xc81f0000
+       .long   553648135               # 0x21000007
+       .long   248119679               # 0xeca017f
+       .long   16842752                # 0x1010000
+       .long   1199374                 # 0x124d0e
+       .long   922756864               # 0x37002700
+       .long   3847                    # 0xf07
+       .long   16851489                # 0x1012221
+       .long   521735681               # 0x1f190e01
+       .long   3809345536              # 0xe30e0000
+       .long   16                      # 0x10
+       .long   257823                  # 0x3ef1f
+       .long   19276032                # 0x1262100
+       .long   3786                    # 0xeca
+       .long   420348161               # 0x190e0101
+       .long   234881055               # 0xe00001f
+       .long   4323                    # 0x10e3
+       .long   969230                  # 0xeca0e
+       .long   289148416               # 0x113c0e00
+       .long   520093696               # 0x1f000000
+       .long   2348                    # 0x92c
+       .long   3389079585              # 0xca014021
+       .long   16777230                # 0x100000e
+       .long   283315713               # 0x10e30e01
+       .long   1292763136              # 0x4d0e0000
+       .long   654311442               # 0x27000012
+       .long   73735936                # 0x4651f00
+       .long   2166423552              # 0x81210000
+       .long   969217                  # 0xeca01
+       .long   234946816               # 0xe010100
+       .long   4685                    # 0x124d
+       .long   1199374                 # 0x124d0e
+       .long   788539136               # 0x2f002700
+       .long   78                      # 0x4e
+       .long   521772833               # 0x1f199f21
+       .long   16842752                # 0x1010000
+       .long   603178                  # 0x9342a
+       .long   3819774208              # 0xe3ad2100
+       .long   16777232                # 0x1000010
+       .long   283315713               # 0x10e30e01
+       .long   520093696               # 0x1f000000
+       .long   2363                    # 0x93b
+       .long   3389161249              # 0xca027f21
+       .long   16777230                # 0x100000e
+       .long   248122881               # 0xeca0e01
+       .long   420347904               # 0x190e0000
+       .long   31                      # 0x1f
+       .long   1196831                 # 0x12431f
+       .long   21438720                # 0x1472100
+       .long   3786                    # 0xeca
+       .long   420348161               # 0x190e0101
+       .long   234881055               # 0xe00001f
+       .long   4685                    # 0x124d
+       .long   1270286                 # 0x13620e
+       .long   1093271552              # 0x412a0000
+       .long   570425358               # 0x2200000e
+       .long   969252                  # 0xeca24
+       .long   234946816               # 0xe010100
+       .long   4685                    # 0x124d
+       .long   1270286                 # 0x13620e
+       .long   1226768384              # 0x491f0000
+       .long   553648147               # 0x21000013
+       .long   248119631               # 0xeca014f
+       .long   16842752                # 0x1010000
+       .long   1106702                 # 0x10e30e
+       .long   307039744               # 0x124d0e00
+       .long   1645084672              # 0x620e0000
+       .long   19                      # 0x13
+       .long   212767                  # 0x33f1f
+       .long   22290688                # 0x1542100
+       .long   3786                    # 0xeca
+       .long   3809345793              # 0xe30e0101
+       .long   234881040               # 0xe000010
+       .long   4412                    # 0x113c
+       .long   1199374                 # 0x124d0e
+       .long   520103680               # 0x1f002700
+       .long   4788                    # 0x12b4
+       .long   3389105185              # 0xca01a421
+       .long   16777230                # 0x100000e
+       .long   521735681               # 0x1f190e01
+       .long   1292763136              # 0x4d0e0000
+       .long   234881042               # 0xe000012
+       .long   4962                    # 0x1362
+       .long   273358592               # 0x104b1f00
+       .long   2887843840              # 0xac210000
+       .long   969217                  # 0xeca01
+       .long   234946816               # 0xe010100
+       .long   4685                    # 0x124d
+       .long   1270286                 # 0x13620e
+       .long   3961454592              # 0xec1f0000
+       .long   553648137               # 0x21000009
+       .long   248119640               # 0xeca0158
+       .long   16842752                # 0x1010000
+       .long   1106702                 # 0x10e30e
+       .long   289148416               # 0x113c0e00
+       .long   1292763136              # 0x4d0e0000
+       .long   234881042               # 0xe000012
+       .long   4962                    # 0x1362
+       .long   55058176                # 0x3481f00
+       .long   2954952704              # 0xb0210000
+       .long   969217                  # 0xeca01
+       .long   234946816               # 0xe010100
+       .long   4685                    # 0x124d
+       .long   1199374                 # 0x124d0e
+       .long   325193216               # 0x13620e00
+       .long   117440512               # 0x7000000
+       .long   9079                    # 0x2377
+       .long   1654                    # 0x676
+       .long   2082484259              # 0x7c203023
+       .long   637534243               # 0x26000023
+       .long   6225                    # 0x1851
+       .long   1132295                 # 0x114707
+       .long   892160                  # 0xd9d00
+       .long   707142912               # 0x2a262500
+       .long   2370                    # 0x942
+       .long   248143653               # 0xeca5f25
+       .long   16842752                # 0x1010000
+       .long   974094                  # 0xedd0e
+       .long   153747456               # 0x92a0000
+       .long   620756993               # 0x25000001
+       .long   969317                  # 0xeca65
+       .long   234946816               # 0xe010100
+       .long   3805                    # 0xedd
+       .long   167127552               # 0x9f62a00
+       .long   2451898368              # 0x92250000
+       .long   3786                    # 0xeca
+       .long   3708682497              # 0xdd0e0101
+       .long   14                      # 0xe
+       .long   317482                  # 0x4d82a
+       .long   3395822848              # 0xca682500
+       .long   16777230                # 0x100000e
+       .long   249368065               # 0xedd0e01
+       .long   704643072               # 0x2a000000
+       .long   3854                    # 0xf0e
+       .long   248160037               # 0xeca9f25
+       .long   16842752                # 0x1010000
+       .long   974094                  # 0xedd0e
+       .long   595660288               # 0x23810e00
+       .long   704643072               # 0x2a000000
+       .long   2379                    # 0x94b
+       .long   248146981               # 0xeca6c25
+       .long   16842752                # 0x1010000
+       .long   974094                  # 0xedd0e
+       .long   455737344               # 0x1b2a0000
+       .long   620757009               # 0x25000011
+       .long   969328                  # 0xeca70
+       .long   234946816               # 0xe010100
+       .long   3805                    # 0xedd
+       .long   355346944               # 0x152e2a00
+       .long   1965359104              # 0x75250000
+       .long   3786                    # 0xeca
+       .long   3708682497              # 0xdd0e0101
+       .long   14                      # 0xe
+       .long   1277482                 # 0x137e2a
+       .long   3396871424              # 0xca782500
+       .long   16777230                # 0x100000e
+       .long   249368065               # 0xedd0e01
+       .long   704643072               # 0x2a000000
+       .long   1798                    # 0x706
+       .long   248151333               # 0xeca7d25
+       .long   16842752                # 0x1010000
+       .long   974094                  # 0xedd0e
+       .long   1445593088              # 0x562a0000
+       .long   620756992               # 0x25000000
+       .long   969346                  # 0xeca82
+       .long   234946816               # 0xe010100
+       .long   3805                    # 0xedd
+       .long   189934080               # 0xb522a00
+       .long   2267348992              # 0x87250000
+       .long   3786                    # 0xeca
+       .long   3708682497              # 0xdd0e0101
+       .long   14                      # 0xe
+       .long   24362                   # 0x5f2a
+       .long   3398182144              # 0xca8c2500
+       .long   16777230                # 0x100000e
+       .long   249368065               # 0xedd0e01
+       .long   704643072               # 0x2a000000
+       .long   3971                    # 0xf83
+       .long   249378595               # 0xedd3723
+       .long   16842752                # 0x1010000
+       .long   974094                  # 0xedd0e
+       .long   594284032               # 0x236c0e00
+       .long   704643072               # 0x2a000000
+       .long   1664                    # 0x680
+       .long   249407013               # 0xedda625
+       .long   16842752                # 0x1010000
+       .long   974094                  # 0xedd0e
+       .long   1999241216              # 0x772a0000
+       .long   620756993               # 0x25000001
+       .long   974249                  # 0xedda9
+       .long   234946816               # 0xe010100
+       .long   3805                    # 0xedd
+       .long   355936768               # 0x15372a00
+       .long   874708992               # 0x34230000
+       .long   9068                    # 0x236c
+       .long   1292763393              # 0x4d0e0101
+       .long   18                      # 0x12
+       .long   611370                  # 0x9542a
+       .long   2174428416              # 0x819b2500
+       .long   16777251                # 0x1000023
+       .long   307039745               # 0x124d0e01
+       .long   184549376               # 0xb000000
+       .long   456468006               # 0x1b352626
+       .long   638255104               # 0x260b0000
+       .long   1785895                 # 0x1b4027
+       .long   673581824               # 0x28260b00
+       .long   7209                    # 0x1c29
+       .long   1512777227              # 0x5a2b260b
+       .long   184549403               # 0xb00001b
+       .long   487796262               # 0x1d132e26
+       .long   638255104               # 0x260b0000
+       .long   1768243                 # 0x1afb33
+       .long   874908416               # 0x34260b00
+       .long   6920                    # 0x1b08
+       .long   1429612043              # 0x5536260b
+       .long   184549385               # 0xb000009
+       .long   460207910               # 0x1b6e3726
+       .long   638255104               # 0x260b0000
+       .long   1802552                 # 0x1b8138
+       .long   958794496               # 0x39260b00
+       .long   7061                    # 0x1b95
+       .long   2839160331              # 0xa93a260b
+       .long   184549403               # 0xb00001b
+       .long   469187366               # 0x1bf73b26
+       .long   638255104               # 0x260b0000
+       .long   75580                   # 0x1273c
+       .long   1025903360              # 0x3d260b00
+       .long   7226                    # 0x1c3a
+       .long   1245586955              # 0x4a3e260b
+       .long   184549404               # 0xb00001c
+       .long   475938598               # 0x1c5e3f26
+       .long   638255104               # 0x260b0000
+       .long   1864256                 # 0x1c7240
+       .long   1093012224              # 0x41260b00
+       .long   7307                    # 0x1c8b
+       .long   2671977995              # 0x9f43260b
+       .long   184549404               # 0xb00001c
+       .long   481838118               # 0x1cb84426
+       .long   638255104               # 0x260b0000
+       .long   1889861                 # 0x1cd645
+       .long   1193675520              # 0x47260b00
+       .long   7412                    # 0x1cf4
+       .long   608708107               # 0x2448260b
+       .long   184549405               # 0xb00001d
+       .long   489834790               # 0x1d324926
+       .long   638255104               # 0x260b0000
+       .long   1919818                 # 0x1d4b4a
+       .long   1260784384              # 0x4b260b00
+       .long   7515                    # 0x1d5b
+       .long   2018256395              # 0x784c260b
+       .long   184549405               # 0xb00001d
+       .long   496323878               # 0x1d954d26
+       .long   638255104               # 0x260b0000
+       .long   1946190                 # 0x1db24e
+       .long   1344670464              # 0x50260b00
+       .long   7622                    # 0x1dc6
+       .long   3830523403              # 0xe451260b
+       .long   117440541               # 0x700001d
+       .long   9687                    # 0x25d7
+       .long   1998                    # 0x7ce
+       .long   50792231                # 0x3070727
+       .long   1526726673              # 0x5b000011
+       .long   33554443                # 0x200000b
+       .long   636290960               # 0x25ed0790
+       .long   306970624               # 0x124c0000
+       .long   120127488               # 0x7290000
+       .long   1114887                 # 0x110307
+       .long   1392384                 # 0x153f00
+       .long   798228992               # 0x2f940200
+       .long   5448                    # 0x1548
+       .long   634144810               # 0x25cc482a
+       .long   16842752                # 0x1010000
+       .long   1019178                 # 0xf8d2a
+       .long   2471373312              # 0x934e2a00
+       .long   16777237                # 0x1000015
+       .long   635571713               # 0x25e20e01
+       .long   3792568320              # 0xe20e0000
+       .long   37                      # 0x25
+       .long   655146                  # 0x9ff2a
+       .long   3797035520              # 0xe2522a00
+       .long   16777253                # 0x1000025
+       .long   640683521               # 0x26300e01
+       .long   536870912               # 0x20000000
+       .long   5322                    # 0x14ca
+       .long   894506                  # 0xda62a
+       .long   3796576768              # 0xe24b2a00
+       .long   16777253                # 0x1000025
+       .long   642256385               # 0x26480e01
+       .long   536870912               # 0x20000000
+       .long   9698                    # 0x25e2
+       .long   746794                  # 0xb652a
+       .long   3817548288              # 0xe38b2a00
+       .long   16777232                # 0x1000010
+       .long   348130817               # 0x14c00e01
+       .long   704643072               # 0x2a000000
+       .long   3863                    # 0xf17
+       .long   283348522               # 0x10e38e2a
+       .long   16842752                # 0x1010000
+       .long   2519822                 # 0x26730e
+       .long   2015363072              # 0x78200000
+       .long   637534246               # 0x26000026
+       .long   9698                    # 0x25e2
+       .long   428330                  # 0x6892a
+       .long   813115904               # 0x30772a00
+       .long   16777254                # 0x1000026
+       .long   645074433               # 0x26730e01
+       .long   704643072               # 0x2a000000
+       .long   1249                    # 0x4e1
+       .long   640711466               # 0x26307b2a
+       .long   16842752                # 0x1010000
+       .long   2519822                 # 0x26730e
+       .long   1344929792              # 0x502a0000
+       .long   704643075               # 0x2a000003
+       .long   1129560                 # 0x113c58
+       .long   234946816               # 0xe010100
+       .long   4323                    # 0x10e3
+       .long   1129486                 # 0x113c0e
+       .long   307039744               # 0x124d0e00
+       .long   3222142976              # 0xc00e0000
+       .long   20                      # 0x14
+       .long   43046                   # 0xa826
+       .long   82520576                # 0x4eb2a00
+       .long   892076032               # 0x352c0000
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   1156650                 # 0x11a62a
+       .long   2469866496              # 0x93372c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   704643072               # 0x2a000000
+       .long   3869                    # 0xf1d
+       .long   361969964               # 0x1593392c
+       .long   16842752                # 0x1010000
+       .long   1413902                 # 0x15930e
+       .long   606732288               # 0x242a0000
+       .long   738197521               # 0x2c000011
+       .long   1413947                 # 0x15933b
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   1413902                 # 0x15930e
+       .long   539623424               # 0x202a0000
+       .long   738197516               # 0x2c00000c
+       .long   1414047                 # 0x15939f
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   296430080               # 0x11ab2a00
+       .long   1043070976              # 0x3e2c0000
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   98346                   # 0x1802a
+       .long   2470915072              # 0x93472c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   704643072               # 0x2a000000
+       .long   1807                    # 0x70f
+       .long   361979692               # 0x15935f2c
+       .long   16842752                # 0x1010000
+       .long   1413902                 # 0x15930e
+       .long   1495924736              # 0x592a0000
+       .long   738197507               # 0x2c000003
+       .long   1414050                 # 0x1593a2
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   287975936               # 0x112a2a00
+       .long   2771124224              # 0xa52c0000
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   936234                  # 0xe492a
+       .long   2477272064              # 0x93a82c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   2467168256              # 0x930e0000
+       .long   21                      # 0x15
+       .long   99626                   # 0x1852a
+       .long   2472684544              # 0x93622c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   3171811328              # 0xbd0e0000
+       .long   39                      # 0x27
+       .long   969248                  # 0xeca20
+       .long   193145344               # 0xb832a00
+       .long   1697382400              # 0x652c0000
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   234881045               # 0xe000015
+       .long   3786                    # 0xeca
+       .long   168176128               # 0xa062a00
+       .long   1747714048              # 0x682c0000
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   259882                  # 0x3f72a
+       .long   2473274368              # 0x936b2c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   704643072               # 0x2a000000
+       .long   2570                    # 0xa0a
+       .long   361983532               # 0x15936e2c
+       .long   16842752                # 0x1010000
+       .long   1413902                 # 0x15930e
+       .long   672665088               # 0x28180e00
+       .long   536870912               # 0x20000000
+       .long   5523                    # 0x1593
+       .long   289834                  # 0x46c2a
+       .long   2475437056              # 0x938c2c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   2467168256              # 0x930e0000
+       .long   21                      # 0x15
+       .long   991786                  # 0xf222a
+       .long   2470456320              # 0x93402c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   704643072               # 0x2a000000
+       .long   862                     # 0x35e
+       .long   361974060               # 0x1593492c
+       .long   16842752                # 0x1010000
+       .long   1413902                 # 0x15930e
+       .long   2301231104              # 0x892a0000
+       .long   738197515               # 0x2c00000b
+       .long   1414031                 # 0x15938f
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   131475968               # 0x7d62a00
+       .long   1110179840              # 0x422c0000
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   719658                  # 0xafb2a
+       .long   2471177216              # 0x934b2c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   117440512               # 0x7000000
+       .long   5523                    # 0x1593
+       .long   4796                    # 0x12bc
+       .long   3087504942              # 0xb807962e
+       .long   1308622869              # 0x4e000015
+       .long   771751950               # 0x2e00000e
+       .long   184560277               # 0xb002a95
+       .long   1428946944              # 0x552c0000
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   659242                  # 0xa0f2a
+       .long   3092589568              # 0xb8552c00
+       .long   16777237                # 0x1000015
+       .long   364383745               # 0x15b80e01
+       .long   704643072               # 0x2a000000
+       .long   2958                    # 0xb8e
+       .long   394351916               # 0x1781552c
+       .long   16842752                # 0x1010000
+       .long   1540366                 # 0x17810e
+       .long   623509504               # 0x252a0000
+       .long   738197516               # 0x2c00000c
+       .long   1413975                 # 0x159357
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   74459648                # 0x4702a00
+       .long   1462501376              # 0x572c0000
+       .long   5560                    # 0x15b8
+       .long   3087925505              # 0xb80e0101
+       .long   21                      # 0x15
+       .long   759082                  # 0xb952a
+       .long   2169973760              # 0x81572c00
+       .long   16777239                # 0x1000017
+       .long   394333697               # 0x17810e01
+       .long   704643072               # 0x2a000000
+       .long   4999                    # 0x1387
+       .long   361978156               # 0x1593592c
+       .long   16842752                # 0x1010000
+       .long   1413902                 # 0x15930e
+       .long   4146724864              # 0xf72a0000
+       .long   738197509               # 0x2c000005
+       .long   1423449                 # 0x15b859
+       .long   234946816               # 0xe010100
+       .long   5560                    # 0x15b8
+       .long   204155392               # 0xc2b2a00
+       .long   1496055808              # 0x592c0000
+       .long   6017                    # 0x1781
+       .long   2165178625              # 0x810e0101
+       .long   23                      # 0x17
+       .long   221994                  # 0x3632a
+       .long   2476223488              # 0x93982c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   704643072               # 0x2a000000
+       .long   1021                    # 0x3fd
+       .long   364419116               # 0x15b8982c
+       .long   16842752                # 0x1010000
+       .long   1423374                 # 0x15b80e
+       .long   1764360192              # 0x692a0000
+       .long   738197504               # 0x2c000000
+       .long   1540504                 # 0x178198
+       .long   234946816               # 0xe010100
+       .long   6017                    # 0x1781
+       .long   143141376               # 0x8882a00
+       .long   3291217920              # 0xc42c0000
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   234881045               # 0xe000015
+       .long   5523                    # 0x1593
+       .long   25897472                # 0x18b2a00
+       .long   3291217920              # 0xc42c0000
+       .long   5560                    # 0x15b8
+       .long   3087925505              # 0xb80e0101
+       .long   234881045               # 0xe000015
+       .long   5560                    # 0x15b8
+       .long   273820160               # 0x10522a00
+       .long   3291217920              # 0xc42c0000
+       .long   6017                    # 0x1781
+       .long   2165178625              # 0x810e0101
+       .long   234881047               # 0xe000017
+       .long   6017                    # 0x1781
+       .long   194783744               # 0xb9c2a00
+       .long   3828088832              # 0xe42c0000
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   1072170                 # 0x105c2a
+       .long   3101961216              # 0xb8e42c00
+       .long   16777237                # 0x1000015
+       .long   364383745               # 0x15b80e01
+       .long   704643072               # 0x2a000000
+       .long   2010                    # 0x7da
+       .long   394388524               # 0x1781e42c
+       .long   16842752                # 0x1010000
+       .long   1540366                 # 0x17810e
+       .long   808058880               # 0x302a0000
+       .long   738197521               # 0x2c000011
+       .long   1414117                 # 0x1593e5
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   357444096               # 0x154e2a00
+       .long   3844866048              # 0xe52c0000
+       .long   5560                    # 0x15b8
+       .long   3087925505              # 0xb80e0101
+       .long   21                      # 0x15
+       .long   1281322                 # 0x138d2a
+       .long   2179279872              # 0x81e52c00
+       .long   16777239                # 0x1000017
+       .long   394333697               # 0x17810e01
+       .long   704643072               # 0x2a000000
+       .long   872                     # 0x368
+       .long   361988652               # 0x1593822c
+       .long   16842752                # 0x1010000
+       .long   1413902                 # 0x15930e
+       .long   2435448832              # 0x912a0000
+       .long   738197512               # 0x2c000008
+       .long   1423490                 # 0x15b882
+       .long   234946816               # 0xe010100
+       .long   5560                    # 0x15b8
+       .long   74918400                # 0x4772a00
+       .long   2183921664              # 0x822c0000
+       .long   6017                    # 0x1781
+       .long   2165178625              # 0x810e0101
+       .long   23                      # 0x17
+       .long   799274                  # 0xc322a
+       .long   2474060800              # 0x93772c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   704643072               # 0x2a000000
+       .long   3990                    # 0xf96
+       .long   364410668               # 0x15b8772c
+       .long   16842752                # 0x1010000
+       .long   1423374                 # 0x15b80e
+       .long   4029284352              # 0xf02a0000
+       .long   738197508               # 0x2c000004
+       .long   1540471                 # 0x178177
+       .long   234946816               # 0xe010100
+       .long   6017                    # 0x1781
+       .long   37953280                # 0x2431f00
+       .long   1177288704              # 0x462c0000
+       .long   1413889                 # 0x159301
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   1413902                 # 0x15930e
+       .long   4280221696              # 0xff1f0000
+       .long   738197516               # 0x2c00000c
+       .long   364380486               # 0x15b80146
+       .long   16842752                # 0x1010000
+       .long   1423374                 # 0x15b80e
+       .long   364383744               # 0x15b80e00
+       .long   520093696               # 0x1f000000
+       .long   3333                    # 0xd05
+       .long   2164344364              # 0x8101462c
+       .long   16777239                # 0x1000017
+       .long   394333697               # 0x17810e01
+       .long   2165178368              # 0x810e0000
+       .long   23                      # 0x17
+       .long   1073439                 # 0x10611f
+       .long   21965824                # 0x14f2c00
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   234881045               # 0xe000015
+       .long   5523                    # 0x1593
+       .long   1413902                 # 0x15930e
+       .long   1394540544              # 0x531f0000
+       .long   738197522               # 0x2c000012
+       .long   364380495               # 0x15b8014f
+       .long   16842752                # 0x1010000
+       .long   1423374                 # 0x15b80e
+       .long   364383744               # 0x15b80e00
+       .long   3087925248              # 0xb80e0000
+       .long   21                      # 0x15
+       .long   224543                  # 0x36d1f
+       .long   21965824                # 0x14f2c00
+       .long   6017                    # 0x1781
+       .long   2165178625              # 0x810e0101
+       .long   234881047               # 0xe000017
+       .long   6017                    # 0x1781
+       .long   1540366                 # 0x17810e
+       .long   2938044416              # 0xaf1f0000
+       .long   738197521               # 0x2c000011
+       .long   361955657               # 0x15930149
+       .long   16842752                # 0x1010000
+       .long   1413902                 # 0x15930e
+       .long   361958912               # 0x15930e00
+       .long   520093696               # 0x1f000000
+       .long   4805                    # 0x12c5
+       .long   3087092012              # 0xb801492c
+       .long   16777237                # 0x1000015
+       .long   364383745               # 0x15b80e01
+       .long   3087925248              # 0xb80e0000
+       .long   21                      # 0x15
+       .long   70175                   # 0x1121f
+       .long   21572608                # 0x1492c00
+       .long   6017                    # 0x1781
+       .long   2165178625              # 0x810e0101
+       .long   234881047               # 0xe000017
+       .long   6017                    # 0x1781
+       .long   324148992               # 0x13521f00
+       .long   1277952000              # 0x4c2c0000
+       .long   1413889                 # 0x159301
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   1413902                 # 0x15930e
+       .long   1411317760              # 0x541f0000
+       .long   738197525               # 0x2c000015
+       .long   364380492               # 0x15b8014c
+       .long   16842752                # 0x1010000
+       .long   1423374                 # 0x15b80e
+       .long   364383744               # 0x15b80e00
+       .long   520093696               # 0x1f000000
+       .long   5466                    # 0x155a
+       .long   2164345900              # 0x81014c2c
+       .long   16777239                # 0x1000017
+       .long   394333697               # 0x17810e01
+       .long   2165178368              # 0x810e0000
+       .long   23                      # 0x17
+       .long   1127722                 # 0x11352a
+       .long   2475895808              # 0x93932c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   2467168256              # 0x930e0000
+       .long   21                      # 0x15
+       .long   149546                  # 0x2482a
+       .long   3096652800              # 0xb8932c00
+       .long   16777237                # 0x1000015
+       .long   364383745               # 0x15b80e01
+       .long   3087925248              # 0xb80e0000
+       .long   21                      # 0x15
+       .long   1400874                 # 0x15602a
+       .long   2173905920              # 0x81932c00
+       .long   16777239                # 0x1000017
+       .long   394333697               # 0x17810e01
+       .long   2165178368              # 0x810e0000
+       .long   23                      # 0x17
+       .long   225823                  # 0x3721f
+       .long   18361344                # 0x1182c00
+       .long   3786                    # 0xeca
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   800799                  # 0xc381f
+       .long   18361344                # 0x1182c00
+       .long   3786                    # 0xeca
+       .long   3087925505              # 0xb80e0101
+       .long   21                      # 0x15
+       .long   613151                  # 0x95b1f
+       .long   18361344                # 0x1182c00
+       .long   3786                    # 0xeca
+       .long   2165178625              # 0x810e0101
+       .long   23                      # 0x17
+       .long   1129258                 # 0x113b2a
+       .long   2481335296              # 0x93e62c00
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   704643072               # 0x2a000000
+       .long   1811                    # 0x713
+       .long   364439084               # 0x15b8e62c
+       .long   16842752                # 0x1010000
+       .long   1423374                 # 0x15b80e
+       .long   3408527360              # 0xcb2a0000
+       .long   738197522               # 0x2c000012
+       .long   1540582                 # 0x1781e6
+       .long   234946816               # 0xe010100
+       .long   6017                    # 0x1781
+       .long   58203904                # 0x3781f00
+       .long   1009516544              # 0x3c2c0000
+       .long   1549825                 # 0x17a601
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   132062976               # 0x7df1f00
+       .long   1009516544              # 0x3c2c0000
+       .long   1549825                 # 0x17a601
+       .long   234946816               # 0xe010100
+       .long   5560                    # 0x15b8
+       .long   110108416               # 0x6901f00
+       .long   1009516544              # 0x3c2c0000
+       .long   1549825                 # 0x17a601
+       .long   234946816               # 0xe010100
+       .long   6017                    # 0x1781
+       .long   240525056               # 0xe561f00
+       .long   1110179840              # 0x422c0000
+       .long   1549825                 # 0x17a601
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   359079680               # 0x15671f00
+       .long   1110179840              # 0x422c0000
+       .long   1549825                 # 0x17a601
+       .long   234946816               # 0xe010100
+       .long   5560                    # 0x15b8
+       .long   307764992               # 0x12581f00
+       .long   1110179840              # 0x422c0000
+       .long   1549825                 # 0x17a601
+       .long   234946816               # 0xe010100
+       .long   6017                    # 0x1781
+       .long   328411648               # 0x13932a00
+       .long   2049703936              # 0x7a2c0000
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   1204522                 # 0x12612a
+       .long   3095014400              # 0xb87a2c00
+       .long   16777237                # 0x1000015
+       .long   364383745               # 0x15b80e01
+       .long   704643072               # 0x2a000000
+       .long   3678                    # 0xe5e
+       .long   394361388               # 0x17817a2c
+       .long   16842752                # 0x1010000
+       .long   1540366                 # 0x17810e
+       .long   371851264               # 0x162a0000
+       .long   738197514               # 0x2c00000a
+       .long   1414021                 # 0x159385
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   229321216               # 0xdab2a00
+       .long   2234253312              # 0x852c0000
+       .long   5560                    # 0x15b8
+       .long   3087925505              # 0xb80e0101
+       .long   21                      # 0x15
+       .long   1284394                 # 0x13992a
+       .long   2172988416              # 0x81852c00
+       .long   16777239                # 0x1000017
+       .long   394333697               # 0x17810e01
+       .long   704643072               # 0x2a000000
+       .long   5023                    # 0x139f
+       .long   361987372               # 0x15937d2c
+       .long   16842752                # 0x1010000
+       .long   1413902                 # 0x15930e
+       .long   2099904512              # 0x7d2a0000
+       .long   738197508               # 0x2c000004
+       .long   1423485                 # 0x15b87d
+       .long   234946816               # 0xe010100
+       .long   5560                    # 0x15b8
+       .long   297019904               # 0x11b42a00
+       .long   2100035584              # 0x7d2c0000
+       .long   6017                    # 0x1781
+       .long   2165178625              # 0x810e0101
+       .long   23                      # 0x17
+       .long   761887                  # 0xba01f
+       .long   20589568                # 0x13a2c00
+       .long   4355                    # 0x1103
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   103711                  # 0x1951f
+       .long   20589568                # 0x13a2c00
+       .long   4355                    # 0x1103
+       .long   3087925505              # 0xb80e0101
+       .long   21                      # 0x15
+       .long   1267487                 # 0x13571f
+       .long   20589568                # 0x13a2c00
+       .long   4355                    # 0x1103
+       .long   2165178625              # 0x810e0101
+       .long   23                      # 0x17
+       .long   151327                  # 0x24f1f
+       .long   20982784                # 0x1402c00
+       .long   4355                    # 0x1103
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   992799                  # 0xf261f
+       .long   20982784                # 0x1402c00
+       .long   4355                    # 0x1103
+       .long   3087925505              # 0xb80e0101
+       .long   21                      # 0x15
+       .long   28447                   # 0x6f1f
+       .long   20982784                # 0x1402c00
+       .long   4355                    # 0x1103
+       .long   2165178625              # 0x810e0101
+       .long   23                      # 0x17
+       .long   763434                  # 0xba62a
+       .long   2479434752              # 0x93c92c00
+       .long   16777237                # 0x1000015
+       .long   307039745               # 0x124d0e01
+       .long   704643072               # 0x2a000000
+       .long   3685                    # 0xe65
+       .long   364431660               # 0x15b8c92c
+       .long   16842752                # 0x1010000
+       .long   1199374                 # 0x124d0e
+       .long   1881800704              # 0x702a0000
+       .long   738197525               # 0x2c000015
+       .long   1540553                 # 0x1781c9
+       .long   234946816               # 0xe010100
+       .long   4685                    # 0x124d
+       .long   169549568               # 0xa1b1f00
+       .long   640417792               # 0x262c0000
+       .long   1413889                 # 0x159301
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   289545984               # 0x11421f00
+       .long   640417792               # 0x262c0000
+       .long   1423361                 # 0x15b801
+       .long   234946816               # 0xe010100
+       .long   5560                    # 0x15b8
+       .long   308813568               # 0x12681f00
+       .long   640417792               # 0x262c0000
+       .long   1540353                 # 0x178101
+       .long   234946816               # 0xe010100
+       .long   6017                    # 0x1781
+       .long   119217920               # 0x71b1f00
+       .long   53215232                # 0x32c0000
+       .long   1413889                 # 0x159301
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   1413902                 # 0x15930e
+       .long   2619277312              # 0x9c1f0000
+       .long   738197505               # 0x2c000001
+       .long   364380419               # 0x15b80103
+       .long   16842752                # 0x1010000
+       .long   1423374                 # 0x15b80e
+       .long   364383744               # 0x15b80e00
+       .long   520093696               # 0x1f000000
+       .long   895                     # 0x37f
+       .long   2164327212              # 0x8101032c
+       .long   16777239                # 0x1000017
+       .long   394333697               # 0x17810e01
+       .long   2165178368              # 0x810e0000
+       .long   23                      # 0x17
+       .long   1161759                 # 0x11ba1f
+       .long   17116160                # 0x1052c00
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   234881045               # 0xe000015
+       .long   6017                    # 0x1781
+       .long   110632704               # 0x6981f00
+       .long   86769664                # 0x52c0000
+       .long   1423361                 # 0x15b801
+       .long   234946816               # 0xe010100
+       .long   5560                    # 0x15b8
+       .long   1540366                 # 0x17810e
+       .long   2854158336              # 0xaa1f0000
+       .long   738197515               # 0x2c00000b
+       .long   394330373               # 0x17810105
+       .long   16842752                # 0x1010000
+       .long   1540366                 # 0x17810e
+       .long   394333696               # 0x17810e00
+       .long   520093696               # 0x1f000000
+       .long   119                     # 0x77
+       .long   2466320428              # 0x9301102c
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   2467168256              # 0x930e0000
+       .long   21                      # 0x15
+       .long   1133855                 # 0x114d1f
+       .long   17837056                # 0x1102c00
+       .long   5560                    # 0x15b8
+       .long   3087925505              # 0xb80e0101
+       .long   234881045               # 0xe000015
+       .long   5560                    # 0x15b8
+       .long   39198464                # 0x2561f00
+       .long   271319040               # 0x102c0000
+       .long   1540353                 # 0x178101
+       .long   234946816               # 0xe010100
+       .long   6017                    # 0x1781
+       .long   1540366                 # 0x17810e
+       .long   3307143168              # 0xc51f0000
+       .long   738197521               # 0x2c000011
+       .long   361955635               # 0x15930133
+       .long   16842752                # 0x1010000
+       .long   1413902                 # 0x15930e
+       .long   361958912               # 0x15930e00
+       .long   3171811328              # 0xbd0e0000
+       .long   39                      # 0x27
+       .long   231967                  # 0x38a1f
+       .long   20130816                # 0x1332c00
+       .long   5560                    # 0x15b8
+       .long   3087925505              # 0xb80e0101
+       .long   234881045               # 0xe000015
+       .long   5560                    # 0x15b8
+       .long   2604302                 # 0x27bd0e
+       .long   1931411456              # 0x731f0000
+       .long   738197522               # 0x2c000012
+       .long   394330419               # 0x17810133
+       .long   16842752                # 0x1010000
+       .long   1540366                 # 0x17810e
+       .long   394333696               # 0x17810e00
+       .long   3171811328              # 0xbd0e0000
+       .long   39                      # 0x27
+       .long   1023263                 # 0xf9d1f
+       .long   16788480                # 0x1002c00
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   517919                  # 0x7e71f
+       .long   16788480                # 0x1002c00
+       .long   5560                    # 0x15b8
+       .long   3087925505              # 0xb80e0101
+       .long   21                      # 0x15
+       .long   1269279                 # 0x135e1f
+       .long   16788480                # 0x1002c00
+       .long   6017                    # 0x1781
+       .long   2165178625              # 0x810e0101
+       .long   23                      # 0x17
+       .long   155935                  # 0x2611f
+       .long   19540992                # 0x12a2c00
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   21                      # 0x15
+       .long   234015                  # 0x3921f
+       .long   19540992                # 0x12a2c00
+       .long   5560                    # 0x15b8
+       .long   3087925505              # 0xb80e0101
+       .long   21                      # 0x15
+       .long   664863                  # 0xa251f
+       .long   19540992                # 0x12a2c00
+       .long   6017                    # 0x1781
+       .long   2165178625              # 0x810e0101
+       .long   23                      # 0x17
+       .long   666655                  # 0xa2c1f
+       .long   19016704                # 0x1222c00
+       .long   5523                    # 0x1593
+       .long   2467168513              # 0x930e0101
+       .long   234881045               # 0xe000015
+       .long   4355                    # 0x1103
+       .long   359997184               # 0x15751f00
+       .long   573308928               # 0x222c0000
+       .long   1423361                 # 0x15b801
+       .long   234946816               # 0xe010100
+       .long   5560                    # 0x15b8
+       .long   1114894                 # 0x11030e
+       .long   52363264                # 0x31f0000
+       .long   738197508               # 0x2c000004
+       .long   394330402               # 0x17810122
+       .long   16842752                # 0x1010000
+       .long   1540366                 # 0x17810e
+       .long   285412864               # 0x11030e00
+       .long   520093696               # 0x1f000000
+       .long   1271                    # 0x4f7
+       .long   2466321452              # 0x9301142c
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   3389915136              # 0xca0e0000
+       .long   14                      # 0xe
+       .long   854815                  # 0xd0b1f
+       .long   18099200                # 0x1142c00
+       .long   5560                    # 0x15b8
+       .long   3087925505              # 0xb80e0101
+       .long   234881045               # 0xe000015
+       .long   3786                    # 0xeca
+       .long   275062528               # 0x10651f00
+       .long   338427904               # 0x142c0000
+       .long   1540353                 # 0x178101
+       .long   234946816               # 0xe010100
+       .long   6017                    # 0x1781
+       .long   969230                  # 0xeca0e
+       .long   1831469056              # 0x6d2a0000
+       .long   738197520               # 0x2c000010
+       .long   1414123                 # 0x1593eb
+       .long   234946816               # 0xe010100
+       .long   5523                    # 0x1593
+       .long   119876096               # 0x7252a00
+       .long   3945529344              # 0xeb2c0000
+       .long   5560                    # 0x15b8
+       .long   3087925505              # 0xb80e0101
+       .long   21                      # 0x15
+       .long   470314                  # 0x72d2a
+       .long   2179673088              # 0x81eb2c00
+       .long   16777239                # 0x1000017
+       .long   394333697               # 0x17810e01
+       .long   520093696               # 0x1f000000
+       .long   129                     # 0x81
+       .long   2466328108              # 0x93012e2c
+       .long   16777237                # 0x1000015
+       .long   361958913               # 0x15930e01
+       .long   520093696               # 0x1f000000
+       .long   3347                    # 0xd13
+       .long   3087085100              # 0xb8012e2c
+       .long   16777237                # 0x1000015
+       .long   364383745               # 0x15b80e01
+       .long   520093696               # 0x1f000000
+       .long   3690                    # 0xe6a
+       .long   2164338220              # 0x81012e2c
+       .long   16777239                # 0x1000017
+       .long   394333697               # 0x17810e01
+       .long   939524096               # 0x38000000
+       .long   3505                    # 0xdb1
+       .long   2336                    # 0x920
+       .long   285419567               # 0x1103282f
+       .long   234946560               # 0xe010000
+       .long   4355                    # 0x1103
+       .long   290994176               # 0x11583800
+       .long   274792448               # 0x10610000
+       .long   1596915712              # 0x5f2f0000
+       .long   5560                    # 0x15b8
+       .long   364383745               # 0x15b80e01
+       .long   3087925248              # 0xb80e0000
+       .long   234881045               # 0xe000015
+       .long   5560                    # 0x15b8
+       .long   157431808               # 0x9623800
+       .long   132972544               # 0x7ed0000
+       .long   1731133440              # 0x672f0000
+       .long   3786                    # 0xeca
+       .long   364383745               # 0x15b80e01
+       .long   939524096               # 0x38000000
+       .long   3354                    # 0xd1a
+       .long   389                     # 0x185
+       .long   364407087               # 0x15b8692f
+       .long   234946560               # 0xe010000
+       .long   5560                    # 0x15b8
+       .long   2604302                 # 0x27bd0e
+       .long   2117599232              # 0x7e380000
+       .long   2264924181              # 0x87000015
+       .long   788529152               # 0x2f000000
+       .long   1570166                 # 0x17f576
+       .long   3087925504              # 0xb80e0100
+       .long   234881045               # 0xe000015
+       .long   5560                    # 0x15b8
+       .long   361641984               # 0x158e3800
+       .long   40304640                # 0x2670000
+       .long   1966014464              # 0x752f0000
+       .long   6133                    # 0x17f5
+       .long   364383745               # 0x15b80e01
+       .long   3087925248              # 0xb80e0000
+       .long   21                      # 0x15
+       .long   108344                  # 0x1a738
+       .long   37120                   # 0x9100
+       .long   4118753024              # 0xf57f2f00
+       .long   16777239                # 0x1000017
+       .long   1423374                 # 0x15b80e
+       .long   364383744               # 0x15b80e00
+       .long   939524096               # 0x38000000
+       .long   1278                    # 0x4fe
+       .long   2040                    # 0x7f8
+       .long   401964591               # 0x17f57e2f
+       .long   234946560               # 0xe010000
+       .long   5560                    # 0x15b8
+       .long   1423374                 # 0x15b80e
+       .long   2570584064              # 0x99380000
+       .long   1979711491              # 0x76000003
+       .long   788529154               # 0x2f000002
+       .long   1570177                 # 0x17f581
+       .long   3087925504              # 0xb80e0100
+       .long   234881045               # 0xe000015
+       .long   5560                    # 0x15b8
+       .long   262289408               # 0xfa23800
+       .long   298582016               # 0x11cc0000
+       .long   2284781568              # 0x882f0000
+       .long   6133                    # 0x17f5
+       .long   364383745               # 0x15b80e01
+       .long   939524096               # 0x38000000
+       .long   436                     # 0x1b4
+       .long   1534                    # 0x5fe
+       .long   401967663               # 0x17f58a2f
+       .long   234946560               # 0xe010000
+       .long   5560                    # 0x15b8
+       .long   1423374                 # 0x15b80e
+       .long   2755133440              # 0xa4380000
+       .long   1811939334              # 0x6c000006
+       .long   788529160               # 0x2f000008
+       .long   1115019                 # 0x11038b
+       .long   51249408                # 0x30e0100
+       .long   17                      # 0x11
+       .long   71736                   # 0x11838
+       .long   754432                  # 0xb8300
+       .long   3096260352              # 0xb88d2f00
+       .long   16777237                # 0x1000015
+       .long   1423374                 # 0x15b80e
+       .long   248122880               # 0xeca0e00
+       .long   939524096               # 0x38000000
+       .long   4212                    # 0x1074
+       .long   2161                    # 0x871
+       .long   396791855               # 0x17a6902f
+       .long   234946560               # 0xe010000
+       .long   6054                    # 0x17a6
+       .long   171194368               # 0xa343800
+       .long   168427520               # 0xa0a0000
+       .long   2788098048              # 0xa62f0000
+       .long   5560                    # 0x15b8
+       .long   364383745               # 0x15b80e01
+       .long   17694720                # 0x10e0000
+       .long   51                      # 0x33
+       .long   1423392                 # 0x15b820
+       .long   92682240                # 0x5863800
+       .long   195428352               # 0xba60000
+       .long   2804875264              # 0xa72f0000
+       .long   5523                    # 0x1593
+       .long   307039745               # 0x124d0e01
+       .long   939524096               # 0x38000000
+       .long   292                     # 0x124
+       .long   3685                    # 0xe65
+       .long   364423215               # 0x15b8a82f
+       .long   234946560               # 0xe010000
+       .long   4685                    # 0x124d
+       .long   276772864               # 0x107f3800
+       .long   74186752                # 0x46c0000
+       .long   2955870208              # 0xb02f0000
+       .long   5560                    # 0x15b8
+       .long   364383745               # 0x15b80e01
+       .long   3389915136              # 0xca0e0000
+       .long   14                      # 0xe
+       .long   802616                  # 0xc3f38
+       .long   1164544                 # 0x11c500
+       .long   3098816256              # 0xb8b42f00
+       .long   16777237                # 0x1000015
+       .long   1423374                 # 0x15b80e
+       .long   364383744               # 0x15b80e00
+       .long   3171811328              # 0xbd0e0000
+       .long   39                      # 0x27
+       .long   563000                  # 0x89738
+       .long   666624                  # 0xa2c00
+       .long   3099209472              # 0xb8ba2f00
+       .long   16777237                # 0x1000015
+       .long   1423374                 # 0x15b80e
+       .long   285412864               # 0x11030e00
+       .long   939524096               # 0x38000000
+       .long   3367                    # 0xd27
+       .long   1271                    # 0x4f7
+       .long   364428335               # 0x15b8bc2f
+       .long   234946560               # 0xe010000
+       .long   5560                    # 0x15b8
+       .long   969230                  # 0xeca0e
+       .long   2755198976              # 0xa4390000
+       .long   1929379861              # 0x73000015
+       .long   822083593               # 0x31000009
+       .long   867434851               # 0x33b40163
+       .long   117506048               # 0x7010000
+       .long   156                     # 0x9c
+       .long   3150                    # 0xc4e
+       .long   87696179                # 0x53a2333
+       .long   692                     # 0x2b4
+       .long   25047297                # 0x17e3101
+       .long   164923                  # 0x2843b
+       .long   767488                  # 0xbb600
+       .long   25112832                # 0x17f3100
+       .long   13236                   # 0x33b4
+       .long   775618817               # 0x2e3b0101
+       .long   167772175               # 0xa00000f
+       .long   822083590               # 0x31000006
+       .long   867434880               # 0x33b40180
+       .long   16842752                # 0x1010000
+       .long   671803                  # 0xa403b
+       .long   175104                  # 0x2ac00
+       .long   25243904                # 0x1813100
+       .long   13236                   # 0x33b4
+       .long   1006633217              # 0x3c000101
+       .long   13257                   # 0x33c9
+       .long   134494465               # 0x8043901
+       .long   277413888               # 0x10890000
+       .long   1748041728              # 0x68310000
+       .long   3388417                 # 0x33b401
+       .long   87687424                # 0x53a0100
+       .long   3514                    # 0xdba
+       .long   25440513                # 0x1843101
+       .long   472379                  # 0x7353b
+       .long   767488                  # 0xbb600
+       .long   25506048                # 0x1853100
+       .long   13236                   # 0x33b4
+       .long   1748697345              # 0x683b0101
+       .long   167772170               # 0xa00000a
+       .long   822083590               # 0x31000006
+       .long   867434886               # 0x33b40186
+       .long   16842752                # 0x1010000
+       .long   1168699                 # 0x11d53b
+       .long   175104                  # 0x2ac00
+       .long   25637120                # 0x1873100
+       .long   13236                   # 0x33b4
+       .long   1006633217              # 0x3c000101
+       .long   13345                   # 0x3421
+       .long   75709697                # 0x4833d01
+       .long   85000192                # 0x5110000
+       .long   1412562944              # 0x54320000
+       .long   156                     # 0x9c
+       .long   278806017               # 0x109e3e01
+       .long   1412562944              # 0x54320000
+       .long   156                     # 0x9c
+       .long   532286                  # 0x81f3e
+       .long   2622763520              # 0x9c543200
+       .long   1040187392              # 0x3e000000
+       .long   152                     # 0x98
+       .long   10245170                # 0x9c5432
+       .long   1396637696              # 0x533f0000
+       .long   838860812               # 0x3200000c
+       .long   34389                   # 0x8655
+       .long   279133952               # 0x10a33f00
+       .long   1446117376              # 0x56320000
+       .long   134                     # 0x86
+       .long   402669568               # 0x18004000
+       .long   0                       # 0x0
+       .long   426770432               # 0x19700000
+       .long   0                       # 0x0
+       .long   1510014976              # 0x5a010000
+       .long   1425                    # 0x591
+       .long   1425                    # 0x591
+       .long   1040262448              # 0x3e012530
+       .long   1710                    # 0x6ae
+       .long   895034672               # 0x35592530
+       .long   3342729216              # 0xc73e0000
+       .long   805306369               # 0x30000001
+       .long   3497509                 # 0x355e25
+       .long   86130176                # 0x5223e00
+       .long   623902720               # 0x25300000
+       .long   4412                    # 0x113c
+       .long   807743                  # 0xc533f
+       .long   1009135616              # 0x3c263000
+       .long   1056964625              # 0x3f000011
+       .long   5568                    # 0x15c0
+       .long   289154864               # 0x113c2730
+       .long   4259840                 # 0x410000
+       .long   52                      # 0x34
+       .long   805306368               # 0x30000000
+       .long   2739021350              # 0xa3422626
+       .long   805306419               # 0x30000033
+       .long   822083584               # 0x31000000
+       .long   196991                  # 0x3017f
+       .long   24643                   # 0x6043
+       .long   67911424                # 0x40c3f00
+       .long   691011584               # 0x29300000
+       .long   4412                    # 0x113c
+       .long   3432004                 # 0x345e44
+       .long   1658880                 # 0x195000
+       .long   0                       # 0x0
+       .long   1661952                 # 0x195c00
+       .long   0                       # 0x0
+       .long   304820224               # 0x122b3000
+       .long   878199040               # 0x34584100
+       .long   10485760                # 0xa00000
+       .long   657457152               # 0x27300000
+       .long   872825381               # 0x34064225
+       .long   13631488                # 0xd00000
+       .long   2234580992              # 0x85310000
+       .long   769                     # 0x301
+       .long   34336                   # 0x8620
+       .long   895688704               # 0x35632000
+       .long   2250637312              # 0x86260000
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   16                      # 0x10
+       .long   0                       # 0x0
+       .long   32                      # 0x20
+       .long   0                       # 0x0
+       .long   56                      # 0x38
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   16                      # 0x10
+       .long   0                       # 0x0
+       .long   32                      # 0x20
+       .long   0                       # 0x0
+       .long   56                      # 0x38
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   64                      # 0x40
+       .long   0                       # 0x0
+       .long   80                      # 0x50
+       .long   0                       # 0x0
+       .long   216                     # 0xd8
+       .long   0                       # 0x0
+       .long   224                     # 0xe0
+       .long   0                       # 0x0
+       .long   252                     # 0xfc
+       .long   0                       # 0x0
+       .long   364                     # 0x16c
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   80                      # 0x50
+       .long   0                       # 0x0
+       .long   216                     # 0xd8
+       .long   0                       # 0x0
+       .long   224                     # 0xe0
+       .long   0                       # 0x0
+       .long   232                     # 0xe8
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   80                      # 0x50
+       .long   0                       # 0x0
+       .long   216                     # 0xd8
+       .long   0                       # 0x0
+       .long   224                     # 0xe0
+       .long   0                       # 0x0
+       .long   232                     # 0xe8
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1852394496              # 0x6e694c00
+       .long   980575595               # 0x3a72656b
+       .long   1145850912              # 0x444c4c20
+       .long   774910240               # 0x2e303120
+       .long   540028464               # 0x20302e30
+       .long   1633955624              # 0x61642f28
+       .long   1781490036              # 0x6a2f6174
+       .long   1768648293              # 0x696b6e65
+       .long   1999467374              # 0x772d736e
+       .long   1936421487              # 0x736b726f
+       .long   1701011824              # 0x65636170
+       .long   1836016431              # 0x6d6f632f
+       .long   1702131056              # 0x65747570
+       .long   1668248109              # 0x636f722d
+       .long   1801727341              # 0x6b642d6d
+       .long   1848472429              # 0x6e2d736d
+       .long   1747806576              # 0x682d6970
+       .long   1818456169              # 0x6c637069
+       .long   795307617               # 0x2f676e61
+       .long   1702131813              # 0x65747865
+       .long   1818324594              # 0x6c616e72
+       .long   1684827183              # 0x646c6c2f
+       .long   1714696736              # 0x66343220
+       .long   1681209656              # 0x64353938
+       .long   842556770               # 0x32386562
+       .long   1717776950              # 0x66633236
+       .long   845428784               # 0x32643830
+       .long   1701064757              # 0x65643035
+       .long   1714763361              # 0x66353661
+       .long   859399779               # 0x33396663
+       .long   929325414               # 0x37646166
+       .long   892416820               # 0x35313334
+       .long   10551                   # 0x2937
+       .long   1851878499              # 0x6e616c63
+       .long   1702240359              # 0x65762067
+       .long   1869181810              # 0x6f697372
+       .long   808525934               # 0x3031206e
+       .long   808333358               # 0x302e302e
+       .long   1680812064              # 0x642f2820
+       .long   794915937               # 0x2f617461
+       .long   1802397034              # 0x6b6e656a
+       .long   762539625               # 0x2d736e69
+       .long   1802661751              # 0x6b726f77
+       .long   1667330163              # 0x63617073
+       .long   1868771173              # 0x6f632f65
+       .long   1953853549              # 0x7475706d
+       .long   1869753701              # 0x6f722d65
+       .long   1680698723              # 0x642d6d63
+       .long   762539371               # 0x2d736d6b
+       .long   761884782               # 0x2d69706e
+       .long   1668311400              # 0x63706968
+       .long   1735287148              # 0x676e616c
+       .long   1954047279              # 0x7478652f
+       .long   1634628197              # 0x616e7265
+       .long   1819029356              # 0x6c6c2f6c
+       .long   1663921526              # 0x632d6d76
+       .long   1735287148              # 0x676e616c
+       .long   859399712               # 0x33396620
+       .long   1630745393              # 0x61333331
+       .long   876110182               # 0x34386166
+       .long   962684004               # 0x39616464
+       .long   1681143905              # 0x64343861
+       .long   1714696550              # 0x66343166
+       .long   809056051               # 0x30393733
+       .long   1633968949              # 0x61646335
+       .long   962736994               # 0x39623362
+       .long   842020152               # 0x32303538
+       .long   673196338               # 0x28202932
+       .long   1952539695              # 0x7461642f
+       .long   1701457761              # 0x656a2f61
+       .long   1852402542              # 0x6e696b6e
+       .long   1870081395              # 0x6f772d73
+       .long   1886612338              # 0x70736b72
+       .long   795173729               # 0x2f656361
+       .long   1886220131              # 0x706d6f63
+       .long   761623669               # 0x2d657475
+       .long   1835233138              # 0x6d636f72
+       .long   1835754541              # 0x6d6b642d
+       .long   1886268787              # 0x706e2d73
+       .long   1768435049              # 0x69682d69
+       .long   1634493296              # 0x616c6370
+       .long   1697605486              # 0x652f676e
+       .long   1919251576              # 0x72657478
+       .long   795631982               # 0x2f6c616e
+       .long   1836477548              # 0x6d766c6c
+       .long   1630549280              # 0x61303520
+       .long   1698181475              # 0x65383163
+       .long   845428537               # 0x32643739
+       .long   845570401               # 0x32666161
+       .long   925918777               # 0x37306639
+       .long   945895269               # 0x38613765
+       .long   878798178               # 0x34616562
+       .long   862270565               # 0x33653465
+       .long   926246244               # 0x37356564
+       .long   1664431412              # 0x63353534
+       .long   2650810726              # 0x9e002966
+       .long   67108869                # 0x4000005
+       .long   329216                  # 0x50600
+       .long   16843776                # 0x1010400
+       .long   855803                  # 0xd0efb
+       .long   16843009                # 0x1010101
+       .long   16777216                # 0x1000000
+       .long   788594688               # 0x2f010000
+       .long   796160111               # 0x2f74706f
+       .long   1835233138              # 0x6d636f72
+       .long   1885956143              # 0x7069682f
+       .long   1668180271              # 0x636e692f
+       .long   1701082476              # 0x6564756c
+       .long   1885956143              # 0x7069682f
+       .long   1667459119              # 0x6363682f
+       .long   1952801887              # 0x7465645f
+       .long   7104865                 # 0x6c6961
+       .long   1920169263              # 0x7273752f
+       .long   1668180271              # 0x636e692f
+       .long   1701082476              # 0x6564756c
+       .long   909670447               # 0x3638782f
+       .long   758396511               # 0x2d34365f
+       .long   1970170220              # 0x756e696c
+       .long   1852255608              # 0x6e672d78
+       .long   1768042357              # 0x69622f75
+       .long   788558708               # 0x2f007374
+       .long   796029813               # 0x2f727375
+       .long   794978668               # 0x2f62696c
+       .long   795042663               # 0x2f636367
+       .long   1597388920              # 0x5f363878
+       .long   1814901814              # 0x6c2d3436
+       .long   2020961897              # 0x78756e69
+       .long   1970169645              # 0x756e672d
+       .long   774846511               # 0x2e2f382f
+       .long   774778670               # 0x2e2e2f2e
+       .long   791555631               # 0x2f2e2e2f
+       .long   1764699694              # 0x692f2e2e
+       .long   1970037614              # 0x756c636e
+       .long   1664050532              # 0x632f6564
+       .long   942615339               # 0x382f2b2b
+       .long   1954047279              # 0x7478652f
+       .long   1937059584              # 0x73752f00
+       .long   1852387186              # 0x6e692f72
+       .long   1685417059              # 0x64756c63
+       .long   947400549               # 0x38782f65
+       .long   875978550               # 0x34365f36
+       .long   1852402733              # 0x6e696c2d
+       .long   1731033205              # 0x672d7875
+       .long   1647277422              # 0x622f756e
+       .long   796095593               # 0x2f737469
+       .long   1701869940              # 0x65707974
+       .long   1966014579              # 0x752f0073
+       .long   1815048819              # 0x6c2f7273
+       .long   1731158633              # 0x672f6269
+       .long   2016371555              # 0x782f6363
+       .long   912209464               # 0x365f3638
+       .long   1768697140              # 0x696c2d34
+       .long   762869102               # 0x2d78756e
+       .long   796225127               # 0x2f756e67
+       .long   774778680               # 0x2e2e2f38
+       .long   791555631               # 0x2f2e2e2f
+       .long   774843950               # 0x2e2f2e2e
+       .long   1852387118              # 0x6e692f2e
+       .long   1685417059              # 0x64756c63
+       .long   727920485               # 0x2b632f65
+       .long   3682091                 # 0x382f2b
+       .long   1920169263              # 0x7273752f
+       .long   1668180271              # 0x636e692f
+       .long   1701082476              # 0x6564756c
+       .long   1886334720              # 0x706f2f00
+       .long   1869754228              # 0x6f722f74
+       .long   1815047523              # 0x6c2f6d63
+       .long   795702892               # 0x2f6d766c
+       .long   794978668               # 0x2f62696c
+       .long   1851878499              # 0x6e616c63
+       .long   808529767               # 0x30312f67
+       .long   808333358               # 0x302e302e
+       .long   1668180271              # 0x636e692f
+       .long   1701082476              # 0x6564756c
+       .long   1937059584              # 0x73752f00
+       .long   1768697714              # 0x696c2f72
+       .long   1667706722              # 0x63672f62
+       .long   947400547               # 0x38782f63
+       .long   875978550               # 0x34365f36
+       .long   1852402733              # 0x6e696c2d
+       .long   1731033205              # 0x672d7875
+       .long   942634350               # 0x382f756e
+       .long   791555631               # 0x2f2e2e2f
+       .long   774843950               # 0x2e2f2e2e
+       .long   774778670               # 0x2e2e2f2e
+       .long   1668180271              # 0x636e692f
+       .long   1701082476              # 0x6564756c
+       .long   724263727               # 0x2b2b632f
+       .long   1647261743              # 0x622f382f
+       .long   7566441                 # 0x737469
+       .long   1920169263              # 0x7273752f
+       .long   1651076143              # 0x62696c2f
+       .long   1667458863              # 0x6363672f
+       .long   909670447               # 0x3638782f
+       .long   758396511               # 0x2d34365f
+       .long   1970170220              # 0x756e696c
+       .long   1852255608              # 0x6e672d78
+       .long   792211317               # 0x2f382f75
+       .long   774843950               # 0x2e2f2e2e
+       .long   774778670               # 0x2e2e2f2e
+       .long   791555631               # 0x2f2e2e2f
+       .long   1818455657              # 0x6c636e69
+       .long   795174005               # 0x2f656475
+       .long   1597388920              # 0x5f363878
+       .long   1814901814              # 0x6c2d3436
+       .long   2020961897              # 0x78756e69
+       .long   1970169645              # 0x756e672d
+       .long   724263727               # 0x2b2b632f
+       .long   1647261743              # 0x622f382f
+       .long   7566441                 # 0x737469
+       .long   1920169263              # 0x7273752f
+       .long   1651076143              # 0x62696c2f
+       .long   1667458863              # 0x6363672f
+       .long   909670447               # 0x3638782f
+       .long   758396511               # 0x2d34365f
+       .long   1970170220              # 0x756e696c
+       .long   1852255608              # 0x6e672d78
+       .long   792211317               # 0x2f382f75
+       .long   774843950               # 0x2e2f2e2e
+       .long   774778670               # 0x2e2e2f2e
+       .long   791555631               # 0x2f2e2e2f
+       .long   1818455657              # 0x6c636e69
+       .long   795174005               # 0x2f656475
+       .long   791358307               # 0x2f2b2b63
+       .long   1701064504              # 0x65642f38
+       .long   6780258                 # 0x677562
+       .long   1836017711              # 0x6d6f682f
+       .long   1769025381              # 0x69712f65
+       .long   1751345006              # 0x6863676e
+       .long   795763061               # 0x2f6e6175
+       .long   1802661751              # 0x6b726f77
+       .long   1667330163              # 0x63617073
+       .long   1702113125              # 0x65742f65
+       .long   796095603               # 0x2f737473
+       .long   1601464674              # 0x5f746962
+       .long   1920235621              # 0x72747865
+       .long   7627617                 # 0x746361
+       .long   1885956096              # 0x70696800
+       .long   1835363679              # 0x6d656d5f
+       .long   779711087               # 0x2e79726f
+       .long   65640                   # 0x10068
+       .long   1887007744              # 0x70797400
+       .long   1747874661              # 0x682e7365
+       .long   512                     # 0x200
+       .long   1768191091              # 0x69647473
+       .long   1965913198              # 0x752d746e
+       .long   1853124201              # 0x6e746e69
+       .long   33581102                # 0x200682e
+       .long   1868759040              # 0x6f630000
+       .long   1920295790              # 0x7275636e
+       .long   1668179314              # 0x636e6572
+       .long   6827621                 # 0x682e65
+       .long   1593835523              # 0x5f000003
+       .long   1935830367              # 0x73626d5f
+       .long   1702125940              # 0x65746174
+       .long   1747874911              # 0x682e745f
+       .long   1024                    # 0x400
+       .long   1953718893              # 0x7473626d
+       .long   1600484449              # 0x5f657461
+       .long   6827636                 # 0x682e74
+       .long   1660944388              # 0x63000004
+       .long   1634231159              # 0x61686377
+       .long   327794                  # 0x50072
+       .long   1852405504              # 0x6e697700
+       .long   779378548               # 0x2e745f74
+       .long   262248                  # 0x40068
+       .long   1751348992              # 0x68637700
+       .long   1747874401              # 0x682e7261
+       .long   1536                    # 0x600
+       .long   1768057196              # 0x6962696c
+       .long   6827631                 # 0x682e6f
+       .long   1929379842              # 0x73000002
+       .long   1701078132              # 0x65646474
+       .long   6827622                 # 0x682e66
+       .long   1593835527              # 0x5f000007
+       .long   1279870559              # 0x4c49465f
+       .long   6827589                 # 0x682e45
+       .long   1929379844              # 0x73000004
+       .long   1918985332              # 0x72616474
+       .long   6827623                 # 0x682e67
+       .long   1694498823              # 0x65000007
+       .long   1885692792              # 0x70656378
+       .long   1852795252              # 0x6e6f6974
+       .long   1920233567              # 0x7274705f
+       .long   134244398               # 0x800682e
+       .long   727908352               # 0x2b630000
+       .long   1852793643              # 0x6e6f632b
+       .long   778529126               # 0x2e676966
+       .long   589928                  # 0x90068
+       .long   1650811904              # 0x62656400
+       .long   1747871605              # 0x682e6775
+       .long   2560                    # 0xa00
+       .long   1768191091              # 0x69647473
+       .long   1764586606              # 0x692d746e
+       .long   778990702               # 0x2e6e746e
+       .long   131176                  # 0x20068
+       .long   1953719040              # 0x74736300
+       .long   1953392996              # 0x746e6964
+       .long   1280                    # 0x500
+       .long   1768191091              # 0x69647473
+       .long   1747874926              # 0x682e746e
+       .long   1536                    # 0x600
+       .long   1668246627              # 0x636f6c63
+       .long   6646881                 # 0x656c61
+       .long   1811939333              # 0x6c000005
+       .long   1818321775              # 0x6c61636f
+       .long   6827621                 # 0x682e65
+       .long   1660944390              # 0x63000006
+       .long   1701869940              # 0x65707974
+       .long   100689966               # 0x600682e
+       .long   1667432448              # 0x63630000
+       .long   1701869940              # 0x65707974
+       .long   1280                    # 0x500
+       .long   1601660270              # 0x5f77656e
+       .long   1869376609              # 0x6f6c6c61
+       .long   1869898083              # 0x6f746163
+       .long   6827634                 # 0x682e72
+       .long   1929379843              # 0x73000003
+       .long   1768711284              # 0x696c6474
+       .long   6827618                 # 0x682e62
+       .long   1929379846              # 0x73000006
+       .long   1633641588              # 0x615f6474
+       .long   1747874658              # 0x682e7362
+       .long   2048                    # 0x800
+       .long   1685353315              # 0x64747363
+       .long   6449516                 # 0x62696c
+       .long   1929379845              # 0x73000005
+       .long   1768711284              # 0x696c6474
+       .long   1818635618              # 0x6c662d62
+       .long   779379055               # 0x2e74616f
+       .long   131176                  # 0x20068
+       .long   1685353216              # 0x64747300
+       .long   761424236               # 0x2d62696c
+       .long   1634038626              # 0x61657362
+       .long   778593138               # 0x2e686372
+       .long   131176                  # 0x20068
+       .long   1279870464              # 0x4c494600
+       .long   6827589                 # 0x682e45
+       .long   1660944388              # 0x63000004
+       .long   1768191091              # 0x69647473
+       .long   327791                  # 0x5006f
+       .long   1598512896              # 0x5f475f00
+       .long   1718513507              # 0x666e6f63
+       .long   1747871593              # 0x682e6769
+       .long   512                     # 0x200
+       .long   1768191091              # 0x69647473
+       .long   6827631                 # 0x682e6f
+       .long   1929379846              # 0x73000006
+       .long   1869177972              # 0x6f696474
+       .long   33581102                # 0x200682e
+       .long   1668743168              # 0x63770000
+       .long   1701869940              # 0x65707974
+       .long   100689966               # 0x600682e
+       .long   2002976768              # 0x77630000
+       .long   1887007843              # 0x70797463
+       .long   327781                  # 0x50065
+       .long   1952675584              # 0x74637700
+       .long   761622649               # 0x2d657079
+       .long   1634231159              # 0x61686377
+       .long   6827634                 # 0x682e72
+       .long   1929379842              # 0x73000002
+       .long   1768711284              # 0x696c6474
+       .long   6827618                 # 0x682e62
+       .long   1660944389              # 0x63000005
+       .long   1801678700              # 0x6b636f6c
+       .long   1747874911              # 0x682e745f
+       .long   1024                    # 0x400
+       .long   1835627619              # 0x6d697463
+       .long   327781                  # 0x50065
+       .long   1835627520              # 0x6d697400
+       .long   779378533               # 0x2e745f65
+       .long   262248                  # 0x40068
+       .long   1835627520              # 0x6d697400
+       .long   6827621                 # 0x682e65
+       .long   1929379846              # 0x73000006
+       .long   1701994856              # 0x65726168
+       .long   1953521508              # 0x74705f64
+       .long   1633836914              # 0x61625f72
+       .long   1747871091              # 0x682e6573
+       .long   2048                    # 0x800
+       .long   1752457581              # 0x6874616d
+       .long   1819042147              # 0x6c6c6163
+       .long   6827635                 # 0x682e73
+       .long   1660944386              # 0x63000002
+       .long   1752457581              # 0x6874616d
+       .long   1280                    # 0x500
+       .long   1752457581              # 0x6874616d
+       .long   100689966               # 0x600682e
+       .long   1600061440              # 0x5f5f0000
+       .long   1851878499              # 0x6e616c63
+       .long   1969446759              # 0x75635f67
+       .long   1834967396              # 0x6d5f6164
+       .long   1600681057              # 0x5f687461
+       .long   2003988326              # 0x77726f66
+       .long   1600418401              # 0x5f647261
+       .long   1818453348              # 0x6c636564
+       .long   1936028257              # 0x73657261
+       .long   117467182               # 0x700682e
+       .long   1768030208              # 0x69620000
+       .long   2019909492              # 0x78655f74
+       .long   1667330676              # 0x63617274
+       .long   1885548148              # 0x70632e74
+       .long   721008                  # 0xb0070
+       .long   1885956096              # 0x70696800
+       .long   1853190751              # 0x6e75725f
+       .long   1701669236              # 0x656d6974
+       .long   16803886                # 0x100682e
+       .long   1701052416              # 0x65640000
+       .long   1701013878              # 0x65636976
+       .long   1853187679              # 0x6e75665f
+       .long   1869182051              # 0x6f697463
+       .long   1747874670              # 0x682e736e
+       .long   256                     # 0x100
+       .long   1769366884              # 0x69766564
+       .long   1818191203              # 0x6c5f6563
+       .long   1634886249              # 0x61726269
+       .long   1683978610              # 0x645f7972
+       .long   1936483173              # 0x736c6365
+       .long   16803886                # 0x100682e
+       .long   67108864                # 0x4000000
+       .long   34144304                # 0x2090030
+       .long   6144                    # 0x1800
+       .long   0                       # 0x0
+       .long   67183619                # 0x4012403
+       .long   171050289               # 0xa320531
+       .long   16956931                # 0x102be03
+       .long   772091908               # 0x2e053004
+       .long   1249755651              # 0x4a7dc203
+       .long   70194437                # 0x42f1505
+       .long   53609777                # 0x3320531
+       .long   70124221                # 0x42e02bd
+       .long   52692272                # 0x3240530
+       .long   90602947                # 0x5667dc3
+       .long   85984820                # 0x5200634
+       .long   69404191                # 0x423061f
+       .long   53544241                # 0x3310531
+       .long   71959231                # 0x44a02bf
+       .long   50660656                # 0x3050530
+       .long   570588609               # 0x22027dc1
+       .long   87098369                # 0x5310401
+       .long   46072625                # 0x2bf0331
+       .long   87032878                # 0x530042e
+       .long   2109670179              # 0x7dbf0323
+       .long   741213486               # 0x2c2e052e
+       .long   87037189                # 0x5301505
+       .long   50733573                # 0x3062205
+       .long   587542103               # 0x23052e57
+       .long   1714094854              # 0x662b0306
+       .long   88612613                # 0x5481f05
+       .long   89654822                # 0x5580626
+       .long   70125087                # 0x42e061f
+       .long   54330674                # 0x33d0532
+       .long   805580334               # 0x30042e2e
+       .long   1409486853              # 0x54031005
+       .long   1325466940              # 0x4f01053c
+       .long   16777474                # 0x1000102
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   458752                  # 0x70000
+       .long   6224                    # 0x1850
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   7                       # 0x7
+       .long   458752                  # 0x70000
+       .long   6404                    # 0x1904
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   13                      # 0xd
+       .long   458752                  # 0x70000
+       .long   6508                    # 0x196c
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   101                     # 0x65
+       .long   524800                  # 0x80200
+       .long   10608                   # 0x2970
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   19                      # 0x13
+       .long   590625                  # 0x90321
+       .long   14816                   # 0x39e0
+       .long   0                       # 0x0
+       .long   4194304                 # 0x400000
+       .long   0                       # 0x0
+       .long   37                      # 0x25
+       .long   590625                  # 0x90321
+       .long   4209120                 # 0x4039e0
+       .long   0                       # 0x0
+       .long   262144                  # 0x40000
+       .long   0                       # 0x0
+       .long   60                      # 0x3c
+       .long   459538                  # 0x70312
+       .long   6144                    # 0x1800
+       .long   0                       # 0x0
+       .long   368                     # 0x170
+       .long   0                       # 0x0
+       .long   79                      # 0x4f
+       .long   394001                  # 0x60311
+       .long   1984                    # 0x7c0
+       .long   0                       # 0x0
+       .long   64                      # 0x40
+       .long   0                       # 0x0
+       .long   1869491712              # 0x6f6e2e00
+       .long   771777908               # 0x2e006574
+       .long   1936619876              # 0x736e7964
+       .long   771779961               # 0x2e006d79
+       .long   779447911               # 0x2e756e67
+       .long   1752392040              # 0x68736168
+       .long   1634217472              # 0x61682e00
+       .long   771778675               # 0x2e006873
+       .long   1936619876              # 0x736e7964
+       .long   771781236               # 0x2e007274
+       .long   1633972082              # 0x61646f72
+       .long   771776884               # 0x2e006174
+       .long   1954047348              # 0x74786574
+       .long   2036608512              # 0x79642e00
+       .long   1768776046              # 0x696d616e
+       .long   1647181923              # 0x622e0063
+       .long   771781491               # 0x2e007373
+       .long   1195658561              # 0x47444d41
+       .long   1663980880              # 0x632e5550
+       .long   1952539763              # 0x74616473
+       .long   1680736353              # 0x642e0061
+       .long   1735746149              # 0x67756265
+       .long   1920234335              # 0x7274735f
+       .long   1701064192              # 0x65642e00
+       .long   1600615778              # 0x5f677562
+       .long   1919050337              # 0x72626261
+       .long   771782245               # 0x2e007665
+       .long   1969382756              # 0x75626564
+       .long   1852399463              # 0x6e695f67
+       .long   771780454               # 0x2e006f66
+       .long   1969382756              # 0x75626564
+       .long   1634885479              # 0x61725f67
+       .long   1936025454              # 0x7365676e
+       .long   1701064192              # 0x65642e00
+       .long   1600615778              # 0x5f677562
+       .long   1768120685              # 0x6963616d
+       .long   7300718                 # 0x6f666e
+       .long   1836016430              # 0x6d6f632e
+       .long   1953391981              # 0x746e656d
+       .long   1701064192              # 0x65642e00
+       .long   1600615778              # 0x5f677562
+       .long   1701734764              # 0x656e696c
+       .long   2037591552              # 0x79732e00
+       .long   1650553965              # 0x6261746d
+       .long   1752378880              # 0x68732e00
+       .long   1953657971              # 0x74727473
+       .long   771777121               # 0x2e006261
+       .long   1953657971              # 0x74727473
+       .long   25185                   # 0x6261
+       .long   1596998210              # 0x5f304242
+       .long   1111621681              # 0x42420031
+       .long   3301168                 # 0x325f30
+       .long   1596998210              # 0x5f304242
+       .long   1600061491              # 0x5f5f0033
+       .long   1601202536              # 0x5f706968
+       .long   1769366884              # 0x69766564
+       .long   1751082339              # 0x685f6563
+       .long   7364965                 # 0x706165
+       .long   1768447839              # 0x69685f5f
+       .long   1701076848              # 0x65645f70
+       .long   1701013878              # 0x65636976
+       .long   1734439007              # 0x6761705f
+       .long   1818648421              # 0x6c665f65
+       .long   1644193633              # 0x62006761
+       .long   1700754537              # 0x655f7469
+       .long   1634890872              # 0x61727478
+       .long   1801417827              # 0x6b5f7463
+       .long   1701737061              # 0x656e7265
+       .long   1768030316              # 0x6962006c
+       .long   2019909492              # 0x78655f74
+       .long   1667330676              # 0x63617274
+       .long   1701535604              # 0x656b5f74
+       .long   1818586738              # 0x6c656e72
+       .long   6581038                 # 0x646b2e
+       .long   1314473055              # 0x4e59445f
+       .long   1128877377              # 0x43494d41
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   7                       # 0x7
+       .long   2                       # 0x2
+       .long   0                       # 0x0
+       .long   568                     # 0x238
+       .long   0                       # 0x0
+       .long   568                     # 0x238
+       .long   0                       # 0x0
+       .long   1120                    # 0x460
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   4                       # 0x4
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   7                       # 0x7
+       .long   11                      # 0xb
+       .long   2                       # 0x2
+       .long   0                       # 0x0
+       .long   1688                    # 0x698
+       .long   0                       # 0x0
+       .long   1688                    # 0x698
+       .long   0                       # 0x0
+       .long   120                     # 0x78
+       .long   0                       # 0x0
+       .long   5                       # 0x5
+       .long   1                       # 0x1
+       .long   8                       # 0x8
+       .long   0                       # 0x0
+       .long   24                      # 0x18
+       .long   0                       # 0x0
+       .long   15                      # 0xf
+       .long   1879048182              # 0x6ffffff6
+       .long   2                       # 0x2
+       .long   0                       # 0x0
+       .long   1808                    # 0x710
+       .long   0                       # 0x0
+       .long   1808                    # 0x710
+       .long   0                       # 0x0
+       .long   44                      # 0x2c
+       .long   0                       # 0x0
+       .long   2                       # 0x2
+       .long   0                       # 0x0
+       .long   8                       # 0x8
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   25                      # 0x19
+       .long   5                       # 0x5
+       .long   2                       # 0x2
+       .long   0                       # 0x0
+       .long   1852                    # 0x73c
+       .long   0                       # 0x0
+       .long   1852                    # 0x73c
+       .long   0                       # 0x0
+       .long   48                      # 0x30
+       .long   0                       # 0x0
+       .long   2                       # 0x2
+       .long   0                       # 0x0
+       .long   4                       # 0x4
+       .long   0                       # 0x0
+       .long   4                       # 0x4
+       .long   0                       # 0x0
+       .long   31                      # 0x1f
+       .long   3                       # 0x3
+       .long   2                       # 0x2
+       .long   0                       # 0x0
+       .long   1900                    # 0x76c
+       .long   0                       # 0x0
+       .long   1900                    # 0x76c
+       .long   0                       # 0x0
+       .long   83                      # 0x53
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   39                      # 0x27
+       .long   1                       # 0x1
+       .long   2                       # 0x2
+       .long   0                       # 0x0
+       .long   1984                    # 0x7c0
+       .long   0                       # 0x0
+       .long   1984                    # 0x7c0
+       .long   0                       # 0x0
+       .long   64                      # 0x40
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   64                      # 0x40
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   47                      # 0x2f
+       .long   1                       # 0x1
+       .long   6                       # 0x6
+       .long   0                       # 0x0
+       .long   6144                    # 0x1800
+       .long   0                       # 0x0
+       .long   2048                    # 0x800
+       .long   0                       # 0x0
+       .long   368                     # 0x170
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   256                     # 0x100
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   53                      # 0x35
+       .long   6                       # 0x6
+       .long   3                       # 0x3
+       .long   0                       # 0x0
+       .long   10608                   # 0x2970
+       .long   0                       # 0x0
+       .long   2416                    # 0x970
+       .long   0                       # 0x0
+       .long   112                     # 0x70
+       .long   0                       # 0x0
+       .long   5                       # 0x5
+       .long   0                       # 0x0
+       .long   8                       # 0x8
+       .long   0                       # 0x0
+       .long   16                      # 0x10
+       .long   0                       # 0x0
+       .long   62                      # 0x3e
+       .long   8                       # 0x8
+       .long   3                       # 0x3
+       .long   0                       # 0x0
+       .long   14816                   # 0x39e0
+       .long   0                       # 0x0
+       .long   2528                    # 0x9e0
+       .long   0                       # 0x0
+       .long   4456448                 # 0x440000
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   16                      # 0x10
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   67                      # 0x43
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   2528                    # 0x9e0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   82                      # 0x52
+       .long   1                       # 0x1
+       .long   48                      # 0x30
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   2528                    # 0x9e0
+       .long   0                       # 0x0
+       .long   5575                    # 0x15c7
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   93                      # 0x5d
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   8103                    # 0x1fa7
+       .long   0                       # 0x0
+       .long   884                     # 0x374
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   107                     # 0x6b
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   8987                    # 0x231b
+       .long   0                       # 0x0
+       .long   13673                   # 0x3569
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   119                     # 0x77
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   22660                   # 0x5884
+       .long   0                       # 0x0
+       .long   256                     # 0x100
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   133                     # 0x85
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   22916                   # 0x5984
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   148                     # 0x94
+       .long   1                       # 0x1
+       .long   48                      # 0x30
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   22917                   # 0x5985
+       .long   0                       # 0x0
+       .long   382                     # 0x17e
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   157                     # 0x9d
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   23299                   # 0x5b03
+       .long   0                       # 0x0
+       .long   1442                    # 0x5a2
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   169                     # 0xa9
+       .long   2                       # 0x2
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   24744                   # 0x60a8
+       .long   0                       # 0x0
+       .long   216                     # 0xd8
+       .long   0                       # 0x0
+       .long   20                      # 0x14
+       .long   5                       # 0x5
+       .long   8                       # 0x8
+       .long   0                       # 0x0
+       .long   24                      # 0x18
+       .long   0                       # 0x0
+       .long   177                     # 0xb1
+       .long   3                       # 0x3
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   24960                   # 0x6180
+       .long   0                       # 0x0
+       .long   195                     # 0xc3
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   187                     # 0xbb
+       .long   3                       # 0x3
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   25155                   # 0x6243
+       .long   0                       # 0x0
+       .long   110                     # 0x6e
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   1                       # 0x1
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .long   0                       # 0x0
+       .size   bit_extract_kernel_co_gfx900, 26616
+
+       .type   .L.str,@object          # @.str
+       .section        .rodata.str1.1,"aMS",@progbits,1
+.L.str:
+       .asciz  "error: '%s'(%d) at %s:%d\n"
+       .size   .L.str, 26
+
+       .type   .L.str.1,@object        # @.str.1
+.L.str.1:
+       .asciz  "bit_extract.cpp"
+       .size   .L.str.1, 16
+
+       .type   .L.str.2,@object        # @.str.2
+.L.str.2:
+       .asciz  "info: running on device #%d %s\n"
+       .size   .L.str.2, 32
+
+       .type   .L.str.3,@object        # @.str.3
+.L.str.3:
+       .asciz  "info: allocate host mem (%6.2f MB)\n"
+       .size   .L.str.3, 36
+
+       .type   .L.str.4,@object        # @.str.4
+.L.str.4:
+       .asciz  "info: allocate device mem (%6.2f MB)\n"
+       .size   .L.str.4, 38
+
+       .type   .L.str.7,@object        # @.str.7
+.L.str.7:
+       .asciz  "bit_extract_kernel"
+       .size   .L.str.7, 19
+
+       .type   .L.str.10,@object       # @.str.10
+.L.str.10:
+       .asciz  "mismatch detected.\n"
+       .size   .L.str.10, 20
+
+       .type   .L.str.11,@object       # @.str.11
+.L.str.11:
+       .asciz  "%zu: %08x =? %08x (Ain=%08x)\n"
+       .size   .L.str.11, 30
+
+       .section        .init_array,"aw",@init_array
+       .p2align        3
+       .quad   _GLOBAL__sub_I_bit_extract.cpp
+       .type   .Lstr,@object           # @str
+       .section        .rodata.str1.1,"aMS",@progbits,1
+.Lstr:
+       .asciz  "info: copy Host2Device"
+       .size   .Lstr, 23
+
+       .type   .Lstr.13,@object        # @str.13
+.Lstr.13:
+       .asciz  "info: launch 'bit_extract_kernel' "
+       .size   .Lstr.13, 35
+
+       .type   .Lstr.14,@object        # @str.14
+.Lstr.14:
+       .asciz  "info: copy Device2Host"
+       .size   .Lstr.14, 23
+
+       .type   .Lstr.15,@object        # @str.15
+.Lstr.15:
+       .asciz  "info: check result"
+       .size   .Lstr.15, 19
+
+       .type   .Lstr.16,@object        # @str.16
+.Lstr.16:
+       .asciz  "PASSED!"
+       .size   .Lstr.16, 8
+
+       .file   52 "/opt/rocm/hip/include/hip/hcc_detail/hip_runtime_api.h"
+       .section        .debug_str,"MS",@progbits,1
+.Linfo_string0:
+       .asciz  "clang version 10.0.0 (/data/jenkins-workspace/compute-rocm-dkms-npi-hipclang/external/llvm-clang f93133afa84dda9a84df14f37905cdab3b985022) (/data/jenkins-workspace/compute-rocm-dkms-npi-hipclang/external/llvm 50ac18e97d2aaf29f07e7a8bea4e4e3de57455cf)" # string offset=0
+.Linfo_string1:
+       .asciz  "bit_extract.cpp"       # string offset=251
+.Linfo_string2:
+       .asciz  "/home/qingchuan/workspace/tests/bit_extract_s" # string offset=267
+.Linfo_string3:
+       .asciz  "std"                   # string offset=313
+.Linfo_string4:
+       .asciz  "__ioinit"              # string offset=317
+.Linfo_string5:
+       .asciz  "ios_base"              # string offset=326
+.Linfo_string6:
+       .asciz  "_S_refcount"           # string offset=335
+.Linfo_string7:
+       .asciz  "int"                   # string offset=347
+.Linfo_string8:
+       .asciz  "_Atomic_word"          # string offset=351
+.Linfo_string9:
+       .asciz  "_S_synced_with_stdio"  # string offset=364
+.Linfo_string10:
+       .asciz  "bool"                  # string offset=385
+.Linfo_string11:
+       .asciz  "Init"                  # string offset=390
+.Linfo_string12:
+       .asciz  "~Init"                 # string offset=395
+.Linfo_string13:
+       .asciz  "_ZStL8__ioinit"        # string offset=401
+.Linfo_string14:
+       .asciz  "bit_extract_kernel_co_gfx900" # string offset=416
+.Linfo_string15:
+       .asciz  "unsigned int"          # string offset=445
+.Linfo_string16:
+       .asciz  "__uint32_t"            # string offset=458
+.Linfo_string17:
+       .asciz  "uint32_t"              # string offset=469
+.Linfo_string18:
+       .asciz  "__ARRAY_SIZE_TYPE__"   # string offset=478
+.Linfo_string19:
+       .asciz  "__gnu_cxx"             # string offset=498
+.Linfo_string20:
+       .asciz  "_S_single"             # string offset=508
+.Linfo_string21:
+       .asciz  "_S_mutex"              # string offset=518
+.Linfo_string22:
+       .asciz  "_S_atomic"             # string offset=527
+.Linfo_string23:
+       .asciz  "_Lock_policy"          # string offset=537
+.Linfo_string24:
+       .asciz  "hipSuccess"            # string offset=550
+.Linfo_string25:
+       .asciz  "hipErrorOutOfMemory"   # string offset=561
+.Linfo_string26:
+       .asciz  "hipErrorNotInitialized" # string offset=581
+.Linfo_string27:
+       .asciz  "hipErrorDeinitialized" # string offset=604
+.Linfo_string28:
+       .asciz  "hipErrorProfilerDisabled" # string offset=626
+.Linfo_string29:
+       .asciz  "hipErrorProfilerNotInitialized" # string offset=651
+.Linfo_string30:
+       .asciz  "hipErrorProfilerAlreadyStarted" # string offset=682
+.Linfo_string31:
+       .asciz  "hipErrorProfilerAlreadyStopped" # string offset=713
+.Linfo_string32:
+       .asciz  "hipErrorInsufficientDriver" # string offset=744
+.Linfo_string33:
+       .asciz  "hipErrorInvalidImage"  # string offset=771
+.Linfo_string34:
+       .asciz  "hipErrorInvalidContext" # string offset=792
+.Linfo_string35:
+       .asciz  "hipErrorContextAlreadyCurrent" # string offset=815
+.Linfo_string36:
+       .asciz  "hipErrorMapFailed"     # string offset=845
+.Linfo_string37:
+       .asciz  "hipErrorUnmapFailed"   # string offset=863
+.Linfo_string38:
+       .asciz  "hipErrorArrayIsMapped" # string offset=883
+.Linfo_string39:
+       .asciz  "hipErrorAlreadyMapped" # string offset=905
+.Linfo_string40:
+       .asciz  "hipErrorNoBinaryForGpu" # string offset=927
+.Linfo_string41:
+       .asciz  "hipErrorAlreadyAcquired" # string offset=950
+.Linfo_string42:
+       .asciz  "hipErrorNotMapped"     # string offset=974
+.Linfo_string43:
+       .asciz  "hipErrorNotMappedAsArray" # string offset=992
+.Linfo_string44:
+       .asciz  "hipErrorNotMappedAsPointer" # string offset=1017
+.Linfo_string45:
+       .asciz  "hipErrorECCNotCorrectable" # string offset=1044
+.Linfo_string46:
+       .asciz  "hipErrorUnsupportedLimit" # string offset=1070
+.Linfo_string47:
+       .asciz  "hipErrorContextAlreadyInUse" # string offset=1095
+.Linfo_string48:
+       .asciz  "hipErrorPeerAccessUnsupported" # string offset=1123
+.Linfo_string49:
+       .asciz  "hipErrorInvalidKernelFile" # string offset=1153
+.Linfo_string50:
+       .asciz  "hipErrorInvalidGraphicsContext" # string offset=1179
+.Linfo_string51:
+       .asciz  "hipErrorInvalidSource" # string offset=1210
+.Linfo_string52:
+       .asciz  "hipErrorFileNotFound"  # string offset=1232
+.Linfo_string53:
+       .asciz  "hipErrorSharedObjectSymbolNotFound" # string offset=1253
+.Linfo_string54:
+       .asciz  "hipErrorSharedObjectInitFailed" # string offset=1288
+.Linfo_string55:
+       .asciz  "hipErrorOperatingSystem" # string offset=1319
+.Linfo_string56:
+       .asciz  "hipErrorSetOnActiveProcess" # string offset=1343
+.Linfo_string57:
+       .asciz  "hipErrorInvalidHandle" # string offset=1370
+.Linfo_string58:
+       .asciz  "hipErrorNotFound"      # string offset=1392
+.Linfo_string59:
+       .asciz  "hipErrorIllegalAddress" # string offset=1409
+.Linfo_string60:
+       .asciz  "hipErrorInvalidSymbol" # string offset=1432
+.Linfo_string61:
+       .asciz  "hipErrorMissingConfiguration" # string offset=1454
+.Linfo_string62:
+       .asciz  "hipErrorMemoryAllocation" # string offset=1483
+.Linfo_string63:
+       .asciz  "hipErrorInitializationError" # string offset=1508
+.Linfo_string64:
+       .asciz  "hipErrorLaunchFailure" # string offset=1536
+.Linfo_string65:
+       .asciz  "hipErrorPriorLaunchFailure" # string offset=1558
+.Linfo_string66:
+       .asciz  "hipErrorLaunchTimeOut" # string offset=1585
+.Linfo_string67:
+       .asciz  "hipErrorLaunchOutOfResources" # string offset=1607
+.Linfo_string68:
+       .asciz  "hipErrorInvalidDeviceFunction" # string offset=1636
+.Linfo_string69:
+       .asciz  "hipErrorInvalidConfiguration" # string offset=1666
+.Linfo_string70:
+       .asciz  "hipErrorInvalidDevice" # string offset=1695
+.Linfo_string71:
+       .asciz  "hipErrorInvalidValue"  # string offset=1717
+.Linfo_string72:
+       .asciz  "hipErrorInvalidDevicePointer" # string offset=1738
+.Linfo_string73:
+       .asciz  "hipErrorInvalidMemcpyDirection" # string offset=1767
+.Linfo_string74:
+       .asciz  "hipErrorUnknown"       # string offset=1798
+.Linfo_string75:
+       .asciz  "hipErrorInvalidResourceHandle" # string offset=1814
+.Linfo_string76:
+       .asciz  "hipErrorNotReady"      # string offset=1844
+.Linfo_string77:
+       .asciz  "hipErrorNoDevice"      # string offset=1861
+.Linfo_string78:
+       .asciz  "hipErrorPeerAccessAlreadyEnabled" # string offset=1878
+.Linfo_string79:
+       .asciz  "hipErrorPeerAccessNotEnabled" # string offset=1911
+.Linfo_string80:
+       .asciz  "hipErrorRuntimeMemory" # string offset=1940
+.Linfo_string81:
+       .asciz  "hipErrorRuntimeOther"  # string offset=1962
+.Linfo_string82:
+       .asciz  "hipErrorHostMemoryAlreadyRegistered" # string offset=1983
+.Linfo_string83:
+       .asciz  "hipErrorHostMemoryNotRegistered" # string offset=2019
+.Linfo_string84:
+       .asciz  "hipErrorMapBufferObjectFailed" # string offset=2051
+.Linfo_string85:
+       .asciz  "hipErrorAssert"        # string offset=2081
+.Linfo_string86:
+       .asciz  "hipErrorNotSupported"  # string offset=2096
+.Linfo_string87:
+       .asciz  "hipErrorTbd"           # string offset=2117
+.Linfo_string88:
+       .asciz  "hipError_t"            # string offset=2129
+.Linfo_string89:
+       .asciz  "hipMemcpyHostToHost"   # string offset=2140
+.Linfo_string90:
+       .asciz  "hipMemcpyHostToDevice" # string offset=2160
+.Linfo_string91:
+       .asciz  "hipMemcpyDeviceToHost" # string offset=2182
+.Linfo_string92:
+       .asciz  "hipMemcpyDeviceToDevice" # string offset=2204
+.Linfo_string93:
+       .asciz  "hipMemcpyDefault"      # string offset=2228
+.Linfo_string94:
+       .asciz  "hipMemcpyKind"         # string offset=2245
+.Linfo_string95:
+       .asciz  "__count"               # string offset=2259
+.Linfo_string96:
+       .asciz  "__value"               # string offset=2267
+.Linfo_string97:
+       .asciz  "__wch"                 # string offset=2275
+.Linfo_string98:
+       .asciz  "__wchb"                # string offset=2281
+.Linfo_string99:
+       .asciz  "char"                  # string offset=2288
+.Linfo_string100:
+       .asciz  "__mbstate_t"           # string offset=2293
+.Linfo_string101:
+       .asciz  "mbstate_t"             # string offset=2305
+.Linfo_string102:
+       .asciz  "wint_t"                # string offset=2315
+.Linfo_string103:
+       .asciz  "btowc"                 # string offset=2322
+.Linfo_string104:
+       .asciz  "fgetwc"                # string offset=2328
+.Linfo_string105:
+       .asciz  "_flags"                # string offset=2335
+.Linfo_string106:
+       .asciz  "_IO_read_ptr"          # string offset=2342
+.Linfo_string107:
+       .asciz  "_IO_read_end"          # string offset=2355
+.Linfo_string108:
+       .asciz  "_IO_read_base"         # string offset=2368
+.Linfo_string109:
+       .asciz  "_IO_write_base"        # string offset=2382
+.Linfo_string110:
+       .asciz  "_IO_write_ptr"         # string offset=2397
+.Linfo_string111:
+       .asciz  "_IO_write_end"         # string offset=2411
+.Linfo_string112:
+       .asciz  "_IO_buf_base"          # string offset=2425
+.Linfo_string113:
+       .asciz  "_IO_buf_end"           # string offset=2438
+.Linfo_string114:
+       .asciz  "_IO_save_base"         # string offset=2450
+.Linfo_string115:
+       .asciz  "_IO_backup_base"       # string offset=2464
+.Linfo_string116:
+       .asciz  "_IO_save_end"          # string offset=2480
+.Linfo_string117:
+       .asciz  "_markers"              # string offset=2493
+.Linfo_string118:
+       .asciz  "_IO_marker"            # string offset=2502
+.Linfo_string119:
+       .asciz  "_chain"                # string offset=2513
+.Linfo_string120:
+       .asciz  "_fileno"               # string offset=2520
+.Linfo_string121:
+       .asciz  "_flags2"               # string offset=2528
+.Linfo_string122:
+       .asciz  "_old_offset"           # string offset=2536
+.Linfo_string123:
+       .asciz  "long int"              # string offset=2548
+.Linfo_string124:
+       .asciz  "__off_t"               # string offset=2557
+.Linfo_string125:
+       .asciz  "_cur_column"           # string offset=2565
+.Linfo_string126:
+       .asciz  "unsigned short"        # string offset=2577
+.Linfo_string127:
+       .asciz  "_vtable_offset"        # string offset=2592
+.Linfo_string128:
+       .asciz  "signed char"           # string offset=2607
+.Linfo_string129:
+       .asciz  "_shortbuf"             # string offset=2619
+.Linfo_string130:
+       .asciz  "_lock"                 # string offset=2629
+.Linfo_string131:
+       .asciz  "_IO_lock_t"            # string offset=2635
+.Linfo_string132:
+       .asciz  "_offset"               # string offset=2646
+.Linfo_string133:
+       .asciz  "__off64_t"             # string offset=2654
+.Linfo_string134:
+       .asciz  "__pad1"                # string offset=2664
+.Linfo_string135:
+       .asciz  "__pad2"                # string offset=2671
+.Linfo_string136:
+       .asciz  "__pad3"                # string offset=2678
+.Linfo_string137:
+       .asciz  "__pad4"                # string offset=2685
+.Linfo_string138:
+       .asciz  "__pad5"                # string offset=2692
+.Linfo_string139:
+       .asciz  "long unsigned int"     # string offset=2699
+.Linfo_string140:
+       .asciz  "size_t"                # string offset=2717
+.Linfo_string141:
+       .asciz  "_mode"                 # string offset=2724
+.Linfo_string142:
+       .asciz  "_unused2"              # string offset=2730
+.Linfo_string143:
+       .asciz  "_IO_FILE"              # string offset=2739
+.Linfo_string144:
+       .asciz  "__FILE"                # string offset=2748
+.Linfo_string145:
+       .asciz  "fgetws"                # string offset=2755
+.Linfo_string146:
+       .asciz  "wchar_t"               # string offset=2762
+.Linfo_string147:
+       .asciz  "fputwc"                # string offset=2770
+.Linfo_string148:
+       .asciz  "fputws"                # string offset=2777
+.Linfo_string149:
+       .asciz  "fwide"                 # string offset=2784
+.Linfo_string150:
+       .asciz  "fwprintf"              # string offset=2790
+.Linfo_string151:
+       .asciz  "fwscanf"               # string offset=2799
+.Linfo_string152:
+       .asciz  "getwc"                 # string offset=2807
+.Linfo_string153:
+       .asciz  "getwchar"              # string offset=2813
+.Linfo_string154:
+       .asciz  "mbrlen"                # string offset=2822
+.Linfo_string155:
+       .asciz  "mbrtowc"               # string offset=2829
+.Linfo_string156:
+       .asciz  "mbsinit"               # string offset=2837
+.Linfo_string157:
+       .asciz  "mbsrtowcs"             # string offset=2845
+.Linfo_string158:
+       .asciz  "putwc"                 # string offset=2855
+.Linfo_string159:
+       .asciz  "putwchar"              # string offset=2861
+.Linfo_string160:
+       .asciz  "swprintf"              # string offset=2870
+.Linfo_string161:
+       .asciz  "swscanf"               # string offset=2879
+.Linfo_string162:
+       .asciz  "ungetwc"               # string offset=2887
+.Linfo_string163:
+       .asciz  "vfwprintf"             # string offset=2895
+.Linfo_string164:
+       .asciz  "gp_offset"             # string offset=2905
+.Linfo_string165:
+       .asciz  "fp_offset"             # string offset=2915
+.Linfo_string166:
+       .asciz  "overflow_arg_area"     # string offset=2925
+.Linfo_string167:
+       .asciz  "reg_save_area"         # string offset=2943
+.Linfo_string168:
+       .asciz  "__va_list_tag"         # string offset=2957
+.Linfo_string169:
+       .asciz  "vfwscanf"              # string offset=2971
+.Linfo_string170:
+       .asciz  "vswprintf"             # string offset=2980
+.Linfo_string171:
+       .asciz  "vswscanf"              # string offset=2990
+.Linfo_string172:
+       .asciz  "vwprintf"              # string offset=2999
+.Linfo_string173:
+       .asciz  "vwscanf"               # string offset=3008
+.Linfo_string174:
+       .asciz  "wcrtomb"               # string offset=3016
+.Linfo_string175:
+       .asciz  "wcscat"                # string offset=3024
+.Linfo_string176:
+       .asciz  "wcscmp"                # string offset=3031
+.Linfo_string177:
+       .asciz  "wcscoll"               # string offset=3038
+.Linfo_string178:
+       .asciz  "wcscpy"                # string offset=3046
+.Linfo_string179:
+       .asciz  "wcscspn"               # string offset=3053
+.Linfo_string180:
+       .asciz  "wcsftime"              # string offset=3061
+.Linfo_string181:
+       .asciz  "tm"                    # string offset=3070
+.Linfo_string182:
+       .asciz  "wcslen"                # string offset=3073
+.Linfo_string183:
+       .asciz  "wcsncat"               # string offset=3080
+.Linfo_string184:
+       .asciz  "wcsncmp"               # string offset=3088
+.Linfo_string185:
+       .asciz  "wcsncpy"               # string offset=3096
+.Linfo_string186:
+       .asciz  "wcsrtombs"             # string offset=3104
+.Linfo_string187:
+       .asciz  "wcsspn"                # string offset=3114
+.Linfo_string188:
+       .asciz  "wcstod"                # string offset=3121
+.Linfo_string189:
+       .asciz  "double"                # string offset=3128
+.Linfo_string190:
+       .asciz  "wcstof"                # string offset=3135
+.Linfo_string191:
+       .asciz  "float"                 # string offset=3142
+.Linfo_string192:
+       .asciz  "wcstok"                # string offset=3148
+.Linfo_string193:
+       .asciz  "wcstol"                # string offset=3155
+.Linfo_string194:
+       .asciz  "wcstoul"               # string offset=3162
+.Linfo_string195:
+       .asciz  "wcsxfrm"               # string offset=3170
+.Linfo_string196:
+       .asciz  "wctob"                 # string offset=3178
+.Linfo_string197:
+       .asciz  "wmemcmp"               # string offset=3184
+.Linfo_string198:
+       .asciz  "wmemcpy"               # string offset=3192
+.Linfo_string199:
+       .asciz  "wmemmove"              # string offset=3200
+.Linfo_string200:
+       .asciz  "wmemset"               # string offset=3209
+.Linfo_string201:
+       .asciz  "wprintf"               # string offset=3217
+.Linfo_string202:
+       .asciz  "wscanf"                # string offset=3225
+.Linfo_string203:
+       .asciz  "wcschr"                # string offset=3232
+.Linfo_string204:
+       .asciz  "wcspbrk"               # string offset=3239
+.Linfo_string205:
+       .asciz  "wcsrchr"               # string offset=3247
+.Linfo_string206:
+       .asciz  "wcsstr"                # string offset=3255
+.Linfo_string207:
+       .asciz  "wmemchr"               # string offset=3262
+.Linfo_string208:
+       .asciz  "wcstold"               # string offset=3270
+.Linfo_string209:
+       .asciz  "long double"           # string offset=3278
+.Linfo_string210:
+       .asciz  "wcstoll"               # string offset=3290
+.Linfo_string211:
+       .asciz  "long long int"         # string offset=3298
+.Linfo_string212:
+       .asciz  "wcstoull"              # string offset=3312
+.Linfo_string213:
+       .asciz  "long long unsigned int" # string offset=3321
+.Linfo_string214:
+       .asciz  "__exception_ptr"       # string offset=3344
+.Linfo_string215:
+       .asciz  "_M_exception_object"   # string offset=3360
+.Linfo_string216:
+       .asciz  "exception_ptr"         # string offset=3380
+.Linfo_string217:
+       .asciz  "_ZNSt15__exception_ptr13exception_ptr9_M_addrefEv" # string offset=3394
+.Linfo_string218:
+       .asciz  "_M_addref"             # string offset=3444
+.Linfo_string219:
+       .asciz  "_ZNSt15__exception_ptr13exception_ptr10_M_releaseEv" # string offset=3454
+.Linfo_string220:
+       .asciz  "_M_release"            # string offset=3506
+.Linfo_string221:
+       .asciz  "_ZNKSt15__exception_ptr13exception_ptr6_M_getEv" # string offset=3517
+.Linfo_string222:
+       .asciz  "_M_get"                # string offset=3565
+.Linfo_string223:
+       .asciz  "decltype(nullptr)"     # string offset=3572
+.Linfo_string224:
+       .asciz  "nullptr_t"             # string offset=3590
+.Linfo_string225:
+       .asciz  "_ZNSt15__exception_ptr13exception_ptraSERKS0_" # string offset=3600
+.Linfo_string226:
+       .asciz  "operator="             # string offset=3646
+.Linfo_string227:
+       .asciz  "_ZNSt15__exception_ptr13exception_ptraSEOS0_" # string offset=3656
+.Linfo_string228:
+       .asciz  "~exception_ptr"        # string offset=3701
+.Linfo_string229:
+       .asciz  "_ZNSt15__exception_ptr13exception_ptr4swapERS0_" # string offset=3716
+.Linfo_string230:
+       .asciz  "swap"                  # string offset=3764
+.Linfo_string231:
+       .asciz  "_ZNKSt15__exception_ptr13exception_ptrcvbEv" # string offset=3769
+.Linfo_string232:
+       .asciz  "operator bool"         # string offset=3813
+.Linfo_string233:
+       .asciz  "_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv" # string offset=3827
+.Linfo_string234:
+       .asciz  "__cxa_exception_type"  # string offset=3890
+.Linfo_string235:
+       .asciz  "type_info"             # string offset=3911
+.Linfo_string236:
+       .asciz  "_ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE" # string offset=3921
+.Linfo_string237:
+       .asciz  "rethrow_exception"     # string offset=3981
+.Linfo_string238:
+       .asciz  "__gnu_debug"           # string offset=3999
+.Linfo_string239:
+       .asciz  "__debug"               # string offset=4011
+.Linfo_string240:
+       .asciz  "__int8_t"              # string offset=4019
+.Linfo_string241:
+       .asciz  "int8_t"                # string offset=4028
+.Linfo_string242:
+       .asciz  "short"                 # string offset=4035
+.Linfo_string243:
+       .asciz  "__int16_t"             # string offset=4041
+.Linfo_string244:
+       .asciz  "int16_t"               # string offset=4051
+.Linfo_string245:
+       .asciz  "__int32_t"             # string offset=4059
+.Linfo_string246:
+       .asciz  "int32_t"               # string offset=4069
+.Linfo_string247:
+       .asciz  "__int64_t"             # string offset=4077
+.Linfo_string248:
+       .asciz  "int64_t"               # string offset=4087
+.Linfo_string249:
+       .asciz  "int_fast8_t"           # string offset=4095
+.Linfo_string250:
+       .asciz  "int_fast16_t"          # string offset=4107
+.Linfo_string251:
+       .asciz  "int_fast32_t"          # string offset=4120
+.Linfo_string252:
+       .asciz  "int_fast64_t"          # string offset=4133
+.Linfo_string253:
+       .asciz  "int_least8_t"          # string offset=4146
+.Linfo_string254:
+       .asciz  "int_least16_t"         # string offset=4159
+.Linfo_string255:
+       .asciz  "int_least32_t"         # string offset=4173
+.Linfo_string256:
+       .asciz  "int_least64_t"         # string offset=4187
+.Linfo_string257:
+       .asciz  "__intmax_t"            # string offset=4201
+.Linfo_string258:
+       .asciz  "intmax_t"              # string offset=4212
+.Linfo_string259:
+       .asciz  "intptr_t"              # string offset=4221
+.Linfo_string260:
+       .asciz  "unsigned char"         # string offset=4230
+.Linfo_string261:
+       .asciz  "__uint8_t"             # string offset=4244
+.Linfo_string262:
+       .asciz  "uint8_t"               # string offset=4254
+.Linfo_string263:
+       .asciz  "__uint16_t"            # string offset=4262
+.Linfo_string264:
+       .asciz  "uint16_t"              # string offset=4273
+.Linfo_string265:
+       .asciz  "__uint64_t"            # string offset=4282
+.Linfo_string266:
+       .asciz  "uint64_t"              # string offset=4293
+.Linfo_string267:
+       .asciz  "uint_fast8_t"          # string offset=4302
+.Linfo_string268:
+       .asciz  "uint_fast16_t"         # string offset=4315
+.Linfo_string269:
+       .asciz  "uint_fast32_t"         # string offset=4329
+.Linfo_string270:
+       .asciz  "uint_fast64_t"         # string offset=4343
+.Linfo_string271:
+       .asciz  "uint_least8_t"         # string offset=4357
+.Linfo_string272:
+       .asciz  "uint_least16_t"        # string offset=4371
+.Linfo_string273:
+       .asciz  "uint_least32_t"        # string offset=4386
+.Linfo_string274:
+       .asciz  "uint_least64_t"        # string offset=4401
+.Linfo_string275:
+       .asciz  "__uintmax_t"           # string offset=4416
+.Linfo_string276:
+       .asciz  "uintmax_t"             # string offset=4428
+.Linfo_string277:
+       .asciz  "uintptr_t"             # string offset=4438
+.Linfo_string278:
+       .asciz  "lconv"                 # string offset=4448
+.Linfo_string279:
+       .asciz  "setlocale"             # string offset=4454
+.Linfo_string280:
+       .asciz  "localeconv"            # string offset=4464
+.Linfo_string281:
+       .asciz  "isalnum"               # string offset=4475
+.Linfo_string282:
+       .asciz  "isalpha"               # string offset=4483
+.Linfo_string283:
+       .asciz  "iscntrl"               # string offset=4491
+.Linfo_string284:
+       .asciz  "isdigit"               # string offset=4499
+.Linfo_string285:
+       .asciz  "isgraph"               # string offset=4507
+.Linfo_string286:
+       .asciz  "islower"               # string offset=4515
+.Linfo_string287:
+       .asciz  "isprint"               # string offset=4523
+.Linfo_string288:
+       .asciz  "ispunct"               # string offset=4531
+.Linfo_string289:
+       .asciz  "isspace"               # string offset=4539
+.Linfo_string290:
+       .asciz  "isupper"               # string offset=4547
+.Linfo_string291:
+       .asciz  "isxdigit"              # string offset=4555
+.Linfo_string292:
+       .asciz  "tolower"               # string offset=4564
+.Linfo_string293:
+       .asciz  "toupper"               # string offset=4572
+.Linfo_string294:
+       .asciz  "isblank"               # string offset=4580
+.Linfo_string295:
+       .asciz  "ptrdiff_t"             # string offset=4588
+.Linfo_string296:
+       .asciz  "abs"                   # string offset=4598
+.Linfo_string297:
+       .asciz  "div_t"                 # string offset=4602
+.Linfo_string298:
+       .asciz  "quot"                  # string offset=4608
+.Linfo_string299:
+       .asciz  "rem"                   # string offset=4613
+.Linfo_string300:
+       .asciz  "ldiv_t"                # string offset=4617
+.Linfo_string301:
+       .asciz  "abort"                 # string offset=4624
+.Linfo_string302:
+       .asciz  "atexit"                # string offset=4630
+.Linfo_string303:
+       .asciz  "at_quick_exit"         # string offset=4637
+.Linfo_string304:
+       .asciz  "atof"                  # string offset=4651
+.Linfo_string305:
+       .asciz  "atoi"                  # string offset=4656
+.Linfo_string306:
+       .asciz  "atol"                  # string offset=4661
+.Linfo_string307:
+       .asciz  "bsearch"               # string offset=4666
+.Linfo_string308:
+       .asciz  "__compar_fn_t"         # string offset=4674
+.Linfo_string309:
+       .asciz  "calloc"                # string offset=4688
+.Linfo_string310:
+       .asciz  "div"                   # string offset=4695
+.Linfo_string311:
+       .asciz  "exit"                  # string offset=4699
+.Linfo_string312:
+       .asciz  "free"                  # string offset=4704
+.Linfo_string313:
+       .asciz  "getenv"                # string offset=4709
+.Linfo_string314:
+       .asciz  "labs"                  # string offset=4716
+.Linfo_string315:
+       .asciz  "ldiv"                  # string offset=4721
+.Linfo_string316:
+       .asciz  "malloc"                # string offset=4726
+.Linfo_string317:
+       .asciz  "mblen"                 # string offset=4733
+.Linfo_string318:
+       .asciz  "mbstowcs"              # string offset=4739
+.Linfo_string319:
+       .asciz  "mbtowc"                # string offset=4748
+.Linfo_string320:
+       .asciz  "qsort"                 # string offset=4755
+.Linfo_string321:
+       .asciz  "quick_exit"            # string offset=4761
+.Linfo_string322:
+       .asciz  "rand"                  # string offset=4772
+.Linfo_string323:
+       .asciz  "realloc"               # string offset=4777
+.Linfo_string324:
+       .asciz  "srand"                 # string offset=4785
+.Linfo_string325:
+       .asciz  "strtod"                # string offset=4791
+.Linfo_string326:
+       .asciz  "strtol"                # string offset=4798
+.Linfo_string327:
+       .asciz  "strtoul"               # string offset=4805
+.Linfo_string328:
+       .asciz  "system"                # string offset=4813
+.Linfo_string329:
+       .asciz  "wcstombs"              # string offset=4820
+.Linfo_string330:
+       .asciz  "wctomb"                # string offset=4829
+.Linfo_string331:
+       .asciz  "lldiv_t"               # string offset=4836
+.Linfo_string332:
+       .asciz  "_Exit"                 # string offset=4844
+.Linfo_string333:
+       .asciz  "llabs"                 # string offset=4850
+.Linfo_string334:
+       .asciz  "lldiv"                 # string offset=4856
+.Linfo_string335:
+       .asciz  "atoll"                 # string offset=4862
+.Linfo_string336:
+       .asciz  "strtoll"               # string offset=4868
+.Linfo_string337:
+       .asciz  "strtoull"              # string offset=4876
+.Linfo_string338:
+       .asciz  "strtof"                # string offset=4885
+.Linfo_string339:
+       .asciz  "strtold"               # string offset=4892
+.Linfo_string340:
+       .asciz  "_ZN9__gnu_cxx3divExx"  # string offset=4900
+.Linfo_string341:
+       .asciz  "FILE"                  # string offset=4921
+.Linfo_string342:
+       .asciz  "_G_fpos_t"             # string offset=4926
+.Linfo_string343:
+       .asciz  "fpos_t"                # string offset=4936
+.Linfo_string344:
+       .asciz  "clearerr"              # string offset=4943
+.Linfo_string345:
+       .asciz  "fclose"                # string offset=4952
+.Linfo_string346:
+       .asciz  "feof"                  # string offset=4959
+.Linfo_string347:
+       .asciz  "ferror"                # string offset=4964
+.Linfo_string348:
+       .asciz  "fflush"                # string offset=4971
+.Linfo_string349:
+       .asciz  "fgetc"                 # string offset=4978
+.Linfo_string350:
+       .asciz  "fgetpos"               # string offset=4984
+.Linfo_string351:
+       .asciz  "fgets"                 # string offset=4992
+.Linfo_string352:
+       .asciz  "fopen"                 # string offset=4998
+.Linfo_string353:
+       .asciz  "fprintf"               # string offset=5004
+.Linfo_string354:
+       .asciz  "fputc"                 # string offset=5012
+.Linfo_string355:
+       .asciz  "fputs"                 # string offset=5018
+.Linfo_string356:
+       .asciz  "fread"                 # string offset=5024
+.Linfo_string357:
+       .asciz  "freopen"               # string offset=5030
+.Linfo_string358:
+       .asciz  "fscanf"                # string offset=5038
+.Linfo_string359:
+       .asciz  "fseek"                 # string offset=5045
+.Linfo_string360:
+       .asciz  "fsetpos"               # string offset=5051
+.Linfo_string361:
+       .asciz  "ftell"                 # string offset=5059
+.Linfo_string362:
+       .asciz  "fwrite"                # string offset=5065
+.Linfo_string363:
+       .asciz  "getc"                  # string offset=5072
+.Linfo_string364:
+       .asciz  "getchar"               # string offset=5077
+.Linfo_string365:
+       .asciz  "gets"                  # string offset=5085
+.Linfo_string366:
+       .asciz  "perror"                # string offset=5090
+.Linfo_string367:
+       .asciz  "printf"                # string offset=5097
+.Linfo_string368:
+       .asciz  "putc"                  # string offset=5104
+.Linfo_string369:
+       .asciz  "putchar"               # string offset=5109
+.Linfo_string370:
+       .asciz  "puts"                  # string offset=5117
+.Linfo_string371:
+       .asciz  "remove"                # string offset=5122
+.Linfo_string372:
+       .asciz  "rename"                # string offset=5129
+.Linfo_string373:
+       .asciz  "rewind"                # string offset=5136
+.Linfo_string374:
+       .asciz  "scanf"                 # string offset=5143
+.Linfo_string375:
+       .asciz  "setbuf"                # string offset=5149
+.Linfo_string376:
+       .asciz  "setvbuf"               # string offset=5156
+.Linfo_string377:
+       .asciz  "sprintf"               # string offset=5164
+.Linfo_string378:
+       .asciz  "sscanf"                # string offset=5172
+.Linfo_string379:
+       .asciz  "tmpfile"               # string offset=5179
+.Linfo_string380:
+       .asciz  "tmpnam"                # string offset=5187
+.Linfo_string381:
+       .asciz  "ungetc"                # string offset=5194
+.Linfo_string382:
+       .asciz  "vfprintf"              # string offset=5201
+.Linfo_string383:
+       .asciz  "vprintf"               # string offset=5210
+.Linfo_string384:
+       .asciz  "vsprintf"              # string offset=5218
+.Linfo_string385:
+       .asciz  "snprintf"              # string offset=5227
+.Linfo_string386:
+       .asciz  "vfscanf"               # string offset=5236
+.Linfo_string387:
+       .asciz  "vscanf"                # string offset=5244
+.Linfo_string388:
+       .asciz  "vsnprintf"             # string offset=5251
+.Linfo_string389:
+       .asciz  "vsscanf"               # string offset=5261
+.Linfo_string390:
+       .asciz  "wctrans_t"             # string offset=5269
+.Linfo_string391:
+       .asciz  "wctype_t"              # string offset=5279
+.Linfo_string392:
+       .asciz  "iswalnum"              # string offset=5288
+.Linfo_string393:
+       .asciz  "iswalpha"              # string offset=5297
+.Linfo_string394:
+       .asciz  "iswblank"              # string offset=5306
+.Linfo_string395:
+       .asciz  "iswcntrl"              # string offset=5315
+.Linfo_string396:
+       .asciz  "iswctype"              # string offset=5324
+.Linfo_string397:
+       .asciz  "iswdigit"              # string offset=5333
+.Linfo_string398:
+       .asciz  "iswgraph"              # string offset=5342
+.Linfo_string399:
+       .asciz  "iswlower"              # string offset=5351
+.Linfo_string400:
+       .asciz  "iswprint"              # string offset=5360
+.Linfo_string401:
+       .asciz  "iswpunct"              # string offset=5369
+.Linfo_string402:
+       .asciz  "iswspace"              # string offset=5378
+.Linfo_string403:
+       .asciz  "iswupper"              # string offset=5387
+.Linfo_string404:
+       .asciz  "iswxdigit"             # string offset=5396
+.Linfo_string405:
+       .asciz  "towctrans"             # string offset=5406
+.Linfo_string406:
+       .asciz  "towlower"              # string offset=5416
+.Linfo_string407:
+       .asciz  "towupper"              # string offset=5425
+.Linfo_string408:
+       .asciz  "wctrans"               # string offset=5434
+.Linfo_string409:
+       .asciz  "wctype"                # string offset=5442
+.Linfo_string410:
+       .asciz  "_ZSt3abse"             # string offset=5449
+.Linfo_string411:
+       .asciz  "__clock_t"             # string offset=5459
+.Linfo_string412:
+       .asciz  "clock_t"               # string offset=5469
+.Linfo_string413:
+       .asciz  "__time_t"              # string offset=5477
+.Linfo_string414:
+       .asciz  "time_t"                # string offset=5486
+.Linfo_string415:
+       .asciz  "clock"                 # string offset=5493
+.Linfo_string416:
+       .asciz  "difftime"              # string offset=5499
+.Linfo_string417:
+       .asciz  "mktime"                # string offset=5508
+.Linfo_string418:
+       .asciz  "time"                  # string offset=5515
+.Linfo_string419:
+       .asciz  "asctime"               # string offset=5520
+.Linfo_string420:
+       .asciz  "ctime"                 # string offset=5528
+.Linfo_string421:
+       .asciz  "gmtime"                # string offset=5534
+.Linfo_string422:
+       .asciz  "localtime"             # string offset=5541
+.Linfo_string423:
+       .asciz  "strftime"              # string offset=5551
+.Linfo_string424:
+       .asciz  "__default_lock_policy" # string offset=5560
+.Linfo_string425:
+       .asciz  "_ZN9__gnu_cxxL21__default_lock_policyE" # string offset=5582
+.Linfo_string426:
+       .asciz  "acos"                  # string offset=5621
+.Linfo_string427:
+       .asciz  "asin"                  # string offset=5626
+.Linfo_string428:
+       .asciz  "atan"                  # string offset=5631
+.Linfo_string429:
+       .asciz  "atan2"                 # string offset=5636
+.Linfo_string430:
+       .asciz  "ceil"                  # string offset=5642
+.Linfo_string431:
+       .asciz  "cos"                   # string offset=5647
+.Linfo_string432:
+       .asciz  "cosh"                  # string offset=5651
+.Linfo_string433:
+       .asciz  "exp"                   # string offset=5656
+.Linfo_string434:
+       .asciz  "fabs"                  # string offset=5660
+.Linfo_string435:
+       .asciz  "floor"                 # string offset=5665
+.Linfo_string436:
+       .asciz  "fmod"                  # string offset=5671
+.Linfo_string437:
+       .asciz  "frexp"                 # string offset=5676
+.Linfo_string438:
+       .asciz  "ldexp"                 # string offset=5682
+.Linfo_string439:
+       .asciz  "log"                   # string offset=5688
+.Linfo_string440:
+       .asciz  "log10"                 # string offset=5692
+.Linfo_string441:
+       .asciz  "modf"                  # string offset=5698
+.Linfo_string442:
+       .asciz  "pow"                   # string offset=5703
+.Linfo_string443:
+       .asciz  "sin"                   # string offset=5707
+.Linfo_string444:
+       .asciz  "sinh"                  # string offset=5711
+.Linfo_string445:
+       .asciz  "sqrt"                  # string offset=5716
+.Linfo_string446:
+       .asciz  "tan"                   # string offset=5721
+.Linfo_string447:
+       .asciz  "tanh"                  # string offset=5725
+.Linfo_string448:
+       .asciz  "double_t"              # string offset=5730
+.Linfo_string449:
+       .asciz  "float_t"               # string offset=5739
+.Linfo_string450:
+       .asciz  "acosh"                 # string offset=5747
+.Linfo_string451:
+       .asciz  "acoshf"                # string offset=5753
+.Linfo_string452:
+       .asciz  "acoshl"                # string offset=5760
+.Linfo_string453:
+       .asciz  "asinh"                 # string offset=5767
+.Linfo_string454:
+       .asciz  "asinhf"                # string offset=5773
+.Linfo_string455:
+       .asciz  "asinhl"                # string offset=5780
+.Linfo_string456:
+       .asciz  "atanh"                 # string offset=5787
+.Linfo_string457:
+       .asciz  "atanhf"                # string offset=5793
+.Linfo_string458:
+       .asciz  "atanhl"                # string offset=5800
+.Linfo_string459:
+       .asciz  "cbrt"                  # string offset=5807
+.Linfo_string460:
+       .asciz  "cbrtf"                 # string offset=5812
+.Linfo_string461:
+       .asciz  "cbrtl"                 # string offset=5818
+.Linfo_string462:
+       .asciz  "copysign"              # string offset=5824
+.Linfo_string463:
+       .asciz  "copysignf"             # string offset=5833
+.Linfo_string464:
+       .asciz  "copysignl"             # string offset=5843
+.Linfo_string465:
+       .asciz  "erf"                   # string offset=5853
+.Linfo_string466:
+       .asciz  "erff"                  # string offset=5857
+.Linfo_string467:
+       .asciz  "erfl"                  # string offset=5862
+.Linfo_string468:
+       .asciz  "erfc"                  # string offset=5867
+.Linfo_string469:
+       .asciz  "erfcf"                 # string offset=5872
+.Linfo_string470:
+       .asciz  "erfcl"                 # string offset=5878
+.Linfo_string471:
+       .asciz  "exp2"                  # string offset=5884
+.Linfo_string472:
+       .asciz  "exp2f"                 # string offset=5889
+.Linfo_string473:
+       .asciz  "exp2l"                 # string offset=5895
+.Linfo_string474:
+       .asciz  "expm1"                 # string offset=5901
+.Linfo_string475:
+       .asciz  "expm1f"                # string offset=5907
+.Linfo_string476:
+       .asciz  "expm1l"                # string offset=5914
+.Linfo_string477:
+       .asciz  "fdim"                  # string offset=5921
+.Linfo_string478:
+       .asciz  "fdimf"                 # string offset=5926
+.Linfo_string479:
+       .asciz  "fdiml"                 # string offset=5932
+.Linfo_string480:
+       .asciz  "fma"                   # string offset=5938
+.Linfo_string481:
+       .asciz  "fmaf"                  # string offset=5942
+.Linfo_string482:
+       .asciz  "fmal"                  # string offset=5947
+.Linfo_string483:
+       .asciz  "fmax"                  # string offset=5952
+.Linfo_string484:
+       .asciz  "fmaxf"                 # string offset=5957
+.Linfo_string485:
+       .asciz  "fmaxl"                 # string offset=5963
+.Linfo_string486:
+       .asciz  "fmin"                  # string offset=5969
+.Linfo_string487:
+       .asciz  "fminf"                 # string offset=5974
+.Linfo_string488:
+       .asciz  "fminl"                 # string offset=5980
+.Linfo_string489:
+       .asciz  "hypot"                 # string offset=5986
+.Linfo_string490:
+       .asciz  "hypotf"                # string offset=5992
+.Linfo_string491:
+       .asciz  "hypotl"                # string offset=5999
+.Linfo_string492:
+       .asciz  "ilogb"                 # string offset=6006
+.Linfo_string493:
+       .asciz  "ilogbf"                # string offset=6012
+.Linfo_string494:
+       .asciz  "ilogbl"                # string offset=6019
+.Linfo_string495:
+       .asciz  "lgamma"                # string offset=6026
+.Linfo_string496:
+       .asciz  "lgammaf"               # string offset=6033
+.Linfo_string497:
+       .asciz  "lgammal"               # string offset=6041
+.Linfo_string498:
+       .asciz  "llrint"                # string offset=6049
+.Linfo_string499:
+       .asciz  "llrintf"               # string offset=6056
+.Linfo_string500:
+       .asciz  "llrintl"               # string offset=6064
+.Linfo_string501:
+       .asciz  "llround"               # string offset=6072
+.Linfo_string502:
+       .asciz  "llroundf"              # string offset=6080
+.Linfo_string503:
+       .asciz  "llroundl"              # string offset=6089
+.Linfo_string504:
+       .asciz  "log1p"                 # string offset=6098
+.Linfo_string505:
+       .asciz  "log1pf"                # string offset=6104
+.Linfo_string506:
+       .asciz  "log1pl"                # string offset=6111
+.Linfo_string507:
+       .asciz  "log2"                  # string offset=6118
+.Linfo_string508:
+       .asciz  "log2f"                 # string offset=6123
+.Linfo_string509:
+       .asciz  "log2l"                 # string offset=6129
+.Linfo_string510:
+       .asciz  "logb"                  # string offset=6135
+.Linfo_string511:
+       .asciz  "logbf"                 # string offset=6140
+.Linfo_string512:
+       .asciz  "logbl"                 # string offset=6146
+.Linfo_string513:
+       .asciz  "lrint"                 # string offset=6152
+.Linfo_string514:
+       .asciz  "lrintf"                # string offset=6158
+.Linfo_string515:
+       .asciz  "lrintl"                # string offset=6165
+.Linfo_string516:
+       .asciz  "lround"                # string offset=6172
+.Linfo_string517:
+       .asciz  "lroundf"               # string offset=6179
+.Linfo_string518:
+       .asciz  "lroundl"               # string offset=6187
+.Linfo_string519:
+       .asciz  "nan"                   # string offset=6195
+.Linfo_string520:
+       .asciz  "nanf"                  # string offset=6199
+.Linfo_string521:
+       .asciz  "nanl"                  # string offset=6204
+.Linfo_string522:
+       .asciz  "nearbyint"             # string offset=6209
+.Linfo_string523:
+       .asciz  "nearbyintf"            # string offset=6219
+.Linfo_string524:
+       .asciz  "nearbyintl"            # string offset=6230
+.Linfo_string525:
+       .asciz  "nextafter"             # string offset=6241
+.Linfo_string526:
+       .asciz  "nextafterf"            # string offset=6251
+.Linfo_string527:
+       .asciz  "nextafterl"            # string offset=6262
+.Linfo_string528:
+       .asciz  "nexttoward"            # string offset=6273
+.Linfo_string529:
+       .asciz  "nexttowardf"           # string offset=6284
+.Linfo_string530:
+       .asciz  "nexttowardl"           # string offset=6296
+.Linfo_string531:
+       .asciz  "remainder"             # string offset=6308
+.Linfo_string532:
+       .asciz  "remainderf"            # string offset=6318
+.Linfo_string533:
+       .asciz  "remainderl"            # string offset=6329
+.Linfo_string534:
+       .asciz  "remquo"                # string offset=6340
+.Linfo_string535:
+       .asciz  "remquof"               # string offset=6347
+.Linfo_string536:
+       .asciz  "remquol"               # string offset=6355
+.Linfo_string537:
+       .asciz  "rint"                  # string offset=6363
+.Linfo_string538:
+       .asciz  "rintf"                 # string offset=6368
+.Linfo_string539:
+       .asciz  "rintl"                 # string offset=6374
+.Linfo_string540:
+       .asciz  "round"                 # string offset=6380
+.Linfo_string541:
+       .asciz  "roundf"                # string offset=6386
+.Linfo_string542:
+       .asciz  "roundl"                # string offset=6393
+.Linfo_string543:
+       .asciz  "scalbln"               # string offset=6400
+.Linfo_string544:
+       .asciz  "scalblnf"              # string offset=6408
+.Linfo_string545:
+       .asciz  "scalblnl"              # string offset=6417
+.Linfo_string546:
+       .asciz  "scalbn"                # string offset=6426
+.Linfo_string547:
+       .asciz  "scalbnf"               # string offset=6433
+.Linfo_string548:
+       .asciz  "scalbnl"               # string offset=6441
+.Linfo_string549:
+       .asciz  "tgamma"                # string offset=6449
+.Linfo_string550:
+       .asciz  "tgammaf"               # string offset=6456
+.Linfo_string551:
+       .asciz  "tgammal"               # string offset=6464
+.Linfo_string552:
+       .asciz  "trunc"                 # string offset=6472
+.Linfo_string553:
+       .asciz  "truncf"                # string offset=6478
+.Linfo_string554:
+       .asciz  "truncl"                # string offset=6485
+.Linfo_string555:
+       .asciz  "_ZL3absl"              # string offset=6492
+.Linfo_string556:
+       .asciz  "_ZL3fmafff"            # string offset=6501
+.Linfo_string557:
+       .asciz  "_ZL10fpclassifyf"      # string offset=6512
+.Linfo_string558:
+       .asciz  "fpclassify"            # string offset=6529
+.Linfo_string559:
+       .asciz  "_ZL5frexpfPi"          # string offset=6540
+.Linfo_string560:
+       .asciz  "_ZL9isgreaterff"       # string offset=6553
+.Linfo_string561:
+       .asciz  "isgreater"             # string offset=6569
+.Linfo_string562:
+       .asciz  "_ZL14isgreaterequalff" # string offset=6579
+.Linfo_string563:
+       .asciz  "isgreaterequal"        # string offset=6601
+.Linfo_string564:
+       .asciz  "_ZL6islessff"          # string offset=6616
+.Linfo_string565:
+       .asciz  "isless"                # string offset=6629
+.Linfo_string566:
+       .asciz  "_ZL11islessequalff"    # string offset=6636
+.Linfo_string567:
+       .asciz  "islessequal"           # string offset=6655
+.Linfo_string568:
+       .asciz  "_ZL13islessgreaterff"  # string offset=6667
+.Linfo_string569:
+       .asciz  "islessgreater"         # string offset=6688
+.Linfo_string570:
+       .asciz  "_ZL8isnormalf"         # string offset=6702
+.Linfo_string571:
+       .asciz  "isnormal"              # string offset=6716
+.Linfo_string572:
+       .asciz  "_ZL11isunorderedff"    # string offset=6725
+.Linfo_string573:
+       .asciz  "isunordered"           # string offset=6744
+.Linfo_string574:
+       .asciz  "_ZL4labsl"             # string offset=6756
+.Linfo_string575:
+       .asciz  "_ZL5ldexpfi"           # string offset=6766
+.Linfo_string576:
+       .asciz  "_ZL5llabsx"            # string offset=6778
+.Linfo_string577:
+       .asciz  "_ZL4modffPf"           # string offset=6789
+.Linfo_string578:
+       .asciz  "_ZL3nanPKc"            # string offset=6801
+.Linfo_string579:
+       .asciz  "_ZL4nanfPKc"           # string offset=6812
+.Linfo_string580:
+       .asciz  "_ZL3powfi"             # string offset=6824
+.Linfo_string581:
+       .asciz  "_ZL6remquoffPi"        # string offset=6834
+.Linfo_string582:
+       .asciz  "_ZL7scalblnfl"         # string offset=6849
+.Linfo_string583:
+       .asciz  "_ZL6scalbnfi"          # string offset=6863
+.Linfo_string584:
+       .asciz  "T"                     # string offset=6876
+.Linfo_string585:
+       .asciz  "_ZL9hipMallocIjE10hipError_tPPT_m" # string offset=6878
+.Linfo_string586:
+       .asciz  "hipMalloc<unsigned int>" # string offset=6912
+.Linfo_string587:
+       .asciz  "devPtr"                # string offset=6936
+.Linfo_string588:
+       .asciz  "size"                  # string offset=6943
+.Linfo_string589:
+       .asciz  "__cxx_global_var_init" # string offset=6948
+.Linfo_string590:
+       .asciz  "main"                  # string offset=6970
+.Linfo_string591:
+       .asciz  "_GLOBAL__sub_I_bit_extract.cpp" # string offset=6975
+.Linfo_string592:
+       .asciz  "props"                 # string offset=7006
+.Linfo_string593:
+       .asciz  "name"                  # string offset=7012
+.Linfo_string594:
+       .asciz  "totalGlobalMem"        # string offset=7017
+.Linfo_string595:
+       .asciz  "sharedMemPerBlock"     # string offset=7032
+.Linfo_string596:
+       .asciz  "regsPerBlock"          # string offset=7050
+.Linfo_string597:
+       .asciz  "warpSize"              # string offset=7063
+.Linfo_string598:
+       .asciz  "maxThreadsPerBlock"    # string offset=7072
+.Linfo_string599:
+       .asciz  "maxThreadsDim"         # string offset=7091
+.Linfo_string600:
+       .asciz  "maxGridSize"           # string offset=7105
+.Linfo_string601:
+       .asciz  "clockRate"             # string offset=7117
+.Linfo_string602:
+       .asciz  "memoryClockRate"       # string offset=7127
+.Linfo_string603:
+       .asciz  "memoryBusWidth"        # string offset=7143
+.Linfo_string604:
+       .asciz  "totalConstMem"         # string offset=7158
+.Linfo_string605:
+       .asciz  "major"                 # string offset=7172
+.Linfo_string606:
+       .asciz  "minor"                 # string offset=7178
+.Linfo_string607:
+       .asciz  "multiProcessorCount"   # string offset=7184
+.Linfo_string608:
+       .asciz  "l2CacheSize"           # string offset=7204
+.Linfo_string609:
+       .asciz  "maxThreadsPerMultiProcessor" # string offset=7216
+.Linfo_string610:
+       .asciz  "computeMode"           # string offset=7244
+.Linfo_string611:
+       .asciz  "clockInstructionRate"  # string offset=7256
+.Linfo_string612:
+       .asciz  "arch"                  # string offset=7277
+.Linfo_string613:
+       .asciz  "hasGlobalInt32Atomics" # string offset=7282
+.Linfo_string614:
+       .asciz  "hasGlobalFloatAtomicExch" # string offset=7304
+.Linfo_string615:
+       .asciz  "hasSharedInt32Atomics" # string offset=7329
+.Linfo_string616:
+       .asciz  "hasSharedFloatAtomicExch" # string offset=7351
+.Linfo_string617:
+       .asciz  "hasFloatAtomicAdd"     # string offset=7376
+.Linfo_string618:
+       .asciz  "hasGlobalInt64Atomics" # string offset=7394
+.Linfo_string619:
+       .asciz  "hasSharedInt64Atomics" # string offset=7416
+.Linfo_string620:
+       .asciz  "hasDoubles"            # string offset=7438
+.Linfo_string621:
+       .asciz  "hasWarpVote"           # string offset=7449
+.Linfo_string622:
+       .asciz  "hasWarpBallot"         # string offset=7461
+.Linfo_string623:
+       .asciz  "hasWarpShuffle"        # string offset=7475
+.Linfo_string624:
+       .asciz  "hasFunnelShift"        # string offset=7490
+.Linfo_string625:
+       .asciz  "hasThreadFenceSystem"  # string offset=7505
+.Linfo_string626:
+       .asciz  "hasSyncThreadsExt"     # string offset=7526
+.Linfo_string627:
+       .asciz  "hasSurfaceFuncs"       # string offset=7544
+.Linfo_string628:
+       .asciz  "has3dGrid"             # string offset=7560
+.Linfo_string629:
+       .asciz  "hasDynamicParallelism" # string offset=7570
+.Linfo_string630:
+       .asciz  "hipDeviceArch_t"       # string offset=7592
+.Linfo_string631:
+       .asciz  "concurrentKernels"     # string offset=7608
+.Linfo_string632:
+       .asciz  "pciDomainID"           # string offset=7626
+.Linfo_string633:
+       .asciz  "pciBusID"              # string offset=7638
+.Linfo_string634:
+       .asciz  "pciDeviceID"           # string offset=7647
+.Linfo_string635:
+       .asciz  "maxSharedMemoryPerMultiProcessor" # string offset=7659
+.Linfo_string636:
+       .asciz  "isMultiGpuBoard"       # string offset=7692
+.Linfo_string637:
+       .asciz  "canMapHostMemory"      # string offset=7708
+.Linfo_string638:
+       .asciz  "gcnArch"               # string offset=7725
+.Linfo_string639:
+       .asciz  "integrated"            # string offset=7733
+.Linfo_string640:
+       .asciz  "cooperativeLaunch"     # string offset=7744
+.Linfo_string641:
+       .asciz  "cooperativeMultiDeviceLaunch" # string offset=7762
+.Linfo_string642:
+       .asciz  "maxTexture1D"          # string offset=7791
+.Linfo_string643:
+       .asciz  "maxTexture2D"          # string offset=7804
+.Linfo_string644:
+       .asciz  "maxTexture3D"          # string offset=7817
+.Linfo_string645:
+       .asciz  "hdpMemFlushCntl"       # string offset=7830
+.Linfo_string646:
+       .asciz  "hdpRegFlushCntl"       # string offset=7846
+.Linfo_string647:
+       .asciz  "memPitch"              # string offset=7862
+.Linfo_string648:
+       .asciz  "textureAlignment"      # string offset=7871
+.Linfo_string649:
+       .asciz  "kernelExecTimeoutEnabled" # string offset=7888
+.Linfo_string650:
+       .asciz  "ECCEnabled"            # string offset=7913
+.Linfo_string651:
+       .asciz  "hipDeviceProp_t"       # string offset=7924
+.Linfo_string652:
+       .asciz  "args"                  # string offset=7940
+.Linfo_string653:
+       .asciz  "argc"                  # string offset=7945
+.Linfo_string654:
+       .asciz  "argv"                  # string offset=7950
+.Linfo_string655:
+       .asciz  "N"                     # string offset=7955
+.Linfo_string656:
+       .asciz  "deviceId"              # string offset=7957
+.Linfo_string657:
+       .asciz  "Nbytes"                # string offset=7966
+.Linfo_string658:
+       .asciz  "error"                 # string offset=7973
+.Linfo_string659:
+       .asciz  "A_d"                   # string offset=7979
+.Linfo_string660:
+       .asciz  "C_d"                   # string offset=7983
+.Linfo_string661:
+       .asciz  "threadsPerBlock"       # string offset=7987
+.Linfo_string662:
+       .asciz  "blocks"                # string offset=8003
+.Linfo_string663:
+       .asciz  "module"                # string offset=8010
+.Linfo_string664:
+       .asciz  "ihipModule_t"          # string offset=8017
+.Linfo_string665:
+       .asciz  "hipModule_t"           # string offset=8030
+.Linfo_string666:
+       .asciz  "config"                # string offset=8042
+.Linfo_string667:
+       .asciz  "argSize"               # string offset=8049
+.Linfo_string668:
+       .asciz  "kernelName"            # string offset=8057
+.Linfo_string669:
+       .asciz  "function"              # string offset=8068
+.Linfo_string670:
+       .asciz  "ihipModuleSymbol_t"    # string offset=8077
+.Linfo_string671:
+       .asciz  "hipFunction_t"         # string offset=8096
+.Linfo_string672:
+       .asciz  "i"                     # string offset=8110
+.Linfo_string673:
+       .asciz  "Agold"                 # string offset=8112
+.Linfo_string674:
+       .asciz  "A_h"                   # string offset=8118
+.Linfo_string675:
+       .asciz  "C_h"                   # string offset=8122
+       .section        .debug_loc,"",@progbits
+.Ldebug_loc0:
+       .quad   .Lfunc_begin0
+       .quad   .Ltmp2
+       .short  1                       # Loc expr size
+       .byte   85                      # super-register DW_OP_reg5
+       .quad   0
+       .quad   0
+.Ldebug_loc1:
+       .quad   .Lfunc_begin0
+       .quad   .Ltmp3
+       .short  1                       # Loc expr size
+       .byte   84                      # DW_OP_reg4
+       .quad   0
+       .quad   0
+.Ldebug_loc2:
+       .quad   .Ltmp0
+       .quad   .Ltmp55
+       .short  5                       # Loc expr size
+       .byte   16                      # DW_OP_constu
+       .byte   192                     # 1000000
+       .byte   132                     #
+       .byte   61                      #
+       .byte   159                     # DW_OP_stack_value
+       .quad   .Ltmp55
+       .quad   .Ltmp65
+       .short  1                       # Loc expr size
+       .byte   80                      # DW_OP_reg0
+       .quad   .Ltmp66
+       .quad   .Ltmp67
+       .short  1                       # Loc expr size
+       .byte   80                      # DW_OP_reg0
+       .quad   .Ltmp71
+       .quad   .Lfunc_end0
+       .short  5                       # Loc expr size
+       .byte   16                      # DW_OP_constu
+       .byte   192                     # 1000000
+       .byte   132                     #
+       .byte   61                      #
+       .byte   159                     # DW_OP_stack_value
+       .quad   0
+       .quad   0
+.Ldebug_loc3:
+       .quad   .Ltmp1
+       .quad   .Ltmp6
+       .short  2                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   4                       # 4
+       .quad   .Ltmp6
+       .quad   .Ltmp7
+       .short  1                       # Loc expr size
+       .byte   84                      # super-register DW_OP_reg4
+       .quad   .Ltmp10
+       .quad   .Ltmp11
+       .short  1                       # Loc expr size
+       .byte   84                      # super-register DW_OP_reg4
+       .quad   .Ltmp71
+       .quad   .Ltmp74
+       .short  2                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   4                       # 4
+       .quad   0
+       .quad   0
+.Ldebug_loc4:
+       .quad   .Ltmp1
+       .quad   .Lfunc_end0
+       .short  6                       # Loc expr size
+       .byte   16                      # DW_OP_constu
+       .byte   128                     # 4000000
+       .byte   146                     #
+       .byte   244                     #
+       .byte   1                       #
+       .byte   159                     # DW_OP_stack_value
+       .quad   0
+       .quad   0
+.Ldebug_loc5:
+       .quad   .Ltmp13
+       .quad   .Ltmp14
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   .Ltmp77
+       .quad   .Ltmp79
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   0
+       .quad   0
+.Ldebug_loc6:
+       .quad   .Ltmp16
+       .quad   .Ltmp18
+       .short  1                       # Loc expr size
+       .byte   95                      # super-register DW_OP_reg15
+       .quad   .Ltmp79
+       .quad   .Ltmp81
+       .short  1                       # Loc expr size
+       .byte   95                      # super-register DW_OP_reg15
+       .quad   0
+       .quad   0
+.Ldebug_loc7:
+       .quad   .Ltmp21
+       .quad   .Ltmp25
+       .short  6                       # Loc expr size
+       .byte   16                      # DW_OP_constu
+       .byte   128                     # 4000000
+       .byte   146                     #
+       .byte   244                     #
+       .byte   1                       #
+       .byte   159                     # DW_OP_stack_value
+       .quad   0
+       .quad   0
+.Ldebug_loc8:
+       .quad   .Ltmp21
+       .quad   .Ltmp25
+       .short  3                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   40                      # 40
+       .byte   159                     # DW_OP_stack_value
+       .quad   0
+       .quad   0
+.Ldebug_loc9:
+       .quad   .Ltmp21
+       .quad   .Ltmp45
+       .short  2                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   40                      # 40
+       .quad   .Ltmp81
+       .quad   .Ltmp96
+       .short  2                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   40                      # 40
+       .quad   0
+       .quad   0
+.Ldebug_loc10:
+       .quad   .Ltmp25
+       .quad   .Ltmp45
+       .short  2                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   32                      # 32
+       .quad   .Ltmp84
+       .quad   .Ltmp96
+       .short  2                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   32                      # 32
+       .quad   0
+       .quad   0
+.Ldebug_loc11:
+       .quad   .Ltmp25
+       .quad   .Ltmp29
+       .short  3                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   32                      # 32
+       .byte   159                     # DW_OP_stack_value
+       .quad   0
+       .quad   0
+.Ldebug_loc12:
+       .quad   .Ltmp25
+       .quad   .Ltmp29
+       .short  6                       # Loc expr size
+       .byte   16                      # DW_OP_constu
+       .byte   128                     # 4000000
+       .byte   146                     #
+       .byte   244                     #
+       .byte   1                       #
+       .byte   159                     # DW_OP_stack_value
+       .quad   0
+       .quad   0
+.Ldebug_loc13:
+       .quad   .Ltmp34
+       .quad   .Ltmp71
+       .short  4                       # Loc expr size
+       .byte   16                      # DW_OP_constu
+       .byte   128                     # 256
+       .byte   2                       #
+       .byte   159                     # DW_OP_stack_value
+       .quad   .Ltmp90
+       .quad   .Lfunc_end0
+       .short  4                       # Loc expr size
+       .byte   16                      # DW_OP_constu
+       .byte   128                     # 256
+       .byte   2                       #
+       .byte   159                     # DW_OP_stack_value
+       .quad   0
+       .quad   0
+.Ldebug_loc14:
+       .quad   .Ltmp34
+       .quad   .Ltmp71
+       .short  4                       # Loc expr size
+       .byte   16                      # DW_OP_constu
+       .byte   128                     # 512
+       .byte   4                       #
+       .byte   159                     # DW_OP_stack_value
+       .quad   .Ltmp90
+       .quad   .Lfunc_end0
+       .short  4                       # Loc expr size
+       .byte   16                      # DW_OP_constu
+       .byte   128                     # 512
+       .byte   4                       #
+       .byte   159                     # DW_OP_stack_value
+       .quad   0
+       .quad   0
+.Ldebug_loc15:
+       .quad   .Ltmp35
+       .quad   .Ltmp40
+       .short  2                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   24                      # 24
+       .quad   .Ltmp40
+       .quad   .Ltmp41
+       .short  1                       # Loc expr size
+       .byte   84                      # DW_OP_reg4
+       .quad   .Ltmp90
+       .quad   .Ltmp93
+       .short  2                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   24                      # 24
+       .quad   0
+       .quad   0
+.Ldebug_loc16:
+       .quad   .Ltmp35
+       .quad   .Ltmp45
+       .short  7                       # Loc expr size
+       .byte   147                     # DW_OP_piece
+       .byte   8                       # 8
+       .byte   119                     # DW_OP_breg7
+       .byte   48                      # 48
+       .byte   159                     # DW_OP_stack_value
+       .byte   147                     # DW_OP_piece
+       .byte   8                       # 8
+       .quad   .Ltmp90
+       .quad   .Ltmp96
+       .short  7                       # Loc expr size
+       .byte   147                     # DW_OP_piece
+       .byte   8                       # 8
+       .byte   119                     # DW_OP_breg7
+       .byte   48                      # 48
+       .byte   159                     # DW_OP_stack_value
+       .byte   147                     # DW_OP_piece
+       .byte   8                       # 8
+       .quad   0
+       .quad   0
+.Ldebug_loc17:
+       .quad   .Ltmp35
+       .quad   .Ltmp71
+       .short  2                       # Loc expr size
+       .byte   72                      # DW_OP_lit24
+       .byte   159                     # DW_OP_stack_value
+       .quad   .Ltmp90
+       .quad   .Lfunc_end0
+       .short  2                       # Loc expr size
+       .byte   72                      # DW_OP_lit24
+       .byte   159                     # DW_OP_stack_value
+       .quad   0
+       .quad   0
+.Ldebug_loc18:
+       .quad   .Ltmp40
+       .quad   .Ltmp44
+       .short  2                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   16                      # 16
+       .quad   .Ltmp44
+       .quad   .Ltmp46
+       .short  1                       # Loc expr size
+       .byte   85                      # DW_OP_reg5
+       .quad   .Ltmp93
+       .quad   .Ltmp96
+       .short  2                       # Loc expr size
+       .byte   119                     # DW_OP_breg7
+       .byte   16                      # 16
+       .quad   0
+       .quad   0
+.Ldebug_loc19:
+       .quad   .Ltmp54
+       .quad   .Ltmp58
+       .short  2                       # Loc expr size
+       .byte   48                      # DW_OP_lit0
+       .byte   159                     # DW_OP_stack_value
+       .quad   .Ltmp58
+       .quad   .Ltmp64
+       .short  1                       # Loc expr size
+       .byte   86                      # DW_OP_reg6
+       .quad   .Ltmp66
+       .quad   .Ltmp71
+       .short  1                       # Loc expr size
+       .byte   86                      # DW_OP_reg6
+       .quad   0
+       .quad   0
+.Ldebug_loc20:
+       .quad   .Ltmp59
+       .quad   .Ltmp61
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   .Ltmp66
+       .quad   .Ltmp69
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   0
+       .quad   0
+.Ldebug_loc21:
+       .quad   .Ltmp68
+       .quad   .Ltmp71
+       .short  4                       # Loc expr size
+       .byte   16                      # DW_OP_constu
+       .byte   134                     # 1030
+       .byte   8                       #
+       .byte   159                     # DW_OP_stack_value
+       .quad   0
+       .quad   0
+.Ldebug_loc22:
+       .quad   .Ltmp72
+       .quad   .Ltmp74
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   0
+       .quad   0
+.Ldebug_loc23:
+       .quad   .Ltmp75
+       .quad   .Ltmp77
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   0
+       .quad   0
+.Ldebug_loc24:
+       .quad   .Ltmp82
+       .quad   .Ltmp84
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   0
+       .quad   0
+.Ldebug_loc25:
+       .quad   .Ltmp85
+       .quad   .Ltmp87
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   0
+       .quad   0
+.Ldebug_loc26:
+       .quad   .Ltmp88
+       .quad   .Ltmp90
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   0
+       .quad   0
+.Ldebug_loc27:
+       .quad   .Ltmp91
+       .quad   .Ltmp93
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   0
+       .quad   0
+.Ldebug_loc28:
+       .quad   .Ltmp94
+       .quad   .Ltmp96
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   0
+       .quad   0
+.Ldebug_loc29:
+       .quad   .Ltmp97
+       .quad   .Ltmp99
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   0
+       .quad   0
+.Ldebug_loc30:
+       .quad   .Ltmp100
+       .quad   .Lfunc_end0
+       .short  1                       # Loc expr size
+       .byte   83                      # super-register DW_OP_reg3
+       .quad   0
+       .quad   0
+       .section        .debug_abbrev,"",@progbits
+       .byte   1                       # Abbreviation Code
+       .byte   17                      # DW_TAG_compile_unit
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   37                      # DW_AT_producer
+       .byte   14                      # DW_FORM_strp
+       .byte   19                      # DW_AT_language
+       .byte   5                       # DW_FORM_data2
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   16                      # DW_AT_stmt_list
+       .byte   23                      # DW_FORM_sec_offset
+       .byte   27                      # DW_AT_comp_dir
+       .byte   14                      # DW_FORM_strp
+       .byte   17                      # DW_AT_low_pc
+       .byte   1                       # DW_FORM_addr
+       .byte   85                      # DW_AT_ranges
+       .byte   23                      # DW_FORM_sec_offset
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   2                       # Abbreviation Code
+       .byte   57                      # DW_TAG_namespace
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   3                       # Abbreviation Code
+       .byte   52                      # DW_TAG_variable
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   2                       # DW_AT_location
+       .byte   24                      # DW_FORM_exprloc
+       .byte   110                     # DW_AT_linkage_name
+       .byte   14                      # DW_FORM_strp
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   4                       # Abbreviation Code
+       .byte   2                       # DW_TAG_class_type
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   5                       # Abbreviation Code
+       .byte   2                       # DW_TAG_class_type
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   54                      # DW_AT_calling_convention
+       .byte   11                      # DW_FORM_data1
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   11                      # DW_AT_byte_size
+       .byte   11                      # DW_FORM_data1
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   6                       # Abbreviation Code
+       .byte   13                      # DW_TAG_member
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   7                       # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   50                      # DW_AT_accessibility
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   8                       # Abbreviation Code
+       .byte   5                       # DW_TAG_formal_parameter
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   52                      # DW_AT_artificial
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   9                       # Abbreviation Code
+       .byte   8                       # DW_TAG_imported_declaration
+       .byte   0                       # DW_CHILDREN_no
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   24                      # DW_AT_import
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   10                      # Abbreviation Code
+       .byte   8                       # DW_TAG_imported_declaration
+       .byte   0                       # DW_CHILDREN_no
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   24                      # DW_AT_import
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   11                      # Abbreviation Code
+       .byte   2                       # DW_TAG_class_type
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   54                      # DW_AT_calling_convention
+       .byte   11                      # DW_FORM_data1
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   11                      # DW_AT_byte_size
+       .byte   11                      # DW_FORM_data1
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   12                      # Abbreviation Code
+       .byte   13                      # DW_TAG_member
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   56                      # DW_AT_data_member_location
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   13                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   99                      # DW_AT_explicit
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   14                      # Abbreviation Code
+       .byte   5                       # DW_TAG_formal_parameter
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   15                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   110                     # DW_AT_linkage_name
+       .byte   14                      # DW_FORM_strp
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   16                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   110                     # DW_AT_linkage_name
+       .byte   14                      # DW_FORM_strp
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   17                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   50                      # DW_AT_accessibility
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   18                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   110                     # DW_AT_linkage_name
+       .byte   14                      # DW_FORM_strp
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   50                      # DW_AT_accessibility
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   19                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   110                     # DW_AT_linkage_name
+       .byte   14                      # DW_FORM_strp
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   50                      # DW_AT_accessibility
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   20                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   110                     # DW_AT_linkage_name
+       .byte   14                      # DW_FORM_strp
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   50                      # DW_AT_accessibility
+       .byte   11                      # DW_FORM_data1
+       .byte   99                      # DW_AT_explicit
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   21                      # Abbreviation Code
+       .byte   22                      # DW_TAG_typedef
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   22                      # Abbreviation Code
+       .byte   2                       # DW_TAG_class_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   23                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   110                     # DW_AT_linkage_name
+       .byte   14                      # DW_FORM_strp
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .ascii  "\207\001"              # DW_AT_noreturn
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   24                      # Abbreviation Code
+       .byte   57                      # DW_TAG_namespace
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   25                      # Abbreviation Code
+       .byte   36                      # DW_TAG_base_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   62                      # DW_AT_encoding
+       .byte   11                      # DW_FORM_data1
+       .byte   11                      # DW_AT_byte_size
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   26                      # Abbreviation Code
+       .byte   15                      # DW_TAG_pointer_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   27                      # Abbreviation Code
+       .byte   52                      # DW_TAG_variable
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   2                       # DW_AT_location
+       .byte   24                      # DW_FORM_exprloc
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   28                      # Abbreviation Code
+       .byte   1                       # DW_TAG_array_type
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   29                      # Abbreviation Code
+       .byte   33                      # DW_TAG_subrange_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   55                      # DW_AT_count
+       .byte   5                       # DW_FORM_data2
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   30                      # Abbreviation Code
+       .byte   36                      # DW_TAG_base_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   11                      # DW_AT_byte_size
+       .byte   11                      # DW_FORM_data1
+       .byte   62                      # DW_AT_encoding
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   31                      # Abbreviation Code
+       .byte   4                       # DW_TAG_enumeration_type
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   11                      # DW_AT_byte_size
+       .byte   11                      # DW_FORM_data1
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   32                      # Abbreviation Code
+       .byte   40                      # DW_TAG_enumerator
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   28                      # DW_AT_const_value
+       .byte   15                      # DW_FORM_udata
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   33                      # Abbreviation Code
+       .byte   52                      # DW_TAG_variable
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   110                     # DW_AT_linkage_name
+       .byte   14                      # DW_FORM_strp
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   34                      # Abbreviation Code
+       .byte   15                      # DW_TAG_pointer_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   35                      # Abbreviation Code
+       .byte   38                      # DW_TAG_const_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   36                      # Abbreviation Code
+       .byte   19                      # DW_TAG_structure_type
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   54                      # DW_AT_calling_convention
+       .byte   11                      # DW_FORM_data1
+       .byte   11                      # DW_AT_byte_size
+       .byte   11                      # DW_FORM_data1
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   37                      # Abbreviation Code
+       .byte   23                      # DW_TAG_union_type
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   54                      # DW_AT_calling_convention
+       .byte   11                      # DW_FORM_data1
+       .byte   11                      # DW_AT_byte_size
+       .byte   11                      # DW_FORM_data1
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   38                      # Abbreviation Code
+       .byte   33                      # DW_TAG_subrange_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   55                      # DW_AT_count
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   39                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   40                      # Abbreviation Code
+       .byte   19                      # DW_TAG_structure_type
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   54                      # DW_AT_calling_convention
+       .byte   11                      # DW_FORM_data1
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   11                      # DW_AT_byte_size
+       .byte   11                      # DW_FORM_data1
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   41                      # Abbreviation Code
+       .byte   13                      # DW_TAG_member
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   56                      # DW_AT_data_member_location
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   42                      # Abbreviation Code
+       .byte   19                      # DW_TAG_structure_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   43                      # Abbreviation Code
+       .byte   22                      # DW_TAG_typedef
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   44                      # Abbreviation Code
+       .byte   55                      # DW_TAG_restrict_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   45                      # Abbreviation Code
+       .byte   38                      # DW_TAG_const_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   46                      # Abbreviation Code
+       .byte   24                      # DW_TAG_unspecified_parameters
+       .byte   0                       # DW_CHILDREN_no
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   47                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   48                      # Abbreviation Code
+       .byte   19                      # DW_TAG_structure_type
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   54                      # DW_AT_calling_convention
+       .byte   11                      # DW_FORM_data1
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   11                      # DW_AT_byte_size
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   49                      # Abbreviation Code
+       .byte   13                      # DW_TAG_member
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   56                      # DW_AT_data_member_location
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   50                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   51                      # Abbreviation Code
+       .byte   16                      # DW_TAG_reference_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   52                      # Abbreviation Code
+       .byte   59                      # DW_TAG_unspecified_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   53                      # Abbreviation Code
+       .byte   66                      # DW_TAG_rvalue_reference_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   54                      # Abbreviation Code
+       .byte   58                      # DW_TAG_imported_module
+       .byte   0                       # DW_CHILDREN_no
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   24                      # DW_AT_import
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   55                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   56                      # Abbreviation Code
+       .byte   19                      # DW_TAG_structure_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   57                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .ascii  "\207\001"              # DW_AT_noreturn
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   58                      # Abbreviation Code
+       .byte   21                      # DW_TAG_subroutine_type
+       .byte   0                       # DW_CHILDREN_no
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   59                      # Abbreviation Code
+       .byte   22                      # DW_TAG_typedef
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   60                      # Abbreviation Code
+       .byte   21                      # DW_TAG_subroutine_type
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   61                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .ascii  "\207\001"              # DW_AT_noreturn
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   62                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   63                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   110                     # DW_AT_linkage_name
+       .byte   14                      # DW_FORM_strp
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   60                      # DW_AT_declaration
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   64                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   110                     # DW_AT_linkage_name
+       .byte   14                      # DW_FORM_strp
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   32                      # DW_AT_inline
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   65                      # Abbreviation Code
+       .byte   47                      # DW_TAG_template_type_parameter
+       .byte   0                       # DW_CHILDREN_no
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   66                      # Abbreviation Code
+       .byte   5                       # DW_TAG_formal_parameter
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   67                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   17                      # DW_AT_low_pc
+       .byte   1                       # DW_FORM_addr
+       .byte   18                      # DW_AT_high_pc
+       .byte   6                       # DW_FORM_data4
+       .byte   64                      # DW_AT_frame_base
+       .byte   24                      # DW_FORM_exprloc
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   63                      # DW_AT_external
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   68                      # Abbreviation Code
+       .byte   5                       # DW_TAG_formal_parameter
+       .byte   0                       # DW_CHILDREN_no
+       .byte   2                       # DW_AT_location
+       .byte   23                      # DW_FORM_sec_offset
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   69                      # Abbreviation Code
+       .byte   52                      # DW_TAG_variable
+       .byte   0                       # DW_CHILDREN_no
+       .byte   2                       # DW_AT_location
+       .byte   24                      # DW_FORM_exprloc
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   70                      # Abbreviation Code
+       .byte   52                      # DW_TAG_variable
+       .byte   0                       # DW_CHILDREN_no
+       .byte   2                       # DW_AT_location
+       .byte   23                      # DW_FORM_sec_offset
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   71                      # Abbreviation Code
+       .byte   52                      # DW_TAG_variable
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   5                       # DW_FORM_data2
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   72                      # Abbreviation Code
+       .byte   11                      # DW_TAG_lexical_block
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   85                      # DW_AT_ranges
+       .byte   23                      # DW_FORM_sec_offset
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   73                      # Abbreviation Code
+       .byte   11                      # DW_TAG_lexical_block
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   17                      # DW_AT_low_pc
+       .byte   1                       # DW_FORM_addr
+       .byte   18                      # DW_AT_high_pc
+       .byte   6                       # DW_FORM_data4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   74                      # Abbreviation Code
+       .byte   29                      # DW_TAG_inlined_subroutine
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   49                      # DW_AT_abstract_origin
+       .byte   19                      # DW_FORM_ref4
+       .byte   17                      # DW_AT_low_pc
+       .byte   1                       # DW_FORM_addr
+       .byte   18                      # DW_AT_high_pc
+       .byte   6                       # DW_FORM_data4
+       .byte   88                      # DW_AT_call_file
+       .byte   11                      # DW_FORM_data1
+       .byte   89                      # DW_AT_call_line
+       .byte   5                       # DW_FORM_data2
+       .byte   87                      # DW_AT_call_column
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   75                      # Abbreviation Code
+       .byte   5                       # DW_TAG_formal_parameter
+       .byte   0                       # DW_CHILDREN_no
+       .byte   2                       # DW_AT_location
+       .byte   23                      # DW_FORM_sec_offset
+       .byte   49                      # DW_AT_abstract_origin
+       .byte   19                      # DW_FORM_ref4
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   76                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   32                      # DW_AT_inline
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   77                      # Abbreviation Code
+       .byte   46                      # DW_TAG_subprogram
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   17                      # DW_AT_low_pc
+       .byte   1                       # DW_FORM_addr
+       .byte   18                      # DW_AT_high_pc
+       .byte   6                       # DW_FORM_data4
+       .byte   64                      # DW_AT_frame_base
+       .byte   24                      # DW_FORM_exprloc
+       .byte   110                     # DW_AT_linkage_name
+       .byte   14                      # DW_FORM_strp
+       .byte   52                      # DW_AT_artificial
+       .byte   25                      # DW_FORM_flag_present
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   78                      # Abbreviation Code
+       .byte   29                      # DW_TAG_inlined_subroutine
+       .byte   0                       # DW_CHILDREN_no
+       .byte   49                      # DW_AT_abstract_origin
+       .byte   19                      # DW_FORM_ref4
+       .byte   17                      # DW_AT_low_pc
+       .byte   1                       # DW_FORM_addr
+       .byte   18                      # DW_AT_high_pc
+       .byte   6                       # DW_FORM_data4
+       .byte   88                      # DW_AT_call_file
+       .byte   11                      # DW_FORM_data1
+       .byte   89                      # DW_AT_call_line
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   79                      # Abbreviation Code
+       .byte   19                      # DW_TAG_structure_type
+       .byte   1                       # DW_CHILDREN_yes
+       .byte   54                      # DW_AT_calling_convention
+       .byte   11                      # DW_FORM_data1
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   11                      # DW_AT_byte_size
+       .byte   5                       # DW_FORM_data2
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   80                      # Abbreviation Code
+       .byte   13                      # DW_TAG_member
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   56                      # DW_AT_data_member_location
+       .byte   5                       # DW_FORM_data2
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   81                      # Abbreviation Code
+       .byte   13                      # DW_TAG_member
+       .byte   0                       # DW_CHILDREN_no
+       .byte   3                       # DW_AT_name
+       .byte   14                      # DW_FORM_strp
+       .byte   73                      # DW_AT_type
+       .byte   19                      # DW_FORM_ref4
+       .byte   58                      # DW_AT_decl_file
+       .byte   11                      # DW_FORM_data1
+       .byte   59                      # DW_AT_decl_line
+       .byte   11                      # DW_FORM_data1
+       .byte   11                      # DW_AT_byte_size
+       .byte   11                      # DW_FORM_data1
+       .byte   13                      # DW_AT_bit_size
+       .byte   11                      # DW_FORM_data1
+       .byte   12                      # DW_AT_bit_offset
+       .byte   11                      # DW_FORM_data1
+       .byte   56                      # DW_AT_data_member_location
+       .byte   11                      # DW_FORM_data1
+       .byte   0                       # EOM(1)
+       .byte   0                       # EOM(2)
+       .byte   0                       # EOM(3)
+       .section        .debug_info,"",@progbits
+.Lcu_begin0:
+       .long   .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
+.Ldebug_info_start0:
+       .short  4                       # DWARF version number
+       .long   .debug_abbrev           # Offset Into Abbrev. Section
+       .byte   8                       # Address Size (in bytes)
+       .byte   1                       # Abbrev [1] 0xb:0x3a0e DW_TAG_compile_unit
+       .long   .Linfo_string0          # DW_AT_producer
+       .short  4                       # DW_AT_language
+       .long   .Linfo_string1          # DW_AT_name
+       .long   .Lline_table_start0     # DW_AT_stmt_list
+       .long   .Linfo_string2          # DW_AT_comp_dir
+       .quad   0                       # DW_AT_low_pc
+       .long   .Ldebug_ranges13        # DW_AT_ranges
+       .byte   2                       # Abbrev [2] 0x2a:0xd25 DW_TAG_namespace
+       .long   .Linfo_string3          # DW_AT_name
+       .byte   3                       # Abbrev [3] 0x2f:0x19 DW_TAG_variable
+       .long   .Linfo_string4          # DW_AT_name
+       .long   77                      # DW_AT_type
+       .byte   3                       # DW_AT_decl_file
+       .byte   74                      # DW_AT_decl_line
+       .byte   9                       # DW_AT_location
+       .byte   3
+       .quad   _ZStL8__ioinit
+       .long   .Linfo_string13         # DW_AT_linkage_name
+       .byte   4                       # Abbrev [4] 0x48:0x47 DW_TAG_class_type
+       .long   .Linfo_string5          # DW_AT_name
+                                        # DW_AT_declaration
+       .byte   5                       # Abbrev [5] 0x4d:0x41 DW_TAG_class_type
+       .byte   4                       # DW_AT_calling_convention
+       .long   .Linfo_string11         # DW_AT_name
+       .byte   1                       # DW_AT_byte_size
+       .byte   2                       # DW_AT_decl_file
+       .short  603                     # DW_AT_decl_line
+       .byte   6                       # Abbrev [6] 0x57:0xc DW_TAG_member
+       .long   .Linfo_string6          # DW_AT_name
+       .long   3407                    # DW_AT_type
+       .byte   2                       # DW_AT_decl_file
+       .short  611                     # DW_AT_decl_line
+                                        # DW_AT_external
+                                        # DW_AT_declaration
+       .byte   6                       # Abbrev [6] 0x63:0xc DW_TAG_member
+       .long   .Linfo_string9          # DW_AT_name
+       .long   3425                    # DW_AT_type
+       .byte   2                       # DW_AT_decl_file
+       .short  612                     # DW_AT_decl_line
+                                        # DW_AT_external
+                                        # DW_AT_declaration
+       .byte   7                       # Abbrev [7] 0x6f:0xf DW_TAG_subprogram
+       .long   .Linfo_string11         # DW_AT_name
+       .byte   2                       # DW_AT_decl_file
+       .short  607                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+       .byte   8                       # Abbrev [8] 0x78:0x5 DW_TAG_formal_parameter
+       .long   3432                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   0                       # End Of Children Mark
+       .byte   7                       # Abbrev [7] 0x7e:0xf DW_TAG_subprogram
+       .long   .Linfo_string12         # DW_AT_name
+       .byte   2                       # DW_AT_decl_file
+       .short  608                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+       .byte   8                       # Abbrev [8] 0x87:0x5 DW_TAG_formal_parameter
+       .long   3432                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   0                       # End Of Children Mark
+       .byte   0                       # End Of Children Mark
+       .byte   0                       # End Of Children Mark
+       .byte   9                       # Abbrev [9] 0x8f:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   64                      # DW_AT_decl_line
+       .long   4232                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x96:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   139                     # DW_AT_decl_line
+       .long   4333                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x9d:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   141                     # DW_AT_decl_line
+       .long   4344                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xa4:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   142                     # DW_AT_decl_line
+       .long   4362                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xab:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   143                     # DW_AT_decl_line
+       .long   4894                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xb2:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   144                     # DW_AT_decl_line
+       .long   4944                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xb9:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   145                     # DW_AT_decl_line
+       .long   4967                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xc0:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   146                     # DW_AT_decl_line
+       .long   5005                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xc7:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   147                     # DW_AT_decl_line
+       .long   5028                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xce:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   148                     # DW_AT_decl_line
+       .long   5052                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xd5:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   149                     # DW_AT_decl_line
+       .long   5076                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xdc:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   150                     # DW_AT_decl_line
+       .long   5094                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe3:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   151                     # DW_AT_decl_line
+       .long   5106                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xea:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   152                     # DW_AT_decl_line
+       .long   5159                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xf1:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   153                     # DW_AT_decl_line
+       .long   5192                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xf8:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   154                     # DW_AT_decl_line
+       .long   5220                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xff:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   155                     # DW_AT_decl_line
+       .long   5263                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x106:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   156                     # DW_AT_decl_line
+       .long   5286                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x10d:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   158                     # DW_AT_decl_line
+       .long   5304                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x114:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   160                     # DW_AT_decl_line
+       .long   5333                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x11b:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   161                     # DW_AT_decl_line
+       .long   5357                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x122:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   162                     # DW_AT_decl_line
+       .long   5380                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x129:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   164                     # DW_AT_decl_line
+       .long   5461                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x130:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   167                     # DW_AT_decl_line
+       .long   5489                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x137:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   170                     # DW_AT_decl_line
+       .long   5522                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x13e:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   172                     # DW_AT_decl_line
+       .long   5550                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x145:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   174                     # DW_AT_decl_line
+       .long   5573                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x14c:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   176                     # DW_AT_decl_line
+       .long   5596                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x153:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   177                     # DW_AT_decl_line
+       .long   5629                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x15a:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   178                     # DW_AT_decl_line
+       .long   5651                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x161:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   179                     # DW_AT_decl_line
+       .long   5673                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x168:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   180                     # DW_AT_decl_line
+       .long   5695                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x16f:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   181                     # DW_AT_decl_line
+       .long   5717                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x176:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   182                     # DW_AT_decl_line
+       .long   5739                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x17d:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   183                     # DW_AT_decl_line
+       .long   5792                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x184:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   184                     # DW_AT_decl_line
+       .long   5809                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x18b:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   185                     # DW_AT_decl_line
+       .long   5836                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x192:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   186                     # DW_AT_decl_line
+       .long   5863                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x199:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   187                     # DW_AT_decl_line
+       .long   5890                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1a0:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   188                     # DW_AT_decl_line
+       .long   5933                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1a7:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   189                     # DW_AT_decl_line
+       .long   5955                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1ae:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   191                     # DW_AT_decl_line
+       .long   5995                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1b5:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   193                     # DW_AT_decl_line
+       .long   6025                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1bc:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   194                     # DW_AT_decl_line
+       .long   6052                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1c3:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   195                     # DW_AT_decl_line
+       .long   6080                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1ca:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   196                     # DW_AT_decl_line
+       .long   6108                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1d1:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   197                     # DW_AT_decl_line
+       .long   6135                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1d8:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   198                     # DW_AT_decl_line
+       .long   6153                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1df:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   199                     # DW_AT_decl_line
+       .long   6181                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1e6:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   200                     # DW_AT_decl_line
+       .long   6209                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1ed:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   201                     # DW_AT_decl_line
+       .long   6237                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1f4:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   202                     # DW_AT_decl_line
+       .long   6265                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x1fb:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   203                     # DW_AT_decl_line
+       .long   6284                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x202:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   204                     # DW_AT_decl_line
+       .long   6303                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x209:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   205                     # DW_AT_decl_line
+       .long   6325                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x210:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   206                     # DW_AT_decl_line
+       .long   6347                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x217:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   207                     # DW_AT_decl_line
+       .long   6369                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x21e:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   208                     # DW_AT_decl_line
+       .long   6391                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x225:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  264                     # DW_AT_decl_line
+       .long   6418                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x22d:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  265                     # DW_AT_decl_line
+       .long   6448                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x235:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  266                     # DW_AT_decl_line
+       .long   6483                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x23d:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  280                     # DW_AT_decl_line
+       .long   5995                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x245:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  283                     # DW_AT_decl_line
+       .long   5461                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x24d:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  286                     # DW_AT_decl_line
+       .long   5522                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x255:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  289                     # DW_AT_decl_line
+       .long   5573                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x25d:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  293                     # DW_AT_decl_line
+       .long   6418                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x265:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  294                     # DW_AT_decl_line
+       .long   6448                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x26d:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  295                     # DW_AT_decl_line
+       .long   6483                    # DW_AT_import
+       .byte   2                       # Abbrev [2] 0x275:0x13a DW_TAG_namespace
+       .long   .Linfo_string214        # DW_AT_name
+       .byte   11                      # Abbrev [11] 0x27a:0x12d DW_TAG_class_type
+       .byte   4                       # DW_AT_calling_convention
+       .long   .Linfo_string216        # DW_AT_name
+       .byte   8                       # DW_AT_byte_size
+       .byte   18                      # DW_AT_decl_file
+       .byte   79                      # DW_AT_decl_line
+       .byte   12                      # Abbrev [12] 0x283:0xc DW_TAG_member
+       .long   .Linfo_string215        # DW_AT_name
+       .long   4220                    # DW_AT_type
+       .byte   18                      # DW_AT_decl_file
+       .byte   81                      # DW_AT_decl_line
+       .byte   0                       # DW_AT_data_member_location
+       .byte   13                      # Abbrev [13] 0x28f:0x12 DW_TAG_subprogram
+       .long   .Linfo_string216        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   83                      # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+                                        # DW_AT_explicit
+       .byte   8                       # Abbrev [8] 0x296:0x5 DW_TAG_formal_parameter
+       .long   6518                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   14                      # Abbrev [14] 0x29b:0x5 DW_TAG_formal_parameter
+       .long   4220                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   15                      # Abbrev [15] 0x2a1:0x11 DW_TAG_subprogram
+       .long   .Linfo_string217        # DW_AT_linkage_name
+       .long   .Linfo_string218        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   85                      # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   8                       # Abbrev [8] 0x2ac:0x5 DW_TAG_formal_parameter
+       .long   6518                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   0                       # End Of Children Mark
+       .byte   15                      # Abbrev [15] 0x2b2:0x11 DW_TAG_subprogram
+       .long   .Linfo_string219        # DW_AT_linkage_name
+       .long   .Linfo_string220        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   86                      # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   8                       # Abbrev [8] 0x2bd:0x5 DW_TAG_formal_parameter
+       .long   6518                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   0                       # End Of Children Mark
+       .byte   16                      # Abbrev [16] 0x2c3:0x15 DW_TAG_subprogram
+       .long   .Linfo_string221        # DW_AT_linkage_name
+       .long   .Linfo_string222        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   88                      # DW_AT_decl_line
+       .long   4220                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   8                       # Abbrev [8] 0x2d2:0x5 DW_TAG_formal_parameter
+       .long   6523                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   0                       # End Of Children Mark
+       .byte   17                      # Abbrev [17] 0x2d8:0xe DW_TAG_subprogram
+       .long   .Linfo_string216        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   96                      # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+       .byte   8                       # Abbrev [8] 0x2e0:0x5 DW_TAG_formal_parameter
+       .long   6518                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   0                       # End Of Children Mark
+       .byte   17                      # Abbrev [17] 0x2e6:0x13 DW_TAG_subprogram
+       .long   .Linfo_string216        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   98                      # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+       .byte   8                       # Abbrev [8] 0x2ee:0x5 DW_TAG_formal_parameter
+       .long   6518                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   14                      # Abbrev [14] 0x2f3:0x5 DW_TAG_formal_parameter
+       .long   6533                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   17                      # Abbrev [17] 0x2f9:0x13 DW_TAG_subprogram
+       .long   .Linfo_string216        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   101                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+       .byte   8                       # Abbrev [8] 0x301:0x5 DW_TAG_formal_parameter
+       .long   6518                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   14                      # Abbrev [14] 0x306:0x5 DW_TAG_formal_parameter
+       .long   943                     # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   17                      # Abbrev [17] 0x30c:0x13 DW_TAG_subprogram
+       .long   .Linfo_string216        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   105                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+       .byte   8                       # Abbrev [8] 0x314:0x5 DW_TAG_formal_parameter
+       .long   6518                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   14                      # Abbrev [14] 0x319:0x5 DW_TAG_formal_parameter
+       .long   6543                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   18                      # Abbrev [18] 0x31f:0x1b DW_TAG_subprogram
+       .long   .Linfo_string225        # DW_AT_linkage_name
+       .long   .Linfo_string226        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   118                     # DW_AT_decl_line
+       .long   6548                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+       .byte   8                       # Abbrev [8] 0x32f:0x5 DW_TAG_formal_parameter
+       .long   6518                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   14                      # Abbrev [14] 0x334:0x5 DW_TAG_formal_parameter
+       .long   6533                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   18                      # Abbrev [18] 0x33a:0x1b DW_TAG_subprogram
+       .long   .Linfo_string227        # DW_AT_linkage_name
+       .long   .Linfo_string226        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   122                     # DW_AT_decl_line
+       .long   6548                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+       .byte   8                       # Abbrev [8] 0x34a:0x5 DW_TAG_formal_parameter
+       .long   6518                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   14                      # Abbrev [14] 0x34f:0x5 DW_TAG_formal_parameter
+       .long   6543                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   17                      # Abbrev [17] 0x355:0xe DW_TAG_subprogram
+       .long   .Linfo_string228        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   129                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+       .byte   8                       # Abbrev [8] 0x35d:0x5 DW_TAG_formal_parameter
+       .long   6518                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   0                       # End Of Children Mark
+       .byte   19                      # Abbrev [19] 0x363:0x17 DW_TAG_subprogram
+       .long   .Linfo_string229        # DW_AT_linkage_name
+       .long   .Linfo_string230        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   132                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+       .byte   8                       # Abbrev [8] 0x36f:0x5 DW_TAG_formal_parameter
+       .long   6518                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   14                      # Abbrev [14] 0x374:0x5 DW_TAG_formal_parameter
+       .long   6548                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   20                      # Abbrev [20] 0x37a:0x16 DW_TAG_subprogram
+       .long   .Linfo_string231        # DW_AT_linkage_name
+       .long   .Linfo_string232        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   144                     # DW_AT_decl_line
+       .long   3425                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+                                        # DW_AT_explicit
+       .byte   8                       # Abbrev [8] 0x38a:0x5 DW_TAG_formal_parameter
+       .long   6523                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   0                       # End Of Children Mark
+       .byte   18                      # Abbrev [18] 0x390:0x16 DW_TAG_subprogram
+       .long   .Linfo_string233        # DW_AT_linkage_name
+       .long   .Linfo_string234        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   153                     # DW_AT_decl_line
+       .long   6553                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   1                       # DW_AT_accessibility
+                                        # DW_ACCESS_public
+       .byte   8                       # Abbrev [8] 0x3a0:0x5 DW_TAG_formal_parameter
+       .long   6523                    # DW_AT_type
+                                        # DW_AT_artificial
+       .byte   0                       # End Of Children Mark
+       .byte   0                       # End Of Children Mark
+       .byte   9                       # Abbrev [9] 0x3a7:0x7 DW_TAG_imported_declaration
+       .byte   18                      # DW_AT_decl_file
+       .byte   73                      # DW_AT_decl_line
+       .long   966                     # DW_AT_import
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0x3af:0xb DW_TAG_typedef
+       .long   6538                    # DW_AT_type
+       .long   .Linfo_string224        # DW_AT_name
+       .byte   19                      # DW_AT_decl_file
+       .byte   242                     # DW_AT_decl_line
+       .byte   22                      # Abbrev [22] 0x3ba:0x5 DW_TAG_class_type
+       .long   .Linfo_string235        # DW_AT_name
+                                        # DW_AT_declaration
+       .byte   9                       # Abbrev [9] 0x3bf:0x7 DW_TAG_imported_declaration
+       .byte   18                      # DW_AT_decl_file
+       .byte   57                      # DW_AT_decl_line
+       .long   634                     # DW_AT_import
+       .byte   23                      # Abbrev [23] 0x3c6:0x11 DW_TAG_subprogram
+       .long   .Linfo_string236        # DW_AT_linkage_name
+       .long   .Linfo_string237        # DW_AT_name
+       .byte   18                      # DW_AT_decl_file
+       .byte   69                      # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+                                        # DW_AT_noreturn
+       .byte   14                      # Abbrev [14] 0x3d1:0x5 DW_TAG_formal_parameter
+       .long   634                     # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   24                      # Abbrev [24] 0x3d7:0x5 DW_TAG_namespace
+       .long   .Linfo_string239        # DW_AT_name
+       .byte   9                       # Abbrev [9] 0x3dc:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   48                      # DW_AT_decl_line
+       .long   6576                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x3e3:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   49                      # DW_AT_decl_line
+       .long   6598                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x3ea:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   50                      # DW_AT_decl_line
+       .long   6627                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x3f1:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   51                      # DW_AT_decl_line
+       .long   6649                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x3f8:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   53                      # DW_AT_decl_line
+       .long   6671                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x3ff:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   54                      # DW_AT_decl_line
+       .long   6682                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x406:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   55                      # DW_AT_decl_line
+       .long   6693                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x40d:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   56                      # DW_AT_decl_line
+       .long   6704                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x414:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   58                      # DW_AT_decl_line
+       .long   6715                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x41b:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   59                      # DW_AT_decl_line
+       .long   6726                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x422:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   60                      # DW_AT_decl_line
+       .long   6737                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x429:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   61                      # DW_AT_decl_line
+       .long   6748                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x430:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   63                      # DW_AT_decl_line
+       .long   6759                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x437:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   64                      # DW_AT_decl_line
+       .long   6781                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x43e:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   66                      # DW_AT_decl_line
+       .long   6792                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x445:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   67                      # DW_AT_decl_line
+       .long   6821                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x44c:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   68                      # DW_AT_decl_line
+       .long   3471                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x453:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   69                      # DW_AT_decl_line
+       .long   6843                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x45a:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   71                      # DW_AT_decl_line
+       .long   6865                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x461:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   72                      # DW_AT_decl_line
+       .long   6876                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x468:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   73                      # DW_AT_decl_line
+       .long   6887                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x46f:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   74                      # DW_AT_decl_line
+       .long   6898                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x476:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   76                      # DW_AT_decl_line
+       .long   6909                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x47d:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   77                      # DW_AT_decl_line
+       .long   6920                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x484:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   78                      # DW_AT_decl_line
+       .long   6931                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x48b:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   79                      # DW_AT_decl_line
+       .long   6942                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x492:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   81                      # DW_AT_decl_line
+       .long   6953                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x499:0x7 DW_TAG_imported_declaration
+       .byte   22                      # DW_AT_decl_file
+       .byte   82                      # DW_AT_decl_line
+       .long   6975                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4a0:0x7 DW_TAG_imported_declaration
+       .byte   24                      # DW_AT_decl_file
+       .byte   53                      # DW_AT_decl_line
+       .long   6986                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4a7:0x7 DW_TAG_imported_declaration
+       .byte   24                      # DW_AT_decl_file
+       .byte   54                      # DW_AT_decl_line
+       .long   6991                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4ae:0x7 DW_TAG_imported_declaration
+       .byte   24                      # DW_AT_decl_file
+       .byte   55                      # DW_AT_decl_line
+       .long   7013                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4b5:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   64                      # DW_AT_decl_line
+       .long   7029                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4bc:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   65                      # DW_AT_decl_line
+       .long   7046                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4c3:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   66                      # DW_AT_decl_line
+       .long   7063                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4ca:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   67                      # DW_AT_decl_line
+       .long   7080                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4d1:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   68                      # DW_AT_decl_line
+       .long   7097                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4d8:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   69                      # DW_AT_decl_line
+       .long   7114                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4df:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   70                      # DW_AT_decl_line
+       .long   7131                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4e6:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   71                      # DW_AT_decl_line
+       .long   7148                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4ed:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   72                      # DW_AT_decl_line
+       .long   7165                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4f4:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   73                      # DW_AT_decl_line
+       .long   7182                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x4fb:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   74                      # DW_AT_decl_line
+       .long   7199                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x502:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   75                      # DW_AT_decl_line
+       .long   7216                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x509:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   76                      # DW_AT_decl_line
+       .long   7233                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x510:0x7 DW_TAG_imported_declaration
+       .byte   27                      # DW_AT_decl_file
+       .byte   87                      # DW_AT_decl_line
+       .long   7250                    # DW_AT_import
+       .byte   21                      # Abbrev [21] 0x517:0xb DW_TAG_typedef
+       .long   4875                    # DW_AT_type
+       .long   .Linfo_string140        # DW_AT_name
+       .byte   19                      # DW_AT_decl_file
+       .byte   238                     # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x522:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string295        # DW_AT_name
+       .byte   19                      # DW_AT_decl_file
+       .byte   239                     # DW_AT_decl_line
+       .byte   9                       # Abbrev [9] 0x52d:0x7 DW_TAG_imported_declaration
+       .byte   30                      # DW_AT_decl_file
+       .byte   52                      # DW_AT_decl_line
+       .long   7267                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x534:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   127                     # DW_AT_decl_line
+       .long   7285                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x53b:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   128                     # DW_AT_decl_line
+       .long   7297                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x542:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   130                     # DW_AT_decl_line
+       .long   7338                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x549:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   134                     # DW_AT_decl_line
+       .long   7346                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x550:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   137                     # DW_AT_decl_line
+       .long   7370                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x557:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   140                     # DW_AT_decl_line
+       .long   7388                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x55e:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   141                     # DW_AT_decl_line
+       .long   7405                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x565:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   142                     # DW_AT_decl_line
+       .long   7423                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x56c:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   143                     # DW_AT_decl_line
+       .long   7441                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x573:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   144                     # DW_AT_decl_line
+       .long   7511                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x57a:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   145                     # DW_AT_decl_line
+       .long   7534                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x581:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   146                     # DW_AT_decl_line
+       .long   7557                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x588:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   147                     # DW_AT_decl_line
+       .long   7571                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x58f:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   148                     # DW_AT_decl_line
+       .long   7585                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x596:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   149                     # DW_AT_decl_line
+       .long   7603                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x59d:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   150                     # DW_AT_decl_line
+       .long   7621                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5a4:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   151                     # DW_AT_decl_line
+       .long   7644                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5ab:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   153                     # DW_AT_decl_line
+       .long   7662                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5b2:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   154                     # DW_AT_decl_line
+       .long   7685                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5b9:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   155                     # DW_AT_decl_line
+       .long   7713                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5c0:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   157                     # DW_AT_decl_line
+       .long   7741                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5c7:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   160                     # DW_AT_decl_line
+       .long   7770                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5ce:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   163                     # DW_AT_decl_line
+       .long   7784                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5d5:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   164                     # DW_AT_decl_line
+       .long   7796                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5dc:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   165                     # DW_AT_decl_line
+       .long   7819                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5e3:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   166                     # DW_AT_decl_line
+       .long   7833                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5ea:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   167                     # DW_AT_decl_line
+       .long   7865                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5f1:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   168                     # DW_AT_decl_line
+       .long   7892                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5f8:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   169                     # DW_AT_decl_line
+       .long   7919                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x5ff:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   171                     # DW_AT_decl_line
+       .long   7937                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x606:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   172                     # DW_AT_decl_line
+       .long   7965                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x60d:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   240                     # DW_AT_decl_line
+       .long   7988                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x614:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   242                     # DW_AT_decl_line
+       .long   8029                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x61b:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   244                     # DW_AT_decl_line
+       .long   8043                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x622:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   245                     # DW_AT_decl_line
+       .long   3643                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x629:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   246                     # DW_AT_decl_line
+       .long   8061                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x630:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   248                     # DW_AT_decl_line
+       .long   8084                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x637:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   249                     # DW_AT_decl_line
+       .long   8156                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x63e:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   250                     # DW_AT_decl_line
+       .long   8102                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x645:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   251                     # DW_AT_decl_line
+       .long   8129                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x64c:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   252                     # DW_AT_decl_line
+       .long   8178                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x653:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   98                      # DW_AT_decl_line
+       .long   8200                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x65a:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   99                      # DW_AT_decl_line
+       .long   8211                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x661:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   101                     # DW_AT_decl_line
+       .long   8234                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x668:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   102                     # DW_AT_decl_line
+       .long   8253                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x66f:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   103                     # DW_AT_decl_line
+       .long   8270                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x676:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   104                     # DW_AT_decl_line
+       .long   8288                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x67d:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   105                     # DW_AT_decl_line
+       .long   8306                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x684:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   106                     # DW_AT_decl_line
+       .long   8323                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x68b:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   107                     # DW_AT_decl_line
+       .long   8341                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x692:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   108                     # DW_AT_decl_line
+       .long   8379                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x699:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   109                     # DW_AT_decl_line
+       .long   8407                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6a0:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   110                     # DW_AT_decl_line
+       .long   8429                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6a7:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   111                     # DW_AT_decl_line
+       .long   8453                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6ae:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   112                     # DW_AT_decl_line
+       .long   8476                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6b5:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   113                     # DW_AT_decl_line
+       .long   8499                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6bc:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   114                     # DW_AT_decl_line
+       .long   8537                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6c3:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   115                     # DW_AT_decl_line
+       .long   8564                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6ca:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   116                     # DW_AT_decl_line
+       .long   8588                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6d1:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   117                     # DW_AT_decl_line
+       .long   8616                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6d8:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   118                     # DW_AT_decl_line
+       .long   8649                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6df:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   119                     # DW_AT_decl_line
+       .long   8667                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6e6:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   120                     # DW_AT_decl_line
+       .long   8705                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6ed:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   121                     # DW_AT_decl_line
+       .long   8723                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6f4:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   124                     # DW_AT_decl_line
+       .long   8734                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x6fb:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   126                     # DW_AT_decl_line
+       .long   8752                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x702:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   127                     # DW_AT_decl_line
+       .long   8766                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x709:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   128                     # DW_AT_decl_line
+       .long   8785                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x710:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   129                     # DW_AT_decl_line
+       .long   8808                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x717:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   130                     # DW_AT_decl_line
+       .long   8825                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x71e:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   131                     # DW_AT_decl_line
+       .long   8843                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x725:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   132                     # DW_AT_decl_line
+       .long   8860                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x72c:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   133                     # DW_AT_decl_line
+       .long   8882                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x733:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   134                     # DW_AT_decl_line
+       .long   8896                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x73a:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   135                     # DW_AT_decl_line
+       .long   8915                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x741:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   136                     # DW_AT_decl_line
+       .long   8934                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x748:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   137                     # DW_AT_decl_line
+       .long   8967                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x74f:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   138                     # DW_AT_decl_line
+       .long   8991                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x756:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   139                     # DW_AT_decl_line
+       .long   9015                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x75d:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   141                     # DW_AT_decl_line
+       .long   9026                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x764:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   143                     # DW_AT_decl_line
+       .long   9043                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x76b:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   144                     # DW_AT_decl_line
+       .long   9066                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x772:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   145                     # DW_AT_decl_line
+       .long   9094                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x779:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   146                     # DW_AT_decl_line
+       .long   9116                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x780:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   185                     # DW_AT_decl_line
+       .long   9144                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x787:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   186                     # DW_AT_decl_line
+       .long   9173                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x78e:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   187                     # DW_AT_decl_line
+       .long   9201                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x795:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   188                     # DW_AT_decl_line
+       .long   9224                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x79c:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   189                     # DW_AT_decl_line
+       .long   9257                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7a3:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   82                      # DW_AT_decl_line
+       .long   9285                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7aa:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   83                      # DW_AT_decl_line
+       .long   9306                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7b1:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   84                      # DW_AT_decl_line
+       .long   4333                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7b8:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   86                      # DW_AT_decl_line
+       .long   9317                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7bf:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   87                      # DW_AT_decl_line
+       .long   9334                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7c6:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   89                      # DW_AT_decl_line
+       .long   9351                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7cd:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   91                      # DW_AT_decl_line
+       .long   9368                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7d4:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   92                      # DW_AT_decl_line
+       .long   9385                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7db:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   93                      # DW_AT_decl_line
+       .long   9407                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7e2:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   94                      # DW_AT_decl_line
+       .long   9424                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7e9:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   95                      # DW_AT_decl_line
+       .long   9441                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7f0:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   96                      # DW_AT_decl_line
+       .long   9458                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7f7:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   97                      # DW_AT_decl_line
+       .long   9475                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x7fe:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   98                      # DW_AT_decl_line
+       .long   9492                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x805:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   99                      # DW_AT_decl_line
+       .long   9509                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x80c:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   100                     # DW_AT_decl_line
+       .long   9526                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x813:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   101                     # DW_AT_decl_line
+       .long   9543                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x81a:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   102                     # DW_AT_decl_line
+       .long   9565                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x821:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   103                     # DW_AT_decl_line
+       .long   9582                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x828:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   104                     # DW_AT_decl_line
+       .long   9599                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x82f:0x7 DW_TAG_imported_declaration
+       .byte   40                      # DW_AT_decl_file
+       .byte   105                     # DW_AT_decl_line
+       .long   9616                    # DW_AT_import
+       .byte   16                      # Abbrev [16] 0x836:0x15 DW_TAG_subprogram
+       .long   .Linfo_string410        # DW_AT_linkage_name
+       .long   .Linfo_string296        # DW_AT_name
+       .byte   30                      # DW_AT_decl_file
+       .byte   78                      # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x845:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   9                       # Abbrev [9] 0x84b:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   60                      # DW_AT_decl_line
+       .long   9857                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x852:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   61                      # DW_AT_decl_line
+       .long   9879                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x859:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   62                      # DW_AT_decl_line
+       .long   5787                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x860:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   64                      # DW_AT_decl_line
+       .long   9901                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x867:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   65                      # DW_AT_decl_line
+       .long   9912                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x86e:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   66                      # DW_AT_decl_line
+       .long   9934                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x875:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   67                      # DW_AT_decl_line
+       .long   9956                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x87c:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   68                      # DW_AT_decl_line
+       .long   9978                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x883:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   69                      # DW_AT_decl_line
+       .long   9995                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x88a:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   70                      # DW_AT_decl_line
+       .long   10022                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x891:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   71                      # DW_AT_decl_line
+       .long   10039                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x898:0x7 DW_TAG_imported_declaration
+       .byte   44                      # DW_AT_decl_file
+       .byte   72                      # DW_AT_decl_line
+       .long   10056                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x89f:0x7 DW_TAG_imported_declaration
+       .byte   47                      # DW_AT_decl_file
+       .byte   86                      # DW_AT_decl_line
+       .long   3512                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x8a6:0x7 DW_TAG_imported_declaration
+       .byte   47                      # DW_AT_decl_file
+       .byte   87                      # DW_AT_decl_line
+       .long   3704                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x8ad:0x7 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .byte   83                      # DW_AT_decl_line
+       .long   10093                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x8b4:0x7 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .byte   102                     # DW_AT_decl_line
+       .long   10110                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x8bb:0x7 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .byte   121                     # DW_AT_decl_line
+       .long   10127                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x8c2:0x7 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .byte   140                     # DW_AT_decl_line
+       .long   10144                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x8c9:0x7 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .byte   161                     # DW_AT_decl_line
+       .long   10166                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x8d0:0x7 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .byte   180                     # DW_AT_decl_line
+       .long   10183                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x8d7:0x7 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .byte   199                     # DW_AT_decl_line
+       .long   10200                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x8de:0x7 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .byte   218                     # DW_AT_decl_line
+       .long   10217                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x8e5:0x7 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .byte   237                     # DW_AT_decl_line
+       .long   10234                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x8ec:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  256                     # DW_AT_decl_line
+       .long   10251                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x8f4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  275                     # DW_AT_decl_line
+       .long   10268                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x8fc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  296                     # DW_AT_decl_line
+       .long   10290                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x904:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  315                     # DW_AT_decl_line
+       .long   10317                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x90c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  334                     # DW_AT_decl_line
+       .long   10339                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x914:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  353                     # DW_AT_decl_line
+       .long   10356                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x91c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  372                     # DW_AT_decl_line
+       .long   10373                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x924:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  384                     # DW_AT_decl_line
+       .long   10400                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x92c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  421                     # DW_AT_decl_line
+       .long   10422                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x934:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  440                     # DW_AT_decl_line
+       .long   10439                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x93c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  459                     # DW_AT_decl_line
+       .long   10456                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x944:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  478                     # DW_AT_decl_line
+       .long   10473                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x94c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  497                     # DW_AT_decl_line
+       .long   10490                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x954:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1065                    # DW_AT_decl_line
+       .long   10507                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x95c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1066                    # DW_AT_decl_line
+       .long   10518                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x964:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1069                    # DW_AT_decl_line
+       .long   10529                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x96c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1070                    # DW_AT_decl_line
+       .long   10546                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x974:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1071                    # DW_AT_decl_line
+       .long   10563                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x97c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1073                    # DW_AT_decl_line
+       .long   10580                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x984:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1074                    # DW_AT_decl_line
+       .long   10597                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x98c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1075                    # DW_AT_decl_line
+       .long   10614                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x994:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1077                    # DW_AT_decl_line
+       .long   10631                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x99c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1078                    # DW_AT_decl_line
+       .long   10648                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9a4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1079                    # DW_AT_decl_line
+       .long   10665                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9ac:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1081                    # DW_AT_decl_line
+       .long   10682                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9b4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1082                    # DW_AT_decl_line
+       .long   10699                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9bc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1083                    # DW_AT_decl_line
+       .long   10716                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9c4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1085                    # DW_AT_decl_line
+       .long   10733                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9cc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1086                    # DW_AT_decl_line
+       .long   10755                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9d4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1087                    # DW_AT_decl_line
+       .long   10777                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9dc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1089                    # DW_AT_decl_line
+       .long   10799                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9e4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1090                    # DW_AT_decl_line
+       .long   10816                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9ec:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1091                    # DW_AT_decl_line
+       .long   10833                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9f4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1093                    # DW_AT_decl_line
+       .long   10850                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0x9fc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1094                    # DW_AT_decl_line
+       .long   10867                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa04:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1095                    # DW_AT_decl_line
+       .long   10884                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa0c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1097                    # DW_AT_decl_line
+       .long   10901                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa14:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1098                    # DW_AT_decl_line
+       .long   10918                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa1c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1099                    # DW_AT_decl_line
+       .long   10935                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa24:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1101                    # DW_AT_decl_line
+       .long   10952                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa2c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1102                    # DW_AT_decl_line
+       .long   10969                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa34:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1103                    # DW_AT_decl_line
+       .long   10986                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa3c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1105                    # DW_AT_decl_line
+       .long   11003                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa44:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1106                    # DW_AT_decl_line
+       .long   11026                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa4c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1107                    # DW_AT_decl_line
+       .long   11049                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa54:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1109                    # DW_AT_decl_line
+       .long   11072                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa5c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1110                    # DW_AT_decl_line
+       .long   11100                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa64:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1111                    # DW_AT_decl_line
+       .long   11128                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa6c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1113                    # DW_AT_decl_line
+       .long   11156                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa74:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1114                    # DW_AT_decl_line
+       .long   11179                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa7c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1115                    # DW_AT_decl_line
+       .long   11202                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa84:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1117                    # DW_AT_decl_line
+       .long   11225                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa8c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1118                    # DW_AT_decl_line
+       .long   11248                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa94:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1119                    # DW_AT_decl_line
+       .long   11271                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xa9c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1121                    # DW_AT_decl_line
+       .long   11294                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xaa4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1122                    # DW_AT_decl_line
+       .long   11316                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xaac:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1123                    # DW_AT_decl_line
+       .long   11338                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xab4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1125                    # DW_AT_decl_line
+       .long   11360                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xabc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1126                    # DW_AT_decl_line
+       .long   11378                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xac4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1127                    # DW_AT_decl_line
+       .long   11396                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xacc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1129                    # DW_AT_decl_line
+       .long   11414                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xad4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1130                    # DW_AT_decl_line
+       .long   11431                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xadc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1131                    # DW_AT_decl_line
+       .long   11448                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xae4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1134                    # DW_AT_decl_line
+       .long   11465                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xaec:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1135                    # DW_AT_decl_line
+       .long   11483                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xaf4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1136                    # DW_AT_decl_line
+       .long   11501                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xafc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1138                    # DW_AT_decl_line
+       .long   11519                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb04:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1139                    # DW_AT_decl_line
+       .long   11537                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb0c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1140                    # DW_AT_decl_line
+       .long   11555                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb14:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1143                    # DW_AT_decl_line
+       .long   11573                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb1c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1144                    # DW_AT_decl_line
+       .long   11590                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb24:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1145                    # DW_AT_decl_line
+       .long   11607                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb2c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1147                    # DW_AT_decl_line
+       .long   11624                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb34:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1148                    # DW_AT_decl_line
+       .long   11641                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb3c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1149                    # DW_AT_decl_line
+       .long   11658                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb44:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1151                    # DW_AT_decl_line
+       .long   11675                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb4c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1152                    # DW_AT_decl_line
+       .long   11692                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb54:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1153                    # DW_AT_decl_line
+       .long   11709                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb5c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1155                    # DW_AT_decl_line
+       .long   11726                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb64:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1156                    # DW_AT_decl_line
+       .long   11744                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb6c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1157                    # DW_AT_decl_line
+       .long   11762                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb74:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1159                    # DW_AT_decl_line
+       .long   11780                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb7c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1160                    # DW_AT_decl_line
+       .long   11798                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb84:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1161                    # DW_AT_decl_line
+       .long   11816                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb8c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1163                    # DW_AT_decl_line
+       .long   11834                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb94:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1164                    # DW_AT_decl_line
+       .long   11851                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xb9c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1165                    # DW_AT_decl_line
+       .long   11868                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xba4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1167                    # DW_AT_decl_line
+       .long   11885                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xbac:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1168                    # DW_AT_decl_line
+       .long   11903                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xbb4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1169                    # DW_AT_decl_line
+       .long   11921                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xbbc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1171                    # DW_AT_decl_line
+       .long   11939                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xbc4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1172                    # DW_AT_decl_line
+       .long   11962                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xbcc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1173                    # DW_AT_decl_line
+       .long   11985                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xbd4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1175                    # DW_AT_decl_line
+       .long   12008                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xbdc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1176                    # DW_AT_decl_line
+       .long   12031                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xbe4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1177                    # DW_AT_decl_line
+       .long   12054                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xbec:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1179                    # DW_AT_decl_line
+       .long   12077                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xbf4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1180                    # DW_AT_decl_line
+       .long   12100                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xbfc:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1181                    # DW_AT_decl_line
+       .long   12123                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc04:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1183                    # DW_AT_decl_line
+       .long   12146                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc0c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1184                    # DW_AT_decl_line
+       .long   12174                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc14:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1185                    # DW_AT_decl_line
+       .long   12202                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc1c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1187                    # DW_AT_decl_line
+       .long   12230                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc24:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1188                    # DW_AT_decl_line
+       .long   12248                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc2c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1189                    # DW_AT_decl_line
+       .long   12266                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc34:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1191                    # DW_AT_decl_line
+       .long   12284                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc3c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1192                    # DW_AT_decl_line
+       .long   12302                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc44:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1193                    # DW_AT_decl_line
+       .long   12320                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc4c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1195                    # DW_AT_decl_line
+       .long   12338                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc54:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1196                    # DW_AT_decl_line
+       .long   12361                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc5c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1197                    # DW_AT_decl_line
+       .long   12384                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc64:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1199                    # DW_AT_decl_line
+       .long   12407                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc6c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1200                    # DW_AT_decl_line
+       .long   12430                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc74:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1201                    # DW_AT_decl_line
+       .long   12453                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc7c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1203                    # DW_AT_decl_line
+       .long   12476                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc84:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1204                    # DW_AT_decl_line
+       .long   12493                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc8c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1205                    # DW_AT_decl_line
+       .long   12510                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc94:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1207                    # DW_AT_decl_line
+       .long   12527                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xc9c:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1208                    # DW_AT_decl_line
+       .long   12545                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xca4:0x8 DW_TAG_imported_declaration
+       .byte   49                      # DW_AT_decl_file
+       .short  1209                    # DW_AT_decl_line
+       .long   12563                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xcac:0x7 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .byte   223                     # DW_AT_decl_line
+       .long   12581                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xcb3:0x7 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .byte   244                     # DW_AT_decl_line
+       .long   12602                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xcba:0x7 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .byte   248                     # DW_AT_decl_line
+       .long   12633                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xcc1:0x7 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .byte   249                     # DW_AT_decl_line
+       .long   12654                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xcc8:0x7 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .byte   253                     # DW_AT_decl_line
+       .long   12680                   # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xccf:0x7 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .byte   254                     # DW_AT_decl_line
+       .long   12706                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xcd6:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  256                     # DW_AT_decl_line
+       .long   12732                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xcde:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  257                     # DW_AT_decl_line
+       .long   12758                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xce6:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  258                     # DW_AT_decl_line
+       .long   12784                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xcee:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  260                     # DW_AT_decl_line
+       .long   12810                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xcf6:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  261                     # DW_AT_decl_line
+       .long   12831                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xcfe:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  262                     # DW_AT_decl_line
+       .long   12857                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xd06:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  263                     # DW_AT_decl_line
+       .long   12878                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xd0e:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  265                     # DW_AT_decl_line
+       .long   12904                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xd16:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  275                     # DW_AT_decl_line
+       .long   12925                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xd1e:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  276                     # DW_AT_decl_line
+       .long   12956                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xd26:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  277                     # DW_AT_decl_line
+       .long   12977                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xd2e:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  280                     # DW_AT_decl_line
+       .long   12998                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xd36:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  282                     # DW_AT_decl_line
+       .long   13024                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xd3e:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  285                     # DW_AT_decl_line
+       .long   13055                   # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xd46:0x8 DW_TAG_imported_declaration
+       .byte   51                      # DW_AT_decl_file
+       .short  286                     # DW_AT_decl_line
+       .long   13081                   # DW_AT_import
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0xd4f:0xb DW_TAG_typedef
+       .long   3418                    # DW_AT_type
+       .long   .Linfo_string8          # DW_AT_name
+       .byte   1                       # DW_AT_decl_file
+       .byte   32                      # DW_AT_decl_line
+       .byte   25                      # Abbrev [25] 0xd5a:0x7 DW_TAG_base_type
+       .long   .Linfo_string7          # DW_AT_name
+       .byte   5                       # DW_AT_encoding
+       .byte   4                       # DW_AT_byte_size
+       .byte   25                      # Abbrev [25] 0xd61:0x7 DW_TAG_base_type
+       .long   .Linfo_string10         # DW_AT_name
+       .byte   2                       # DW_AT_encoding
+       .byte   1                       # DW_AT_byte_size
+       .byte   26                      # Abbrev [26] 0xd68:0x5 DW_TAG_pointer_type
+       .long   77                      # DW_AT_type
+       .byte   27                      # Abbrev [27] 0xd6d:0x15 DW_TAG_variable
+       .long   .Linfo_string14         # DW_AT_name
+       .long   3458                    # DW_AT_type
+                                        # DW_AT_external
+       .byte   6                       # DW_AT_decl_file
+       .byte   48                      # DW_AT_decl_line
+       .byte   9                       # DW_AT_location
+       .byte   3
+       .quad   bit_extract_kernel_co_gfx900
+       .byte   28                      # Abbrev [28] 0xd82:0xd DW_TAG_array_type
+       .long   3471                    # DW_AT_type
+       .byte   29                      # Abbrev [29] 0xd87:0x7 DW_TAG_subrange_type
+       .long   3500                    # DW_AT_type
+       .short  6654                    # DW_AT_count
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0xd8f:0xb DW_TAG_typedef
+       .long   3482                    # DW_AT_type
+       .long   .Linfo_string17         # DW_AT_name
+       .byte   5                       # DW_AT_decl_file
+       .byte   26                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0xd9a:0xb DW_TAG_typedef
+       .long   3493                    # DW_AT_type
+       .long   .Linfo_string16         # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   41                      # DW_AT_decl_line
+       .byte   25                      # Abbrev [25] 0xda5:0x7 DW_TAG_base_type
+       .long   .Linfo_string15         # DW_AT_name
+       .byte   7                       # DW_AT_encoding
+       .byte   4                       # DW_AT_byte_size
+       .byte   30                      # Abbrev [30] 0xdac:0x7 DW_TAG_base_type
+       .long   .Linfo_string18         # DW_AT_name
+       .byte   8                       # DW_AT_byte_size
+       .byte   7                       # DW_AT_encoding
+       .byte   2                       # Abbrev [2] 0xdb3:0xd5 DW_TAG_namespace
+       .long   .Linfo_string19         # DW_AT_name
+       .byte   31                      # Abbrev [31] 0xdb8:0x1f DW_TAG_enumeration_type
+       .long   3493                    # DW_AT_type
+       .long   .Linfo_string23         # DW_AT_name
+       .byte   4                       # DW_AT_byte_size
+       .byte   7                       # DW_AT_decl_file
+       .byte   49                      # DW_AT_decl_line
+       .byte   32                      # Abbrev [32] 0xdc4:0x6 DW_TAG_enumerator
+       .long   .Linfo_string20         # DW_AT_name
+       .byte   0                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xdca:0x6 DW_TAG_enumerator
+       .long   .Linfo_string21         # DW_AT_name
+       .byte   1                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xdd0:0x6 DW_TAG_enumerator
+       .long   .Linfo_string22         # DW_AT_name
+       .byte   2                       # DW_AT_const_value
+       .byte   0                       # End Of Children Mark
+       .byte   9                       # Abbrev [9] 0xdd7:0x7 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .byte   248                     # DW_AT_decl_line
+       .long   6418                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xdde:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  257                     # DW_AT_decl_line
+       .long   6448                    # DW_AT_import
+       .byte   10                      # Abbrev [10] 0xde6:0x8 DW_TAG_imported_declaration
+       .byte   12                      # DW_AT_decl_file
+       .short  258                     # DW_AT_decl_line
+       .long   6483                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xdee:0x7 DW_TAG_imported_declaration
+       .byte   28                      # DW_AT_decl_file
+       .byte   44                      # DW_AT_decl_line
+       .long   1303                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xdf5:0x7 DW_TAG_imported_declaration
+       .byte   28                      # DW_AT_decl_file
+       .byte   45                      # DW_AT_decl_line
+       .long   1314                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xdfc:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   200                     # DW_AT_decl_line
+       .long   7988                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe03:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   206                     # DW_AT_decl_line
+       .long   8029                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe0a:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   210                     # DW_AT_decl_line
+       .long   8043                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe11:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   216                     # DW_AT_decl_line
+       .long   8061                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe18:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   227                     # DW_AT_decl_line
+       .long   8084                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe1f:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   228                     # DW_AT_decl_line
+       .long   8102                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe26:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   229                     # DW_AT_decl_line
+       .long   8129                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe2d:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   231                     # DW_AT_decl_line
+       .long   8156                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe34:0x7 DW_TAG_imported_declaration
+       .byte   31                      # DW_AT_decl_file
+       .byte   232                     # DW_AT_decl_line
+       .long   8178                    # DW_AT_import
+       .byte   16                      # Abbrev [16] 0xe3b:0x1a DW_TAG_subprogram
+       .long   .Linfo_string340        # DW_AT_linkage_name
+       .long   .Linfo_string310        # DW_AT_name
+       .byte   31                      # DW_AT_decl_file
+       .byte   213                     # DW_AT_decl_line
+       .long   7988                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0xe4a:0x5 DW_TAG_formal_parameter
+       .long   6476                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0xe4f:0x5 DW_TAG_formal_parameter
+       .long   6476                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   9                       # Abbrev [9] 0xe55:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   175                     # DW_AT_decl_line
+       .long   9144                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe5c:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   176                     # DW_AT_decl_line
+       .long   9173                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe63:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   177                     # DW_AT_decl_line
+       .long   9201                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe6a:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   178                     # DW_AT_decl_line
+       .long   9224                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0xe71:0x7 DW_TAG_imported_declaration
+       .byte   35                      # DW_AT_decl_file
+       .byte   179                     # DW_AT_decl_line
+       .long   9257                    # DW_AT_import
+       .byte   33                      # Abbrev [33] 0xe78:0xf DW_TAG_variable
+       .long   .Linfo_string424        # DW_AT_name
+       .long   10088                   # DW_AT_type
+       .byte   7                       # DW_AT_decl_file
+       .byte   53                      # DW_AT_decl_line
+                                        # DW_AT_declaration
+       .long   .Linfo_string425        # DW_AT_linkage_name
+       .byte   0                       # End Of Children Mark
+       .byte   31                      # Abbrev [31] 0xe88:0x1c4 DW_TAG_enumeration_type
+       .long   3493                    # DW_AT_type
+       .long   .Linfo_string88         # DW_AT_name
+       .byte   4                       # DW_AT_byte_size
+       .byte   8                       # DW_AT_decl_file
+       .byte   182                     # DW_AT_decl_line
+       .byte   32                      # Abbrev [32] 0xe94:0x6 DW_TAG_enumerator
+       .long   .Linfo_string24         # DW_AT_name
+       .byte   0                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xe9a:0x6 DW_TAG_enumerator
+       .long   .Linfo_string25         # DW_AT_name
+       .byte   2                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xea0:0x6 DW_TAG_enumerator
+       .long   .Linfo_string26         # DW_AT_name
+       .byte   3                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xea6:0x6 DW_TAG_enumerator
+       .long   .Linfo_string27         # DW_AT_name
+       .byte   4                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xeac:0x6 DW_TAG_enumerator
+       .long   .Linfo_string28         # DW_AT_name
+       .byte   5                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xeb2:0x6 DW_TAG_enumerator
+       .long   .Linfo_string29         # DW_AT_name
+       .byte   6                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xeb8:0x6 DW_TAG_enumerator
+       .long   .Linfo_string30         # DW_AT_name
+       .byte   7                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xebe:0x6 DW_TAG_enumerator
+       .long   .Linfo_string31         # DW_AT_name
+       .byte   8                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xec4:0x6 DW_TAG_enumerator
+       .long   .Linfo_string32         # DW_AT_name
+       .byte   35                      # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xeca:0x7 DW_TAG_enumerator
+       .long   .Linfo_string33         # DW_AT_name
+       .ascii  "\310\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xed1:0x7 DW_TAG_enumerator
+       .long   .Linfo_string34         # DW_AT_name
+       .ascii  "\311\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xed8:0x7 DW_TAG_enumerator
+       .long   .Linfo_string35         # DW_AT_name
+       .ascii  "\312\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xedf:0x7 DW_TAG_enumerator
+       .long   .Linfo_string36         # DW_AT_name
+       .ascii  "\315\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xee6:0x7 DW_TAG_enumerator
+       .long   .Linfo_string37         # DW_AT_name
+       .ascii  "\316\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xeed:0x7 DW_TAG_enumerator
+       .long   .Linfo_string38         # DW_AT_name
+       .ascii  "\317\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xef4:0x7 DW_TAG_enumerator
+       .long   .Linfo_string39         # DW_AT_name
+       .ascii  "\320\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xefb:0x7 DW_TAG_enumerator
+       .long   .Linfo_string40         # DW_AT_name
+       .ascii  "\321\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf02:0x7 DW_TAG_enumerator
+       .long   .Linfo_string41         # DW_AT_name
+       .ascii  "\322\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf09:0x7 DW_TAG_enumerator
+       .long   .Linfo_string42         # DW_AT_name
+       .ascii  "\323\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf10:0x7 DW_TAG_enumerator
+       .long   .Linfo_string43         # DW_AT_name
+       .ascii  "\324\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf17:0x7 DW_TAG_enumerator
+       .long   .Linfo_string44         # DW_AT_name
+       .ascii  "\325\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf1e:0x7 DW_TAG_enumerator
+       .long   .Linfo_string45         # DW_AT_name
+       .ascii  "\326\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf25:0x7 DW_TAG_enumerator
+       .long   .Linfo_string46         # DW_AT_name
+       .ascii  "\327\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf2c:0x7 DW_TAG_enumerator
+       .long   .Linfo_string47         # DW_AT_name
+       .ascii  "\330\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf33:0x7 DW_TAG_enumerator
+       .long   .Linfo_string48         # DW_AT_name
+       .ascii  "\331\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf3a:0x7 DW_TAG_enumerator
+       .long   .Linfo_string49         # DW_AT_name
+       .ascii  "\332\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf41:0x7 DW_TAG_enumerator
+       .long   .Linfo_string50         # DW_AT_name
+       .ascii  "\333\001"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf48:0x7 DW_TAG_enumerator
+       .long   .Linfo_string51         # DW_AT_name
+       .ascii  "\254\002"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf4f:0x7 DW_TAG_enumerator
+       .long   .Linfo_string52         # DW_AT_name
+       .ascii  "\255\002"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf56:0x7 DW_TAG_enumerator
+       .long   .Linfo_string53         # DW_AT_name
+       .ascii  "\256\002"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf5d:0x7 DW_TAG_enumerator
+       .long   .Linfo_string54         # DW_AT_name
+       .ascii  "\257\002"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf64:0x7 DW_TAG_enumerator
+       .long   .Linfo_string55         # DW_AT_name
+       .ascii  "\260\002"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf6b:0x7 DW_TAG_enumerator
+       .long   .Linfo_string56         # DW_AT_name
+       .ascii  "\261\002"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf72:0x7 DW_TAG_enumerator
+       .long   .Linfo_string57         # DW_AT_name
+       .ascii  "\220\003"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf79:0x7 DW_TAG_enumerator
+       .long   .Linfo_string58         # DW_AT_name
+       .ascii  "\364\003"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf80:0x7 DW_TAG_enumerator
+       .long   .Linfo_string59         # DW_AT_name
+       .ascii  "\274\005"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf87:0x7 DW_TAG_enumerator
+       .long   .Linfo_string60         # DW_AT_name
+       .ascii  "\275\005"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf8e:0x7 DW_TAG_enumerator
+       .long   .Linfo_string61         # DW_AT_name
+       .ascii  "\351\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf95:0x7 DW_TAG_enumerator
+       .long   .Linfo_string62         # DW_AT_name
+       .ascii  "\352\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xf9c:0x7 DW_TAG_enumerator
+       .long   .Linfo_string63         # DW_AT_name
+       .ascii  "\353\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xfa3:0x7 DW_TAG_enumerator
+       .long   .Linfo_string64         # DW_AT_name
+       .ascii  "\354\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xfaa:0x7 DW_TAG_enumerator
+       .long   .Linfo_string65         # DW_AT_name
+       .ascii  "\355\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xfb1:0x7 DW_TAG_enumerator
+       .long   .Linfo_string66         # DW_AT_name
+       .ascii  "\356\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xfb8:0x7 DW_TAG_enumerator
+       .long   .Linfo_string67         # DW_AT_name
+       .ascii  "\357\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xfbf:0x7 DW_TAG_enumerator
+       .long   .Linfo_string68         # DW_AT_name
+       .ascii  "\360\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xfc6:0x7 DW_TAG_enumerator
+       .long   .Linfo_string69         # DW_AT_name
+       .ascii  "\361\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xfcd:0x7 DW_TAG_enumerator
+       .long   .Linfo_string70         # DW_AT_name
+       .ascii  "\362\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xfd4:0x7 DW_TAG_enumerator
+       .long   .Linfo_string71         # DW_AT_name
+       .ascii  "\363\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xfdb:0x7 DW_TAG_enumerator
+       .long   .Linfo_string72         # DW_AT_name
+       .ascii  "\371\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xfe2:0x7 DW_TAG_enumerator
+       .long   .Linfo_string73         # DW_AT_name
+       .ascii  "\375\007"              # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xfe9:0x7 DW_TAG_enumerator
+       .long   .Linfo_string74         # DW_AT_name
+       .ascii  "\206\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xff0:0x7 DW_TAG_enumerator
+       .long   .Linfo_string75         # DW_AT_name
+       .ascii  "\211\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xff7:0x7 DW_TAG_enumerator
+       .long   .Linfo_string76         # DW_AT_name
+       .ascii  "\212\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0xffe:0x7 DW_TAG_enumerator
+       .long   .Linfo_string77         # DW_AT_name
+       .ascii  "\216\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x1005:0x7 DW_TAG_enumerator
+       .long   .Linfo_string78         # DW_AT_name
+       .ascii  "\232\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x100c:0x7 DW_TAG_enumerator
+       .long   .Linfo_string79         # DW_AT_name
+       .ascii  "\233\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x1013:0x7 DW_TAG_enumerator
+       .long   .Linfo_string80         # DW_AT_name
+       .ascii  "\234\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x101a:0x7 DW_TAG_enumerator
+       .long   .Linfo_string81         # DW_AT_name
+       .ascii  "\235\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x1021:0x7 DW_TAG_enumerator
+       .long   .Linfo_string82         # DW_AT_name
+       .ascii  "\245\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x1028:0x7 DW_TAG_enumerator
+       .long   .Linfo_string83         # DW_AT_name
+       .ascii  "\246\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x102f:0x7 DW_TAG_enumerator
+       .long   .Linfo_string84         # DW_AT_name
+       .ascii  "\257\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x1036:0x7 DW_TAG_enumerator
+       .long   .Linfo_string85         # DW_AT_name
+       .ascii  "\271\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x103d:0x7 DW_TAG_enumerator
+       .long   .Linfo_string86         # DW_AT_name
+       .ascii  "\272\b"                # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x1044:0x7 DW_TAG_enumerator
+       .long   .Linfo_string87         # DW_AT_name
+       .ascii  "\273\b"                # DW_AT_const_value
+       .byte   0                       # End Of Children Mark
+       .byte   31                      # Abbrev [31] 0x104c:0x2b DW_TAG_enumeration_type
+       .long   3493                    # DW_AT_type
+       .long   .Linfo_string94         # DW_AT_name
+       .byte   4                       # DW_AT_byte_size
+       .byte   9                       # DW_AT_decl_file
+       .byte   224                     # DW_AT_decl_line
+       .byte   32                      # Abbrev [32] 0x1058:0x6 DW_TAG_enumerator
+       .long   .Linfo_string89         # DW_AT_name
+       .byte   0                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x105e:0x6 DW_TAG_enumerator
+       .long   .Linfo_string90         # DW_AT_name
+       .byte   1                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x1064:0x6 DW_TAG_enumerator
+       .long   .Linfo_string91         # DW_AT_name
+       .byte   2                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x106a:0x6 DW_TAG_enumerator
+       .long   .Linfo_string92         # DW_AT_name
+       .byte   3                       # DW_AT_const_value
+       .byte   32                      # Abbrev [32] 0x1070:0x6 DW_TAG_enumerator
+       .long   .Linfo_string93         # DW_AT_name
+       .byte   4                       # DW_AT_const_value
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x1077:0x5 DW_TAG_pointer_type
+       .long   3471                    # DW_AT_type
+       .byte   34                      # Abbrev [34] 0x107c:0x1 DW_TAG_pointer_type
+       .byte   26                      # Abbrev [26] 0x107d:0x5 DW_TAG_pointer_type
+       .long   4226                    # DW_AT_type
+       .byte   35                      # Abbrev [35] 0x1082:0x1 DW_TAG_const_type
+       .byte   26                      # Abbrev [26] 0x1083:0x5 DW_TAG_pointer_type
+       .long   4220                    # DW_AT_type
+       .byte   21                      # Abbrev [21] 0x1088:0xb DW_TAG_typedef
+       .long   4243                    # DW_AT_type
+       .long   .Linfo_string101        # DW_AT_name
+       .byte   11                      # DW_AT_decl_file
+       .byte   6                       # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1093:0xb DW_TAG_typedef
+       .long   4254                    # DW_AT_type
+       .long   .Linfo_string100        # DW_AT_name
+       .byte   10                      # DW_AT_decl_file
+       .byte   21                      # DW_AT_decl_line
+       .byte   36                      # Abbrev [36] 0x109e:0x3c DW_TAG_structure_type
+       .byte   5                       # DW_AT_calling_convention
+       .byte   8                       # DW_AT_byte_size
+       .byte   10                      # DW_AT_decl_file
+       .byte   13                      # DW_AT_decl_line
+       .byte   12                      # Abbrev [12] 0x10a3:0xc DW_TAG_member
+       .long   .Linfo_string95         # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   10                      # DW_AT_decl_file
+       .byte   15                      # DW_AT_decl_line
+       .byte   0                       # DW_AT_data_member_location
+       .byte   12                      # Abbrev [12] 0x10af:0xc DW_TAG_member
+       .long   .Linfo_string96         # DW_AT_name
+       .long   4283                    # DW_AT_type
+       .byte   10                      # DW_AT_decl_file
+       .byte   20                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_data_member_location
+       .byte   37                      # Abbrev [37] 0x10bb:0x1e DW_TAG_union_type
+       .byte   5                       # DW_AT_calling_convention
+       .byte   4                       # DW_AT_byte_size
+       .byte   10                      # DW_AT_decl_file
+       .byte   16                      # DW_AT_decl_line
+       .byte   12                      # Abbrev [12] 0x10c0:0xc DW_TAG_member
+       .long   .Linfo_string97         # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   10                      # DW_AT_decl_file
+       .byte   18                      # DW_AT_decl_line
+       .byte   0                       # DW_AT_data_member_location
+       .byte   12                      # Abbrev [12] 0x10cc:0xc DW_TAG_member
+       .long   .Linfo_string98         # DW_AT_name
+       .long   4314                    # DW_AT_type
+       .byte   10                      # DW_AT_decl_file
+       .byte   19                      # DW_AT_decl_line
+       .byte   0                       # DW_AT_data_member_location
+       .byte   0                       # End Of Children Mark
+       .byte   0                       # End Of Children Mark
+       .byte   28                      # Abbrev [28] 0x10da:0xc DW_TAG_array_type
+       .long   4326                    # DW_AT_type
+       .byte   38                      # Abbrev [38] 0x10df:0x6 DW_TAG_subrange_type
+       .long   3500                    # DW_AT_type
+       .byte   4                       # DW_AT_count
+       .byte   0                       # End Of Children Mark
+       .byte   25                      # Abbrev [25] 0x10e6:0x7 DW_TAG_base_type
+       .long   .Linfo_string99         # DW_AT_name
+       .byte   6                       # DW_AT_encoding
+       .byte   1                       # DW_AT_byte_size
+       .byte   21                      # Abbrev [21] 0x10ed:0xb DW_TAG_typedef
+       .long   3493                    # DW_AT_type
+       .long   .Linfo_string102        # DW_AT_name
+       .byte   13                      # DW_AT_decl_file
+       .byte   20                      # DW_AT_decl_line
+       .byte   39                      # Abbrev [39] 0x10f8:0x12 DW_TAG_subprogram
+       .long   .Linfo_string103        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  318                     # DW_AT_decl_line
+       .long   4333                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1104:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x110a:0x12 DW_TAG_subprogram
+       .long   .Linfo_string104        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  727                     # DW_AT_decl_line
+       .long   4333                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1116:0x5 DW_TAG_formal_parameter
+       .long   4380                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x111c:0x5 DW_TAG_pointer_type
+       .long   4385                    # DW_AT_type
+       .byte   21                      # Abbrev [21] 0x1121:0xb DW_TAG_typedef
+       .long   4396                    # DW_AT_type
+       .long   .Linfo_string144        # DW_AT_name
+       .byte   17                      # DW_AT_decl_file
+       .byte   5                       # DW_AT_decl_line
+       .byte   40                      # Abbrev [40] 0x112c:0x17d DW_TAG_structure_type
+       .byte   5                       # DW_AT_calling_convention
+       .long   .Linfo_string143        # DW_AT_name
+       .byte   216                     # DW_AT_byte_size
+       .byte   15                      # DW_AT_decl_file
+       .byte   245                     # DW_AT_decl_line
+       .byte   12                      # Abbrev [12] 0x1135:0xc DW_TAG_member
+       .long   .Linfo_string105        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .byte   246                     # DW_AT_decl_line
+       .byte   0                       # DW_AT_data_member_location
+       .byte   12                      # Abbrev [12] 0x1141:0xc DW_TAG_member
+       .long   .Linfo_string106        # DW_AT_name
+       .long   4777                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .byte   251                     # DW_AT_decl_line
+       .byte   8                       # DW_AT_data_member_location
+       .byte   12                      # Abbrev [12] 0x114d:0xc DW_TAG_member
+       .long   .Linfo_string107        # DW_AT_name
+       .long   4777                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .byte   252                     # DW_AT_decl_line
+       .byte   16                      # DW_AT_data_member_location
+       .byte   12                      # Abbrev [12] 0x1159:0xc DW_TAG_member
+       .long   .Linfo_string108        # DW_AT_name
+       .long   4777                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .byte   253                     # DW_AT_decl_line
+       .byte   24                      # DW_AT_data_member_location
+       .byte   12                      # Abbrev [12] 0x1165:0xc DW_TAG_member
+       .long   .Linfo_string109        # DW_AT_name
+       .long   4777                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .byte   254                     # DW_AT_decl_line
+       .byte   32                      # DW_AT_data_member_location
+       .byte   12                      # Abbrev [12] 0x1171:0xc DW_TAG_member
+       .long   .Linfo_string110        # DW_AT_name
+       .long   4777                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .byte   255                     # DW_AT_decl_line
+       .byte   40                      # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x117d:0xd DW_TAG_member
+       .long   .Linfo_string111        # DW_AT_name
+       .long   4777                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  256                     # DW_AT_decl_line
+       .byte   48                      # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x118a:0xd DW_TAG_member
+       .long   .Linfo_string112        # DW_AT_name
+       .long   4777                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  257                     # DW_AT_decl_line
+       .byte   56                      # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x1197:0xd DW_TAG_member
+       .long   .Linfo_string113        # DW_AT_name
+       .long   4777                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  258                     # DW_AT_decl_line
+       .byte   64                      # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x11a4:0xd DW_TAG_member
+       .long   .Linfo_string114        # DW_AT_name
+       .long   4777                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  260                     # DW_AT_decl_line
+       .byte   72                      # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x11b1:0xd DW_TAG_member
+       .long   .Linfo_string115        # DW_AT_name
+       .long   4777                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  261                     # DW_AT_decl_line
+       .byte   80                      # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x11be:0xd DW_TAG_member
+       .long   .Linfo_string116        # DW_AT_name
+       .long   4777                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  262                     # DW_AT_decl_line
+       .byte   88                      # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x11cb:0xd DW_TAG_member
+       .long   .Linfo_string117        # DW_AT_name
+       .long   4782                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  264                     # DW_AT_decl_line
+       .byte   96                      # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x11d8:0xd DW_TAG_member
+       .long   .Linfo_string119        # DW_AT_name
+       .long   4792                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  266                     # DW_AT_decl_line
+       .byte   104                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x11e5:0xd DW_TAG_member
+       .long   .Linfo_string120        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  268                     # DW_AT_decl_line
+       .byte   112                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x11f2:0xd DW_TAG_member
+       .long   .Linfo_string121        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  272                     # DW_AT_decl_line
+       .byte   116                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x11ff:0xd DW_TAG_member
+       .long   .Linfo_string122        # DW_AT_name
+       .long   4797                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  274                     # DW_AT_decl_line
+       .byte   120                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x120c:0xd DW_TAG_member
+       .long   .Linfo_string125        # DW_AT_name
+       .long   4815                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  278                     # DW_AT_decl_line
+       .byte   128                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x1219:0xd DW_TAG_member
+       .long   .Linfo_string127        # DW_AT_name
+       .long   4822                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  279                     # DW_AT_decl_line
+       .byte   130                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x1226:0xd DW_TAG_member
+       .long   .Linfo_string129        # DW_AT_name
+       .long   4829                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  280                     # DW_AT_decl_line
+       .byte   131                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x1233:0xd DW_TAG_member
+       .long   .Linfo_string130        # DW_AT_name
+       .long   4841                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  284                     # DW_AT_decl_line
+       .byte   136                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x1240:0xd DW_TAG_member
+       .long   .Linfo_string132        # DW_AT_name
+       .long   4853                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  293                     # DW_AT_decl_line
+       .byte   144                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x124d:0xd DW_TAG_member
+       .long   .Linfo_string134        # DW_AT_name
+       .long   4220                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  301                     # DW_AT_decl_line
+       .byte   152                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x125a:0xd DW_TAG_member
+       .long   .Linfo_string135        # DW_AT_name
+       .long   4220                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  302                     # DW_AT_decl_line
+       .byte   160                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x1267:0xd DW_TAG_member
+       .long   .Linfo_string136        # DW_AT_name
+       .long   4220                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  303                     # DW_AT_decl_line
+       .byte   168                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x1274:0xd DW_TAG_member
+       .long   .Linfo_string137        # DW_AT_name
+       .long   4220                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  304                     # DW_AT_decl_line
+       .byte   176                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x1281:0xd DW_TAG_member
+       .long   .Linfo_string138        # DW_AT_name
+       .long   4864                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  306                     # DW_AT_decl_line
+       .byte   184                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x128e:0xd DW_TAG_member
+       .long   .Linfo_string141        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  307                     # DW_AT_decl_line
+       .byte   192                     # DW_AT_data_member_location
+       .byte   41                      # Abbrev [41] 0x129b:0xd DW_TAG_member
+       .long   .Linfo_string142        # DW_AT_name
+       .long   4882                    # DW_AT_type
+       .byte   15                      # DW_AT_decl_file
+       .short  309                     # DW_AT_decl_line
+       .byte   196                     # DW_AT_data_member_location
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x12a9:0x5 DW_TAG_pointer_type
+       .long   4326                    # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x12ae:0x5 DW_TAG_pointer_type
+       .long   4787                    # DW_AT_type
+       .byte   42                      # Abbrev [42] 0x12b3:0x5 DW_TAG_structure_type
+       .long   .Linfo_string118        # DW_AT_name
+                                        # DW_AT_declaration
+       .byte   26                      # Abbrev [26] 0x12b8:0x5 DW_TAG_pointer_type
+       .long   4396                    # DW_AT_type
+       .byte   21                      # Abbrev [21] 0x12bd:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string124        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   140                     # DW_AT_decl_line
+       .byte   25                      # Abbrev [25] 0x12c8:0x7 DW_TAG_base_type
+       .long   .Linfo_string123        # DW_AT_name
+       .byte   5                       # DW_AT_encoding
+       .byte   8                       # DW_AT_byte_size
+       .byte   25                      # Abbrev [25] 0x12cf:0x7 DW_TAG_base_type
+       .long   .Linfo_string126        # DW_AT_name
+       .byte   7                       # DW_AT_encoding
+       .byte   2                       # DW_AT_byte_size
+       .byte   25                      # Abbrev [25] 0x12d6:0x7 DW_TAG_base_type
+       .long   .Linfo_string128        # DW_AT_name
+       .byte   6                       # DW_AT_encoding
+       .byte   1                       # DW_AT_byte_size
+       .byte   28                      # Abbrev [28] 0x12dd:0xc DW_TAG_array_type
+       .long   4326                    # DW_AT_type
+       .byte   38                      # Abbrev [38] 0x12e2:0x6 DW_TAG_subrange_type
+       .long   3500                    # DW_AT_type
+       .byte   1                       # DW_AT_count
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x12e9:0x5 DW_TAG_pointer_type
+       .long   4846                    # DW_AT_type
+       .byte   43                      # Abbrev [43] 0x12ee:0x7 DW_TAG_typedef
+       .long   .Linfo_string131        # DW_AT_name
+       .byte   15                      # DW_AT_decl_file
+       .byte   154                     # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x12f5:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string133        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   141                     # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1300:0xb DW_TAG_typedef
+       .long   4875                    # DW_AT_type
+       .long   .Linfo_string140        # DW_AT_name
+       .byte   16                      # DW_AT_decl_file
+       .byte   46                      # DW_AT_decl_line
+       .byte   25                      # Abbrev [25] 0x130b:0x7 DW_TAG_base_type
+       .long   .Linfo_string139        # DW_AT_name
+       .byte   7                       # DW_AT_encoding
+       .byte   8                       # DW_AT_byte_size
+       .byte   28                      # Abbrev [28] 0x1312:0xc DW_TAG_array_type
+       .long   4326                    # DW_AT_type
+       .byte   38                      # Abbrev [38] 0x1317:0x6 DW_TAG_subrange_type
+       .long   3500                    # DW_AT_type
+       .byte   20                      # DW_AT_count
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x131e:0x1c DW_TAG_subprogram
+       .long   .Linfo_string145        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  756                     # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x132a:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x132f:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1334:0x5 DW_TAG_formal_parameter
+       .long   4939                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x133a:0x5 DW_TAG_pointer_type
+       .long   4927                    # DW_AT_type
+       .byte   25                      # Abbrev [25] 0x133f:0x7 DW_TAG_base_type
+       .long   .Linfo_string146        # DW_AT_name
+       .byte   5                       # DW_AT_encoding
+       .byte   4                       # DW_AT_byte_size
+       .byte   44                      # Abbrev [44] 0x1346:0x5 DW_TAG_restrict_type
+       .long   4922                    # DW_AT_type
+       .byte   44                      # Abbrev [44] 0x134b:0x5 DW_TAG_restrict_type
+       .long   4380                    # DW_AT_type
+       .byte   39                      # Abbrev [39] 0x1350:0x17 DW_TAG_subprogram
+       .long   .Linfo_string147        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  741                     # DW_AT_decl_line
+       .long   4333                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x135c:0x5 DW_TAG_formal_parameter
+       .long   4927                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1361:0x5 DW_TAG_formal_parameter
+       .long   4380                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1367:0x17 DW_TAG_subprogram
+       .long   .Linfo_string148        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  763                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1373:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1378:0x5 DW_TAG_formal_parameter
+       .long   4939                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   44                      # Abbrev [44] 0x137e:0x5 DW_TAG_restrict_type
+       .long   4995                    # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x1383:0x5 DW_TAG_pointer_type
+       .long   5000                    # DW_AT_type
+       .byte   45                      # Abbrev [45] 0x1388:0x5 DW_TAG_const_type
+       .long   4927                    # DW_AT_type
+       .byte   39                      # Abbrev [39] 0x138d:0x17 DW_TAG_subprogram
+       .long   .Linfo_string149        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  573                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1399:0x5 DW_TAG_formal_parameter
+       .long   4380                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x139e:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x13a4:0x18 DW_TAG_subprogram
+       .long   .Linfo_string150        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  580                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x13b0:0x5 DW_TAG_formal_parameter
+       .long   4939                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x13b5:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x13ba:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x13bc:0x18 DW_TAG_subprogram
+       .long   .Linfo_string151        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  621                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x13c8:0x5 DW_TAG_formal_parameter
+       .long   4939                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x13cd:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x13d2:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x13d4:0x12 DW_TAG_subprogram
+       .long   .Linfo_string152        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  728                     # DW_AT_decl_line
+       .long   4333                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x13e0:0x5 DW_TAG_formal_parameter
+       .long   4380                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   47                      # Abbrev [47] 0x13e6:0xc DW_TAG_subprogram
+       .long   .Linfo_string153        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  734                     # DW_AT_decl_line
+       .long   4333                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   39                      # Abbrev [39] 0x13f2:0x1c DW_TAG_subprogram
+       .long   .Linfo_string154        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  329                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x13fe:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1403:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1408:0x5 DW_TAG_formal_parameter
+       .long   5149                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   44                      # Abbrev [44] 0x140e:0x5 DW_TAG_restrict_type
+       .long   5139                    # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x1413:0x5 DW_TAG_pointer_type
+       .long   5144                    # DW_AT_type
+       .byte   45                      # Abbrev [45] 0x1418:0x5 DW_TAG_const_type
+       .long   4326                    # DW_AT_type
+       .byte   44                      # Abbrev [44] 0x141d:0x5 DW_TAG_restrict_type
+       .long   5154                    # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x1422:0x5 DW_TAG_pointer_type
+       .long   4232                    # DW_AT_type
+       .byte   39                      # Abbrev [39] 0x1427:0x21 DW_TAG_subprogram
+       .long   .Linfo_string155        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  296                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1433:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1438:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x143d:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1442:0x5 DW_TAG_formal_parameter
+       .long   5149                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1448:0x12 DW_TAG_subprogram
+       .long   .Linfo_string156        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  292                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1454:0x5 DW_TAG_formal_parameter
+       .long   5210                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x145a:0x5 DW_TAG_pointer_type
+       .long   5215                    # DW_AT_type
+       .byte   45                      # Abbrev [45] 0x145f:0x5 DW_TAG_const_type
+       .long   4232                    # DW_AT_type
+       .byte   39                      # Abbrev [39] 0x1464:0x21 DW_TAG_subprogram
+       .long   .Linfo_string157        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  337                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1470:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1475:0x5 DW_TAG_formal_parameter
+       .long   5253                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x147a:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x147f:0x5 DW_TAG_formal_parameter
+       .long   5149                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   44                      # Abbrev [44] 0x1485:0x5 DW_TAG_restrict_type
+       .long   5258                    # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x148a:0x5 DW_TAG_pointer_type
+       .long   5139                    # DW_AT_type
+       .byte   39                      # Abbrev [39] 0x148f:0x17 DW_TAG_subprogram
+       .long   .Linfo_string158        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  742                     # DW_AT_decl_line
+       .long   4333                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x149b:0x5 DW_TAG_formal_parameter
+       .long   4927                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x14a0:0x5 DW_TAG_formal_parameter
+       .long   4380                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x14a6:0x12 DW_TAG_subprogram
+       .long   .Linfo_string159        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  748                     # DW_AT_decl_line
+       .long   4333                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x14b2:0x5 DW_TAG_formal_parameter
+       .long   4927                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x14b8:0x1d DW_TAG_subprogram
+       .long   .Linfo_string160        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  590                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x14c4:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x14c9:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x14ce:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x14d3:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x14d5:0x18 DW_TAG_subprogram
+       .long   .Linfo_string161        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  631                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x14e1:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x14e6:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x14eb:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x14ed:0x17 DW_TAG_subprogram
+       .long   .Linfo_string162        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  771                     # DW_AT_decl_line
+       .long   4333                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x14f9:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x14fe:0x5 DW_TAG_formal_parameter
+       .long   4380                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1504:0x1c DW_TAG_subprogram
+       .long   .Linfo_string163        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  598                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1510:0x5 DW_TAG_formal_parameter
+       .long   4939                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1515:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x151a:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x1520:0x5 DW_TAG_pointer_type
+       .long   5413                    # DW_AT_type
+       .byte   48                      # Abbrev [48] 0x1525:0x30 DW_TAG_structure_type
+       .byte   5                       # DW_AT_calling_convention
+       .long   .Linfo_string168        # DW_AT_name
+       .byte   24                      # DW_AT_byte_size
+       .byte   49                      # Abbrev [49] 0x152c:0xa DW_TAG_member
+       .long   .Linfo_string164        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   0                       # DW_AT_data_member_location
+       .byte   49                      # Abbrev [49] 0x1536:0xa DW_TAG_member
+       .long   .Linfo_string165        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   4                       # DW_AT_data_member_location
+       .byte   49                      # Abbrev [49] 0x1540:0xa DW_TAG_member
+       .long   .Linfo_string166        # DW_AT_name
+       .long   4220                    # DW_AT_type
+       .byte   8                       # DW_AT_data_member_location
+       .byte   49                      # Abbrev [49] 0x154a:0xa DW_TAG_member
+       .long   .Linfo_string167        # DW_AT_name
+       .long   4220                    # DW_AT_type
+       .byte   16                      # DW_AT_data_member_location
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1555:0x1c DW_TAG_subprogram
+       .long   .Linfo_string169        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  673                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1561:0x5 DW_TAG_formal_parameter
+       .long   4939                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1566:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x156b:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1571:0x21 DW_TAG_subprogram
+       .long   .Linfo_string170        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  611                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x157d:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1582:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1587:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x158c:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1592:0x1c DW_TAG_subprogram
+       .long   .Linfo_string171        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  685                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x159e:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x15a3:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x15a8:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x15ae:0x17 DW_TAG_subprogram
+       .long   .Linfo_string172        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  606                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x15ba:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x15bf:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x15c5:0x17 DW_TAG_subprogram
+       .long   .Linfo_string173        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  681                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x15d1:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x15d6:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x15dc:0x1c DW_TAG_subprogram
+       .long   .Linfo_string174        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  301                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x15e8:0x5 DW_TAG_formal_parameter
+       .long   5624                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x15ed:0x5 DW_TAG_formal_parameter
+       .long   4927                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x15f2:0x5 DW_TAG_formal_parameter
+       .long   5149                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   44                      # Abbrev [44] 0x15f8:0x5 DW_TAG_restrict_type
+       .long   4777                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x15fd:0x16 DW_TAG_subprogram
+       .long   .Linfo_string175        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   97                      # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1608:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x160d:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1613:0x16 DW_TAG_subprogram
+       .long   .Linfo_string176        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   106                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x161e:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1623:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1629:0x16 DW_TAG_subprogram
+       .long   .Linfo_string177        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   131                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1634:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1639:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x163f:0x16 DW_TAG_subprogram
+       .long   .Linfo_string178        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   87                      # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x164a:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x164f:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1655:0x16 DW_TAG_subprogram
+       .long   .Linfo_string179        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   187                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1660:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1665:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x166b:0x21 DW_TAG_subprogram
+       .long   .Linfo_string180        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  835                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1677:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x167c:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1681:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1686:0x5 DW_TAG_formal_parameter
+       .long   5772                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   44                      # Abbrev [44] 0x168c:0x5 DW_TAG_restrict_type
+       .long   5777                    # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x1691:0x5 DW_TAG_pointer_type
+       .long   5782                    # DW_AT_type
+       .byte   45                      # Abbrev [45] 0x1696:0x5 DW_TAG_const_type
+       .long   5787                    # DW_AT_type
+       .byte   42                      # Abbrev [42] 0x169b:0x5 DW_TAG_structure_type
+       .long   .Linfo_string181        # DW_AT_name
+                                        # DW_AT_declaration
+       .byte   50                      # Abbrev [50] 0x16a0:0x11 DW_TAG_subprogram
+       .long   .Linfo_string182        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   222                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x16ab:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x16b1:0x1b DW_TAG_subprogram
+       .long   .Linfo_string183        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   101                     # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x16bc:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x16c1:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x16c6:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x16cc:0x1b DW_TAG_subprogram
+       .long   .Linfo_string184        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   109                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x16d7:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x16dc:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x16e1:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x16e7:0x1b DW_TAG_subprogram
+       .long   .Linfo_string185        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   92                      # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x16f2:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x16f7:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x16fc:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1702:0x21 DW_TAG_subprogram
+       .long   .Linfo_string186        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  343                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x170e:0x5 DW_TAG_formal_parameter
+       .long   5624                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1713:0x5 DW_TAG_formal_parameter
+       .long   5923                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1718:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x171d:0x5 DW_TAG_formal_parameter
+       .long   5149                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   44                      # Abbrev [44] 0x1723:0x5 DW_TAG_restrict_type
+       .long   5928                    # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x1728:0x5 DW_TAG_pointer_type
+       .long   4995                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x172d:0x16 DW_TAG_subprogram
+       .long   .Linfo_string187        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   191                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1738:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x173d:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1743:0x17 DW_TAG_subprogram
+       .long   .Linfo_string188        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  377                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x174f:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1754:0x5 DW_TAG_formal_parameter
+       .long   5985                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   25                      # Abbrev [25] 0x175a:0x7 DW_TAG_base_type
+       .long   .Linfo_string189        # DW_AT_name
+       .byte   4                       # DW_AT_encoding
+       .byte   8                       # DW_AT_byte_size
+       .byte   44                      # Abbrev [44] 0x1761:0x5 DW_TAG_restrict_type
+       .long   5990                    # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x1766:0x5 DW_TAG_pointer_type
+       .long   4922                    # DW_AT_type
+       .byte   39                      # Abbrev [39] 0x176b:0x17 DW_TAG_subprogram
+       .long   .Linfo_string190        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  382                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1777:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x177c:0x5 DW_TAG_formal_parameter
+       .long   5985                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   25                      # Abbrev [25] 0x1782:0x7 DW_TAG_base_type
+       .long   .Linfo_string191        # DW_AT_name
+       .byte   4                       # DW_AT_encoding
+       .byte   4                       # DW_AT_byte_size
+       .byte   50                      # Abbrev [50] 0x1789:0x1b DW_TAG_subprogram
+       .long   .Linfo_string192        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   217                     # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1794:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1799:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x179e:0x5 DW_TAG_formal_parameter
+       .long   5985                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x17a4:0x1c DW_TAG_subprogram
+       .long   .Linfo_string193        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  428                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x17b0:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x17b5:0x5 DW_TAG_formal_parameter
+       .long   5985                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x17ba:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x17c0:0x1c DW_TAG_subprogram
+       .long   .Linfo_string194        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  433                     # DW_AT_decl_line
+       .long   4875                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x17cc:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x17d1:0x5 DW_TAG_formal_parameter
+       .long   5985                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x17d6:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x17dc:0x1b DW_TAG_subprogram
+       .long   .Linfo_string195        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   135                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x17e7:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x17ec:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x17f1:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x17f7:0x12 DW_TAG_subprogram
+       .long   .Linfo_string196        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  324                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1803:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1809:0x1c DW_TAG_subprogram
+       .long   .Linfo_string197        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  258                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1815:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x181a:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x181f:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1825:0x1c DW_TAG_subprogram
+       .long   .Linfo_string198        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  262                     # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1831:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1836:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x183b:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1841:0x1c DW_TAG_subprogram
+       .long   .Linfo_string199        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  267                     # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x184d:0x5 DW_TAG_formal_parameter
+       .long   4922                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1852:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1857:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x185d:0x1c DW_TAG_subprogram
+       .long   .Linfo_string200        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  271                     # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1869:0x5 DW_TAG_formal_parameter
+       .long   4922                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x186e:0x5 DW_TAG_formal_parameter
+       .long   4927                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1873:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1879:0x13 DW_TAG_subprogram
+       .long   .Linfo_string201        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  587                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1885:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x188a:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x188c:0x13 DW_TAG_subprogram
+       .long   .Linfo_string202        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  628                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1898:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x189d:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x189f:0x16 DW_TAG_subprogram
+       .long   .Linfo_string203        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   164                     # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x18aa:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x18af:0x5 DW_TAG_formal_parameter
+       .long   4927                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x18b5:0x16 DW_TAG_subprogram
+       .long   .Linfo_string204        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   201                     # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x18c0:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x18c5:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x18cb:0x16 DW_TAG_subprogram
+       .long   .Linfo_string205        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   174                     # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x18d6:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x18db:0x5 DW_TAG_formal_parameter
+       .long   4927                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x18e1:0x16 DW_TAG_subprogram
+       .long   .Linfo_string206        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   212                     # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x18ec:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x18f1:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x18f7:0x1b DW_TAG_subprogram
+       .long   .Linfo_string207        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .byte   253                     # DW_AT_decl_line
+       .long   4922                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1902:0x5 DW_TAG_formal_parameter
+       .long   4995                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1907:0x5 DW_TAG_formal_parameter
+       .long   4927                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x190c:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1912:0x17 DW_TAG_subprogram
+       .long   .Linfo_string208        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  384                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x191e:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1923:0x5 DW_TAG_formal_parameter
+       .long   5985                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   25                      # Abbrev [25] 0x1929:0x7 DW_TAG_base_type
+       .long   .Linfo_string209        # DW_AT_name
+       .byte   4                       # DW_AT_encoding
+       .byte   16                      # DW_AT_byte_size
+       .byte   39                      # Abbrev [39] 0x1930:0x1c DW_TAG_subprogram
+       .long   .Linfo_string210        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  441                     # DW_AT_decl_line
+       .long   6476                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x193c:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1941:0x5 DW_TAG_formal_parameter
+       .long   5985                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1946:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   25                      # Abbrev [25] 0x194c:0x7 DW_TAG_base_type
+       .long   .Linfo_string211        # DW_AT_name
+       .byte   5                       # DW_AT_encoding
+       .byte   8                       # DW_AT_byte_size
+       .byte   39                      # Abbrev [39] 0x1953:0x1c DW_TAG_subprogram
+       .long   .Linfo_string212        # DW_AT_name
+       .byte   14                      # DW_AT_decl_file
+       .short  448                     # DW_AT_decl_line
+       .long   6511                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x195f:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1964:0x5 DW_TAG_formal_parameter
+       .long   5985                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1969:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   25                      # Abbrev [25] 0x196f:0x7 DW_TAG_base_type
+       .long   .Linfo_string213        # DW_AT_name
+       .byte   7                       # DW_AT_encoding
+       .byte   8                       # DW_AT_byte_size
+       .byte   26                      # Abbrev [26] 0x1976:0x5 DW_TAG_pointer_type
+       .long   634                     # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x197b:0x5 DW_TAG_pointer_type
+       .long   6528                    # DW_AT_type
+       .byte   45                      # Abbrev [45] 0x1980:0x5 DW_TAG_const_type
+       .long   634                     # DW_AT_type
+       .byte   51                      # Abbrev [51] 0x1985:0x5 DW_TAG_reference_type
+       .long   6528                    # DW_AT_type
+       .byte   52                      # Abbrev [52] 0x198a:0x5 DW_TAG_unspecified_type
+       .long   .Linfo_string223        # DW_AT_name
+       .byte   53                      # Abbrev [53] 0x198f:0x5 DW_TAG_rvalue_reference_type
+       .long   634                     # DW_AT_type
+       .byte   51                      # Abbrev [51] 0x1994:0x5 DW_TAG_reference_type
+       .long   634                     # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x1999:0x5 DW_TAG_pointer_type
+       .long   6558                    # DW_AT_type
+       .byte   45                      # Abbrev [45] 0x199e:0x5 DW_TAG_const_type
+       .long   954                     # DW_AT_type
+       .byte   2                       # Abbrev [2] 0x19a3:0xd DW_TAG_namespace
+       .long   .Linfo_string238        # DW_AT_name
+       .byte   54                      # Abbrev [54] 0x19a8:0x7 DW_TAG_imported_module
+       .byte   20                      # DW_AT_decl_file
+       .byte   58                      # DW_AT_decl_line
+       .long   983                     # DW_AT_import
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0x19b0:0xb DW_TAG_typedef
+       .long   6587                    # DW_AT_type
+       .long   .Linfo_string241        # DW_AT_name
+       .byte   21                      # DW_AT_decl_file
+       .byte   24                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x19bb:0xb DW_TAG_typedef
+       .long   4822                    # DW_AT_type
+       .long   .Linfo_string240        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   36                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x19c6:0xb DW_TAG_typedef
+       .long   6609                    # DW_AT_type
+       .long   .Linfo_string244        # DW_AT_name
+       .byte   21                      # DW_AT_decl_file
+       .byte   25                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x19d1:0xb DW_TAG_typedef
+       .long   6620                    # DW_AT_type
+       .long   .Linfo_string243        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   38                      # DW_AT_decl_line
+       .byte   25                      # Abbrev [25] 0x19dc:0x7 DW_TAG_base_type
+       .long   .Linfo_string242        # DW_AT_name
+       .byte   5                       # DW_AT_encoding
+       .byte   2                       # DW_AT_byte_size
+       .byte   21                      # Abbrev [21] 0x19e3:0xb DW_TAG_typedef
+       .long   6638                    # DW_AT_type
+       .long   .Linfo_string246        # DW_AT_name
+       .byte   21                      # DW_AT_decl_file
+       .byte   26                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x19ee:0xb DW_TAG_typedef
+       .long   3418                    # DW_AT_type
+       .long   .Linfo_string245        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   40                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x19f9:0xb DW_TAG_typedef
+       .long   6660                    # DW_AT_type
+       .long   .Linfo_string248        # DW_AT_name
+       .byte   21                      # DW_AT_decl_file
+       .byte   27                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a04:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string247        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   43                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a0f:0xb DW_TAG_typedef
+       .long   4822                    # DW_AT_type
+       .long   .Linfo_string249        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   68                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a1a:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string250        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   70                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a25:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string251        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   71                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a30:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string252        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   72                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a3b:0xb DW_TAG_typedef
+       .long   4822                    # DW_AT_type
+       .long   .Linfo_string253        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   43                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a46:0xb DW_TAG_typedef
+       .long   6620                    # DW_AT_type
+       .long   .Linfo_string254        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   44                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a51:0xb DW_TAG_typedef
+       .long   3418                    # DW_AT_type
+       .long   .Linfo_string255        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   45                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a5c:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string256        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   47                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a67:0xb DW_TAG_typedef
+       .long   6770                    # DW_AT_type
+       .long   .Linfo_string258        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   111                     # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a72:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string257        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   61                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a7d:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string259        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   97                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a88:0xb DW_TAG_typedef
+       .long   6803                    # DW_AT_type
+       .long   .Linfo_string262        # DW_AT_name
+       .byte   5                       # DW_AT_decl_file
+       .byte   24                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1a93:0xb DW_TAG_typedef
+       .long   6814                    # DW_AT_type
+       .long   .Linfo_string261        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   37                      # DW_AT_decl_line
+       .byte   25                      # Abbrev [25] 0x1a9e:0x7 DW_TAG_base_type
+       .long   .Linfo_string260        # DW_AT_name
+       .byte   8                       # DW_AT_encoding
+       .byte   1                       # DW_AT_byte_size
+       .byte   21                      # Abbrev [21] 0x1aa5:0xb DW_TAG_typedef
+       .long   6832                    # DW_AT_type
+       .long   .Linfo_string264        # DW_AT_name
+       .byte   5                       # DW_AT_decl_file
+       .byte   25                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1ab0:0xb DW_TAG_typedef
+       .long   4815                    # DW_AT_type
+       .long   .Linfo_string263        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   39                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1abb:0xb DW_TAG_typedef
+       .long   6854                    # DW_AT_type
+       .long   .Linfo_string266        # DW_AT_name
+       .byte   5                       # DW_AT_decl_file
+       .byte   27                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1ac6:0xb DW_TAG_typedef
+       .long   4875                    # DW_AT_type
+       .long   .Linfo_string265        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   44                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1ad1:0xb DW_TAG_typedef
+       .long   6814                    # DW_AT_type
+       .long   .Linfo_string267        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   81                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1adc:0xb DW_TAG_typedef
+       .long   4875                    # DW_AT_type
+       .long   .Linfo_string268        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   83                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1ae7:0xb DW_TAG_typedef
+       .long   4875                    # DW_AT_type
+       .long   .Linfo_string269        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   84                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1af2:0xb DW_TAG_typedef
+       .long   4875                    # DW_AT_type
+       .long   .Linfo_string270        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   85                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1afd:0xb DW_TAG_typedef
+       .long   6814                    # DW_AT_type
+       .long   .Linfo_string271        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   54                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1b08:0xb DW_TAG_typedef
+       .long   4815                    # DW_AT_type
+       .long   .Linfo_string272        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   55                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1b13:0xb DW_TAG_typedef
+       .long   3493                    # DW_AT_type
+       .long   .Linfo_string273        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   56                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1b1e:0xb DW_TAG_typedef
+       .long   4875                    # DW_AT_type
+       .long   .Linfo_string274        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   58                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1b29:0xb DW_TAG_typedef
+       .long   6964                    # DW_AT_type
+       .long   .Linfo_string276        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   112                     # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1b34:0xb DW_TAG_typedef
+       .long   4875                    # DW_AT_type
+       .long   .Linfo_string275        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   62                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x1b3f:0xb DW_TAG_typedef
+       .long   4875                    # DW_AT_type
+       .long   .Linfo_string277        # DW_AT_name
+       .byte   23                      # DW_AT_decl_file
+       .byte   100                     # DW_AT_decl_line
+       .byte   42                      # Abbrev [42] 0x1b4a:0x5 DW_TAG_structure_type
+       .long   .Linfo_string278        # DW_AT_name
+                                        # DW_AT_declaration
+       .byte   50                      # Abbrev [50] 0x1b4f:0x16 DW_TAG_subprogram
+       .long   .Linfo_string279        # DW_AT_name
+       .byte   25                      # DW_AT_decl_file
+       .byte   122                     # DW_AT_decl_line
+       .long   4777                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1b5a:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1b5f:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   55                      # Abbrev [55] 0x1b65:0xb DW_TAG_subprogram
+       .long   .Linfo_string280        # DW_AT_name
+       .byte   25                      # DW_AT_decl_file
+       .byte   125                     # DW_AT_decl_line
+       .long   7024                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   26                      # Abbrev [26] 0x1b70:0x5 DW_TAG_pointer_type
+       .long   6986                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x1b75:0x11 DW_TAG_subprogram
+       .long   .Linfo_string281        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   108                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1b80:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1b86:0x11 DW_TAG_subprogram
+       .long   .Linfo_string282        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   109                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1b91:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1b97:0x11 DW_TAG_subprogram
+       .long   .Linfo_string283        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   110                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1ba2:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1ba8:0x11 DW_TAG_subprogram
+       .long   .Linfo_string284        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   111                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1bb3:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1bb9:0x11 DW_TAG_subprogram
+       .long   .Linfo_string285        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   113                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1bc4:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1bca:0x11 DW_TAG_subprogram
+       .long   .Linfo_string286        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   112                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1bd5:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1bdb:0x11 DW_TAG_subprogram
+       .long   .Linfo_string287        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   114                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1be6:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1bec:0x11 DW_TAG_subprogram
+       .long   .Linfo_string288        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   115                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1bf7:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1bfd:0x11 DW_TAG_subprogram
+       .long   .Linfo_string289        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   116                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1c08:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1c0e:0x11 DW_TAG_subprogram
+       .long   .Linfo_string290        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   117                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1c19:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1c1f:0x11 DW_TAG_subprogram
+       .long   .Linfo_string291        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   118                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1c2a:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1c30:0x11 DW_TAG_subprogram
+       .long   .Linfo_string292        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   122                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1c3b:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1c41:0x11 DW_TAG_subprogram
+       .long   .Linfo_string293        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   125                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1c4c:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1c52:0x11 DW_TAG_subprogram
+       .long   .Linfo_string294        # DW_AT_name
+       .byte   26                      # DW_AT_decl_file
+       .byte   130                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1c5d:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1c63:0x12 DW_TAG_subprogram
+       .long   .Linfo_string296        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  837                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1c6f:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0x1c75:0xb DW_TAG_typedef
+       .long   7296                    # DW_AT_type
+       .long   .Linfo_string297        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .byte   62                      # DW_AT_decl_line
+       .byte   56                      # Abbrev [56] 0x1c80:0x1 DW_TAG_structure_type
+                                        # DW_AT_declaration
+       .byte   21                      # Abbrev [21] 0x1c81:0xb DW_TAG_typedef
+       .long   7308                    # DW_AT_type
+       .long   .Linfo_string300        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .byte   70                      # DW_AT_decl_line
+       .byte   36                      # Abbrev [36] 0x1c8c:0x1e DW_TAG_structure_type
+       .byte   5                       # DW_AT_calling_convention
+       .byte   16                      # DW_AT_byte_size
+       .byte   29                      # DW_AT_decl_file
+       .byte   66                      # DW_AT_decl_line
+       .byte   12                      # Abbrev [12] 0x1c91:0xc DW_TAG_member
+       .long   .Linfo_string298        # DW_AT_name
+       .long   4808                    # DW_AT_type
+       .byte   29                      # DW_AT_decl_file
+       .byte   68                      # DW_AT_decl_line
+       .byte   0                       # DW_AT_data_member_location
+       .byte   12                      # Abbrev [12] 0x1c9d:0xc DW_TAG_member
+       .long   .Linfo_string299        # DW_AT_name
+       .long   4808                    # DW_AT_type
+       .byte   29                      # DW_AT_decl_file
+       .byte   69                      # DW_AT_decl_line
+       .byte   8                       # DW_AT_data_member_location
+       .byte   0                       # End Of Children Mark
+       .byte   57                      # Abbrev [57] 0x1caa:0x8 DW_TAG_subprogram
+       .long   .Linfo_string301        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  588                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+                                        # DW_AT_noreturn
+       .byte   39                      # Abbrev [39] 0x1cb2:0x12 DW_TAG_subprogram
+       .long   .Linfo_string302        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  592                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1cbe:0x5 DW_TAG_formal_parameter
+       .long   7364                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x1cc4:0x5 DW_TAG_pointer_type
+       .long   7369                    # DW_AT_type
+       .byte   58                      # Abbrev [58] 0x1cc9:0x1 DW_TAG_subroutine_type
+       .byte   39                      # Abbrev [39] 0x1cca:0x12 DW_TAG_subprogram
+       .long   .Linfo_string303        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  597                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1cd6:0x5 DW_TAG_formal_parameter
+       .long   7364                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1cdc:0x11 DW_TAG_subprogram
+       .long   .Linfo_string304        # DW_AT_name
+       .byte   32                      # DW_AT_decl_file
+       .byte   25                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1ce7:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1ced:0x12 DW_TAG_subprogram
+       .long   .Linfo_string305        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  361                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1cf9:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1cff:0x12 DW_TAG_subprogram
+       .long   .Linfo_string306        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  366                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1d0b:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1d11:0x25 DW_TAG_subprogram
+       .long   .Linfo_string307        # DW_AT_name
+       .byte   33                      # DW_AT_decl_file
+       .byte   20                      # DW_AT_decl_line
+       .long   4220                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1d1c:0x5 DW_TAG_formal_parameter
+       .long   4221                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1d21:0x5 DW_TAG_formal_parameter
+       .long   4221                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1d26:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1d2b:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1d30:0x5 DW_TAG_formal_parameter
+       .long   7478                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   59                      # Abbrev [59] 0x1d36:0xc DW_TAG_typedef
+       .long   7490                    # DW_AT_type
+       .long   .Linfo_string308        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  805                     # DW_AT_decl_line
+       .byte   26                      # Abbrev [26] 0x1d42:0x5 DW_TAG_pointer_type
+       .long   7495                    # DW_AT_type
+       .byte   60                      # Abbrev [60] 0x1d47:0x10 DW_TAG_subroutine_type
+       .long   3418                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1d4c:0x5 DW_TAG_formal_parameter
+       .long   4221                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1d51:0x5 DW_TAG_formal_parameter
+       .long   4221                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1d57:0x17 DW_TAG_subprogram
+       .long   .Linfo_string309        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  541                     # DW_AT_decl_line
+       .long   4220                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1d63:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1d68:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1d6e:0x17 DW_TAG_subprogram
+       .long   .Linfo_string310        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  849                     # DW_AT_decl_line
+       .long   7285                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1d7a:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1d7f:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   61                      # Abbrev [61] 0x1d85:0xe DW_TAG_subprogram
+       .long   .Linfo_string311        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  614                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+                                        # DW_AT_noreturn
+       .byte   14                      # Abbrev [14] 0x1d8d:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   62                      # Abbrev [62] 0x1d93:0xe DW_TAG_subprogram
+       .long   .Linfo_string312        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  563                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1d9b:0x5 DW_TAG_formal_parameter
+       .long   4220                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1da1:0x12 DW_TAG_subprogram
+       .long   .Linfo_string313        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  631                     # DW_AT_decl_line
+       .long   4777                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1dad:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1db3:0x12 DW_TAG_subprogram
+       .long   .Linfo_string314        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  838                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1dbf:0x5 DW_TAG_formal_parameter
+       .long   4808                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1dc5:0x17 DW_TAG_subprogram
+       .long   .Linfo_string315        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  851                     # DW_AT_decl_line
+       .long   7297                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1dd1:0x5 DW_TAG_formal_parameter
+       .long   4808                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1dd6:0x5 DW_TAG_formal_parameter
+       .long   4808                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1ddc:0x12 DW_TAG_subprogram
+       .long   .Linfo_string316        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  539                     # DW_AT_decl_line
+       .long   4220                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1de8:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1dee:0x17 DW_TAG_subprogram
+       .long   .Linfo_string317        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  919                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1dfa:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1dff:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1e05:0x1c DW_TAG_subprogram
+       .long   .Linfo_string318        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  930                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1e11:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1e16:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1e1b:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1e21:0x1c DW_TAG_subprogram
+       .long   .Linfo_string319        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  922                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1e2d:0x5 DW_TAG_formal_parameter
+       .long   4934                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1e32:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1e37:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   62                      # Abbrev [62] 0x1e3d:0x1d DW_TAG_subprogram
+       .long   .Linfo_string320        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  827                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1e45:0x5 DW_TAG_formal_parameter
+       .long   4220                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1e4a:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1e4f:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1e54:0x5 DW_TAG_formal_parameter
+       .long   7478                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   61                      # Abbrev [61] 0x1e5a:0xe DW_TAG_subprogram
+       .long   .Linfo_string321        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  620                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+                                        # DW_AT_noreturn
+       .byte   14                      # Abbrev [14] 0x1e62:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   47                      # Abbrev [47] 0x1e68:0xc DW_TAG_subprogram
+       .long   .Linfo_string322        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  453                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   39                      # Abbrev [39] 0x1e74:0x17 DW_TAG_subprogram
+       .long   .Linfo_string323        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  549                     # DW_AT_decl_line
+       .long   4220                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1e80:0x5 DW_TAG_formal_parameter
+       .long   4220                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1e85:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   62                      # Abbrev [62] 0x1e8b:0xe DW_TAG_subprogram
+       .long   .Linfo_string324        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  455                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1e93:0x5 DW_TAG_formal_parameter
+       .long   3493                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1e99:0x16 DW_TAG_subprogram
+       .long   .Linfo_string325        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .byte   117                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1ea4:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1ea9:0x5 DW_TAG_formal_parameter
+       .long   7855                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   44                      # Abbrev [44] 0x1eaf:0x5 DW_TAG_restrict_type
+       .long   7860                    # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x1eb4:0x5 DW_TAG_pointer_type
+       .long   4777                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x1eb9:0x1b DW_TAG_subprogram
+       .long   .Linfo_string326        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .byte   176                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1ec4:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1ec9:0x5 DW_TAG_formal_parameter
+       .long   7855                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1ece:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1ed4:0x1b DW_TAG_subprogram
+       .long   .Linfo_string327        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .byte   180                     # DW_AT_decl_line
+       .long   4875                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1edf:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1ee4:0x5 DW_TAG_formal_parameter
+       .long   7855                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1ee9:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1eef:0x12 DW_TAG_subprogram
+       .long   .Linfo_string328        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  781                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1efb:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1f01:0x1c DW_TAG_subprogram
+       .long   .Linfo_string329        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  933                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1f0d:0x5 DW_TAG_formal_parameter
+       .long   5624                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1f12:0x5 DW_TAG_formal_parameter
+       .long   4990                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1f17:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1f1d:0x17 DW_TAG_subprogram
+       .long   .Linfo_string330        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  926                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1f29:0x5 DW_TAG_formal_parameter
+       .long   4777                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1f2e:0x5 DW_TAG_formal_parameter
+       .long   4927                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0x1f34:0xb DW_TAG_typedef
+       .long   7999                    # DW_AT_type
+       .long   .Linfo_string331        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .byte   80                      # DW_AT_decl_line
+       .byte   36                      # Abbrev [36] 0x1f3f:0x1e DW_TAG_structure_type
+       .byte   5                       # DW_AT_calling_convention
+       .byte   16                      # DW_AT_byte_size
+       .byte   29                      # DW_AT_decl_file
+       .byte   76                      # DW_AT_decl_line
+       .byte   12                      # Abbrev [12] 0x1f44:0xc DW_TAG_member
+       .long   .Linfo_string298        # DW_AT_name
+       .long   6476                    # DW_AT_type
+       .byte   29                      # DW_AT_decl_file
+       .byte   78                      # DW_AT_decl_line
+       .byte   0                       # DW_AT_data_member_location
+       .byte   12                      # Abbrev [12] 0x1f50:0xc DW_TAG_member
+       .long   .Linfo_string299        # DW_AT_name
+       .long   6476                    # DW_AT_type
+       .byte   29                      # DW_AT_decl_file
+       .byte   79                      # DW_AT_decl_line
+       .byte   8                       # DW_AT_data_member_location
+       .byte   0                       # End Of Children Mark
+       .byte   61                      # Abbrev [61] 0x1f5d:0xe DW_TAG_subprogram
+       .long   .Linfo_string332        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  626                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+                                        # DW_AT_noreturn
+       .byte   14                      # Abbrev [14] 0x1f65:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1f6b:0x12 DW_TAG_subprogram
+       .long   .Linfo_string333        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  841                     # DW_AT_decl_line
+       .long   6476                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1f77:0x5 DW_TAG_formal_parameter
+       .long   6476                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1f7d:0x17 DW_TAG_subprogram
+       .long   .Linfo_string334        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  855                     # DW_AT_decl_line
+       .long   7988                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1f89:0x5 DW_TAG_formal_parameter
+       .long   6476                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1f8e:0x5 DW_TAG_formal_parameter
+       .long   6476                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x1f94:0x12 DW_TAG_subprogram
+       .long   .Linfo_string335        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .short  373                     # DW_AT_decl_line
+       .long   6476                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1fa0:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1fa6:0x1b DW_TAG_subprogram
+       .long   .Linfo_string336        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .byte   200                     # DW_AT_decl_line
+       .long   6476                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1fb1:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1fb6:0x5 DW_TAG_formal_parameter
+       .long   7855                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1fbb:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1fc1:0x1b DW_TAG_subprogram
+       .long   .Linfo_string337        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .byte   205                     # DW_AT_decl_line
+       .long   6511                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1fcc:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1fd1:0x5 DW_TAG_formal_parameter
+       .long   7855                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1fd6:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1fdc:0x16 DW_TAG_subprogram
+       .long   .Linfo_string338        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .byte   123                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1fe7:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x1fec:0x5 DW_TAG_formal_parameter
+       .long   7855                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x1ff2:0x16 DW_TAG_subprogram
+       .long   .Linfo_string339        # DW_AT_name
+       .byte   29                      # DW_AT_decl_file
+       .byte   126                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x1ffd:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2002:0x5 DW_TAG_formal_parameter
+       .long   7855                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0x2008:0xb DW_TAG_typedef
+       .long   4396                    # DW_AT_type
+       .long   .Linfo_string341        # DW_AT_name
+       .byte   34                      # DW_AT_decl_file
+       .byte   7                       # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x2013:0xb DW_TAG_typedef
+       .long   8222                    # DW_AT_type
+       .long   .Linfo_string343        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .byte   78                      # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x201e:0xb DW_TAG_typedef
+       .long   8233                    # DW_AT_type
+       .long   .Linfo_string342        # DW_AT_name
+       .byte   36                      # DW_AT_decl_file
+       .byte   30                      # DW_AT_decl_line
+       .byte   56                      # Abbrev [56] 0x2029:0x1 DW_TAG_structure_type
+                                        # DW_AT_declaration
+       .byte   62                      # Abbrev [62] 0x202a:0xe DW_TAG_subprogram
+       .long   .Linfo_string344        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  757                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2032:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x2038:0x5 DW_TAG_pointer_type
+       .long   8200                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x203d:0x11 DW_TAG_subprogram
+       .long   .Linfo_string345        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .byte   199                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2048:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x204e:0x12 DW_TAG_subprogram
+       .long   .Linfo_string346        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  759                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x205a:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2060:0x12 DW_TAG_subprogram
+       .long   .Linfo_string347        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  761                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x206c:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2072:0x11 DW_TAG_subprogram
+       .long   .Linfo_string348        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .byte   204                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x207d:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2083:0x12 DW_TAG_subprogram
+       .long   .Linfo_string349        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  477                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x208f:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2095:0x17 DW_TAG_subprogram
+       .long   .Linfo_string350        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  731                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x20a1:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x20a6:0x5 DW_TAG_formal_parameter
+       .long   8369                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   44                      # Abbrev [44] 0x20ac:0x5 DW_TAG_restrict_type
+       .long   8248                    # DW_AT_type
+       .byte   44                      # Abbrev [44] 0x20b1:0x5 DW_TAG_restrict_type
+       .long   8374                    # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x20b6:0x5 DW_TAG_pointer_type
+       .long   8211                    # DW_AT_type
+       .byte   39                      # Abbrev [39] 0x20bb:0x1c DW_TAG_subprogram
+       .long   .Linfo_string351        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  564                     # DW_AT_decl_line
+       .long   4777                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x20c7:0x5 DW_TAG_formal_parameter
+       .long   5624                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x20cc:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x20d1:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x20d7:0x16 DW_TAG_subprogram
+       .long   .Linfo_string352        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .byte   232                     # DW_AT_decl_line
+       .long   8248                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x20e2:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x20e7:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x20ed:0x18 DW_TAG_subprogram
+       .long   .Linfo_string353        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  312                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x20f9:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x20fe:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x2103:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2105:0x17 DW_TAG_subprogram
+       .long   .Linfo_string354        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  517                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2111:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2116:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x211c:0x17 DW_TAG_subprogram
+       .long   .Linfo_string355        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  626                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2128:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x212d:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2133:0x21 DW_TAG_subprogram
+       .long   .Linfo_string356        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  646                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x213f:0x5 DW_TAG_formal_parameter
+       .long   8532                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2144:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2149:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x214e:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   44                      # Abbrev [44] 0x2154:0x5 DW_TAG_restrict_type
+       .long   4220                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x2159:0x1b DW_TAG_subprogram
+       .long   .Linfo_string357        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .byte   238                     # DW_AT_decl_line
+       .long   8248                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2164:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2169:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x216e:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2174:0x18 DW_TAG_subprogram
+       .long   .Linfo_string358        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  377                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2180:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2185:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x218a:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x218c:0x1c DW_TAG_subprogram
+       .long   .Linfo_string359        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  684                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2198:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x219d:0x5 DW_TAG_formal_parameter
+       .long   4808                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x21a2:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x21a8:0x17 DW_TAG_subprogram
+       .long   .Linfo_string360        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  736                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x21b4:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x21b9:0x5 DW_TAG_formal_parameter
+       .long   8639                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x21bf:0x5 DW_TAG_pointer_type
+       .long   8644                    # DW_AT_type
+       .byte   45                      # Abbrev [45] 0x21c4:0x5 DW_TAG_const_type
+       .long   8211                    # DW_AT_type
+       .byte   39                      # Abbrev [39] 0x21c9:0x12 DW_TAG_subprogram
+       .long   .Linfo_string361        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  689                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x21d5:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x21db:0x21 DW_TAG_subprogram
+       .long   .Linfo_string362        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  652                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x21e7:0x5 DW_TAG_formal_parameter
+       .long   8700                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x21ec:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x21f1:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x21f6:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   44                      # Abbrev [44] 0x21fc:0x5 DW_TAG_restrict_type
+       .long   4221                    # DW_AT_type
+       .byte   39                      # Abbrev [39] 0x2201:0x12 DW_TAG_subprogram
+       .long   .Linfo_string363        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  478                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x220d:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   55                      # Abbrev [55] 0x2213:0xb DW_TAG_subprogram
+       .long   .Linfo_string364        # DW_AT_name
+       .byte   38                      # DW_AT_decl_file
+       .byte   44                      # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   39                      # Abbrev [39] 0x221e:0x12 DW_TAG_subprogram
+       .long   .Linfo_string365        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  577                     # DW_AT_decl_line
+       .long   4777                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x222a:0x5 DW_TAG_formal_parameter
+       .long   4777                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   62                      # Abbrev [62] 0x2230:0xe DW_TAG_subprogram
+       .long   .Linfo_string366        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  775                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2238:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x223e:0x13 DW_TAG_subprogram
+       .long   .Linfo_string367        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  318                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x224a:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x224f:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2251:0x17 DW_TAG_subprogram
+       .long   .Linfo_string368        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  518                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x225d:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2262:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2268:0x11 DW_TAG_subprogram
+       .long   .Linfo_string369        # DW_AT_name
+       .byte   38                      # DW_AT_decl_file
+       .byte   79                      # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2273:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2279:0x12 DW_TAG_subprogram
+       .long   .Linfo_string370        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  632                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2285:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x228b:0x11 DW_TAG_subprogram
+       .long   .Linfo_string371        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .byte   144                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2296:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x229c:0x16 DW_TAG_subprogram
+       .long   .Linfo_string372        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .byte   146                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x22a7:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x22ac:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   62                      # Abbrev [62] 0x22b2:0xe DW_TAG_subprogram
+       .long   .Linfo_string373        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  694                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x22ba:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x22c0:0x13 DW_TAG_subprogram
+       .long   .Linfo_string374        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  383                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x22cc:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x22d1:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   62                      # Abbrev [62] 0x22d3:0x13 DW_TAG_subprogram
+       .long   .Linfo_string375        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  290                     # DW_AT_decl_line
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x22db:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x22e0:0x5 DW_TAG_formal_parameter
+       .long   5624                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x22e6:0x21 DW_TAG_subprogram
+       .long   .Linfo_string376        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  294                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x22f2:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x22f7:0x5 DW_TAG_formal_parameter
+       .long   5624                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x22fc:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2301:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2307:0x18 DW_TAG_subprogram
+       .long   .Linfo_string377        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  320                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2313:0x5 DW_TAG_formal_parameter
+       .long   5624                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2318:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x231d:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x231f:0x18 DW_TAG_subprogram
+       .long   .Linfo_string378        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  385                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x232b:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2330:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x2335:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   55                      # Abbrev [55] 0x2337:0xb DW_TAG_subprogram
+       .long   .Linfo_string379        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .byte   159                     # DW_AT_decl_line
+       .long   8248                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   50                      # Abbrev [50] 0x2342:0x11 DW_TAG_subprogram
+       .long   .Linfo_string380        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .byte   173                     # DW_AT_decl_line
+       .long   4777                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x234d:0x5 DW_TAG_formal_parameter
+       .long   4777                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2353:0x17 DW_TAG_subprogram
+       .long   .Linfo_string381        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  639                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x235f:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2364:0x5 DW_TAG_formal_parameter
+       .long   8248                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x236a:0x1c DW_TAG_subprogram
+       .long   .Linfo_string382        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  327                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2376:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x237b:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2380:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2386:0x16 DW_TAG_subprogram
+       .long   .Linfo_string383        # DW_AT_name
+       .byte   38                      # DW_AT_decl_file
+       .byte   36                      # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2391:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2396:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x239c:0x1c DW_TAG_subprogram
+       .long   .Linfo_string384        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  335                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x23a8:0x5 DW_TAG_formal_parameter
+       .long   5624                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x23ad:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x23b2:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x23b8:0x1d DW_TAG_subprogram
+       .long   .Linfo_string385        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  340                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x23c4:0x5 DW_TAG_formal_parameter
+       .long   5624                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x23c9:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x23ce:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   46                      # Abbrev [46] 0x23d3:0x1 DW_TAG_unspecified_parameters
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x23d5:0x1c DW_TAG_subprogram
+       .long   .Linfo_string386        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  420                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x23e1:0x5 DW_TAG_formal_parameter
+       .long   8364                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x23e6:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x23eb:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x23f1:0x17 DW_TAG_subprogram
+       .long   .Linfo_string387        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  428                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x23fd:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2402:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2408:0x21 DW_TAG_subprogram
+       .long   .Linfo_string388        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  344                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2414:0x5 DW_TAG_formal_parameter
+       .long   5624                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2419:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x241e:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2423:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2429:0x1c DW_TAG_subprogram
+       .long   .Linfo_string389        # DW_AT_name
+       .byte   37                      # DW_AT_decl_file
+       .short  432                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2435:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x243a:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x243f:0x5 DW_TAG_formal_parameter
+       .long   5408                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0x2445:0xb DW_TAG_typedef
+       .long   9296                    # DW_AT_type
+       .long   .Linfo_string390        # DW_AT_name
+       .byte   39                      # DW_AT_decl_file
+       .byte   48                      # DW_AT_decl_line
+       .byte   26                      # Abbrev [26] 0x2450:0x5 DW_TAG_pointer_type
+       .long   9301                    # DW_AT_type
+       .byte   45                      # Abbrev [45] 0x2455:0x5 DW_TAG_const_type
+       .long   6638                    # DW_AT_type
+       .byte   21                      # Abbrev [21] 0x245a:0xb DW_TAG_typedef
+       .long   4875                    # DW_AT_type
+       .long   .Linfo_string391        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   38                      # DW_AT_decl_line
+       .byte   50                      # Abbrev [50] 0x2465:0x11 DW_TAG_subprogram
+       .long   .Linfo_string392        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   95                      # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2470:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2476:0x11 DW_TAG_subprogram
+       .long   .Linfo_string393        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   101                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2481:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2487:0x11 DW_TAG_subprogram
+       .long   .Linfo_string394        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   146                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2492:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2498:0x11 DW_TAG_subprogram
+       .long   .Linfo_string395        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   104                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x24a3:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x24a9:0x16 DW_TAG_subprogram
+       .long   .Linfo_string396        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   159                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x24b4:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x24b9:0x5 DW_TAG_formal_parameter
+       .long   9306                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x24bf:0x11 DW_TAG_subprogram
+       .long   .Linfo_string397        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   108                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x24ca:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x24d0:0x11 DW_TAG_subprogram
+       .long   .Linfo_string398        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   112                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x24db:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x24e1:0x11 DW_TAG_subprogram
+       .long   .Linfo_string399        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   117                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x24ec:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x24f2:0x11 DW_TAG_subprogram
+       .long   .Linfo_string400        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   120                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x24fd:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2503:0x11 DW_TAG_subprogram
+       .long   .Linfo_string401        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   125                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x250e:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2514:0x11 DW_TAG_subprogram
+       .long   .Linfo_string402        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   130                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x251f:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2525:0x11 DW_TAG_subprogram
+       .long   .Linfo_string403        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   135                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2530:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2536:0x11 DW_TAG_subprogram
+       .long   .Linfo_string404        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   140                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2541:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2547:0x16 DW_TAG_subprogram
+       .long   .Linfo_string405        # DW_AT_name
+       .byte   39                      # DW_AT_decl_file
+       .byte   55                      # DW_AT_decl_line
+       .long   4333                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2552:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2557:0x5 DW_TAG_formal_parameter
+       .long   9285                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x255d:0x11 DW_TAG_subprogram
+       .long   .Linfo_string406        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   166                     # DW_AT_decl_line
+       .long   4333                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2568:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x256e:0x11 DW_TAG_subprogram
+       .long   .Linfo_string407        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   169                     # DW_AT_decl_line
+       .long   4333                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2579:0x5 DW_TAG_formal_parameter
+       .long   4333                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x257f:0x11 DW_TAG_subprogram
+       .long   .Linfo_string408        # DW_AT_name
+       .byte   39                      # DW_AT_decl_file
+       .byte   52                      # DW_AT_decl_line
+       .long   9285                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x258a:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2590:0x11 DW_TAG_subprogram
+       .long   .Linfo_string409        # DW_AT_name
+       .byte   41                      # DW_AT_decl_file
+       .byte   155                     # DW_AT_decl_line
+       .long   9306                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x259b:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   9                       # Abbrev [9] 0x25a1:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   38                      # DW_AT_decl_line
+       .long   7338                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25a8:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   39                      # DW_AT_decl_line
+       .long   7346                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25af:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   40                      # DW_AT_decl_line
+       .long   7557                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25b6:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   43                      # DW_AT_decl_line
+       .long   7370                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25bd:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   46                      # DW_AT_decl_line
+       .long   7770                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25c4:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   51                      # DW_AT_decl_line
+       .long   7285                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25cb:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   52                      # DW_AT_decl_line
+       .long   7297                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25d2:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   54                      # DW_AT_decl_line
+       .long   2102                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25d9:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   55                      # DW_AT_decl_line
+       .long   7388                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25e0:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   56                      # DW_AT_decl_line
+       .long   7405                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25e7:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   57                      # DW_AT_decl_line
+       .long   7423                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25ee:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   58                      # DW_AT_decl_line
+       .long   7441                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25f5:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   59                      # DW_AT_decl_line
+       .long   7511                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x25fc:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   60                      # DW_AT_decl_line
+       .long   3643                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x2603:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   61                      # DW_AT_decl_line
+       .long   7571                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x260a:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   62                      # DW_AT_decl_line
+       .long   7585                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x2611:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   63                      # DW_AT_decl_line
+       .long   7603                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x2618:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   64                      # DW_AT_decl_line
+       .long   7621                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x261f:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   65                      # DW_AT_decl_line
+       .long   7644                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x2626:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   67                      # DW_AT_decl_line
+       .long   7662                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x262d:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   68                      # DW_AT_decl_line
+       .long   7685                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x2634:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   69                      # DW_AT_decl_line
+       .long   7713                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x263b:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   71                      # DW_AT_decl_line
+       .long   7741                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x2642:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   72                      # DW_AT_decl_line
+       .long   7784                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x2649:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   73                      # DW_AT_decl_line
+       .long   7796                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x2650:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   74                      # DW_AT_decl_line
+       .long   7819                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x2657:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   75                      # DW_AT_decl_line
+       .long   7833                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x265e:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   76                      # DW_AT_decl_line
+       .long   7865                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x2665:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   77                      # DW_AT_decl_line
+       .long   7892                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x266c:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   78                      # DW_AT_decl_line
+       .long   7919                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x2673:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   80                      # DW_AT_decl_line
+       .long   7937                    # DW_AT_import
+       .byte   9                       # Abbrev [9] 0x267a:0x7 DW_TAG_imported_declaration
+       .byte   42                      # DW_AT_decl_file
+       .byte   81                      # DW_AT_decl_line
+       .long   7965                    # DW_AT_import
+       .byte   21                      # Abbrev [21] 0x2681:0xb DW_TAG_typedef
+       .long   9868                    # DW_AT_type
+       .long   .Linfo_string412        # DW_AT_name
+       .byte   43                      # DW_AT_decl_file
+       .byte   7                       # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x268c:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string411        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   144                     # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x2697:0xb DW_TAG_typedef
+       .long   9890                    # DW_AT_type
+       .long   .Linfo_string414        # DW_AT_name
+       .byte   45                      # DW_AT_decl_file
+       .byte   7                       # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x26a2:0xb DW_TAG_typedef
+       .long   4808                    # DW_AT_type
+       .long   .Linfo_string413        # DW_AT_name
+       .byte   4                       # DW_AT_decl_file
+       .byte   148                     # DW_AT_decl_line
+       .byte   55                      # Abbrev [55] 0x26ad:0xb DW_TAG_subprogram
+       .long   .Linfo_string415        # DW_AT_name
+       .byte   46                      # DW_AT_decl_file
+       .byte   72                      # DW_AT_decl_line
+       .long   9857                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   50                      # Abbrev [50] 0x26b8:0x16 DW_TAG_subprogram
+       .long   .Linfo_string416        # DW_AT_name
+       .byte   46                      # DW_AT_decl_file
+       .byte   78                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x26c3:0x5 DW_TAG_formal_parameter
+       .long   9879                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x26c8:0x5 DW_TAG_formal_parameter
+       .long   9879                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x26ce:0x11 DW_TAG_subprogram
+       .long   .Linfo_string417        # DW_AT_name
+       .byte   46                      # DW_AT_decl_file
+       .byte   82                      # DW_AT_decl_line
+       .long   9879                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x26d9:0x5 DW_TAG_formal_parameter
+       .long   9951                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x26df:0x5 DW_TAG_pointer_type
+       .long   5787                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x26e4:0x11 DW_TAG_subprogram
+       .long   .Linfo_string418        # DW_AT_name
+       .byte   46                      # DW_AT_decl_file
+       .byte   75                      # DW_AT_decl_line
+       .long   9879                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x26ef:0x5 DW_TAG_formal_parameter
+       .long   9973                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x26f5:0x5 DW_TAG_pointer_type
+       .long   9879                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x26fa:0x11 DW_TAG_subprogram
+       .long   .Linfo_string419        # DW_AT_name
+       .byte   46                      # DW_AT_decl_file
+       .byte   139                     # DW_AT_decl_line
+       .long   4777                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2705:0x5 DW_TAG_formal_parameter
+       .long   5777                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x270b:0x11 DW_TAG_subprogram
+       .long   .Linfo_string420        # DW_AT_name
+       .byte   46                      # DW_AT_decl_file
+       .byte   142                     # DW_AT_decl_line
+       .long   4777                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2716:0x5 DW_TAG_formal_parameter
+       .long   10012                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x271c:0x5 DW_TAG_pointer_type
+       .long   10017                   # DW_AT_type
+       .byte   45                      # Abbrev [45] 0x2721:0x5 DW_TAG_const_type
+       .long   9879                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x2726:0x11 DW_TAG_subprogram
+       .long   .Linfo_string421        # DW_AT_name
+       .byte   46                      # DW_AT_decl_file
+       .byte   119                     # DW_AT_decl_line
+       .long   9951                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2731:0x5 DW_TAG_formal_parameter
+       .long   10012                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2737:0x11 DW_TAG_subprogram
+       .long   .Linfo_string422        # DW_AT_name
+       .byte   46                      # DW_AT_decl_file
+       .byte   123                     # DW_AT_decl_line
+       .long   9951                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2742:0x5 DW_TAG_formal_parameter
+       .long   10012                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2748:0x20 DW_TAG_subprogram
+       .long   .Linfo_string423        # DW_AT_name
+       .byte   46                      # DW_AT_decl_file
+       .byte   88                      # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2753:0x5 DW_TAG_formal_parameter
+       .long   5624                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2758:0x5 DW_TAG_formal_parameter
+       .long   4864                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x275d:0x5 DW_TAG_formal_parameter
+       .long   5134                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2762:0x5 DW_TAG_formal_parameter
+       .long   5772                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   45                      # Abbrev [45] 0x2768:0x5 DW_TAG_const_type
+       .long   3512                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x276d:0x11 DW_TAG_subprogram
+       .long   .Linfo_string426        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   53                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2778:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x277e:0x11 DW_TAG_subprogram
+       .long   .Linfo_string427        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   55                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2789:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x278f:0x11 DW_TAG_subprogram
+       .long   .Linfo_string428        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   57                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x279a:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x27a0:0x16 DW_TAG_subprogram
+       .long   .Linfo_string429        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   59                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x27ab:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x27b0:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x27b6:0x11 DW_TAG_subprogram
+       .long   .Linfo_string430        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   159                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x27c1:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x27c7:0x11 DW_TAG_subprogram
+       .long   .Linfo_string431        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   62                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x27d2:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x27d8:0x11 DW_TAG_subprogram
+       .long   .Linfo_string432        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   71                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x27e3:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x27e9:0x11 DW_TAG_subprogram
+       .long   .Linfo_string433        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   95                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x27f4:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x27fa:0x11 DW_TAG_subprogram
+       .long   .Linfo_string434        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   162                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2805:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x280b:0x11 DW_TAG_subprogram
+       .long   .Linfo_string435        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   165                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2816:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x281c:0x16 DW_TAG_subprogram
+       .long   .Linfo_string436        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   168                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2827:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x282c:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2832:0x16 DW_TAG_subprogram
+       .long   .Linfo_string437        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   98                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x283d:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2842:0x5 DW_TAG_formal_parameter
+       .long   10312                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x2848:0x5 DW_TAG_pointer_type
+       .long   3418                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x284d:0x16 DW_TAG_subprogram
+       .long   .Linfo_string438        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   101                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2858:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x285d:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2863:0x11 DW_TAG_subprogram
+       .long   .Linfo_string439        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   104                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x286e:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2874:0x11 DW_TAG_subprogram
+       .long   .Linfo_string440        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   107                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x287f:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2885:0x16 DW_TAG_subprogram
+       .long   .Linfo_string441        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   110                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2890:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2895:0x5 DW_TAG_formal_parameter
+       .long   10395                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x289b:0x5 DW_TAG_pointer_type
+       .long   5978                    # DW_AT_type
+       .byte   50                      # Abbrev [50] 0x28a0:0x16 DW_TAG_subprogram
+       .long   .Linfo_string442        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   140                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x28ab:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x28b0:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x28b6:0x11 DW_TAG_subprogram
+       .long   .Linfo_string443        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   64                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x28c1:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x28c7:0x11 DW_TAG_subprogram
+       .long   .Linfo_string444        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   73                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x28d2:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x28d8:0x11 DW_TAG_subprogram
+       .long   .Linfo_string445        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   143                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x28e3:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x28e9:0x11 DW_TAG_subprogram
+       .long   .Linfo_string446        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   66                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x28f4:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x28fa:0x11 DW_TAG_subprogram
+       .long   .Linfo_string447        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   75                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2905:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0x290b:0xb DW_TAG_typedef
+       .long   5978                    # DW_AT_type
+       .long   .Linfo_string448        # DW_AT_name
+       .byte   50                      # DW_AT_decl_file
+       .byte   150                     # DW_AT_decl_line
+       .byte   21                      # Abbrev [21] 0x2916:0xb DW_TAG_typedef
+       .long   6018                    # DW_AT_type
+       .long   .Linfo_string449        # DW_AT_name
+       .byte   50                      # DW_AT_decl_file
+       .byte   149                     # DW_AT_decl_line
+       .byte   50                      # Abbrev [50] 0x2921:0x11 DW_TAG_subprogram
+       .long   .Linfo_string450        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   85                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x292c:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2932:0x11 DW_TAG_subprogram
+       .long   .Linfo_string451        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   85                      # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x293d:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2943:0x11 DW_TAG_subprogram
+       .long   .Linfo_string452        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   85                      # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x294e:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2954:0x11 DW_TAG_subprogram
+       .long   .Linfo_string453        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   87                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x295f:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2965:0x11 DW_TAG_subprogram
+       .long   .Linfo_string454        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   87                      # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2970:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2976:0x11 DW_TAG_subprogram
+       .long   .Linfo_string455        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   87                      # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2981:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2987:0x11 DW_TAG_subprogram
+       .long   .Linfo_string456        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   89                      # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2992:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2998:0x11 DW_TAG_subprogram
+       .long   .Linfo_string457        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   89                      # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x29a3:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x29a9:0x11 DW_TAG_subprogram
+       .long   .Linfo_string458        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   89                      # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x29b4:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x29ba:0x11 DW_TAG_subprogram
+       .long   .Linfo_string459        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   152                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x29c5:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x29cb:0x11 DW_TAG_subprogram
+       .long   .Linfo_string460        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   152                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x29d6:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x29dc:0x11 DW_TAG_subprogram
+       .long   .Linfo_string461        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   152                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x29e7:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x29ed:0x16 DW_TAG_subprogram
+       .long   .Linfo_string462        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   196                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x29f8:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x29fd:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2a03:0x16 DW_TAG_subprogram
+       .long   .Linfo_string463        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   196                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2a0e:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2a13:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2a19:0x16 DW_TAG_subprogram
+       .long   .Linfo_string464        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   196                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2a24:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2a29:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2a2f:0x11 DW_TAG_subprogram
+       .long   .Linfo_string465        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   228                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2a3a:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2a40:0x11 DW_TAG_subprogram
+       .long   .Linfo_string466        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   228                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2a4b:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2a51:0x11 DW_TAG_subprogram
+       .long   .Linfo_string467        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   228                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2a5c:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2a62:0x11 DW_TAG_subprogram
+       .long   .Linfo_string468        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   229                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2a6d:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2a73:0x11 DW_TAG_subprogram
+       .long   .Linfo_string469        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   229                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2a7e:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2a84:0x11 DW_TAG_subprogram
+       .long   .Linfo_string470        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   229                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2a8f:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2a95:0x11 DW_TAG_subprogram
+       .long   .Linfo_string471        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   130                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2aa0:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2aa6:0x11 DW_TAG_subprogram
+       .long   .Linfo_string472        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   130                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2ab1:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2ab7:0x11 DW_TAG_subprogram
+       .long   .Linfo_string473        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   130                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2ac2:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2ac8:0x11 DW_TAG_subprogram
+       .long   .Linfo_string474        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   119                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2ad3:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2ad9:0x11 DW_TAG_subprogram
+       .long   .Linfo_string475        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   119                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2ae4:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2aea:0x11 DW_TAG_subprogram
+       .long   .Linfo_string476        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   119                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2af5:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2afb:0x17 DW_TAG_subprogram
+       .long   .Linfo_string477        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  326                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2b07:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2b0c:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2b12:0x17 DW_TAG_subprogram
+       .long   .Linfo_string478        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  326                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2b1e:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2b23:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2b29:0x17 DW_TAG_subprogram
+       .long   .Linfo_string479        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  326                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2b35:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2b3a:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2b40:0x1c DW_TAG_subprogram
+       .long   .Linfo_string480        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  335                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2b4c:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2b51:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2b56:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2b5c:0x1c DW_TAG_subprogram
+       .long   .Linfo_string481        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  335                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2b68:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2b6d:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2b72:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2b78:0x1c DW_TAG_subprogram
+       .long   .Linfo_string482        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  335                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2b84:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2b89:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2b8e:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2b94:0x17 DW_TAG_subprogram
+       .long   .Linfo_string483        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  329                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2ba0:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2ba5:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2bab:0x17 DW_TAG_subprogram
+       .long   .Linfo_string484        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  329                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2bb7:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2bbc:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2bc2:0x17 DW_TAG_subprogram
+       .long   .Linfo_string485        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  329                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2bce:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2bd3:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2bd9:0x17 DW_TAG_subprogram
+       .long   .Linfo_string486        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  332                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2be5:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2bea:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2bf0:0x17 DW_TAG_subprogram
+       .long   .Linfo_string487        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  332                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2bfc:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2c01:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2c07:0x17 DW_TAG_subprogram
+       .long   .Linfo_string488        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  332                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2c13:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2c18:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2c1e:0x16 DW_TAG_subprogram
+       .long   .Linfo_string489        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   147                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2c29:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2c2e:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2c34:0x16 DW_TAG_subprogram
+       .long   .Linfo_string490        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   147                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2c3f:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2c44:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2c4a:0x16 DW_TAG_subprogram
+       .long   .Linfo_string491        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   147                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2c55:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2c5a:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2c60:0x12 DW_TAG_subprogram
+       .long   .Linfo_string492        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  280                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2c6c:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2c72:0x12 DW_TAG_subprogram
+       .long   .Linfo_string493        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  280                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2c7e:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2c84:0x12 DW_TAG_subprogram
+       .long   .Linfo_string494        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  280                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2c90:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2c96:0x11 DW_TAG_subprogram
+       .long   .Linfo_string495        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   230                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2ca1:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2ca7:0x11 DW_TAG_subprogram
+       .long   .Linfo_string496        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   230                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2cb2:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2cb8:0x11 DW_TAG_subprogram
+       .long   .Linfo_string497        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   230                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2cc3:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2cc9:0x12 DW_TAG_subprogram
+       .long   .Linfo_string498        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  316                     # DW_AT_decl_line
+       .long   6476                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2cd5:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2cdb:0x12 DW_TAG_subprogram
+       .long   .Linfo_string499        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  316                     # DW_AT_decl_line
+       .long   6476                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2ce7:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2ced:0x12 DW_TAG_subprogram
+       .long   .Linfo_string500        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  316                     # DW_AT_decl_line
+       .long   6476                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2cf9:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2cff:0x12 DW_TAG_subprogram
+       .long   .Linfo_string501        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  322                     # DW_AT_decl_line
+       .long   6476                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2d0b:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2d11:0x12 DW_TAG_subprogram
+       .long   .Linfo_string502        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  322                     # DW_AT_decl_line
+       .long   6476                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2d1d:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2d23:0x12 DW_TAG_subprogram
+       .long   .Linfo_string503        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  322                     # DW_AT_decl_line
+       .long   6476                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2d2f:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2d35:0x11 DW_TAG_subprogram
+       .long   .Linfo_string504        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   122                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2d40:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2d46:0x11 DW_TAG_subprogram
+       .long   .Linfo_string505        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   122                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2d51:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2d57:0x11 DW_TAG_subprogram
+       .long   .Linfo_string506        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   122                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2d62:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2d68:0x11 DW_TAG_subprogram
+       .long   .Linfo_string507        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   133                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2d73:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2d79:0x11 DW_TAG_subprogram
+       .long   .Linfo_string508        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   133                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2d84:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2d8a:0x11 DW_TAG_subprogram
+       .long   .Linfo_string509        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   133                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2d95:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2d9b:0x11 DW_TAG_subprogram
+       .long   .Linfo_string510        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   125                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2da6:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2dac:0x11 DW_TAG_subprogram
+       .long   .Linfo_string511        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   125                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2db7:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2dbd:0x11 DW_TAG_subprogram
+       .long   .Linfo_string512        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   125                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2dc8:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2dce:0x12 DW_TAG_subprogram
+       .long   .Linfo_string513        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  314                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2dda:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2de0:0x12 DW_TAG_subprogram
+       .long   .Linfo_string514        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  314                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2dec:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2df2:0x12 DW_TAG_subprogram
+       .long   .Linfo_string515        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  314                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2dfe:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2e04:0x12 DW_TAG_subprogram
+       .long   .Linfo_string516        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  320                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2e10:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2e16:0x12 DW_TAG_subprogram
+       .long   .Linfo_string517        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  320                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2e22:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2e28:0x12 DW_TAG_subprogram
+       .long   .Linfo_string518        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  320                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2e34:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2e3a:0x11 DW_TAG_subprogram
+       .long   .Linfo_string519        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   201                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2e45:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2e4b:0x11 DW_TAG_subprogram
+       .long   .Linfo_string520        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   201                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2e56:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x2e5c:0x11 DW_TAG_subprogram
+       .long   .Linfo_string521        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   201                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2e67:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2e6d:0x12 DW_TAG_subprogram
+       .long   .Linfo_string522        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  294                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2e79:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2e7f:0x12 DW_TAG_subprogram
+       .long   .Linfo_string523        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  294                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2e8b:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2e91:0x12 DW_TAG_subprogram
+       .long   .Linfo_string524        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  294                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2e9d:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2ea3:0x17 DW_TAG_subprogram
+       .long   .Linfo_string525        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  259                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2eaf:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2eb4:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2eba:0x17 DW_TAG_subprogram
+       .long   .Linfo_string526        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  259                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2ec6:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2ecb:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2ed1:0x17 DW_TAG_subprogram
+       .long   .Linfo_string527        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  259                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2edd:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2ee2:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2ee8:0x17 DW_TAG_subprogram
+       .long   .Linfo_string528        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  261                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2ef4:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2ef9:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2eff:0x17 DW_TAG_subprogram
+       .long   .Linfo_string529        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  261                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2f0b:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2f10:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2f16:0x17 DW_TAG_subprogram
+       .long   .Linfo_string530        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  261                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2f22:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2f27:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2f2d:0x17 DW_TAG_subprogram
+       .long   .Linfo_string531        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  272                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2f39:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2f3e:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2f44:0x17 DW_TAG_subprogram
+       .long   .Linfo_string532        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  272                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2f50:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2f55:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2f5b:0x17 DW_TAG_subprogram
+       .long   .Linfo_string533        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  272                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2f67:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2f6c:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2f72:0x1c DW_TAG_subprogram
+       .long   .Linfo_string534        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  307                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2f7e:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2f83:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2f88:0x5 DW_TAG_formal_parameter
+       .long   10312                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2f8e:0x1c DW_TAG_subprogram
+       .long   .Linfo_string535        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  307                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2f9a:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2f9f:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2fa4:0x5 DW_TAG_formal_parameter
+       .long   10312                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2faa:0x1c DW_TAG_subprogram
+       .long   .Linfo_string536        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  307                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2fb6:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2fbb:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x2fc0:0x5 DW_TAG_formal_parameter
+       .long   10312                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2fc6:0x12 DW_TAG_subprogram
+       .long   .Linfo_string537        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  256                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2fd2:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2fd8:0x12 DW_TAG_subprogram
+       .long   .Linfo_string538        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  256                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2fe4:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2fea:0x12 DW_TAG_subprogram
+       .long   .Linfo_string539        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  256                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x2ff6:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x2ffc:0x12 DW_TAG_subprogram
+       .long   .Linfo_string540        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  298                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x3008:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x300e:0x12 DW_TAG_subprogram
+       .long   .Linfo_string541        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  298                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x301a:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x3020:0x12 DW_TAG_subprogram
+       .long   .Linfo_string542        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  298                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x302c:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x3032:0x17 DW_TAG_subprogram
+       .long   .Linfo_string543        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  290                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x303e:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x3043:0x5 DW_TAG_formal_parameter
+       .long   4808                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x3049:0x17 DW_TAG_subprogram
+       .long   .Linfo_string544        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  290                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x3055:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x305a:0x5 DW_TAG_formal_parameter
+       .long   4808                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x3060:0x17 DW_TAG_subprogram
+       .long   .Linfo_string545        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  290                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x306c:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x3071:0x5 DW_TAG_formal_parameter
+       .long   4808                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x3077:0x17 DW_TAG_subprogram
+       .long   .Linfo_string546        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  276                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x3083:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x3088:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x308e:0x17 DW_TAG_subprogram
+       .long   .Linfo_string547        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  276                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x309a:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x309f:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x30a5:0x17 DW_TAG_subprogram
+       .long   .Linfo_string548        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  276                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x30b1:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x30b6:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x30bc:0x11 DW_TAG_subprogram
+       .long   .Linfo_string549        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   235                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x30c7:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x30cd:0x11 DW_TAG_subprogram
+       .long   .Linfo_string550        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   235                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x30d8:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   50                      # Abbrev [50] 0x30de:0x11 DW_TAG_subprogram
+       .long   .Linfo_string551        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .byte   235                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x30e9:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x30ef:0x12 DW_TAG_subprogram
+       .long   .Linfo_string552        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  302                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x30fb:0x5 DW_TAG_formal_parameter
+       .long   5978                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x3101:0x12 DW_TAG_subprogram
+       .long   .Linfo_string553        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  302                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x310d:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   39                      # Abbrev [39] 0x3113:0x12 DW_TAG_subprogram
+       .long   .Linfo_string554        # DW_AT_name
+       .byte   48                      # DW_AT_decl_file
+       .short  302                     # DW_AT_decl_line
+       .long   6441                    # DW_AT_type
+                                        # DW_AT_declaration
+                                        # DW_AT_external
+       .byte   14                      # Abbrev [14] 0x311f:0x5 DW_TAG_formal_parameter
+       .long   6441                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x3125:0x15 DW_TAG_subprogram
+       .long   .Linfo_string555        # DW_AT_linkage_name
+       .long   .Linfo_string296        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   40                      # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x3134:0x5 DW_TAG_formal_parameter
+       .long   4808                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x313a:0x1f DW_TAG_subprogram
+       .long   .Linfo_string556        # DW_AT_linkage_name
+       .long   .Linfo_string480        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   95                      # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x3149:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x314e:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x3153:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x3159:0x15 DW_TAG_subprogram
+       .long   .Linfo_string557        # DW_AT_linkage_name
+       .long   .Linfo_string558        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   103                     # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x3168:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x316e:0x1a DW_TAG_subprogram
+       .long   .Linfo_string559        # DW_AT_linkage_name
+       .long   .Linfo_string437        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   105                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x317d:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x3182:0x5 DW_TAG_formal_parameter
+       .long   10312                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x3188:0x1a DW_TAG_subprogram
+       .long   .Linfo_string560        # DW_AT_linkage_name
+       .long   .Linfo_string561        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   118                     # DW_AT_decl_line
+       .long   3425                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x3197:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x319c:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x31a2:0x1a DW_TAG_subprogram
+       .long   .Linfo_string562        # DW_AT_linkage_name
+       .long   .Linfo_string563        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   117                     # DW_AT_decl_line
+       .long   3425                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x31b1:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x31b6:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x31bc:0x1a DW_TAG_subprogram
+       .long   .Linfo_string564        # DW_AT_linkage_name
+       .long   .Linfo_string565        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   127                     # DW_AT_decl_line
+       .long   3425                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x31cb:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x31d0:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x31d6:0x1a DW_TAG_subprogram
+       .long   .Linfo_string566        # DW_AT_linkage_name
+       .long   .Linfo_string567        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   126                     # DW_AT_decl_line
+       .long   3425                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x31e5:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x31ea:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x31f0:0x1a DW_TAG_subprogram
+       .long   .Linfo_string568        # DW_AT_linkage_name
+       .long   .Linfo_string569        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   129                     # DW_AT_decl_line
+       .long   3425                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x31ff:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x3204:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x320a:0x15 DW_TAG_subprogram
+       .long   .Linfo_string570        # DW_AT_linkage_name
+       .long   .Linfo_string571        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   136                     # DW_AT_decl_line
+       .long   3425                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x3219:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x321f:0x1a DW_TAG_subprogram
+       .long   .Linfo_string572        # DW_AT_linkage_name
+       .long   .Linfo_string573        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   138                     # DW_AT_decl_line
+       .long   3425                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x322e:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x3233:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x3239:0x15 DW_TAG_subprogram
+       .long   .Linfo_string574        # DW_AT_linkage_name
+       .long   .Linfo_string314        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   139                     # DW_AT_decl_line
+       .long   4808                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x3248:0x5 DW_TAG_formal_parameter
+       .long   4808                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x324e:0x1a DW_TAG_subprogram
+       .long   .Linfo_string575        # DW_AT_linkage_name
+       .long   .Linfo_string438        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   141                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x325d:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x3262:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x3268:0x15 DW_TAG_subprogram
+       .long   .Linfo_string576        # DW_AT_linkage_name
+       .long   .Linfo_string333        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   144                     # DW_AT_decl_line
+       .long   6476                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x3277:0x5 DW_TAG_formal_parameter
+       .long   6476                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x327d:0x1a DW_TAG_subprogram
+       .long   .Linfo_string577        # DW_AT_linkage_name
+       .long   .Linfo_string441        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   166                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x328c:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x3291:0x5 DW_TAG_formal_parameter
+       .long   12951                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   26                      # Abbrev [26] 0x3297:0x5 DW_TAG_pointer_type
+       .long   6018                    # DW_AT_type
+       .byte   63                      # Abbrev [63] 0x329c:0x15 DW_TAG_subprogram
+       .long   .Linfo_string578        # DW_AT_linkage_name
+       .long   .Linfo_string519        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   167                     # DW_AT_decl_line
+       .long   5978                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x32ab:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x32b1:0x15 DW_TAG_subprogram
+       .long   .Linfo_string579        # DW_AT_linkage_name
+       .long   .Linfo_string520        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   168                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x32c0:0x5 DW_TAG_formal_parameter
+       .long   5139                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x32c6:0x1a DW_TAG_subprogram
+       .long   .Linfo_string580        # DW_AT_linkage_name
+       .long   .Linfo_string442        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   176                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x32d5:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x32da:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x32e0:0x1f DW_TAG_subprogram
+       .long   .Linfo_string581        # DW_AT_linkage_name
+       .long   .Linfo_string534        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   180                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x32ef:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x32f4:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x32f9:0x5 DW_TAG_formal_parameter
+       .long   10312                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x32ff:0x1a DW_TAG_subprogram
+       .long   .Linfo_string582        # DW_AT_linkage_name
+       .long   .Linfo_string543        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   186                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x330e:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x3313:0x5 DW_TAG_formal_parameter
+       .long   4808                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   63                      # Abbrev [63] 0x3319:0x1a DW_TAG_subprogram
+       .long   .Linfo_string583        # DW_AT_linkage_name
+       .long   .Linfo_string546        # DW_AT_name
+       .byte   51                      # DW_AT_decl_file
+       .byte   188                     # DW_AT_decl_line
+       .long   6018                    # DW_AT_type
+                                        # DW_AT_declaration
+       .byte   14                      # Abbrev [14] 0x3328:0x5 DW_TAG_formal_parameter
+       .long   6018                    # DW_AT_type
+       .byte   14                      # Abbrev [14] 0x332d:0x5 DW_TAG_formal_parameter
+       .long   3418                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   64                      # Abbrev [64] 0x3333:0x33 DW_TAG_subprogram
+       .long   .Linfo_string585        # DW_AT_linkage_name
+       .long   .Linfo_string586        # DW_AT_name
+       .byte   8                       # DW_AT_decl_file
+       .short  361                     # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   1                       # DW_AT_inline
+       .byte   65                      # Abbrev [65] 0x3344:0x9 DW_TAG_template_type_parameter
+       .long   3493                    # DW_AT_type
+       .long   .Linfo_string584        # DW_AT_name
+       .byte   66                      # Abbrev [66] 0x334d:0xc DW_TAG_formal_parameter
+       .long   .Linfo_string587        # DW_AT_name
+       .byte   8                       # DW_AT_decl_file
+       .short  361                     # DW_AT_decl_line
+       .long   13170                   # DW_AT_type
+       .byte   66                      # Abbrev [66] 0x3359:0xc DW_TAG_formal_parameter
+       .long   .Linfo_string588        # DW_AT_name
+       .byte   8                       # DW_AT_decl_file
+       .short  361                     # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   59                      # Abbrev [59] 0x3366:0xc DW_TAG_typedef
+       .long   3720                    # DW_AT_type
+       .long   .Linfo_string88         # DW_AT_name
+       .byte   8                       # DW_AT_decl_file
+       .short  263                     # DW_AT_decl_line
+       .byte   26                      # Abbrev [26] 0x3372:0x5 DW_TAG_pointer_type
+       .long   13175                   # DW_AT_type
+       .byte   26                      # Abbrev [26] 0x3377:0x5 DW_TAG_pointer_type
+       .long   3493                    # DW_AT_type
+       .byte   67                      # Abbrev [67] 0x337c:0x2d4 DW_TAG_subprogram
+       .quad   .Lfunc_begin0           # DW_AT_low_pc
+       .long   .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
+       .byte   1                       # DW_AT_frame_base
+       .byte   87
+       .long   .Linfo_string590        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1160                    # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+                                        # DW_AT_external
+       .byte   68                      # Abbrev [68] 0x3396:0x10 DW_TAG_formal_parameter
+       .long   .Ldebug_loc0            # DW_AT_location
+       .long   .Linfo_string653        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1160                    # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+       .byte   68                      # Abbrev [68] 0x33a6:0x10 DW_TAG_formal_parameter
+       .long   .Ldebug_loc1            # DW_AT_location
+       .long   .Linfo_string654        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1160                    # DW_AT_decl_line
+       .long   7860                    # DW_AT_type
+       .byte   69                      # Abbrev [69] 0x33b6:0x10 DW_TAG_variable
+       .byte   3                       # DW_AT_location
+       .byte   145
+       .asciz  "\310"
+       .long   .Linfo_string592        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1168                    # DW_AT_decl_line
+       .long   13951                   # DW_AT_type
+       .byte   69                      # Abbrev [69] 0x33c6:0xf DW_TAG_variable
+       .byte   2                       # DW_AT_location
+       .byte   145
+       .byte   48
+       .long   .Linfo_string652        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1195                    # DW_AT_decl_line
+       .long   14801                   # DW_AT_type
+       .byte   70                      # Abbrev [70] 0x33d5:0x10 DW_TAG_variable
+       .long   .Ldebug_loc2            # DW_AT_location
+       .long   .Linfo_string655        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1163                    # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+       .byte   70                      # Abbrev [70] 0x33e5:0x10 DW_TAG_variable
+       .long   .Ldebug_loc3            # DW_AT_location
+       .long   .Linfo_string656        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1166                    # DW_AT_decl_line
+       .long   3418                    # DW_AT_type
+       .byte   70                      # Abbrev [70] 0x33f5:0x10 DW_TAG_variable
+       .long   .Ldebug_loc4            # DW_AT_location
+       .long   .Linfo_string657        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1164                    # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+       .byte   70                      # Abbrev [70] 0x3405:0x10 DW_TAG_variable
+       .long   .Ldebug_loc9            # DW_AT_location
+       .long   .Linfo_string659        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1161                    # DW_AT_decl_line
+       .long   4215                    # DW_AT_type
+       .byte   70                      # Abbrev [70] 0x3415:0x10 DW_TAG_variable
+       .long   .Ldebug_loc10           # DW_AT_location
+       .long   .Linfo_string660        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1161                    # DW_AT_decl_line
+       .long   4215                    # DW_AT_type
+       .byte   70                      # Abbrev [70] 0x3425:0x10 DW_TAG_variable
+       .long   .Ldebug_loc13           # DW_AT_location
+       .long   .Linfo_string661        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1192                    # DW_AT_decl_line
+       .long   14813                   # DW_AT_type
+       .byte   70                      # Abbrev [70] 0x3435:0x10 DW_TAG_variable
+       .long   .Ldebug_loc14           # DW_AT_location
+       .long   .Linfo_string662        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1191                    # DW_AT_decl_line
+       .long   14813                   # DW_AT_type
+       .byte   70                      # Abbrev [70] 0x3445:0x10 DW_TAG_variable
+       .long   .Ldebug_loc15           # DW_AT_location
+       .long   .Linfo_string663        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1200                    # DW_AT_decl_line
+       .long   14818                   # DW_AT_type
+       .byte   70                      # Abbrev [70] 0x3455:0x10 DW_TAG_variable
+       .long   .Ldebug_loc16           # DW_AT_location
+       .long   .Linfo_string666        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1197                    # DW_AT_decl_line
+       .long   14839                   # DW_AT_type
+       .byte   70                      # Abbrev [70] 0x3465:0x10 DW_TAG_variable
+       .long   .Ldebug_loc17           # DW_AT_location
+       .long   .Linfo_string667        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1196                    # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+       .byte   71                      # Abbrev [71] 0x3475:0xc DW_TAG_variable
+       .long   .Linfo_string668        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1194                    # DW_AT_decl_line
+       .long   5139                    # DW_AT_type
+       .byte   70                      # Abbrev [70] 0x3481:0x10 DW_TAG_variable
+       .long   .Ldebug_loc18           # DW_AT_location
+       .long   .Linfo_string669        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1201                    # DW_AT_decl_line
+       .long   14851                   # DW_AT_type
+       .byte   71                      # Abbrev [71] 0x3491:0xc DW_TAG_variable
+       .long   .Linfo_string674        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1162                    # DW_AT_decl_line
+       .long   4215                    # DW_AT_type
+       .byte   71                      # Abbrev [71] 0x349d:0xc DW_TAG_variable
+       .long   .Linfo_string675        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1162                    # DW_AT_decl_line
+       .long   4215                    # DW_AT_type
+       .byte   72                      # Abbrev [72] 0x34a9:0x16 DW_TAG_lexical_block
+       .long   .Ldebug_ranges0         # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x34ae:0x10 DW_TAG_variable
+       .long   .Ldebug_loc22           # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1167                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   72                      # Abbrev [72] 0x34bf:0x16 DW_TAG_lexical_block
+       .long   .Ldebug_ranges1         # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x34c4:0x10 DW_TAG_variable
+       .long   .Ldebug_loc23           # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1169                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   72                      # Abbrev [72] 0x34d5:0x16 DW_TAG_lexical_block
+       .long   .Ldebug_ranges2         # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x34da:0x10 DW_TAG_variable
+       .long   .Ldebug_loc5            # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1175                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   72                      # Abbrev [72] 0x34eb:0x16 DW_TAG_lexical_block
+       .long   .Ldebug_ranges3         # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x34f0:0x10 DW_TAG_variable
+       .long   .Ldebug_loc6            # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1177                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   73                      # Abbrev [73] 0x3501:0x1a DW_TAG_lexical_block
+       .quad   .Ltmp18                 # DW_AT_low_pc
+       .long   .Ltmp20-.Ltmp18         # DW_AT_high_pc
+       .byte   71                      # Abbrev [71] 0x350e:0xc DW_TAG_variable
+       .long   .Linfo_string672        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1179                    # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   72                      # Abbrev [72] 0x351b:0x3e DW_TAG_lexical_block
+       .long   .Ldebug_ranges4         # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x3520:0x10 DW_TAG_variable
+       .long   .Ldebug_loc24           # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1184                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   74                      # Abbrev [74] 0x3530:0x28 DW_TAG_inlined_subroutine
+       .long   13107                   # DW_AT_abstract_origin
+       .quad   .Ltmp22                 # DW_AT_low_pc
+       .long   .Ltmp23-.Ltmp22         # DW_AT_high_pc
+       .byte   6                       # DW_AT_call_file
+       .short  1184                    # DW_AT_call_line
+       .byte   5                       # DW_AT_call_column
+       .byte   75                      # Abbrev [75] 0x3545:0x9 DW_TAG_formal_parameter
+       .long   .Ldebug_loc8            # DW_AT_location
+       .long   13133                   # DW_AT_abstract_origin
+       .byte   75                      # Abbrev [75] 0x354e:0x9 DW_TAG_formal_parameter
+       .long   .Ldebug_loc7            # DW_AT_location
+       .long   13145                   # DW_AT_abstract_origin
+       .byte   0                       # End Of Children Mark
+       .byte   0                       # End Of Children Mark
+       .byte   72                      # Abbrev [72] 0x3559:0x3e DW_TAG_lexical_block
+       .long   .Ldebug_ranges5         # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x355e:0x10 DW_TAG_variable
+       .long   .Ldebug_loc25           # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1185                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   74                      # Abbrev [74] 0x356e:0x28 DW_TAG_inlined_subroutine
+       .long   13107                   # DW_AT_abstract_origin
+       .quad   .Ltmp26                 # DW_AT_low_pc
+       .long   .Ltmp27-.Ltmp26         # DW_AT_high_pc
+       .byte   6                       # DW_AT_call_file
+       .short  1185                    # DW_AT_call_line
+       .byte   5                       # DW_AT_call_column
+       .byte   75                      # Abbrev [75] 0x3583:0x9 DW_TAG_formal_parameter
+       .long   .Ldebug_loc11           # DW_AT_location
+       .long   13133                   # DW_AT_abstract_origin
+       .byte   75                      # Abbrev [75] 0x358c:0x9 DW_TAG_formal_parameter
+       .long   .Ldebug_loc12           # DW_AT_location
+       .long   13145                   # DW_AT_abstract_origin
+       .byte   0                       # End Of Children Mark
+       .byte   0                       # End Of Children Mark
+       .byte   72                      # Abbrev [72] 0x3597:0x16 DW_TAG_lexical_block
+       .long   .Ldebug_ranges6         # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x359c:0x10 DW_TAG_variable
+       .long   .Ldebug_loc26           # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1188                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   72                      # Abbrev [72] 0x35ad:0x16 DW_TAG_lexical_block
+       .long   .Ldebug_ranges7         # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x35b2:0x10 DW_TAG_variable
+       .long   .Ldebug_loc27           # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1202                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   72                      # Abbrev [72] 0x35c3:0x16 DW_TAG_lexical_block
+       .long   .Ldebug_ranges8         # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x35c8:0x10 DW_TAG_variable
+       .long   .Ldebug_loc28           # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1203                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   72                      # Abbrev [72] 0x35d9:0x16 DW_TAG_lexical_block
+       .long   .Ldebug_ranges9         # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x35de:0x10 DW_TAG_variable
+       .long   .Ldebug_loc29           # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1204                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   72                      # Abbrev [72] 0x35ef:0x16 DW_TAG_lexical_block
+       .long   .Ldebug_ranges10        # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x35f4:0x10 DW_TAG_variable
+       .long   .Ldebug_loc30           # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1207                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   72                      # Abbrev [72] 0x3605:0x4a DW_TAG_lexical_block
+       .long   .Ldebug_ranges12        # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x360a:0x10 DW_TAG_variable
+       .long   .Ldebug_loc19           # DW_AT_location
+       .long   .Linfo_string672        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1210                    # DW_AT_decl_line
+       .long   4864                    # DW_AT_type
+       .byte   72                      # Abbrev [72] 0x361a:0x34 DW_TAG_lexical_block
+       .long   .Ldebug_ranges11        # DW_AT_ranges
+       .byte   70                      # Abbrev [70] 0x361f:0x10 DW_TAG_variable
+       .long   .Ldebug_loc20           # DW_AT_location
+       .long   .Linfo_string673        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1211                    # DW_AT_decl_line
+       .long   3493                    # DW_AT_type
+       .byte   73                      # Abbrev [73] 0x362f:0x1e DW_TAG_lexical_block
+       .quad   .Ltmp68                 # DW_AT_low_pc
+       .long   .Ltmp70-.Ltmp68         # DW_AT_high_pc
+       .byte   70                      # Abbrev [70] 0x363c:0x10 DW_TAG_variable
+       .long   .Ldebug_loc21           # DW_AT_location
+       .long   .Linfo_string658        # DW_AT_name
+       .byte   6                       # DW_AT_decl_file
+       .short  1215                    # DW_AT_decl_line
+       .long   13158                   # DW_AT_type
+       .byte   0                       # End Of Children Mark
+       .byte   0                       # End Of Children Mark
+       .byte   0                       # End Of Children Mark
+       .byte   0                       # End Of Children Mark
+       .byte   76                      # Abbrev [76] 0x3650:0x8 DW_TAG_subprogram
+       .long   .Linfo_string589        # DW_AT_name
+       .byte   3                       # DW_AT_decl_file
+       .byte   74                      # DW_AT_decl_line
+       .byte   1                       # DW_AT_inline
+       .byte   77                      # Abbrev [77] 0x3658:0x27 DW_TAG_subprogram
+       .quad   .Lfunc_begin1           # DW_AT_low_pc
+       .long   .Lfunc_end1-.Lfunc_begin1 # DW_AT_high_pc
+       .byte   1                       # DW_AT_frame_base
+       .byte   87
+       .long   .Linfo_string591        # DW_AT_linkage_name
+                                        # DW_AT_artificial
+       .byte   78                      # Abbrev [78] 0x366b:0x13 DW_TAG_inlined_subroutine
+       .long   13904                   # DW_AT_abstract_origin
+       .quad   .Ltmp103                # DW_AT_low_pc
+       .long   .Ltmp104-.Ltmp103       # DW_AT_high_pc
+       .byte   6                       # DW_AT_call_file
+       .byte   0                       # DW_AT_call_line
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0x367f:0xb DW_TAG_typedef
+       .long   13962                   # DW_AT_type
+       .long   .Linfo_string651        # DW_AT_name
+       .byte   8                       # DW_AT_decl_file
+       .byte   129                     # DW_AT_decl_line
+       .byte   79                      # Abbrev [79] 0x368a:0x212 DW_TAG_structure_type
+       .byte   5                       # DW_AT_calling_convention
+       .long   .Linfo_string651        # DW_AT_name
+       .short  472                     # DW_AT_byte_size
+       .byte   8                       # DW_AT_decl_file
+       .byte   83                      # DW_AT_decl_line
+       .byte   12                      # Abbrev [12] 0x3694:0xc DW_TAG_member
+       .long   .Linfo_string593        # DW_AT_name
+       .long   14492                   # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   84                      # DW_AT_decl_line
+       .byte   0                       # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x36a0:0xd DW_TAG_member
+       .long   .Linfo_string594        # DW_AT_name
+       .long   4864                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   85                      # DW_AT_decl_line
+       .short  256                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x36ad:0xd DW_TAG_member
+       .long   .Linfo_string595        # DW_AT_name
+       .long   4864                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   86                      # DW_AT_decl_line
+       .short  264                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x36ba:0xd DW_TAG_member
+       .long   .Linfo_string596        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   87                      # DW_AT_decl_line
+       .short  272                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x36c7:0xd DW_TAG_member
+       .long   .Linfo_string597        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   88                      # DW_AT_decl_line
+       .short  276                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x36d4:0xd DW_TAG_member
+       .long   .Linfo_string598        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   89                      # DW_AT_decl_line
+       .short  280                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x36e1:0xd DW_TAG_member
+       .long   .Linfo_string599        # DW_AT_name
+       .long   14505                   # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   90                      # DW_AT_decl_line
+       .short  284                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x36ee:0xd DW_TAG_member
+       .long   .Linfo_string600        # DW_AT_name
+       .long   14505                   # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   91                      # DW_AT_decl_line
+       .short  296                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x36fb:0xd DW_TAG_member
+       .long   .Linfo_string601        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   92                      # DW_AT_decl_line
+       .short  308                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3708:0xd DW_TAG_member
+       .long   .Linfo_string602        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   93                      # DW_AT_decl_line
+       .short  312                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3715:0xd DW_TAG_member
+       .long   .Linfo_string603        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   94                      # DW_AT_decl_line
+       .short  316                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3722:0xd DW_TAG_member
+       .long   .Linfo_string604        # DW_AT_name
+       .long   4864                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   95                      # DW_AT_decl_line
+       .short  320                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x372f:0xd DW_TAG_member
+       .long   .Linfo_string605        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   96                      # DW_AT_decl_line
+       .short  328                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x373c:0xd DW_TAG_member
+       .long   .Linfo_string606        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   99                      # DW_AT_decl_line
+       .short  332                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3749:0xd DW_TAG_member
+       .long   .Linfo_string607        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   102                     # DW_AT_decl_line
+       .short  336                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3756:0xd DW_TAG_member
+       .long   .Linfo_string608        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   103                     # DW_AT_decl_line
+       .short  340                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3763:0xd DW_TAG_member
+       .long   .Linfo_string609        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   104                     # DW_AT_decl_line
+       .short  344                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3770:0xd DW_TAG_member
+       .long   .Linfo_string610        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   105                     # DW_AT_decl_line
+       .short  348                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x377d:0xd DW_TAG_member
+       .long   .Linfo_string611        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   106                     # DW_AT_decl_line
+       .short  352                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x378a:0xd DW_TAG_member
+       .long   .Linfo_string612        # DW_AT_name
+       .long   14517                   # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   108                     # DW_AT_decl_line
+       .short  356                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3797:0xd DW_TAG_member
+       .long   .Linfo_string631        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   109                     # DW_AT_decl_line
+       .short  360                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x37a4:0xd DW_TAG_member
+       .long   .Linfo_string632        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   110                     # DW_AT_decl_line
+       .short  364                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x37b1:0xd DW_TAG_member
+       .long   .Linfo_string633        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   111                     # DW_AT_decl_line
+       .short  368                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x37be:0xd DW_TAG_member
+       .long   .Linfo_string634        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   112                     # DW_AT_decl_line
+       .short  372                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x37cb:0xd DW_TAG_member
+       .long   .Linfo_string635        # DW_AT_name
+       .long   4864                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   113                     # DW_AT_decl_line
+       .short  376                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x37d8:0xd DW_TAG_member
+       .long   .Linfo_string636        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   114                     # DW_AT_decl_line
+       .short  384                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x37e5:0xd DW_TAG_member
+       .long   .Linfo_string637        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   115                     # DW_AT_decl_line
+       .short  388                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x37f2:0xd DW_TAG_member
+       .long   .Linfo_string638        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   116                     # DW_AT_decl_line
+       .short  392                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x37ff:0xd DW_TAG_member
+       .long   .Linfo_string639        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   117                     # DW_AT_decl_line
+       .short  396                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x380c:0xd DW_TAG_member
+       .long   .Linfo_string640        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   118                     # DW_AT_decl_line
+       .short  400                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3819:0xd DW_TAG_member
+       .long   .Linfo_string641        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   119                     # DW_AT_decl_line
+       .short  404                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3826:0xd DW_TAG_member
+       .long   .Linfo_string642        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   120                     # DW_AT_decl_line
+       .short  408                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3833:0xd DW_TAG_member
+       .long   .Linfo_string643        # DW_AT_name
+       .long   14789                   # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   121                     # DW_AT_decl_line
+       .short  412                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3840:0xd DW_TAG_member
+       .long   .Linfo_string644        # DW_AT_name
+       .long   14505                   # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   122                     # DW_AT_decl_line
+       .short  420                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x384d:0xd DW_TAG_member
+       .long   .Linfo_string645        # DW_AT_name
+       .long   13175                   # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   123                     # DW_AT_decl_line
+       .short  432                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x385a:0xd DW_TAG_member
+       .long   .Linfo_string646        # DW_AT_name
+       .long   13175                   # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   124                     # DW_AT_decl_line
+       .short  440                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3867:0xd DW_TAG_member
+       .long   .Linfo_string647        # DW_AT_name
+       .long   4864                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   125                     # DW_AT_decl_line
+       .short  448                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3874:0xd DW_TAG_member
+       .long   .Linfo_string648        # DW_AT_name
+       .long   4864                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   126                     # DW_AT_decl_line
+       .short  456                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x3881:0xd DW_TAG_member
+       .long   .Linfo_string649        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   127                     # DW_AT_decl_line
+       .short  464                     # DW_AT_data_member_location
+       .byte   80                      # Abbrev [80] 0x388e:0xd DW_TAG_member
+       .long   .Linfo_string650        # DW_AT_name
+       .long   3418                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   128                     # DW_AT_decl_line
+       .short  468                     # DW_AT_data_member_location
+       .byte   0                       # End Of Children Mark
+       .byte   28                      # Abbrev [28] 0x389c:0xd DW_TAG_array_type
+       .long   4326                    # DW_AT_type
+       .byte   29                      # Abbrev [29] 0x38a1:0x7 DW_TAG_subrange_type
+       .long   3500                    # DW_AT_type
+       .short  256                     # DW_AT_count
+       .byte   0                       # End Of Children Mark
+       .byte   28                      # Abbrev [28] 0x38a9:0xc DW_TAG_array_type
+       .long   3418                    # DW_AT_type
+       .byte   38                      # Abbrev [38] 0x38ae:0x6 DW_TAG_subrange_type
+       .long   3500                    # DW_AT_type
+       .byte   3                       # DW_AT_count
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0x38b5:0xb DW_TAG_typedef
+       .long   14528                   # DW_AT_type
+       .long   .Linfo_string630        # DW_AT_name
+       .byte   8                       # DW_AT_decl_file
+       .byte   73                      # DW_AT_decl_line
+       .byte   36                      # Abbrev [36] 0x38c0:0x105 DW_TAG_structure_type
+       .byte   5                       # DW_AT_calling_convention
+       .byte   4                       # DW_AT_byte_size
+       .byte   8                       # DW_AT_decl_file
+       .byte   44                      # DW_AT_decl_line
+       .byte   81                      # Abbrev [81] 0x38c5:0xf DW_TAG_member
+       .long   .Linfo_string613        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   46                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   31                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x38d4:0xf DW_TAG_member
+       .long   .Linfo_string614        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   47                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   30                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x38e3:0xf DW_TAG_member
+       .long   .Linfo_string615        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   48                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   29                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x38f2:0xf DW_TAG_member
+       .long   .Linfo_string616        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   49                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   28                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x3901:0xf DW_TAG_member
+       .long   .Linfo_string617        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   50                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   27                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x3910:0xf DW_TAG_member
+       .long   .Linfo_string618        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   53                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   26                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x391f:0xf DW_TAG_member
+       .long   .Linfo_string619        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   54                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   25                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x392e:0xf DW_TAG_member
+       .long   .Linfo_string620        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   57                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   24                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x393d:0xf DW_TAG_member
+       .long   .Linfo_string621        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   60                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   23                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x394c:0xf DW_TAG_member
+       .long   .Linfo_string622        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   61                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   22                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x395b:0xf DW_TAG_member
+       .long   .Linfo_string623        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   62                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   21                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x396a:0xf DW_TAG_member
+       .long   .Linfo_string624        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   63                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   20                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x3979:0xf DW_TAG_member
+       .long   .Linfo_string625        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   66                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   19                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x3988:0xf DW_TAG_member
+       .long   .Linfo_string626        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   67                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   18                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x3997:0xf DW_TAG_member
+       .long   .Linfo_string627        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   70                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   17                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x39a6:0xf DW_TAG_member
+       .long   .Linfo_string628        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   71                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   16                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   81                      # Abbrev [81] 0x39b5:0xf DW_TAG_member
+       .long   .Linfo_string629        # DW_AT_name
+       .long   3493                    # DW_AT_type
+       .byte   8                       # DW_AT_decl_file
+       .byte   72                      # DW_AT_decl_line
+       .byte   4                       # DW_AT_byte_size
+       .byte   1                       # DW_AT_bit_size
+       .byte   15                      # DW_AT_bit_offset
+       .byte   0                       # DW_AT_data_member_location
+       .byte   0                       # End Of Children Mark
+       .byte   28                      # Abbrev [28] 0x39c5:0xc DW_TAG_array_type
+       .long   3418                    # DW_AT_type
+       .byte   38                      # Abbrev [38] 0x39ca:0x6 DW_TAG_subrange_type
+       .long   3500                    # DW_AT_type
+       .byte   2                       # DW_AT_count
+       .byte   0                       # End Of Children Mark
+       .byte   28                      # Abbrev [28] 0x39d1:0xc DW_TAG_array_type
+       .long   4220                    # DW_AT_type
+       .byte   38                      # Abbrev [38] 0x39d6:0x6 DW_TAG_subrange_type
+       .long   3500                    # DW_AT_type
+       .byte   3                       # DW_AT_count
+       .byte   0                       # End Of Children Mark
+       .byte   45                      # Abbrev [45] 0x39dd:0x5 DW_TAG_const_type
+       .long   3493                    # DW_AT_type
+       .byte   21                      # Abbrev [21] 0x39e2:0xb DW_TAG_typedef
+       .long   14829                   # DW_AT_type
+       .long   .Linfo_string665        # DW_AT_name
+       .byte   52                      # DW_AT_decl_file
+       .byte   117                     # DW_AT_decl_line
+       .byte   26                      # Abbrev [26] 0x39ed:0x5 DW_TAG_pointer_type
+       .long   14834                   # DW_AT_type
+       .byte   42                      # Abbrev [42] 0x39f2:0x5 DW_TAG_structure_type
+       .long   .Linfo_string664        # DW_AT_name
+                                        # DW_AT_declaration
+       .byte   28                      # Abbrev [28] 0x39f7:0xc DW_TAG_array_type
+       .long   4220                    # DW_AT_type
+       .byte   38                      # Abbrev [38] 0x39fc:0x6 DW_TAG_subrange_type
+       .long   3500                    # DW_AT_type
+       .byte   5                       # DW_AT_count
+       .byte   0                       # End Of Children Mark
+       .byte   21                      # Abbrev [21] 0x3a03:0xb DW_TAG_typedef
+       .long   14862                   # DW_AT_type
+       .long   .Linfo_string671        # DW_AT_name
+       .byte   52                      # DW_AT_decl_file
+       .byte   119                     # DW_AT_decl_line
+       .byte   26                      # Abbrev [26] 0x3a0e:0x5 DW_TAG_pointer_type
+       .long   14867                   # DW_AT_type
+       .byte   42                      # Abbrev [42] 0x3a13:0x5 DW_TAG_structure_type
+       .long   .Linfo_string670        # DW_AT_name
+                                        # DW_AT_declaration
+       .byte   0                       # End Of Children Mark
+.Ldebug_info_end0:
+       .section        .debug_ranges,"",@progbits
+.Ldebug_ranges0:
+       .quad   .Ltmp2
+       .quad   .Ltmp5
+       .quad   .Ltmp71
+       .quad   .Ltmp73
+       .quad   0
+       .quad   0
+.Ldebug_ranges1:
+       .quad   .Ltmp5
+       .quad   .Ltmp9
+       .quad   .Ltmp74
+       .quad   .Ltmp76
+       .quad   0
+       .quad   0
+.Ldebug_ranges2:
+       .quad   .Ltmp12
+       .quad   .Ltmp14
+       .quad   .Ltmp77
+       .quad   .Ltmp78
+       .quad   0
+       .quad   0
+.Ldebug_ranges3:
+       .quad   .Ltmp15
+       .quad   .Ltmp17
+       .quad   .Ltmp79
+       .quad   .Ltmp80
+       .quad   0
+       .quad   0
+.Ldebug_ranges4:
+       .quad   .Ltmp22
+       .quad   .Ltmp25
+       .quad   .Ltmp81
+       .quad   .Ltmp83
+       .quad   0
+       .quad   0
+.Ldebug_ranges5:
+       .quad   .Ltmp26
+       .quad   .Ltmp29
+       .quad   .Ltmp84
+       .quad   .Ltmp86
+       .quad   0
+       .quad   0
+.Ldebug_ranges6:
+       .quad   .Ltmp30
+       .quad   .Ltmp33
+       .quad   .Ltmp87
+       .quad   .Ltmp89
+       .quad   0
+       .quad   0
+.Ldebug_ranges7:
+       .quad   .Ltmp36
+       .quad   .Ltmp39
+       .quad   .Ltmp90
+       .quad   .Ltmp92
+       .quad   0
+       .quad   0
+.Ldebug_ranges8:
+       .quad   .Ltmp39
+       .quad   .Ltmp43
+       .quad   .Ltmp93
+       .quad   .Ltmp95
+       .quad   0
+       .quad   0
+.Ldebug_ranges9:
+       .quad   .Ltmp43
+       .quad   .Ltmp49
+       .quad   .Ltmp96
+       .quad   .Ltmp98
+       .quad   0
+       .quad   0
+.Ldebug_ranges10:
+       .quad   .Ltmp50
+       .quad   .Ltmp53
+       .quad   .Ltmp99
+       .quad   .Ltmp101
+       .quad   0
+       .quad   0
+.Ldebug_ranges11:
+       .quad   .Ltmp58
+       .quad   .Ltmp61
+       .quad   .Ltmp66
+       .quad   .Ltmp70
+       .quad   0
+       .quad   0
+.Ldebug_ranges12:
+       .quad   .Ltmp54
+       .quad   .Ltmp64
+       .quad   .Ltmp66
+       .quad   .Ltmp70
+       .quad   0
+       .quad   0
+.Ldebug_ranges13:
+       .quad   .Lfunc_begin0
+       .quad   .Lfunc_end0
+       .quad   .Lfunc_begin1
+       .quad   .Lfunc_end1
+       .quad   0
+       .quad   0
+       .section        .debug_macinfo,"",@progbits
+       .byte   0                       # End Of Macro List Mark
+
+       .ident  "clang version 10.0.0 (/data/jenkins-workspace/compute-rocm-dkms-npi-hipclang/external/llvm-clang f93133afa84dda9a84df14f37905cdab3b985022) (/data/jenkins-workspace/compute-rocm-dkms-npi-hipclang/external/llvm 50ac18e97d2aaf29f07e7a8bea4e4e3de57455cf)"
+       .section        ".note.GNU-stack","",@progbits
+       .section        .debug_line,"",@progbits
+.Lline_table_start0:
diff --git a/gdb/testsuite/gdb.rocm/bit_extract_asm.exp b/gdb/testsuite/gdb.rocm/bit_extract_asm.exp
new file mode 100644 (file)
index 0000000..58e21ea
--- /dev/null
@@ -0,0 +1,82 @@
+# Copyright 2019-2020 Free Software Foundation, Inc.
+# Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+load_lib rocm.exp
+
+set testfile "bit_extract_asm"
+set srcfile ${srcdir}/${subdir}/${testfile}.S
+set objfile [standard_output_file ${testfile}.o]
+set binfile [standard_output_file ${testfile}]
+
+# Set device info
+set ISA "vega10"
+
+# Check if skip hip tests
+if [skip_hipcc_tests] {
+    verbose "Skipping hip test: ${testfile}."
+    return 0
+}
+
+# Assemble the hip program
+set asm-flags ""
+set debug-flags ""
+if {[target_assemble $srcfile $objfile "${asm-flags} ${debug-flags}"] != ""} then {
+    untested "failed to assemble"
+    return -1
+}
+
+# Link the hip program
+# TODO: The link flags may need some pruning
+set link-flags "-z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/8/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/8 -L/usr/lib/x86_64-linux-gnu -L/lib/x86_64-linux-gnu -L/lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib -L/opt/rocm/llvm/lib -L/lib -L/usr/lib -lhip_hcc -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/8/crtend.o /usr/lib/x86_64-linux-gnu/crtn.o -L/opt/rocm/lib -lstdc++"
+if {[target_link $objfile $binfile "${link-flags}"] != "" } then {
+     untested "failed to link"
+     return -1
+}
+
+gdb_exit
+gdb_start
+
+# Load the hip program
+if {[gdb_load ${binfile}] == -1} {
+    verbose "failed to load program ${testfile}."
+    return -1
+}
+
+# Run to main and break
+if ![runto_main] {
+    fail "can't run to main and break in program ${testfile}."
+    return -1
+}
+
+# Set breakpoing in device code
+gdb_breakpoint "bit_extract_kernel" "allow-pending"
+gdb_continue_to_breakpoint "bit_extract_kernel"
+
+# Check  info agents
+# vega10 56 sample output "1  43:00.0  vega10      4              56            4       10"
+gdb_test_sequence "info agents" "info agents" {
+    {Id\s+PCI Slot\s+Device Name\s+Shader Engines\s+Compute Units\s+SIMD/CU\s+Wavefronts/SIMD}
+    {\d\s+\d+:\d+\.\d\s+\w+\d+\s+\d+\s+\d+\s+\d+\s+\d}
+}
+
+# Check continue at device breakpoint in all-stop mode
+gdb_test "c" ".+hit\\s+Breakpoint.+bit_extract_kernel\\(.*"
+
+# Check info threads
+gdb_test_sequence "info threads" "info threads" {
+    "\\d+\\s+Thread"
+}
+
+gdb_exit
diff --git a/gdb/testsuite/gdb.rocm/bit_extract_compile.cpp b/gdb/testsuite/gdb.rocm/bit_extract_compile.cpp
new file mode 100644 (file)
index 0000000..e42da4e
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+Copyright (c) 2015-present Advanced Micro Devices, Inc. All rights reserved.
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+#include <stdio.h>
+#include <iostream>
+#include "hip/hip_runtime.h"
+
+#define CHECK(cmd)                                                                                 \
+    {                                                                                              \
+        hipError_t error = cmd;                                                                    \
+        if (error != hipSuccess) {                                                                 \
+            fprintf(stderr, "error: '%s'(%d) at %s:%d\n", hipGetErrorString(error), error,         \
+                    __FILE__, __LINE__);                                                           \
+            exit(EXIT_FAILURE);                                                                    \
+        }                                                                                          \
+    }
+
+__global__ void bit_extract_kernel(uint32_t* C_d, const uint32_t* A_d, size_t N) {
+    size_t offset = (hipBlockIdx_x * hipBlockDim_x + hipThreadIdx_x);
+    size_t stride = hipBlockDim_x * hipGridDim_x;
+
+    for (size_t i = offset; i < N; i += stride) {
+        C_d[i] = __bitextract_u32(A_d[i], 8, 4);
+    }
+}
+
+
+int main(int argc, char* argv[]) {
+    uint32_t *A_d, *C_d;
+    uint32_t *A_h, *C_h;
+    size_t N = 1000000;
+    size_t Nbytes = N * sizeof(uint32_t);
+
+    int deviceId;
+    CHECK(hipGetDevice(&deviceId));
+    hipDeviceProp_t props;
+    CHECK(hipGetDeviceProperties(&props, deviceId));
+    printf("info: running on device #%d %s\n", deviceId, props.name);
+
+
+    printf("info: allocate host mem (%6.2f MB)\n", 2 * Nbytes / 1024.0 / 1024.0);
+    A_h = (uint32_t*)malloc(Nbytes);
+    CHECK(A_h == 0 ? hipErrorMemoryAllocation : hipSuccess);
+    C_h = (uint32_t*)malloc(Nbytes);
+    CHECK(C_h == 0 ? hipErrorMemoryAllocation : hipSuccess);
+
+    for (size_t i = 0; i < N; i++) {
+        A_h[i] = i;
+    }
+
+    printf("info: allocate device mem (%6.2f MB)\n", 2 * Nbytes / 1024.0 / 1024.0);
+    CHECK(hipMalloc(&A_d, Nbytes));
+    CHECK(hipMalloc(&C_d, Nbytes));
+
+    printf("info: copy Host2Device\n");
+    CHECK(hipMemcpy(A_d, A_h, Nbytes, hipMemcpyHostToDevice));
+
+    printf("info: launch 'bit_extract_kernel' \n");
+    const unsigned blocks = 512;
+    const unsigned threadsPerBlock = 256;
+    hipLaunchKernelGGL(bit_extract_kernel, dim3(blocks), dim3(threadsPerBlock), 0, 0, C_d, A_d, N);
+
+    printf("info: copy Device2Host\n");
+    CHECK(hipMemcpy(C_h, C_d, Nbytes, hipMemcpyDeviceToHost));
+
+    printf("info: check result\n");
+    for (size_t i = 0; i < N; i++) {
+        unsigned Agold = ((A_h[i] & 0xf00) >> 8);
+        if (C_h[i] != Agold) {
+            fprintf(stderr, "mismatch detected.\n");
+            printf("%zu: %08x =? %08x (Ain=%08x)\n", i, C_h[i], Agold, A_h[i]);
+            CHECK(hipErrorUnknown);
+        }
+    }
+    printf("PASSED!\n");
+}
diff --git a/gdb/testsuite/gdb.rocm/bit_extract_compile.exp b/gdb/testsuite/gdb.rocm/bit_extract_compile.exp
new file mode 100644 (file)
index 0000000..7314e82
--- /dev/null
@@ -0,0 +1,71 @@
+# Copyright 2019-2020 Free Software Foundation, Inc.
+# Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+load_lib rocm.exp
+
+set testfile "bit_extract_compile"
+set srcfile ${srcdir}/${subdir}/${testfile}.cpp
+set objfile [standard_output_file ${testfile}.o]
+set binfile [standard_output_file ${testfile}]
+
+# Set device info
+set ISA "vega10"
+
+# Check if skip hip tests
+if [skip_hipcc_tests] {
+    verbose "Skipping hip test: ${testfile}."
+    return 0
+}
+
+# Compile the hip program
+if {[prepare_for_testing "failed to prepare ${testfile}" $testfile $srcfile {debug hip}]} {
+    return -1
+}
+
+gdb_exit
+gdb_start
+
+# Load the hip program
+if {[gdb_load ${binfile}] == -1} {
+    verbose "failed to load program ${testfile}."
+    return -1
+}
+
+# Run to main and break
+if ![runto_main] {
+    fail "can't run to main and break in program ${testfile}."
+    return -1
+}
+
+# Set breakpoing in device code
+gdb_breakpoint "bit_extract_kernel" "allow-pending"
+gdb_continue_to_breakpoint "bit_extract_kernel"
+
+# Check info agents
+# vega10 56 sample output "1  43:00.0  vega10      4              56            4       10"
+gdb_test_sequence "info agents" "info agents" {
+    {Id\s+PCI Slot\s+Device Name\s+Shader Engines\s+Compute Units\s+SIMD/CU\s+Wavefronts/SIMD}
+    {\d\s+\d+:\d+\.\d\s+\w+\d+\s+\d+\s+\d+\s+\d+\s+\d}
+}
+
+# Check continue at device breakpoint in all-stop mode
+gdb_test "c" ".+hit\\s+Breakpoint.+bit_extract_kernel\\(.*"
+
+# Check info threads
+gdb_test_sequence "info threads" "info threads" {
+    "\\d+\\s+Thread"
+}
+
+gdb_exit
diff --git a/gdb/testsuite/gdb.rocm/devicecode_breakpoint_test.exp b/gdb/testsuite/gdb.rocm/devicecode_breakpoint_test.exp
new file mode 100644 (file)
index 0000000..d804a0e
--- /dev/null
@@ -0,0 +1,175 @@
+# Copyright (C) 2019-2020 Free Software Foundation, Inc.
+# Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+load_lib rocm.exp
+
+set testfile "bit_extract_compile"
+set srcfile ${srcdir}/${subdir}/${testfile}.cpp
+set objfile [standard_output_file ${testfile}.o]
+set binfile [standard_output_file ${testfile}]
+
+set breakpoint_loc 35
+set wave_id {(0,0,0)/2}
+set rocm_threadno {1.3}
+set threadid {7}
+
+# Check if skip hip tests
+if [skip_hipcc_tests] {
+    verbose "Skipping hip test: ${testfile}."
+    return 0
+}
+
+# Compile the hip program
+if {[prepare_for_testing "failed to prepare ${testfile}" $testfile $srcfile {debug hip}]} {
+    return -1
+}
+
+gdb_start
+
+# Load the hip program
+if {[gdb_load ${binfile}] == -1} {
+    verbose "failed to load program ${testfile}."
+    return -1
+}
+
+# Run to main and break
+if ![runto_main] {
+    fail "can't run to main and break in program ${testfile}."
+    return -1
+}
+
+#TEST1
+#break <device_function_name>
+#break bit_extract_kernel
+# Set breakpoing in device code
+gdb_breakpoint "bit_extract_kernel" "allow-pending"
+
+# Do continue to check the breakpoint is created at device
+gdb_test "c" {.+hit\sBreakpoint\s[\d].+\sbit_extract_kernel\s\(.*\)\sat.*}
+
+clean_restart ${binfile}
+
+
+#TEST2
+#tbreak <device_function_name>
+#tbreak bit_extract_kernel
+gdb_breakpoint "bit_extract_kernel" "allow-pending" "temporary"
+gdb_test "run" {.+hit\sTemporary\sbreakpoint\s[\d].+\sbit_extract_kernel\s\(.*\)\sat.*}
+#controlling the timeout of the test as continue on device thread taking around 20-30s
+set timeout 30
+gdb_test "continue" {.+Inferior\s[\d].+\sexited\snormally.+}
+
+clean_restart ${binfile}
+
+#TEST3
+#break <file>:<lineNO>
+#e.g. break bit_extract_compile:35
+gdb_test "break $srcfile:$breakpoint_loc" "Breakpoint .* at .*${testfile}.*"
+gdb_test "run" {.+hit\sBreakpoint\s[\d].+\sbit_extract_kernel\s\(.*\)\sat.*}
+
+clean_restart ${binfile}
+
+#TEST4
+#break <lineNo>
+#e.g break 35
+gdb_test "break $breakpoint_loc" "Breakpoint .* at .*${testfile}.*"
+gdb_test "run" {.+hit\sBreakpoint\s[\d].+\sbit_extract_kernel\s\(.*\)\sat.*}
+
+clean_restart ${binfile}
+
+#Code to fetch threadno and corresponding wave_id
+#Set breakpoing in device code
+gdb_breakpoint "bit_extract_kernel" "allow-pending"
+gdb_test "run" {.+hit\sBreakpoint\s\d+.+\sbit_extract_kernel\s\(.*\)\sat.*}
+send_gdb "info threads\n"
+gdb_expect -re  "\\s+(\\d+)\\s+ROCm Thread\\s+(\\d+\.\\d+)\\s+(\\(\\d+,\\d+,\\d+\\)/\\d+).*$gdb_prompt $" {
+  set threadid "$expect_out(1,string)"
+  set rocm_threadno "$expect_out(2,string)"
+  set wave_id  "$expect_out(3,string)"
+}
+
+verbose $rocm_threadno
+verbose $threadid
+verbose $wave_id
+regsub -all {[]*+.|()^$\[\\]} $wave_id {\\&} wave_id_re
+verbose $wave_id_re
+
+clean_restart ${binfile}
+
+set timeout 40
+#TEST5
+#break <file>:<lineNO> <device thread condition>
+#e.g. break bit_extract_compile:35 if $_thread==<threadno>
+gdb_test "break $srcfile:$breakpoint_loc if \$_thread==$threadid" "Breakpoint .* at .*${testfile}.*"
+gdb_test "run" ".+Thread.+$threadid.+hit.+Breakpoint.+${testfile}.cpp:$breakpoint_loc.*"
+gdb_test "continue" {.+Inferior\s[\d].+\sexited\snormally.+}
+
+
+clean_restart ${binfile}
+#TEST6
+#break <file>:<lineNO> <device thread condition>
+#e.g. break bit_extract_compile:35 if $_streq($_wave_id,(0,0,1)/2)
+gdb_test "break $srcfile:$breakpoint_loc if \$_streq(\$_wave_id,\"$wave_id\")" "Breakpoint .* at .*${testfile}.*"
+gdb_test "run" ".+$wave_id_re.+Thread.+hit.+Breakpoint.+${testfile}.cpp:$breakpoint_loc.*"
+gdb_test "continue" {.+Inferior\s[\d].+\sexited\snormally.+}
+
+
+
+clean_restart ${binfile}
+
+#TEST7
+#enable\disable the breakpoint in device thread
+#break <device_function_name>
+#break bit_extract_kernel
+#run //to hit the breakpoint in device thread
+#disable <breakpoint no>
+#continue //to exit inferior normally
+#run //to check that test running without hitting any breakpoint as it disabled
+#enable <breakpoint no>
+##run //to hit the breakpoint in device thread after enabling the breakpoint
+
+# Set breakpoing in device code
+gdb_breakpoint "bit_extract_kernel" "allow-pending"
+
+# Do continue to check the breakpoint is created at device
+gdb_test "run" {.+hit\sBreakpoint\s[\d].+\sbit_extract_kernel\s\(.*\)\sat.*}
+gdb_test "disable 1"
+gdb_test "continue" {.+Inferior\s[\d].+\sexited\snormally.+}
+gdb_test "run" {.+Inferior\s[\d].+\sexited\snormally.+}
+gdb_test "enable 1"
+gdb_test "run" {.+hit\sBreakpoint\s[\d].+\sbit_extract_kernel\s\(.*\)\sat.*}
+
+clean_restart ${binfile}
+
+#TEST8
+#clear the breakpoint in device thread
+#break <file>:<lineNO>
+#e.g. break bit_extract_compile:35
+gdb_test "break $srcfile:$breakpoint_loc" "Breakpoint .* at .*${testfile}.*"
+gdb_test "run" {.+hit\sBreakpoint\s[\d].+\sbit_extract_kernel\s\(.*\)\sat.*}
+gdb_test "continue" {.+hit\sBreakpoint\s[\d].+\sbit_extract_kernel\s\(.*\)\sat.*}
+gdb_test "clear $breakpoint_loc"
+gdb_test "continue" {.+Inferior\s[\d].+\sexited\snormally.+}
+
+
+
+
+gdb_exit
+
+
+
+
+
+
index 62cc7e68a55873f75ad442544117a2772f7dafd1..c788960ed6321b5477af30f5a002bc1081320806 100644 (file)
@@ -1,4 +1,5 @@
 # Copyright 2004-2020 Free Software Foundation, Inc.
+# Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -121,6 +122,19 @@ proc gdb_find_rustc {} {
     return $rustc
 }
 
+proc gdb_find_hipcc {} {
+    global tool_root_dir
+    if {![is_remote host]} {
+       set hipcc [lookfor_file $tool_root_dir hipcc]
+       if {$hipcc == ""} {
+           set hipcc [lookfor_file /opt/rocm/bin hipcc]
+       }
+    } else {
+       set hipcc ""
+    }
+    return $hipcc
+}
+
 proc gdb_find_ldd {} {
     global LDD_FOR_TARGET
     if [info exists LDD_FOR_TARGET] {
@@ -300,6 +314,18 @@ proc gdb_default_target_compile {source destfile type options} {
            }
        }
 
+       if { $i == "hip" } {
+           set compiler_type "hip"
+           if {[board_info $dest exists hipflags]} {
+               append add_flags " [target_info hipflags]"
+           }
+           if {[board_info $dest exists hipcompiler]} {
+               set compiler [target_info hipcompiler]
+           } else {
+               set compiler [find_hipcc]
+           }
+       }
+
        if {[regexp "^dest=" $i]} {
            regsub "^dest=" $i "" tmp
            if {[board_info $tmp exists name]} {
@@ -363,6 +389,7 @@ proc gdb_default_target_compile {source destfile type options} {
     global GO_FOR_TARGET
     global GO_LD_FOR_TARGET
     global RUSTC_FOR_TARGET
+    global HIPCC_FOR_TARGET
 
     if {[info exists GNATMAKE_FOR_TARGET]} {
        if { $compiler_type == "ada" } {
@@ -415,6 +442,12 @@ proc gdb_default_target_compile {source destfile type options} {
        }
     }
 
+    if {[info exists HIPCC_FOR_TARGET]} {
+       if {$compiler_type == "hip"} {
+           set compiler $HIPCC_FOR_TARGET
+       }
+    }
+
     if { $type == "executable" && $linker != "" } {
        set compiler $linker
     }
@@ -659,6 +692,11 @@ if {[info procs find_rustc] == ""} {
     set use_gdb_compile 1
 }
 
+if {[info procs find_hipcc] == ""} {
+    rename gdb_find_hipcc find_hipcc
+    set use_gdb_compile 1
+}
+
 if {$use_gdb_compile} {
     catch {rename default_target_compile {}}
     rename gdb_default_target_compile default_target_compile
diff --git a/gdb/testsuite/lib/rocm.exp b/gdb/testsuite/lib/rocm.exp
new file mode 100644 (file)
index 0000000..0920429
--- /dev/null
@@ -0,0 +1,24 @@
+# Copyright 2019-2020 Free Software Foundation, Inc.
+# Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+# Contributed by Ken Werner <ken.werner@de.ibm.com>.
+#
+# Support library for testing ROCm GDB features
+
+proc skip_hipcc_tests { } {
+    return 0
+}
+
index af128b08f54f73575d567e7c19a6ad60311ca746..e2ff28edac7672432cb1c66ffedd4a954feeaf86 100644 (file)
@@ -1,6 +1,7 @@
 /* UI_FILE - a generic STDIO like output stream.
 
    Copyright (C) 1999-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    This file is part of GDB.
 
diff --git a/include/elf/amdgcn.h b/include/elf/amdgcn.h
new file mode 100644 (file)
index 0000000..048b703
--- /dev/null
@@ -0,0 +1,153 @@
+/* AMDGCN ELF support for BFD.
+
+   Copyright (C) 2019-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+   This file is part of BFD, the Binary File Descriptor library.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
+#ifndef _ELF_AMDGCN_H
+#define _ELF_AMDGCN_H
+
+#include "elf/reloc-macros.h"
+
+/* Bits in the e_flags field of the Elf64_Ehdr:  */
+
+#define EF_AMDGPU_MACH      0x0ff /* Processor selection mask for EF_AMDGPU_MACH_* values. */
+#define EF_AMDGPU_MACH_NONE 0x000 /* Not specified processor */
+
+/* R600-based processors. */
+
+/* Radeon HD 2000/3000 Series (R600). */
+#define EF_AMDGPU_MACH_R600_R600  0x001
+#define EF_AMDGPU_MACH_R600_R630  0x002
+#define EF_AMDGPU_MACH_R600_RS880 0x003
+#define EF_AMDGPU_MACH_R600_RV670 0x004
+/* Radeon HD 4000 Series (R700). */
+#define EF_AMDGPU_MACH_R600_RV710 0x005
+#define EF_AMDGPU_MACH_R600_RV730 0x006
+#define EF_AMDGPU_MACH_R600_RV770 0x007
+/* Radeon HD 5000 Series (Evergreen). */
+#define EF_AMDGPU_MACH_R600_CEDAR   0x008
+#define EF_AMDGPU_MACH_R600_CYPRESS 0x009
+#define EF_AMDGPU_MACH_R600_JUNIPER 0x00a
+#define EF_AMDGPU_MACH_R600_REDWOOD 0x00b
+#define EF_AMDGPU_MACH_R600_SUMO 0x00c
+/* Radeon HD 6000 Series (Northern Islands). */
+#define EF_AMDGPU_MACH_R600_BARTS  0x00d
+#define EF_AMDGPU_MACH_R600_CAICOS 0x00e
+#define EF_AMDGPU_MACH_R600_CAYMAN 0x00f
+#define EF_AMDGPU_MACH_R600_TURKS  0x010
+
+/* Reserved for R600-based processors. */
+#define EF_AMDGPU_MACH_R600_RESERVED_FIRST 0x011
+#define EF_AMDGPU_MACH_R600_RESERVED_LAST  0x01f
+
+/* First/last R600-based processors. */
+#define EF_AMDGPU_MACH_R600_FIRST EF_AMDGPU_MACH_R600_R600
+#define EF_AMDGPU_MACH_R600_LAST EF_AMDGPU_MACH_R600_TURKS
+
+/* AMDGCN-based processors. */
+
+/* AMDGCN GFX6. */
+#define EF_AMDGPU_MACH_AMDGCN_GFX600 0x020
+#define EF_AMDGPU_MACH_AMDGCN_GFX601 0x021
+/* AMDGCN GFX7. */
+#define EF_AMDGPU_MACH_AMDGCN_GFX700 0x022
+#define EF_AMDGPU_MACH_AMDGCN_GFX701 0x023
+#define EF_AMDGPU_MACH_AMDGCN_GFX702 0x024
+#define EF_AMDGPU_MACH_AMDGCN_GFX703 0x025
+#define EF_AMDGPU_MACH_AMDGCN_GFX704 0x026
+/* AMDGCN GFX8. */
+#define EF_AMDGPU_MACH_AMDGCN_GFX801 0x028
+#define EF_AMDGPU_MACH_AMDGCN_GFX802 0x029
+#define EF_AMDGPU_MACH_AMDGCN_GFX803 0x02a
+#define EF_AMDGPU_MACH_AMDGCN_GFX810 0x02b
+/* AMDGCN GFX9. */
+#define EF_AMDGPU_MACH_AMDGCN_GFX900 0x02c
+#define EF_AMDGPU_MACH_AMDGCN_GFX902 0x02d
+#define EF_AMDGPU_MACH_AMDGCN_GFX904 0x02e
+#define EF_AMDGPU_MACH_AMDGCN_GFX906 0x02f
+#define EF_AMDGPU_MACH_AMDGCN_GFX908 0x030
+#define EF_AMDGPU_MACH_AMDGCN_GFX909 0x031
+
+/* Reserved for AMDGCN-based processors. */
+#define EF_AMDGPU_MACH_AMDGCN_RESERVED0 0x027
+#define EF_AMDGPU_MACH_AMDGCN_RESERVED1 0x030
+
+/* First/last AMDGCN-based processors. */
+#define EF_AMDGPU_MACH_AMDGCN_FIRST EF_AMDGPU_MACH_AMDGCN_GFX600
+#define EF_AMDGPU_MACH_AMDGCN_LAST EF_AMDGPU_MACH_AMDGCN_GFX909
+
+/* Indicates if the "xnack" target feature is enabled for all code contained */
+/* in the object. */
+#define EF_AMDGPU_XNACK 0x100
+/* Indicates if the "sram-ecc" target feature is enabled for all code */
+/* contained in the object. */
+#define EF_AMDGPU_SRAM_ECC 0x200
+
+
+/* Additional symbol types for AMDGCN.  */
+
+#define STT_AMDGPU_HSA_KERNEL 10 /* Symbol is a kernel descriptor */
+
+
+/* Note segments. */
+
+#define NT_AMDGPU_HSA_RESERVED_0          0
+#define NT_AMDGPU_HSA_CODE_OBJECT_VERSION 1
+#define NT_AMDGPU_HSA_HSAIL               2
+#define NT_AMDGPU_HSA_ISA                 3
+#define NT_AMDGPU_HSA_PRODUCER            4
+#define NT_AMDGPU_HSA_PRODUCER_OPTIONS    5
+#define NT_AMDGPU_HSA_EXTENSION           6
+#define NT_AMDGPU_HSA_RESERVED_7          7
+#define NT_AMDGPU_HSA_RESERVED_8          8
+#define NT_AMDGPU_HSA_RESERVED_9          9
+
+/* Code Object V2. */
+/* Note types with values between 0 and 9 (inclusive) are reserved. */
+#define NT_AMDGPU_HSA_METADATA            10
+#define NT_AMDGPU_ISA                     11
+#define NT_AMDGPU_PAL_METADATA            12
+
+/* Code Object V3. */
+/* Note types with values between 0 and 31 (inclusive) are reserved. */
+#define NT_AMDGPU_METADATA                32
+
+/* Other */
+#define NT_AMDGPU_HSA_HLDEBUG_DEBUG       101
+#define NT_AMDGPU_HSA_HLDEBUG_TARGET      102
+
+/* Relocation types.  */
+
+START_RELOC_NUMBERS (elf_amdgcn_reloc_type)
+ RELOC_NUMBER (R_AMDGPU_NONE,           0)
+ RELOC_NUMBER (R_AMDGPU_ABS32_LO,       1)
+ RELOC_NUMBER (R_AMDGPU_ABS32_HI,       2)
+ RELOC_NUMBER (R_AMDGPU_ABS64,          3)
+ RELOC_NUMBER (R_AMDGPU_REL32,          4)
+ RELOC_NUMBER (R_AMDGPU_REL64,          5)
+ RELOC_NUMBER (R_AMDGPU_ABS32,          6)
+ RELOC_NUMBER (R_AMDGPU_GOTPCREL,       7)
+ RELOC_NUMBER (R_AMDGPU_GOTPCREL32_LO,  8)
+ RELOC_NUMBER (R_AMDGPU_GOTPCREL32_HI,  9)
+ RELOC_NUMBER (R_AMDGPU_REL32_LO,      10)
+ RELOC_NUMBER (R_AMDGPU_REL32_HI,      11)
+ RELOC_NUMBER (R_AMDGPU_RELATIVE64,    13)
+END_RELOC_NUMBERS (R_AMDGPU_max)
+
+
+#endif /* _ELF_AMDGCN_H */
index 53b72445cafd079c16e7742ab4a72e6d2a2b68d3..7ea62ee124fd2eec57e29218a0c7e1587e8f9964 100644 (file)
@@ -1,5 +1,6 @@
 /* ELF support for BFD.
    Copyright (C) 1991-2020 Free Software Foundation, Inc.
+   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 
    Written by Fred Fish @ Cygnus Support, from information published
    in "UNIX System V Release 4, Programmers Guide: ANSI C and
@@ -77,6 +78,7 @@
 #define ELFOSABI_OPENVOS     18 /* Stratus Technologies OpenVOS */
 
 #define ELFOSABI_C6000_ELFABI 64 /* Bare-metal TMS320C6000 */
+#define ELFOSABI_AMDGPU_HSA  64 /* AMD HSA runtime */
 #define ELFOSABI_C6000_LINUX 65 /* Linux TMS320C6000 */
 #define ELFOSABI_ARM_FDPIC   65 /* ARM FDPIC */
 #define ELFOSABI_ARM        97 /* ARM */
index 5903fe4fa5fa853e12e46a2527bdb10d7b689baa..9e4a56f73061fffcba6a73bf6d56070aac6d2a9d 100755 (executable)
@@ -4,6 +4,7 @@
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+# Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 #
 #
 # This configure script is free software; the Free Software Foundation
@@ -12866,6 +12867,7 @@ if test x${all_targets} = xfalse ; then
        case "$arch" in
        bfd_aarch64_arch)       ta="$ta aarch64-asm.lo aarch64-dis.lo aarch64-opc.lo aarch64-asm-2.lo aarch64-dis-2.lo aarch64-opc-2.lo" ;;
        bfd_alpha_arch)         ta="$ta alpha-dis.lo alpha-opc.lo" ;;
+       bfd_amdgcn_arch)        ;;
        bfd_arc_arch)           ta="$ta arc-dis.lo arc-opc.lo arc-ext.lo" ;;
        bfd_arm_arch)           ta="$ta arm-dis.lo" ;;
        bfd_avr_arch)           ta="$ta avr-dis.lo" ;;
index 00be9c88be07ad841db2c30857cc128a46c90511..02d5d69719ba4c06f7919347fb3d8ba89795fd41 100644 (file)
@@ -1,6 +1,7 @@
 dnl Process this file with autoconf to produce a configure script.
 dnl
 dnl   Copyright (C) 2012-2020 Free Software Foundation, Inc.
+dnl   Copyright (C) 2019-2020 Advanced Micro Devices, Inc. All rights reserved.
 dnl
 dnl This file is free software; you can redistribute it and/or modify
 dnl it under the terms of the GNU General Public License as published by
@@ -257,6 +258,7 @@ if test x${all_targets} = xfalse ; then
        case "$arch" in
        bfd_aarch64_arch)       ta="$ta aarch64-asm.lo aarch64-dis.lo aarch64-opc.lo aarch64-asm-2.lo aarch64-dis-2.lo aarch64-opc-2.lo" ;;
        bfd_alpha_arch)         ta="$ta alpha-dis.lo alpha-opc.lo" ;;
+       bfd_amdgcn_arch)        ;;
        bfd_arc_arch)           ta="$ta arc-dis.lo arc-opc.lo arc-ext.lo" ;;
        bfd_arm_arch)           ta="$ta arm-dis.lo" ;;
        bfd_avr_arch)           ta="$ta avr-dis.lo" ;;
This page took 0.351805 seconds and 4 git commands to generate.