[clang] 2d7df31 - Revert "[InstallAPI] Add --extra* and --exclude* cli options for header input (#86522)"

Cyndy Ishida via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 25 12:50:57 PDT 2024


Author: Cyndy Ishida
Date: 2024-03-25T15:50:46-04:00
New Revision: 2d7df3167b12e3f3330a6b6e2f83715f8bbad67e

URL: https://github.com/llvm/llvm-project/commit/2d7df3167b12e3f3330a6b6e2f83715f8bbad67e
DIFF: https://github.com/llvm/llvm-project/commit/2d7df3167b12e3f3330a6b6e2f83715f8bbad67e.diff

LOG: Revert "[InstallAPI] Add --extra* and --exclude* cli options for header input (#86522)"

This reverts commit b7d8c6188986f62573b9516fe27fdd0c7df1aaf9. And
This reverts commit 2d40f179124f874aca4cf1145fdbc42fb8fb17f3.

It caused a build failure i'll need to reproduce.
` error: could not convert ‘Rule’ from ‘llvm::Regex’ to ‘llvm::Expected<llvm::Regex>’`

Added: 
    

Modified: 
    clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
    clang/include/clang/InstallAPI/HeaderFile.h
    clang/include/clang/InstallAPI/MachO.h
    clang/lib/InstallAPI/Frontend.cpp
    clang/lib/InstallAPI/HeaderFile.cpp
    clang/tools/clang-installapi/InstallAPIOpts.td
    clang/tools/clang-installapi/Options.cpp
    clang/tools/clang-installapi/Options.h
    llvm/include/llvm/TextAPI/Utils.h
    llvm/lib/TextAPI/Utils.cpp

Removed: 
    clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI1.h
    clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI2.h
    clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Basic.h
    clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/External.h
    clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Simple.h
    clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/SimpleAPI.h
    clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivate.h
    clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivateSPI.h
    clang/test/InstallAPI/Inputs/Simple/Simple.yaml
    clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI.h
    clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI2.h
    clang/test/InstallAPI/Inputs/Simple/SimpleInternalSPI.h
    clang/test/InstallAPI/extra-exclude-headers.test


################################################################################
diff  --git a/clang/include/clang/Basic/DiagnosticInstallAPIKinds.td b/clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
index 27df731fa28627..a4c6e630ac5fd8 100644
--- a/clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
+++ b/clang/include/clang/Basic/DiagnosticInstallAPIKinds.td
@@ -15,9 +15,6 @@ let CategoryName = "Command line" in {
 def err_cannot_write_file : Error<"cannot write file '%0': %1">;
 def err_no_install_name : Error<"no install name specified: add -install_name <path>">;
 def err_no_output_file: Error<"no output file specified">;
-def err_no_such_header_file : Error<"no such %select{public|private|project}1 header file: '%0'">;
-def warn_no_such_excluded_header_file : Warning<"no such excluded %select{public|private}0 header file: '%1'">, InGroup<InstallAPIViolation>;
-def warn_glob_did_not_match: Warning<"glob '%0' did not match any header file">, InGroup<InstallAPIViolation>;
 } // end of command line category.
 
 let CategoryName = "Verification" in {

diff  --git a/clang/include/clang/InstallAPI/HeaderFile.h b/clang/include/clang/InstallAPI/HeaderFile.h
index 235b4da3add840..70e83bbb3e76f6 100644
--- a/clang/include/clang/InstallAPI/HeaderFile.h
+++ b/clang/include/clang/InstallAPI/HeaderFile.h
@@ -13,9 +13,7 @@
 #ifndef LLVM_CLANG_INSTALLAPI_HEADERFILE_H
 #define LLVM_CLANG_INSTALLAPI_HEADERFILE_H
 
-#include "clang/Basic/FileManager.h"
 #include "clang/Basic/LangStandard.h"
-#include "clang/InstallAPI/MachO.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/ErrorHandling.h"
 #include "llvm/Support/Regex.h"
@@ -58,10 +56,6 @@ class HeaderFile {
   std::string IncludeName;
   /// Supported language mode for header.
   std::optional<clang::Language> Language;
-  /// Exclude header file from processing.
-  bool Excluded{false};
-  /// Add header file to processing.
-  bool Extra{false};
 
 public:
   HeaderFile() = delete;
@@ -77,48 +71,17 @@ class HeaderFile {
   StringRef getIncludeName() const { return IncludeName; }
   StringRef getPath() const { return FullPath; }
 
-  void setExtra(bool V = true) { Extra = V; }
-  void setExcluded(bool V = true) { Excluded = V; }
-  bool isExtra() const { return Extra; }
-  bool isExcluded() const { return Excluded; }
-
   bool useIncludeName() const {
     return Type != HeaderType::Project && !IncludeName.empty();
   }
 
   bool operator==(const HeaderFile &Other) const {
-    return std::tie(Type, FullPath, IncludeName, Language, Excluded, Extra) ==
+    return std::tie(Type, FullPath, IncludeName, Language) ==
            std::tie(Other.Type, Other.FullPath, Other.IncludeName,
-                    Other.Language, Other.Excluded, Other.Extra);
+                    Other.Language);
   }
 };
 
-/// Glob that represents a pattern of header files to retreive.
-class HeaderGlob {
-private:
-  std::string GlobString;
-  llvm::Regex Rule;
-  HeaderType Type;
-  bool FoundMatch{false};
-
-public:
-  HeaderGlob(StringRef GlobString, llvm::Regex &&, HeaderType Type);
-
-  /// Create a header glob from string for the header access level.
-  static llvm::Expected<std::unique_ptr<HeaderGlob>>
-  create(StringRef GlobString, HeaderType Type);
-
-  /// Query if provided header matches glob.
-  bool match(const HeaderFile &Header);
-
-  /// Query if a header was matched in the glob, used primarily for error
-  /// reporting.
-  bool didMatch() { return FoundMatch; }
-
-  /// Provide back input glob string.
-  StringRef str() { return GlobString; }
-};
-
 /// Assemble expected way header will be included by clients.
 /// As in what maps inside the brackets of `#include <IncludeName.h>`
 /// For example,
@@ -130,19 +93,6 @@ class HeaderGlob {
 std::optional<std::string> createIncludeHeaderName(const StringRef FullPath);
 using HeaderSeq = std::vector<HeaderFile>;
 
-/// Determine if Path is a header file.
-/// It does not touch the file system.
-///
-/// \param  Path File path to file.
-bool isHeaderFile(StringRef Path);
-
-/// Given input directory, collect all header files.
-///
-/// \param FM FileManager for finding input files.
-/// \param Directory Path to directory file.
-llvm::Expected<PathSeq> enumerateFiles(clang::FileManager &FM,
-                                       StringRef Directory);
-
 } // namespace clang::installapi
 
 #endif // LLVM_CLANG_INSTALLAPI_HEADERFILE_H

diff  --git a/clang/include/clang/InstallAPI/MachO.h b/clang/include/clang/InstallAPI/MachO.h
index 4961c596fd68ae..f0dea8bbd24ccd 100644
--- a/clang/include/clang/InstallAPI/MachO.h
+++ b/clang/include/clang/InstallAPI/MachO.h
@@ -40,7 +40,6 @@ using SymbolSet = llvm::MachO::SymbolSet;
 using SimpleSymbol = llvm::MachO::SimpleSymbol;
 using FileType = llvm::MachO::FileType;
 using PackedVersion = llvm::MachO::PackedVersion;
-using PathSeq = llvm::MachO::PathSeq;
 using Target = llvm::MachO::Target;
 using TargetList = llvm::MachO::TargetList;
 

diff  --git a/clang/lib/InstallAPI/Frontend.cpp b/clang/lib/InstallAPI/Frontend.cpp
index e07ccb14e0b80a..12cd5fcbc22bf7 100644
--- a/clang/lib/InstallAPI/Frontend.cpp
+++ b/clang/lib/InstallAPI/Frontend.cpp
@@ -138,8 +138,6 @@ std::unique_ptr<MemoryBuffer> createInputBuffer(InstallAPIContext &Ctx) {
   SmallString<4096> Contents;
   raw_svector_ostream OS(Contents);
   for (const HeaderFile &H : Ctx.InputHeaders) {
-    if (H.isExcluded())
-      continue;
     if (H.getType() != Ctx.Type)
       continue;
     if (Ctx.LangMode == Language::C || Ctx.LangMode == Language::CXX)

diff  --git a/clang/lib/InstallAPI/HeaderFile.cpp b/clang/lib/InstallAPI/HeaderFile.cpp
index 0b7041ec8147eb..c2d8372741ee07 100644
--- a/clang/lib/InstallAPI/HeaderFile.cpp
+++ b/clang/lib/InstallAPI/HeaderFile.cpp
@@ -7,7 +7,6 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/InstallAPI/HeaderFile.h"
-#include "llvm/TextAPI/Utils.h"
 
 using namespace llvm;
 namespace clang::installapi {
@@ -35,54 +34,4 @@ std::optional<std::string> createIncludeHeaderName(const StringRef FullPath) {
   return Matches[1].drop_front(Matches[1].rfind('/') + 1).str() + "/" +
          Matches[3].str();
 }
-
-bool isHeaderFile(StringRef Path) {
-  return StringSwitch<bool>(sys::path::extension(Path))
-      .Cases(".h", ".H", ".hh", ".hpp", ".hxx", true)
-      .Default(false);
-}
-
-llvm::Expected<PathSeq> enumerateFiles(FileManager &FM, StringRef Directory) {
-  PathSeq Files;
-  std::error_code EC;
-  auto &FS = FM.getVirtualFileSystem();
-  for (llvm::vfs::recursive_directory_iterator i(FS, Directory, EC), ie;
-       i != ie; i.increment(EC)) {
-    if (EC)
-      return errorCodeToError(EC);
-
-    // Skip files that do not exist. This usually happens for broken symlinks.
-    if (FS.status(i->path()) == std::errc::no_such_file_or_directory)
-      continue;
-
-    StringRef Path = i->path();
-    if (isHeaderFile(Path))
-      Files.emplace_back(Path);
-  }
-
-  return Files;
-}
-
-HeaderGlob::HeaderGlob(StringRef GlobString, Regex &&Rule, HeaderType Type)
-    : GlobString(GlobString), Rule(std::move(Rule)), Type(Type) {}
-
-bool HeaderGlob::match(const HeaderFile &Header) {
-  if (Header.getType() != Type)
-    return false;
-
-  bool Match = Rule.match(Header.getPath());
-  if (Match)
-    FoundMatch = true;
-  return Match;
-}
-
-Expected<std::unique_ptr<HeaderGlob>> HeaderGlob::create(StringRef GlobString,
-                                                         HeaderType Type) {
-  auto Rule = MachO::createRegexFromGlob(GlobString);
-  if (!Rule)
-    return Rule.takeError();
-
-  return std::make_unique<HeaderGlob>(GlobString, std::move(*Rule), Type);
-}
-
 } // namespace clang::installapi

diff  --git a/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI1.h b/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI1.h
deleted file mode 100644
index 83a5b9507de307..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI1.h
+++ /dev/null
@@ -1 +0,0 @@
-extern int extraGlobalAPI1;

diff  --git a/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI2.h b/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI2.h
deleted file mode 100644
index 34fe3364bba84e..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Extra/SimpleExtraAPI2.h
+++ /dev/null
@@ -1 +0,0 @@
-extern int extraGlobalAPI2;

diff  --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Basic.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Basic.h
deleted file mode 100644
index 08412bb2de2838..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Basic.h
+++ /dev/null
@@ -1,103 +0,0 @@
-#import <Foundation/Foundation.h>
-
-// Basic class with no super class
- at interface Basic1
- at end
-
- at interface Basic2 : NSObject
- at end
-
- at interface Basic3 : NSObject
- at property BOOL property1;
- at property(readonly) BOOL property2;
- at property(getter=isProperty3) BOOL property3;
- at property BOOL dynamicProp;
- at end
-
- at interface Basic4 : NSObject {
- at public
-  BOOL ivar1;
- at protected
-  BOOL ivar2;
- at package
-  BOOL ivar3;
- at private
-  BOOL ivar4;
-}
- at end
-
-__attribute__((visibility("hidden"))) @interface Basic4_1 : NSObject {
- at public
-  BOOL ivar1;
- at protected
-  BOOL ivar2;
- at package
-  BOOL ivar3;
- at private
-  BOOL ivar4;
-}
- at end
-
- at interface Basic4_2 : NSObject {
- at private
-  BOOL ivar4;
- at package
-  BOOL ivar3;
- at protected
-  BOOL ivar2;
- at public
-  BOOL ivar1;
-}
- at end
-
- at interface Basic5 : NSObject
-+ (void)aClassMethod;
-- (void)anInstanceMethod;
- at end
-
- at interface Basic6 : NSObject
- at end
-
- at interface Basic6 () {
- at public
-  BOOL ivar1;
-}
- at property BOOL property1;
-- (void)anInstanceMethodFromAnExtension;
- at end
-
- at interface Basic6 (Foo)
- at property BOOL property2;
-- (void)anInstanceMethodFromACategory;
- at end
-
-__attribute__((visibility("hidden")))
- at interface Basic7 : NSObject
- at end
-
- at interface Basic7 ()
-- (void) anInstanceMethodFromAnHiddenExtension;
- at end
-
- at interface Basic8 : NSObject
-+ (void)useSameName;
- at end
-
-// Classes and protocols can have the same name. For now they would only clash
-// in the selector map if the protocl starts with '_'.
- at protocol _A
-- (void)aMethod;
- at end
-
- at interface A : NSObject
-- (void)aMethod NS_AVAILABLE(10_11, 9_0);
-- (void)bMethod NS_UNAVAILABLE;
- at end
-
- at interface Basic9 : NSObject
- at property(readonly) BOOL aProperty NS_AVAILABLE(10_10, 8_0);
- at end
-
- at interface Basic9 (deprecated)
- at property(readwrite) BOOL aProperty NS_DEPRECATED_MAC(10_8, 10_10);
- at end

diff  --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/External.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/External.h
deleted file mode 100644
index 5dc3c92f34c24d..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/External.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#import <Foundation/Foundation.h>
-
-// Sub-class an external defined ObjC Class.
- at interface ExternalManagedObject : NSManagedObject
-- (void)foo;
- at end
-
-// Add category to external defined ObjC Class.
- at interface NSManagedObject (Simple)
-- (int)supportsSimple;
- at end
-
-// CoreData Accessors are dynamically generated and have no implementation.
- at interface ExternalManagedObject (CoreDataGeneratedAccessors)
-- (void)addChildObject:(ExternalManagedObject *)value;
-- (void)removeChildObject:(ExternalManagedObject *)value;
-- (void)addChild:(NSSet *)values;
-- (void)removeChild:(NSSet *)values;
- at end

diff  --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Simple.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Simple.h
deleted file mode 100644
index 12c77098a8d9a7..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/Simple.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#import <Foundation/Foundation.h>
-
-// Useless forward declaration. This is used for testing.
- at class FooBar;
- at protocol FooProtocol;
-
- at protocol ForwardProcotol;
-
-// Test public global.
-extern int publicGlobalVariable;
-
-// Test weak public global.
-extern int weakPublicGlobalVariable __attribute__((weak));
-
-// Test public ObjC class
- at interface Simple : NSObject
- at end
-
-__attribute__((objc_exception))
- at interface Base : NSObject
- at end
-
- at interface SubClass : Base
- at end
-
- at protocol BaseProtocol
-- (void) baseMethod;
- at end
-
-NS_AVAILABLE(10_11, 9_0)
- at protocol FooProtocol <BaseProtocol>
-- (void) protocolMethod;
- at end
-
- at protocol BarProtocol
-- (void) barMethod;
- at end
-
- at interface FooClass <FooProtocol, BarProtocol>
- at end
-
-// Create an empty category conforms to a forward declared protocol.
-// <rdar://problem/35605892>
- at interface FooClass (Test) <ForwardProcotol>
- at end

diff  --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/SimpleAPI.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/SimpleAPI.h
deleted file mode 100644
index d953fac966daf3..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/Headers/SimpleAPI.h
+++ /dev/null
@@ -1 +0,0 @@
-extern int otherFrameworkAPI;

diff  --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivate.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivate.h
deleted file mode 100644
index 5a28cda3928e3d..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivate.h
+++ /dev/null
@@ -1,5 +0,0 @@
-// Test private global variable.
-extern int privateGlobalVariable;
-
-// Test weak private global.
-extern int weakPrivateGlobalVariable __attribute__((weak));

diff  --git a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivateSPI.h b/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivateSPI.h
deleted file mode 100644
index c9aca30fa82fa8..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.framework/PrivateHeaders/SimplePrivateSPI.h
+++ /dev/null
@@ -1,2 +0,0 @@
-// Test private global variable.
-extern int otherFrameworkSPI;

diff  --git a/clang/test/InstallAPI/Inputs/Simple/Simple.yaml b/clang/test/InstallAPI/Inputs/Simple/Simple.yaml
deleted file mode 100644
index 998e51f1a67dcc..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/Simple.yaml
+++ /dev/null
@@ -1,3196 +0,0 @@
---- !mach-o
-FileHeader:
-  magic:           0xFEEDFACF
-  cputype:         0x1000007
-  cpusubtype:      0x3
-  filetype:        0x6
-  ncmds:           15
-  sizeofcmds:      1952
-  flags:           0x118085
-  reserved:        0x0
-LoadCommands:
-  - cmd:             LC_SEGMENT_64
-    cmdsize:         472
-    segname:         __TEXT
-    vmaddr:          0
-    vmsize:          12288
-    fileoff:         0
-    filesize:        12288
-    maxprot:         5
-    initprot:        5
-    nsects:          5
-    flags:           0
-    Sections:
-      - sectname:        __text
-        segname:         __TEXT
-        addr:            0x1BC0
-        size:            180
-        offset:          0x1BC0
-        align:           0
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x80000400
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         554889E50FBE47085DC3554889E58857085DC3554889E50FBE47095DC3554889E50FBE470A5DC3554889E588570A5DC3554889E55DC3554889E55DC3554889E55DC3554889E50FBE47095DC3554889E58857095DC3554889E5B8010000005DC3554889E55DC3554889E55DC3554889E55DC3554889E55DC3554889E5B0015DC3554889E55DC3554889E55DC3554889E55DC3554889E50FBE47085DC3554889E55DC3554889E55DC3554889E55DC3554889E55DC3
-      - sectname:        __cstring
-        segname:         __TEXT
-        addr:            0x1C74
-        size:            296
-        offset:          0x1C74
-        align:           0
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x2
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         53696D706C65004261736500537562436C6173730053696D706C65496E7465726E616C4150490053696D706C65496E7465726E616C53504900426173696331004261736963320042617369633300426173696334004261736963345F31004261736963345F32004261736963350042617369633600466F6F004261736963370045787465726E616C4D616E616765644F626A6563740048696464656E436C61737300426173696338004100426173696339006465707265636174656400466F6F436C61737300466F6F50726F746F636F6C004261736550726F746F636F6C0042617250726F746F636F6C0050726976617465005072697661746550726F746F636F6C0063313640303A380076323040303A3863313600630076313640303A380042313640303A3800
-      - sectname:        __objc_methname
-        segname:         __TEXT
-        addr:            0x1D9C
-        size:            450
-        offset:          0x1D9C
-        align:           0
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x2
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         70726F7065727479310073657450726F7065727479313A0070726F70657274793200697350726F7065727479330073657450726F7065727479333A0070726F7065727479330054632C5670726F7065727479310054632C522C5670726F7065727479320054632C47697350726F7065727479332C5670726F7065727479330064796E616D696350726F700054632C440069766172310069766172320069766172330069766172340061436C6173734D6574686F6400616E496E7374616E63654D6574686F6400616E496E7374616E63654D6574686F6446726F6D416E457874656E73696F6E0073657450726F7065727479323A00616E496E7374616E63654D6574686F6446726F6D4143617465676F727900546300616E496E7374616E63654D6574686F6446726F6D416E48696464656E457874656E73696F6E00666F6F00737570706F72747353696D706C650075736553616D654E616D6500614D6574686F64006150726F7065727479005F6150726F70657274790054632C522C565F6150726F706572747900626173654D6574686F640070726F746F636F6C4D6574686F64006261724D6574686F64007072697661746550726F636F746F6C4D6574686F6400
-      - sectname:        __unwind_info
-        segname:         __TEXT
-        addr:            0x1F60
-        size:            4152
-        offset:          0x1F60
-        align:           2
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x0
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         010000001C000000010000002000000000000000200000000200000000000001C01B00003800000038000000741C00000000000038000000030000000C0001001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-      - sectname:        __eh_frame
-        segname:         __TEXT
-        addr:            0x2F98
-        size:            24
-        offset:          0x2F98
-        align:           3
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x6000000B
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         1400000000000000017A520001781001100C070890010000
-  - cmd:             LC_SEGMENT_64
-    cmdsize:         792
-    segname:         __DATA
-    vmaddr:          12288
-    vmsize:          8192
-    fileoff:         12288
-    filesize:        8192
-    maxprot:         3
-    initprot:        3
-    nsects:          9
-    flags:           0
-    Sections:
-      - sectname:        __objc_const
-        segname:         __DATA
-        addr:            0x3000
-        size:            4952
-        offset:          0x3000
-        align:           3
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x0
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         010000002800000028000000000000000000000000000000741C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000008000000000000000000000000000000741C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000028000000280000000000000000000000000000007B1C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000008000000080000000000000000000000000000007B1C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000007B1C000000000000D043000000000000010000002800000028000000000000000000000000000000801C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000800000008000000000000000000000000000000801C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000801C0000000000002044000000000000010000002800000028000000000000000000000000000000891C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000800000008000000000000000000000000000000891C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000891C00000000000070440000000000000100000028000000280000000000000000000000000000009B1C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000008000000080000000000000000000000000000009B1C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000009B1C000000000000C044000000000000030000002800000028000000000000000000000000000000AD1C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000AD1C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000002800000028000000000000000000000000000000B41C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000008000000000000000000000000000000B41C00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000002800000028000000000000000000000000000000BB1C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018000000050000009C1D000000000000771D000000000000C01B000000000000A61D0000000000007F1D000000000000CA1B000000000000B41D000000000000771D000000000000D31B000000000000BE1D000000000000771D000000000000DD1B000000000000CA1D0000000000007F1D000000000000E71B000000000000200000000300000098490000000000009C1D0000000000008A1D0000000000000000000001000000A049000000000000B41D0000000000008A1D0000000000000000000001000000A849000000000000D81D0000000000008A1D000000000000000000000100000010000000040000009C1D000000000000E21D000000000000B41D000000000000F01D000000000000D81D000000000000001E0000000000001B1E000000000000271E00000000000000000000080000000B000000000000000000000000000000BB1C00000000000098340000000000000000000000000000183500000000000000000000000000008035000000000000010000002800000028000000000000000000000000000000C21C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000004000000B0490000000000002C1E0000000000008A1D0000000000000000000001000000B849000000000000321E0000000000008A1D0000000000000000000001000000C049000000000000381E0000000000008A1D0000000000000000000001000000C8490000000000003E1E0000000000008A1D000000000000000000000100000000000000080000000C000000000000000000000000000000C21C00000000000000000000000000000000000000000000583600000000000000000000000000000000000000000000110000002800000028000000000000000000000000000000C91C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000004000000D0490000000000002C1E0000000000008A1D0000000000000000000001000000D849000000000000321E0000000000008A1D0000000000000000000001000000E049000000000000381E0000000000008A1D0000000000000000000001000000E8490000000000003E1E0000000000008A1D000000000000000000000100000010000000080000000C000000000000000000000000000000C91C00000000000000000000000000000000000000000000703700000000000000000000000000000000000000000000010000002800000028000000000000000000000000000000D21C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000004000000F0490000000000003E1E0000000000008A1D0000000000000000000001000000F849000000000000381E0000000000008A1D0000000000000000000001000000004A000000000000321E0000000000008A1D0000000000000000000001000000084A0000000000002C1E0000000000008A1D000000000000000000000100000000000000080000000C000000000000000000000000000000D21C000000000000000000000000000000000000000000008838000000000000000000000000000000000000000000001800000001000000441E0000000000008C1D000000000000F01B000000000000010000002800000028000000000000000000000000000000DB1C000000000000583900000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000511E0000000000008C1D000000000000F61B000000000000000000000800000008000000000000000000000000000000DB1C000000000000C0390000000000000000000000000000000000000000000000000000000000000000000000000000010000002800000028000000000000000000000000000000E21C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000003000000621E0000000000008C1D000000000000FC1B0000000000009C1D000000000000771D000000000000021C000000000000A61D0000000000007F1D0000000000000C1C0000000000002000000002000000104A0000000000002C1E0000000000008A1D0000000000000000000001000000184A0000000000009C1D0000000000008A1D000000000000000000000100000010000000010000009C1D000000000000E21D00000000000000000000080000000A000000000000000000000000000000E21C000000000000703A0000000000000000000000000000C03A0000000000000000000000000000083B0000000000001800000003000000B41D000000000000771D000000000000151C000000000000821E0000000000007F1D000000000000201C000000000000901E0000000000008C1D000000000000261C0000000000001000000001000000B41D000000000000AE1E000000000000E91C0000000000004047000000000000683B00000000000000000000000000000000000000000000B83B00000000000000000000000000004000000000000000110000002800000028000000000000000000000000000000ED1C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000B11E0000000000008C1D0000000000002C1C000000000000100000000800000008000000000000000000000000000000ED1C000000000000583C0000000000000000000000000000000000000000000000000000000000000000000000000000010000002800000028000000000000000000000000000000F41C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000D71E0000000000008C1D000000000000321C000000000000000000000800000008000000000000000000000000000000F41C000000000000083D00000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000DB1E000000000000941D000000000000381C000000000000741C0000000000000000000000000000703D000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000001100000028000000280000000000000000000000000000000A1D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000008000000080000000000000000000000000000000A1D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000EA1E0000000000008C1D000000000000401C000000000000010000002800000028000000000000000000000000000000161D000000000000603E00000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000EA1E0000000000008C1D000000000000461C000000000000000000000800000008000000000000000000000000000000161D000000000000C83E00000000000000000000000000000000000000000000000000000000000000000000000000000100000028000000280000000000000000000000000000001D1D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000F61E0000000000008C1D0000000000004C1C0000000000000000000008000000080000000000000000000000000000001D1D000000000000783F00000000000000000000000000000000000000000000000000000000000000000000000000000100000028000000280000000000000000000000000000001F1D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001800000001000000FE1E000000000000771D000000000000521C0000000000002000000001000000204A000000000000081F0000000000008A1D00000000000000000000010000001000000001000000FE1E000000000000131F0000000000000000000008000000090000000000000000000000000000001F1D000000000000284000000000000000000000000000004840000000000000000000000000000070400000000000001000000001000000FE1E000000000000AE1E000000000000261D0000000000002049000000000000000000000000000000000000000000000000000000000000D040000000000000000000000000000040000000000000001800000001000000241F0000000000008C1D00000000000000000000000000008C1D0000000000000100000000000000284A000000000000000000000000000018000000010000002F1F0000000000008C1D00000000000000000000000000008C1D00000000000018000000010000003E1F0000000000008C1D00000000000000000000000000008C1D0000000000000200000000000000884A000000000000E84A0000000000000000000000000000030000002800000028000000000000000000000000000000311D0000000000000000000000000000B8410000000000000000000000000000000000000000000000000000000000001800000003000000241F0000000000008C1D0000000000005C1C0000000000002F1F0000000000008C1D000000000000621C0000000000003E1F0000000000008C1D000000000000681C000000000000020000000000000000000000000000000000000000000000311D0000000000002042000000000000B8410000000000000000000000000000000000000000000000000000000000001800000001000000481F0000000000008C1D0000000000006E1C0000000000001800000001000000481F0000000000008C1D00000000000000000000000000008C1D0000000000000100000000000000484B00000000000000000000000000005F1D0000000000004849000000000000B84200000000000000000000000000000043000000000000000000000000000000000000000000004000000000000000
-      - sectname:        __objc_data
-        segname:         __DATA
-        addr:            0x4358
-        size:            1600
-        offset:          0x4358
-        align:           3
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x0
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         000000000000000000000000000000000000000000000000000000000000000000300000000000005843000000000000000000000000000000000000000000000000000000000000483000000000000000000000000000000000000000000000000000000000000000000000000000009030000000000000A843000000000000000000000000000000000000000000000000000000000000D8300000000000000000000000000000A843000000000000000000000000000000000000000000003831000000000000F843000000000000D0430000000000000000000000000000000000000000000080310000000000000000000000000000000000000000000000000000000000000000000000000000E03100000000000048440000000000000000000000000000000000000000000000000000000000002832000000000000000000000000000000000000000000000000000000000000000000000000000088320000000000009844000000000000000000000000000000000000000000000000000000000000D032000000000000104500000000000000000000000000000000000000000000000000000000000078330000000000001045000000000000E8440000000000000000000000000000000000000000000030330000000000000000000000000000000000000000000000000000000000000000000000000000C03300000000000038450000000000000000000000000000000000000000000000000000000000000834000000000000000000000000000000000000000000000000000000000000000000000000000050340000000000008845000000000000000000000000000000000000000000000000000000000000C83500000000000000000000000000000000000000000000000000000000000000000000000000001036000000000000D845000000000000000000000000000000000000000000000000000000000000E036000000000000000000000000000000000000000000000000000000000000000000000000000028370000000000002846000000000000000000000000000000000000000000000000000000000000F837000000000000000000000000000000000000000000000000000000000000000000000000000040380000000000007846000000000000000000000000000000000000000000000000000000000000103900000000000000000000000000000000000000000000000000000000000000000000000000007839000000000000C846000000000000000000000000000000000000000000000000000000000000E0390000000000000000000000000000000000000000000000000000000000000000000000000000283A0000000000001847000000000000000000000000000000000000000000000000000000000000203B0000000000000000000000000000000000000000000000000000000000000000000000000000103C0000000000006847000000000000000000000000000000000000000000000000000000000000783C0000000000000000000000000000000000000000000000000000000000000000000000000000C03C000000000000B847000000000000000000000000000000000000000000000000000000000000283D0000000000000000000000000000000000000000000000000000000000000000000000000000D03D0000000000000848000000000000000000000000000000000000000000000000000000000000183E0000000000000000000000000000000000000000000000000000000000000000000000000000803E0000000000005848000000000000000000000000000000000000000000000000000000000000E83E0000000000000000000000000000000000000000000000000000000000000000000000000000303F000000000000A848000000000000000000000000000000000000000000000000000000000000983F0000000000000000000000000000000000000000000000000000000000000000000000000000E03F000000000000F8480000000000000000000000000000000000000000000000000000000000008840000000000000704900000000000000000000000000000000000000000000000000000000000070420000000000007049000000000000484900000000000000000000000000000000000000000000D841000000000000
-      - sectname:        __objc_ivar
-        segname:         __DATA
-        addr:            0x4998
-        size:            144
-        offset:          0x4998
-        align:           3
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x0
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         080000000000000009000000000000000A00000000000000080000000000000009000000000000000A000000000000000B00000000000000080000000000000009000000000000000A000000000000000B00000000000000080000000000000009000000000000000A000000000000000B00000000000000080000000000000009000000000000000800000000000000
-      - sectname:        __data
-        segname:         __DATA
-        addr:            0x4A28
-        size:            392
-        offset:          0x4A28
-        align:           3
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x0
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         0000000000000000461D000000000000000000000000000028410000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000048410000000000000000000000000000000000000000000000000000000000003A1D00000000000050410000000000006841000000000000000000000000000000000000000000000000000000000000000000000000000060000000000000008841000000000000000000000000000000000000000000000000000000000000531D0000000000000000000000000000904100000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000B041000000000000000000000000000000000000000000000000000000000000671D0000000000000000000000000000D84200000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000F842000000000000000000000000000000000000000000000000000000000000
-      - sectname:        __objc_protolist
-        segname:         __DATA
-        addr:            0x4BB0
-        size:            32
-        offset:          0x4BB0
-        align:           3
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x1000000B
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         284A000000000000884A000000000000E84A000000000000484B000000000000
-      - sectname:        __objc_classlist
-        segname:         __DATA
-        addr:            0x4BD0
-        size:            160
-        offset:          0x4BD0
-        align:           3
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x10000000
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         8043000000000000D04300000000000020440000000000007044000000000000C044000000000000E8440000000000006045000000000000B04500000000000000460000000000005046000000000000A046000000000000F04600000000000040470000000000009047000000000000E04700000000000030480000000000008048000000000000D04800000000000020490000000000004849000000000000
-      - sectname:        __objc_catlist
-        segname:         __DATA
-        addr:            0x4C70
-        size:            32
-        offset:          0x4C70
-        align:           3
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x10000000
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         D03B000000000000903D000000000000E8400000000000001843000000000000
-      - sectname:        __objc_imageinfo
-        segname:         __DATA
-        addr:            0x4C90
-        size:            8
-        offset:          0x4C90
-        align:           0
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x0
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-        content:         '0000000040000000'
-      - sectname:        __common
-        segname:         __DATA
-        addr:            0x4C98
-        size:            16
-        offset:          0x0
-        align:           2
-        reloff:          0x0
-        nreloc:          0
-        flags:           0x1
-        reserved1:       0x0
-        reserved2:       0x0
-        reserved3:       0x0
-  - cmd:             LC_SEGMENT_64
-    cmdsize:         72
-    segname:         __LINKEDIT
-    vmaddr:          20480
-    vmsize:          10272
-    fileoff:         20480
-    filesize:        10272
-    maxprot:         1
-    initprot:        1
-    nsects:          0
-    flags:           0
-  - cmd:             LC_DYLD_INFO_ONLY
-    cmdsize:         48
-    rebase_off:      20480
-    rebase_size:     320
-    bind_off:        20800
-    bind_size:       480
-    weak_bind_off:   0
-    weak_bind_size:  0
-    lazy_bind_off:   0
-    lazy_bind_size:  0
-    export_off:      21280
-    export_size:     896
-  - cmd:             LC_SYMTAB
-    cmdsize:         24
-    symoff:          22208
-    nsyms:           187
-    stroff:          25200
-    strsize:         5552
-  - cmd:             LC_DYSYMTAB
-    cmdsize:         80
-    ilocalsym:       0
-    nlocalsym:       131
-    iextdefsym:      131
-    nextdefsym:      49
-    iundefsym:       180
-    nundefsym:       7
-    tocoff:          0
-    ntoc:            0
-    modtaboff:       0
-    nmodtab:         0
-    extrefsymoff:    0
-    nextrefsyms:     0
-    indirectsymoff:  0
-    nindirectsyms:   0
-    extreloff:       0
-    nextrel:         0
-    locreloff:       0
-    nlocrel:         0
-  - cmd:             LC_ID_DYLIB
-    cmdsize:         88
-    dylib:
-      name:            24
-      timestamp:       0
-      current_version: 66051
-      compatibility_version: 65536
-    Content:         '/System/Library/Frameworks/Simple.framework/Versions/A/Simple'
-    ZeroPadBytes:    3
-  - cmd:             LC_UUID
-    cmdsize:         24
-    uuid:            4C4C441D-5555-3144-A104-DD1AF4EF8FE7
-  - cmd:             LC_VERSION_MIN_MACOSX
-    cmdsize:         16
-    version:         658432
-    sdk:             983040
-  - cmd:             LC_LOAD_DYLIB
-    cmdsize:         96
-    dylib:
-      name:            24
-      timestamp:       0
-      current_version: 197722368
-      compatibility_version: 19660800
-    Content:         '/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation'
-    ZeroPadBytes:    3
-  - cmd:             LC_LOAD_DYLIB
-    cmdsize:         56
-    dylib:
-      name:            24
-      timestamp:       0
-      current_version: 14942208
-      compatibility_version: 65536
-    Content:         '/usr/lib/libobjc.A.dylib'
-    ZeroPadBytes:    8
-  - cmd:             LC_LOAD_DYLIB
-    cmdsize:         96
-    dylib:
-      name:            24
-      timestamp:       0
-      current_version: 91750400
-      compatibility_version: 65536
-    Content:         '/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData'
-    ZeroPadBytes:    7
-  - cmd:             LC_LOAD_DYLIB
-    cmdsize:         56
-    dylib:
-      name:            24
-      timestamp:       0
-      current_version: 88539136
-      compatibility_version: 65536
-    Content:         '/usr/lib/libSystem.B.dylib'
-    ZeroPadBytes:    6
-  - cmd:             LC_FUNCTION_STARTS
-    cmdsize:         16
-    dataoff:         22176
-    datasize:        32
-  - cmd:             LC_DATA_IN_CODE
-    cmdsize:         16
-    dataoff:         22208
-    datasize:        0
-LinkEditData:
-  RebaseOpcodes:
-    - Opcode:          REBASE_OPCODE_SET_TYPE_IMM
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
-      Imm:             1
-      ExtraData:       [ 0x18 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x3, 0x40 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x40 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x40 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x40 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x4, 0x40 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             15
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             8
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x8 ]
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             4
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x10 ]
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             4
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x10 ]
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             4
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x10 ]
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             5
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             7
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             9
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x8 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             9
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             5
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x28 ]
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             7
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             5
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             4
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x40 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             5
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             7
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             7
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x30 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x8 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             4
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x18 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x8 ]
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x8 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x8 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             4
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x8 ]
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             9
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             4
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x8 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x38 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x8 ]
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             1
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x20 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             2
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x98 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x8 ]
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             4
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x18 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_IMM_TIMES
-      Imm:             3
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             5
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x18 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x8 ]
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             4
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x18 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB
-      Imm:             0
-      ExtraData:       [ 0x2, 0x8 ]
-    - Opcode:          REBASE_OPCODE_ADD_ADDR_IMM_SCALED
-      Imm:             4
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB
-      Imm:             0
-      ExtraData:       [ 0x18 ]
-    - Opcode:          REBASE_OPCODE_DO_REBASE_ULEB_TIMES
-      Imm:             0
-      ExtraData:       [ 0x1C ]
-    - Opcode:          REBASE_OPCODE_DONE
-      Imm:             0
-  BindOpcodes:
-    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
-      Imm:             0
-      Symbol:          _objc_ehtype_vtable
-    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
-      Imm:             1
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
-      Imm:             2
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB
-      Imm:             1
-      ULEBExtraData:   [ 0x120 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_ADDEND_SLEB
-      Imm:             0
-      SLEBExtraData:   [ 16 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0xA0 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0xA0 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0xA0 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
-      Imm:             0
-      Symbol:          '_OBJC_CLASS_$_NSManagedObject'
-    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
-      Imm:             1
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
-      Imm:             3
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0xA78 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_ADDEND_SLEB
-      Imm:             0
-      SLEBExtraData:   [ 0 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0xA48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
-      Imm:             0
-      Symbol:          '_OBJC_METACLASS_$_NSObject'
-    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
-      Imm:             1
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
-      Imm:             2
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0xFFFFFFFFFFFFFB68 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x90 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x40 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
-      Imm:             0
-      Symbol:          __objc_empty_cache
-    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
-      Imm:             1
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0xFFFFFFFFFFFFFA60 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x20 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
-      Imm:             0
-      Symbol:          '_OBJC_CLASS_$_NSObject'
-    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
-      Imm:             1
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0xFFFFFFFFFFFFFA00 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x98 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x98 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x98 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0x48 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM
-      Imm:             0
-      Symbol:          '_OBJC_METACLASS_$_NSManagedObject'
-    - Opcode:          BIND_OPCODE_SET_TYPE_IMM
-      Imm:             1
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_SET_DYLIB_ORDINAL_IMM
-      Imm:             3
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_ADD_ADDR_ULEB
-      Imm:             0
-      ULEBExtraData:   [ 0xFFFFFFFFFFFFFE90 ]
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DO_BIND
-      Imm:             0
-      Symbol:          ''
-    - Opcode:          BIND_OPCODE_DONE
-      Imm:             0
-      Symbol:          ''
-  ExportTrie:
-    TerminalSize:    0
-    NodeOffset:      0
-    Name:            ''
-    Flags:           0x0
-    Address:         0x0
-    Other:           0x0
-    ImportName:      ''
-    Children:
-      - TerminalSize:    0
-        NodeOffset:      5
-        Name:            _
-        Flags:           0x0
-        Address:         0x0
-        Other:           0x0
-        ImportName:      ''
-        Children:
-          - TerminalSize:    0
-            NodeOffset:      41
-            Name:            p
-            Flags:           0x0
-            Address:         0x0
-            Other:           0x0
-            ImportName:      ''
-            Children:
-              - TerminalSize:    4
-                NodeOffset:      86
-                Name:            rivateGlobalVariable
-                Flags:           0x0
-                Address:         0x4CA0
-                Other:           0x0
-                ImportName:      ''
-              - TerminalSize:    4
-                NodeOffset:      92
-                Name:            ublicGlobalVariable
-                Flags:           0x0
-                Address:         0x4CA4
-                Other:           0x0
-                ImportName:      ''
-          - TerminalSize:    0
-            NodeOffset:      98
-            Name:            extraGlobalAPI
-            Flags:           0x0
-            Address:         0x0
-            Other:           0x0
-            ImportName:      ''
-            Children:
-              - TerminalSize:    4
-                NodeOffset:      106
-                Name:            '1'
-                Flags:           0x0
-                Address:         0x4C98
-                Other:           0x0
-                ImportName:      ''
-              - TerminalSize:    4
-                NodeOffset:      112
-                Name:            '2'
-                Flags:           0x0
-                Address:         0x4C9C
-                Other:           0x0
-                ImportName:      ''
-          - TerminalSize:    0
-            NodeOffset:      118
-            Name:            weakP
-            Flags:           0x0
-            Address:         0x0
-            Other:           0x0
-            ImportName:      ''
-            Children:
-              - TerminalSize:    4
-                NodeOffset:      165
-                Name:            rivateGlobalVariable
-                Flags:           0x4
-                Address:         0x4BAC
-                Other:           0x0
-                ImportName:      ''
-              - TerminalSize:    4
-                NodeOffset:      171
-                Name:            ublicGlobalVariable
-                Flags:           0x4
-                Address:         0x4BA8
-                Other:           0x0
-                ImportName:      ''
-          - TerminalSize:    0
-            NodeOffset:      177
-            Name:            OBJC_
-            Flags:           0x0
-            Address:         0x0
-            Other:           0x0
-            ImportName:      ''
-            Children:
-              - TerminalSize:    0
-                NodeOffset:      232
-                Name:            'IVAR_$_Basic'
-                Flags:           0x0
-                Address:         0x0
-                Other:           0x0
-                ImportName:      ''
-                Children:
-                  - TerminalSize:    4
-                    NodeOffset:      248
-                    Name:            6.ivar1
-                    Flags:           0x0
-                    Address:         0x4A10
-                    Other:           0x0
-                    ImportName:      ''
-                  - TerminalSize:    0
-                    NodeOffset:      254
-                    Name:            '4'
-                    Flags:           0x0
-                    Address:         0x0
-                    Other:           0x0
-                    ImportName:      ''
-                    Children:
-                      - TerminalSize:    0
-                        NodeOffset:      274
-                        Name:            .ivar
-                        Flags:           0x0
-                        Address:         0x0
-                        Other:           0x0
-                        ImportName:      ''
-                        Children:
-                          - TerminalSize:    4
-                            NodeOffset:      284
-                            Name:            '2'
-                            Flags:           0x0
-                            Address:         0x49B8
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      290
-                            Name:            '1'
-                            Flags:           0x0
-                            Address:         0x49B0
-                            Other:           0x0
-                            ImportName:      ''
-                      - TerminalSize:    0
-                        NodeOffset:      296
-                        Name:            _2.ivar
-                        Flags:           0x0
-                        Address:         0x0
-                        Other:           0x0
-                        ImportName:      ''
-                        Children:
-                          - TerminalSize:    4
-                            NodeOffset:      306
-                            Name:            '1'
-                            Flags:           0x0
-                            Address:         0x4A08
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      312
-                            Name:            '2'
-                            Flags:           0x0
-                            Address:         0x4A00
-                            Other:           0x0
-                            ImportName:      ''
-              - TerminalSize:    0
-                NodeOffset:      318
-                Name:            'METACLASS_$_'
-                Flags:           0x0
-                Address:         0x0
-                Other:           0x0
-                ImportName:      ''
-                Children:
-                  - TerminalSize:    4
-                    NodeOffset:      369
-                    Name:            FooClass
-                    Flags:           0x0
-                    Address:         0x4970
-                    Other:           0x0
-                    ImportName:      ''
-                  - TerminalSize:    4
-                    NodeOffset:      375
-                    Name:            ExternalManagedObject
-                    Flags:           0x0
-                    Address:         0x47B8
-                    Other:           0x0
-                    ImportName:      ''
-                  - TerminalSize:    0
-                    NodeOffset:      381
-                    Name:            S
-                    Flags:           0x0
-                    Address:         0x0
-                    Other:           0x0
-                    ImportName:      ''
-                    Children:
-                      - TerminalSize:    4
-                        NodeOffset:      401
-                        Name:            imple
-                        Flags:           0x0
-                        Address:         0x4358
-                        Other:           0x0
-                        ImportName:      ''
-                        Children:
-                          - TerminalSize:    0
-                            NodeOffset:      418
-                            Name:            Internal
-                            Flags:           0x0
-                            Address:         0x0
-                            Other:           0x0
-                            ImportName:      ''
-                            Children:
-                              - TerminalSize:    4
-                                NodeOffset:      432
-                                Name:            SPI
-                                Flags:           0x0
-                                Address:         0x4498
-                                Other:           0x0
-                                ImportName:      ''
-                              - TerminalSize:    4
-                                NodeOffset:      438
-                                Name:            API
-                                Flags:           0x0
-                                Address:         0x4448
-                                Other:           0x0
-                                ImportName:      ''
-                      - TerminalSize:    4
-                        NodeOffset:      444
-                        Name:            ubClass
-                        Flags:           0x0
-                        Address:         0x43F8
-                        Other:           0x0
-                        ImportName:      ''
-                  - TerminalSize:    0
-                    NodeOffset:      450
-                    Name:            Bas
-                    Flags:           0x0
-                    Address:         0x0
-                    Other:           0x0
-                    ImportName:      ''
-                    Children:
-                      - TerminalSize:    4
-                        NodeOffset:      461
-                        Name:            e
-                        Flags:           0x0
-                        Address:         0x43A8
-                        Other:           0x0
-                        ImportName:      ''
-                      - TerminalSize:    0
-                        NodeOffset:      467
-                        Name:            ic
-                        Flags:           0x0
-                        Address:         0x0
-                        Other:           0x0
-                        ImportName:      ''
-                        Children:
-                          - TerminalSize:    4
-                            NodeOffset:      501
-                            Name:            '2'
-                            Flags:           0x0
-                            Address:         0x4538
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      507
-                            Name:            '3'
-                            Flags:           0x0
-                            Address:         0x4588
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      513
-                            Name:            '5'
-                            Flags:           0x0
-                            Address:         0x46C8
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      519
-                            Name:            '4'
-                            Flags:           0x0
-                            Address:         0x45D8
-                            Other:           0x0
-                            ImportName:      ''
-                            Children:
-                              - TerminalSize:    4
-                                NodeOffset:      530
-                                Name:            _2
-                                Flags:           0x0
-                                Address:         0x4678
-                                Other:           0x0
-                                ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      536
-                            Name:            '9'
-                            Flags:           0x0
-                            Address:         0x48F8
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      542
-                            Name:            '8'
-                            Flags:           0x0
-                            Address:         0x4858
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      548
-                            Name:            '6'
-                            Flags:           0x0
-                            Address:         0x4718
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      554
-                            Name:            '1'
-                            Flags:           0x0
-                            Address:         0x4510
-                            Other:           0x0
-                            ImportName:      ''
-                  - TerminalSize:    4
-                    NodeOffset:      560
-                    Name:            A
-                    Flags:           0x0
-                    Address:         0x48A8
-                    Other:           0x0
-                    ImportName:      ''
-              - TerminalSize:    0
-                NodeOffset:      566
-                Name:            'EHTYPE_$_'
-                Flags:           0x0
-                Address:         0x0
-                Other:           0x0
-                ImportName:      ''
-                Children:
-                  - TerminalSize:    3
-                    NodeOffset:      579
-                    Name:            Base
-                    Flags:           0x0
-                    Address:         0x3120
-                    Other:           0x0
-                    ImportName:      ''
-                  - TerminalSize:    0
-                    NodeOffset:      584
-                    Name:            S
-                    Flags:           0x0
-                    Address:         0x0
-                    Other:           0x0
-                    ImportName:      ''
-                    Children:
-                      - TerminalSize:    3
-                        NodeOffset:      612
-                        Name:            ubClass
-                        Flags:           0x0
-                        Address:         0x31C8
-                        Other:           0x0
-                        ImportName:      ''
-                      - TerminalSize:    0
-                        NodeOffset:      617
-                        Name:            impleInternal
-                        Flags:           0x0
-                        Address:         0x0
-                        Other:           0x0
-                        ImportName:      ''
-                        Children:
-                          - TerminalSize:    3
-                            NodeOffset:      631
-                            Name:            SPI
-                            Flags:           0x0
-                            Address:         0x3318
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    3
-                            NodeOffset:      636
-                            Name:            API
-                            Flags:           0x0
-                            Address:         0x3270
-                            Other:           0x0
-                            ImportName:      ''
-              - TerminalSize:    0
-                NodeOffset:      641
-                Name:            'CLASS_$_'
-                Flags:           0x0
-                Address:         0x0
-                Other:           0x0
-                ImportName:      ''
-                Children:
-                  - TerminalSize:    4
-                    NodeOffset:      692
-                    Name:            A
-                    Flags:           0x0
-                    Address:         0x48D0
-                    Other:           0x0
-                    ImportName:      ''
-                  - TerminalSize:    4
-                    NodeOffset:      698
-                    Name:            ExternalManagedObject
-                    Flags:           0x0
-                    Address:         0x47E0
-                    Other:           0x0
-                    ImportName:      ''
-                  - TerminalSize:    4
-                    NodeOffset:      704
-                    Name:            FooClass
-                    Flags:           0x0
-                    Address:         0x4948
-                    Other:           0x0
-                    ImportName:      ''
-                  - TerminalSize:    0
-                    NodeOffset:      710
-                    Name:            S
-                    Flags:           0x0
-                    Address:         0x0
-                    Other:           0x0
-                    ImportName:      ''
-                    Children:
-                      - TerminalSize:    4
-                        NodeOffset:      730
-                        Name:            ubClass
-                        Flags:           0x0
-                        Address:         0x4420
-                        Other:           0x0
-                        ImportName:      ''
-                      - TerminalSize:    4
-                        NodeOffset:      736
-                        Name:            imple
-                        Flags:           0x0
-                        Address:         0x4380
-                        Other:           0x0
-                        ImportName:      ''
-                        Children:
-                          - TerminalSize:    0
-                            NodeOffset:      753
-                            Name:            Internal
-                            Flags:           0x0
-                            Address:         0x0
-                            Other:           0x0
-                            ImportName:      ''
-                            Children:
-                              - TerminalSize:    4
-                                NodeOffset:      767
-                                Name:            API
-                                Flags:           0x0
-                                Address:         0x4470
-                                Other:           0x0
-                                ImportName:      ''
-                              - TerminalSize:    4
-                                NodeOffset:      773
-                                Name:            SPI
-                                Flags:           0x0
-                                Address:         0x44C0
-                                Other:           0x0
-                                ImportName:      ''
-                  - TerminalSize:    0
-                    NodeOffset:      779
-                    Name:            Bas
-                    Flags:           0x0
-                    Address:         0x0
-                    Other:           0x0
-                    ImportName:      ''
-                    Children:
-                      - TerminalSize:    4
-                        NodeOffset:      790
-                        Name:            e
-                        Flags:           0x0
-                        Address:         0x43D0
-                        Other:           0x0
-                        ImportName:      ''
-                      - TerminalSize:    0
-                        NodeOffset:      796
-                        Name:            ic
-                        Flags:           0x0
-                        Address:         0x0
-                        Other:           0x0
-                        ImportName:      ''
-                        Children:
-                          - TerminalSize:    4
-                            NodeOffset:      830
-                            Name:            '1'
-                            Flags:           0x0
-                            Address:         0x44E8
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      836
-                            Name:            '3'
-                            Flags:           0x0
-                            Address:         0x45B0
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      842
-                            Name:            '4'
-                            Flags:           0x0
-                            Address:         0x4600
-                            Other:           0x0
-                            ImportName:      ''
-                            Children:
-                              - TerminalSize:    4
-                                NodeOffset:      853
-                                Name:            _2
-                                Flags:           0x0
-                                Address:         0x46A0
-                                Other:           0x0
-                                ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      859
-                            Name:            '2'
-                            Flags:           0x0
-                            Address:         0x4560
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      865
-                            Name:            '8'
-                            Flags:           0x0
-                            Address:         0x4880
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      871
-                            Name:            '9'
-                            Flags:           0x0
-                            Address:         0x4920
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      877
-                            Name:            '6'
-                            Flags:           0x0
-                            Address:         0x4740
-                            Other:           0x0
-                            ImportName:      ''
-                          - TerminalSize:    4
-                            NodeOffset:      883
-                            Name:            '5'
-                            Flags:           0x0
-                            Address:         0x46F0
-                            Other:           0x0
-                            ImportName:      ''
-  NameList:
-    - n_strx:          2
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7104
-    - n_strx:          22
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7114
-    - n_strx:          46
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7123
-    - n_strx:          66
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7133
-    - n_strx:          88
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7143
-    - n_strx:          112
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7152
-    - n_strx:          135
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7158
-    - n_strx:          162
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7164
-    - n_strx:          204
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7170
-    - n_strx:          224
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7180
-    - n_strx:          248
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7189
-    - n_strx:          273
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7200
-    - n_strx:          302
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7206
-    - n_strx:          347
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7212
-    - n_strx:          395
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7218
-    - n_strx:          424
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7224
-    - n_strx:          466
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7232
-    - n_strx:          488
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7238
-    - n_strx:          510
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7244
-    - n_strx:          523
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7250
-    - n_strx:          543
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7260
-    - n_strx:          566
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7266
-    - n_strx:          593
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7272
-    - n_strx:          615
-      n_type:          0xE
-      n_sect:          1
-      n_desc:          0
-      n_value:         7278
-    - n_strx:          658
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         12288
-    - n_strx:          687
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         12360
-    - n_strx:          712
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         12432
-    - n_strx:          739
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         12504
-    - n_strx:          762
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         12600
-    - n_strx:          793
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         12672
-    - n_strx:          820
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         12768
-    - n_strx:          860
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         12840
-    - n_strx:          896
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         12936
-    - n_strx:          936
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13008
-    - n_strx:          972
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13176
-    - n_strx:          997
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13104
-    - n_strx:          1026
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13248
-    - n_strx:          1055
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13320
-    - n_strx:          1080
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13392
-    - n_strx:          1109
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13464
-    - n_strx:          1142
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13592
-    - n_strx:          1177
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13696
-    - n_strx:          1203
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13768
-    - n_strx:          1228
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13840
-    - n_strx:          1257
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         13912
-    - n_strx:          1292
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14048
-    - n_strx:          1317
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14120
-    - n_strx:          1348
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14192
-    - n_strx:          1385
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14328
-    - n_strx:          1412
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14400
-    - n_strx:          1443
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14472
-    - n_strx:          1480
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14608
-    - n_strx:          1507
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14680
-    - n_strx:          1537
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14712
-    - n_strx:          1566
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14784
-    - n_strx:          1599
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14816
-    - n_strx:          1624
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14888
-    - n_strx:          1653
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         14960
-    - n_strx:          1686
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15040
-    - n_strx:          1721
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15112
-    - n_strx:          1747
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15136
-    - n_strx:          1772
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15208
-    - n_strx:          1820
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15288
-    - n_strx:          1852
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15312
-    - n_strx:          1883
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15376
-    - n_strx:          1912
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15448
-    - n_strx:          1945
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15480
-    - n_strx:          1970
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15552
-    - n_strx:          2014
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15624
-    - n_strx:          2062
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15656
-    - n_strx:          2102
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15728
-    - n_strx:          2162
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15760
-    - n_strx:          2205
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15824
-    - n_strx:          2239
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15896
-    - n_strx:          2269
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         15968
-    - n_strx:          2299
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16000
-    - n_strx:          2328
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16072
-    - n_strx:          2361
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16104
-    - n_strx:          2386
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16176
-    - n_strx:          2410
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16248
-    - n_strx:          2438
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16280
-    - n_strx:          2458
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16352
-    - n_strx:          2487
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16424
-    - n_strx:          2520
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16456
-    - n_strx:          2555
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16496
-    - n_strx:          2581
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16520
-    - n_strx:          2606
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16592
-    - n_strx:          2645
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16616
-    - n_strx:          2683
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         17008
-    - n_strx:          2710
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16856
-    - n_strx:          2741
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16680
-    - n_strx:          2789
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16712
-    - n_strx:          2833
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16720
-    - n_strx:          2868
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16744
-    - n_strx:          2915
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16776
-    - n_strx:          2958
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16784
-    - n_strx:          3005
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16816
-    - n_strx:          3048
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16824
-    - n_strx:          3082
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         16928
-    - n_strx:          3117
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         17080
-    - n_strx:          3171
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         17112
-    - n_strx:          3222
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         17144
-    - n_strx:          3269
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         17152
-    - n_strx:          3316
-      n_type:          0xE
-      n_sect:          6
-      n_desc:          0
-      n_value:         17176
-    - n_strx:          4000
-      n_type:          0x1E
-      n_sect:          7
-      n_desc:          0
-      n_value:         17960
-    - n_strx:          4027
-      n_type:          0x1E
-      n_sect:          7
-      n_desc:          0
-      n_value:         18000
-    - n_strx:          4192
-      n_type:          0x1E
-      n_sect:          7
-      n_desc:          0
-      n_value:         18280
-    - n_strx:          4217
-      n_type:          0x1E
-      n_sect:          7
-      n_desc:          0
-      n_value:         18320
-    - n_strx:          4314
-      n_type:          0x1E
-      n_sect:          7
-      n_desc:          0
-      n_value:         18440
-    - n_strx:          4344
-      n_type:          0x1E
-      n_sect:          7
-      n_desc:          0
-      n_value:         18480
-    - n_strx:          4548
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18840
-    - n_strx:          4578
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18848
-    - n_strx:          4608
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18856
-    - n_strx:          4690
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18880
-    - n_strx:          4716
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18888
-    - n_strx:          4742
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18896
-    - n_strx:          4770
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18904
-    - n_strx:          4798
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18912
-    - n_strx:          4826
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18920
-    - n_strx:          4854
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18928
-    - n_strx:          4882
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18936
-    - n_strx:          4992
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18968
-    - n_strx:          5022
-      n_type:          0x1E
-      n_sect:          8
-      n_desc:          0
-      n_value:         18976
-    - n_strx:          5053
-      n_type:          0x1E
-      n_sect:          9
-      n_desc:          0
-      n_value:         18984
-    - n_strx:          5084
-      n_type:          0x1E
-      n_sect:          9
-      n_desc:          0
-      n_value:         19080
-    - n_strx:          5114
-      n_type:          0x1E
-      n_sect:          9
-      n_desc:          0
-      n_value:         19176
-    - n_strx:          5144
-      n_type:          0x1E
-      n_sect:          9
-      n_desc:          0
-      n_value:         19272
-    - n_strx:          5231
-      n_type:          0x1E
-      n_sect:          10
-      n_desc:          0
-      n_value:         19376
-    - n_strx:          5268
-      n_type:          0x1E
-      n_sect:          10
-      n_desc:          0
-      n_value:         19384
-    - n_strx:          5304
-      n_type:          0x1E
-      n_sect:          10
-      n_desc:          0
-      n_value:         19392
-    - n_strx:          5340
-      n_type:          0x1E
-      n_sect:          10
-      n_desc:          0
-      n_value:         19400
-    - n_strx:          3353
-      n_type:          0xF
-      n_sect:          14
-      n_desc:          0
-      n_value:         19608
-    - n_strx:          3370
-      n_type:          0xF
-      n_sect:          14
-      n_desc:          0
-      n_value:         19612
-    - n_strx:          3387
-      n_type:          0xF
-      n_sect:          14
-      n_desc:          0
-      n_value:         19616
-    - n_strx:          3410
-      n_type:          0xF
-      n_sect:          14
-      n_desc:          0
-      n_value:         19620
-    - n_strx:          3432
-      n_type:          0xF
-      n_sect:          6
-      n_desc:          0
-      n_value:         12576
-    - n_strx:          3452
-      n_type:          0xF
-      n_sect:          6
-      n_desc:          0
-      n_value:         12744
-    - n_strx:          3476
-      n_type:          0xF
-      n_sect:          6
-      n_desc:          0
-      n_value:         12912
-    - n_strx:          3509
-      n_type:          0xF
-      n_sect:          6
-      n_desc:          0
-      n_value:         13080
-    - n_strx:          3542
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17240
-    - n_strx:          3567
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17280
-    - n_strx:          3588
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17320
-    - n_strx:          3611
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17360
-    - n_strx:          3630
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17400
-    - n_strx:          3657
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17440
-    - n_strx:          3680
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17480
-    - n_strx:          3716
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17520
-    - n_strx:          3748
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17560
-    - n_strx:          3784
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17600
-    - n_strx:          3816
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17640
-    - n_strx:          3837
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17680
-    - n_strx:          3862
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17720
-    - n_strx:          3887
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17760
-    - n_strx:          3908
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17800
-    - n_strx:          3933
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17840
-    - n_strx:          3954
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17880
-    - n_strx:          3979
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         17920
-    - n_strx:          4050
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18040
-    - n_strx:          4077
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18080
-    - n_strx:          4100
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18120
-    - n_strx:          4125
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18160
-    - n_strx:          4146
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18200
-    - n_strx:          4171
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18240
-    - n_strx:          4238
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18360
-    - n_strx:          4278
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18400
-    - n_strx:          4370
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18520
-    - n_strx:          4395
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18560
-    - n_strx:          4416
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18600
-    - n_strx:          4436
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18640
-    - n_strx:          4452
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18680
-    - n_strx:          4477
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18720
-    - n_strx:          4498
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18760
-    - n_strx:          4521
-      n_type:          0xF
-      n_sect:          7
-      n_desc:          0
-      n_value:         18800
-    - n_strx:          4638
-      n_type:          0xF
-      n_sect:          8
-      n_desc:          0
-      n_value:         18864
-    - n_strx:          4664
-      n_type:          0xF
-      n_sect:          8
-      n_desc:          0
-      n_value:         18872
-    - n_strx:          4910
-      n_type:          0xF
-      n_sect:          8
-      n_desc:          0
-      n_value:         18944
-    - n_strx:          4938
-      n_type:          0xF
-      n_sect:          8
-      n_desc:          0
-      n_value:         18952
-    - n_strx:          4966
-      n_type:          0xF
-      n_sect:          8
-      n_desc:          0
-      n_value:         18960
-    - n_strx:          5178
-      n_type:          0xF
-      n_sect:          9
-      n_desc:          128
-      n_value:         19368
-    - n_strx:          5204
-      n_type:          0xF
-      n_sect:          9
-      n_desc:          128
-      n_value:         19372
-    - n_strx:          5380
-      n_type:          0x1
-      n_sect:          0
-      n_desc:          768
-      n_value:         0
-    - n_strx:          5410
-      n_type:          0x1
-      n_sect:          0
-      n_desc:          512
-      n_value:         0
-    - n_strx:          5433
-      n_type:          0x1
-      n_sect:          0
-      n_desc:          768
-      n_value:         0
-    - n_strx:          5467
-      n_type:          0x1
-      n_sect:          0
-      n_desc:          512
-      n_value:         0
-    - n_strx:          5494
-      n_type:          0x1
-      n_sect:          0
-      n_desc:          512
-      n_value:         0
-    - n_strx:          5513
-      n_type:          0x1
-      n_sect:          0
-      n_desc:          512
-      n_value:         0
-    - n_strx:          5533
-      n_type:          0x1
-      n_sect:          0
-      n_desc:          1024
-      n_value:         0
-  StringTable:
-    - ' '
-    - '-[Basic3 property1]'
-    - '-[Basic3 setProperty1:]'
-    - '-[Basic3 property2]'
-    - '-[Basic3 isProperty3]'
-    - '-[Basic3 setProperty3:]'
-    - '+[Basic5 aClassMethod]'
-    - '-[Basic5 anInstanceMethod]'
-    - '-[Basic6 anInstanceMethodFromAnExtension]'
-    - '-[Basic6 property1]'
-    - '-[Basic6 setProperty1:]'
-    - '-[Basic6(Foo) property2]'
-    - '-[Basic6(Foo) setProperty2:]'
-    - '-[Basic6(Foo) anInstanceMethodFromACategory]'
-    - '-[Basic7 anInstanceMethodFromAnHiddenExtension]'
-    - '-[ExternalManagedObject foo]'
-    - '-[NSManagedObject(Simple) supportsSimple]'
-    - '+[Basic8 useSameName]'
-    - '-[Basic8 useSameName]'
-    - '-[A aMethod]'
-    - '-[Basic9 aProperty]'
-    - '-[FooClass baseMethod]'
-    - '-[FooClass protocolMethod]'
-    - '-[FooClass barMethod]'
-    - '-[FooClass(Private) privateProcotolMethod]'
-    - '__OBJC_METACLASS_RO_$_Simple'
-    - '__OBJC_CLASS_RO_$_Simple'
-    - '__OBJC_METACLASS_RO_$_Base'
-    - '__OBJC_CLASS_RO_$_Base'
-    - '__OBJC_METACLASS_RO_$_SubClass'
-    - '__OBJC_CLASS_RO_$_SubClass'
-    - '__OBJC_METACLASS_RO_$_SimpleInternalAPI'
-    - '__OBJC_CLASS_RO_$_SimpleInternalAPI'
-    - '__OBJC_METACLASS_RO_$_SimpleInternalSPI'
-    - '__OBJC_CLASS_RO_$_SimpleInternalSPI'
-    - '__OBJC_CLASS_RO_$_Basic1'
-    - '__OBJC_METACLASS_RO_$_Basic1'
-    - '__OBJC_METACLASS_RO_$_Basic2'
-    - '__OBJC_CLASS_RO_$_Basic2'
-    - '__OBJC_METACLASS_RO_$_Basic3'
-    - '__OBJC_$_INSTANCE_METHODS_Basic3'
-    - '__OBJC_$_INSTANCE_VARIABLES_Basic3'
-    - '__OBJC_$_PROP_LIST_Basic3'
-    - '__OBJC_CLASS_RO_$_Basic3'
-    - '__OBJC_METACLASS_RO_$_Basic4'
-    - '__OBJC_$_INSTANCE_VARIABLES_Basic4'
-    - '__OBJC_CLASS_RO_$_Basic4'
-    - '__OBJC_METACLASS_RO_$_Basic4_1'
-    - '__OBJC_$_INSTANCE_VARIABLES_Basic4_1'
-    - '__OBJC_CLASS_RO_$_Basic4_1'
-    - '__OBJC_METACLASS_RO_$_Basic4_2'
-    - '__OBJC_$_INSTANCE_VARIABLES_Basic4_2'
-    - '__OBJC_CLASS_RO_$_Basic4_2'
-    - '__OBJC_$_CLASS_METHODS_Basic5'
-    - '__OBJC_METACLASS_RO_$_Basic5'
-    - '__OBJC_$_INSTANCE_METHODS_Basic5'
-    - '__OBJC_CLASS_RO_$_Basic5'
-    - '__OBJC_METACLASS_RO_$_Basic6'
-    - '__OBJC_$_INSTANCE_METHODS_Basic6'
-    - '__OBJC_$_INSTANCE_VARIABLES_Basic6'
-    - '__OBJC_$_PROP_LIST_Basic6'
-    - '__OBJC_CLASS_RO_$_Basic6'
-    - '__OBJC_$_CATEGORY_INSTANCE_METHODS_Basic6_$_Foo'
-    - '__OBJC_$_PROP_LIST_Basic6_$_Foo'
-    - '__OBJC_$_CATEGORY_Basic6_$_Foo'
-    - '__OBJC_METACLASS_RO_$_Basic7'
-    - '__OBJC_$_INSTANCE_METHODS_Basic7'
-    - '__OBJC_CLASS_RO_$_Basic7'
-    - '__OBJC_METACLASS_RO_$_ExternalManagedObject'
-    - '__OBJC_$_INSTANCE_METHODS_ExternalManagedObject'
-    - '__OBJC_CLASS_RO_$_ExternalManagedObject'
-    - '__OBJC_$_CATEGORY_INSTANCE_METHODS_NSManagedObject_$_Simple'
-    - '__OBJC_$_CATEGORY_NSManagedObject_$_Simple'
-    - '__OBJC_METACLASS_RO_$_HiddenClass'
-    - '__OBJC_CLASS_RO_$_HiddenClass'
-    - '__OBJC_$_CLASS_METHODS_Basic8'
-    - '__OBJC_METACLASS_RO_$_Basic8'
-    - '__OBJC_$_INSTANCE_METHODS_Basic8'
-    - '__OBJC_CLASS_RO_$_Basic8'
-    - '__OBJC_METACLASS_RO_$_A'
-    - '__OBJC_$_INSTANCE_METHODS_A'
-    - '__OBJC_CLASS_RO_$_A'
-    - '__OBJC_METACLASS_RO_$_Basic9'
-    - '__OBJC_$_INSTANCE_METHODS_Basic9'
-    - '__OBJC_$_INSTANCE_VARIABLES_Basic9'
-    - '__OBJC_$_PROP_LIST_Basic9'
-    - '__OBJC_CLASS_RO_$_Basic9'
-    - '__OBJC_$_PROP_LIST_Basic9_$_deprecated'
-    - '__OBJC_$_CATEGORY_Basic9_$_deprecated'
-    - '__OBJC_CLASS_RO_$_FooClass'
-    - '__OBJC_METACLASS_RO_$_FooClass'
-    - '__OBJC_$_PROTOCOL_INSTANCE_METHODS_BaseProtocol'
-    - '__OBJC_$_PROTOCOL_METHOD_TYPES_BaseProtocol'
-    - '__OBJC_$_PROTOCOL_REFS_FooProtocol'
-    - '__OBJC_$_PROTOCOL_INSTANCE_METHODS_FooProtocol'
-    - '__OBJC_$_PROTOCOL_METHOD_TYPES_FooProtocol'
-    - '__OBJC_$_PROTOCOL_INSTANCE_METHODS_BarProtocol'
-    - '__OBJC_$_PROTOCOL_METHOD_TYPES_BarProtocol'
-    - '__OBJC_CLASS_PROTOCOLS_$_FooClass'
-    - '__OBJC_$_INSTANCE_METHODS_FooClass'
-    - '__OBJC_$_CATEGORY_INSTANCE_METHODS_FooClass_$_Private'
-    - '__OBJC_$_PROTOCOL_INSTANCE_METHODS_PrivateProtocol'
-    - '__OBJC_$_PROTOCOL_METHOD_TYPES_PrivateProtocol'
-    - '__OBJC_CATEGORY_PROTOCOLS_$_FooClass_$_Private'
-    - '__OBJC_$_CATEGORY_FooClass_$_Private'
-    - _extraGlobalAPI1
-    - _extraGlobalAPI2
-    - _privateGlobalVariable
-    - _publicGlobalVariable
-    - '_OBJC_EHTYPE_$_Base'
-    - '_OBJC_EHTYPE_$_SubClass'
-    - '_OBJC_EHTYPE_$_SimpleInternalAPI'
-    - '_OBJC_EHTYPE_$_SimpleInternalSPI'
-    - '_OBJC_METACLASS_$_Simple'
-    - '_OBJC_CLASS_$_Simple'
-    - '_OBJC_METACLASS_$_Base'
-    - '_OBJC_CLASS_$_Base'
-    - '_OBJC_METACLASS_$_SubClass'
-    - '_OBJC_CLASS_$_SubClass'
-    - '_OBJC_METACLASS_$_SimpleInternalAPI'
-    - '_OBJC_CLASS_$_SimpleInternalAPI'
-    - '_OBJC_METACLASS_$_SimpleInternalSPI'
-    - '_OBJC_CLASS_$_SimpleInternalSPI'
-    - '_OBJC_CLASS_$_Basic1'
-    - '_OBJC_METACLASS_$_Basic1'
-    - '_OBJC_METACLASS_$_Basic2'
-    - '_OBJC_CLASS_$_Basic2'
-    - '_OBJC_METACLASS_$_Basic3'
-    - '_OBJC_CLASS_$_Basic3'
-    - '_OBJC_METACLASS_$_Basic4'
-    - '_OBJC_CLASS_$_Basic4'
-    - '_OBJC_METACLASS_$_Basic4_1'
-    - '_OBJC_CLASS_$_Basic4_1'
-    - '_OBJC_METACLASS_$_Basic4_2'
-    - '_OBJC_CLASS_$_Basic4_2'
-    - '_OBJC_METACLASS_$_Basic5'
-    - '_OBJC_CLASS_$_Basic5'
-    - '_OBJC_METACLASS_$_Basic6'
-    - '_OBJC_CLASS_$_Basic6'
-    - '_OBJC_METACLASS_$_Basic7'
-    - '_OBJC_CLASS_$_Basic7'
-    - '_OBJC_METACLASS_$_ExternalManagedObject'
-    - '_OBJC_CLASS_$_ExternalManagedObject'
-    - '_OBJC_METACLASS_$_HiddenClass'
-    - '_OBJC_CLASS_$_HiddenClass'
-    - '_OBJC_METACLASS_$_Basic8'
-    - '_OBJC_CLASS_$_Basic8'
-    - '_OBJC_METACLASS_$_A'
-    - '_OBJC_CLASS_$_A'
-    - '_OBJC_METACLASS_$_Basic9'
-    - '_OBJC_CLASS_$_Basic9'
-    - '_OBJC_CLASS_$_FooClass'
-    - '_OBJC_METACLASS_$_FooClass'
-    - '_OBJC_IVAR_$_Basic3.property1'
-    - '_OBJC_IVAR_$_Basic3.property2'
-    - '_OBJC_IVAR_$_Basic3.property3'
-    - '_OBJC_IVAR_$_Basic4.ivar1'
-    - '_OBJC_IVAR_$_Basic4.ivar2'
-    - '_OBJC_IVAR_$_Basic4.ivar3'
-    - '_OBJC_IVAR_$_Basic4.ivar4'
-    - '_OBJC_IVAR_$_Basic4_1.ivar1'
-    - '_OBJC_IVAR_$_Basic4_1.ivar2'
-    - '_OBJC_IVAR_$_Basic4_1.ivar3'
-    - '_OBJC_IVAR_$_Basic4_1.ivar4'
-    - '_OBJC_IVAR_$_Basic4_2.ivar4'
-    - '_OBJC_IVAR_$_Basic4_2.ivar3'
-    - '_OBJC_IVAR_$_Basic4_2.ivar2'
-    - '_OBJC_IVAR_$_Basic4_2.ivar1'
-    - '_OBJC_IVAR_$_Basic6.ivar1'
-    - '_OBJC_IVAR_$_Basic6.property1'
-    - '_OBJC_IVAR_$_Basic9._aProperty'
-    - '__OBJC_PROTOCOL_$_BaseProtocol'
-    - '__OBJC_PROTOCOL_$_FooProtocol'
-    - '__OBJC_PROTOCOL_$_BarProtocol'
-    - '__OBJC_PROTOCOL_$_PrivateProtocol'
-    - _weakPublicGlobalVariable
-    - _weakPrivateGlobalVariable
-    - '__OBJC_LABEL_PROTOCOL_$_BaseProtocol'
-    - '__OBJC_LABEL_PROTOCOL_$_FooProtocol'
-    - '__OBJC_LABEL_PROTOCOL_$_BarProtocol'
-    - '__OBJC_LABEL_PROTOCOL_$_PrivateProtocol'
-    - '_OBJC_CLASS_$_NSManagedObject'
-    - '_OBJC_CLASS_$_NSObject'
-    - '_OBJC_METACLASS_$_NSManagedObject'
-    - '_OBJC_METACLASS_$_NSObject'
-    - __objc_empty_cache
-    - _objc_ehtype_vtable
-    - dyld_stub_binder
-    - ''
-    - ''
-  FunctionStarts:  [ 0x1BC0, 0x1BCA, 0x1BD3, 0x1BDD, 0x1BE7, 0x1BF0, 0x1BF6, 
-                     0x1BFC, 0x1C02, 0x1C0C, 0x1C15, 0x1C20, 0x1C26, 0x1C2C, 
-                     0x1C32, 0x1C38, 0x1C40, 0x1C46, 0x1C4C, 0x1C52, 0x1C5C, 
-                     0x1C62, 0x1C68, 0x1C6E ]
-...

diff  --git a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI.h b/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI.h
deleted file mode 100644
index 5dd416a0619cfb..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI.h
+++ /dev/null
@@ -1,3 +0,0 @@
-#ifndef HAVE_SEEN_PROJECT_HEADER_FIRST
-#error "Project header was not included in the correct order!"
-#endif

diff  --git a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI2.h b/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI2.h
deleted file mode 100644
index 9bbae52d721538..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalAPI2.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#import <Foundation/Foundation.h>
-
-__attribute__((objc_exception))
- at interface SimpleInternalAPI : NSObject
- at end
-
-#define HAVE_SEEN_PROJECT_HEADER_FIRST 1

diff  --git a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalSPI.h b/clang/test/InstallAPI/Inputs/Simple/SimpleInternalSPI.h
deleted file mode 100644
index a816c01abeb0d2..00000000000000
--- a/clang/test/InstallAPI/Inputs/Simple/SimpleInternalSPI.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#import <Foundation/Foundation.h>
-
-__attribute__((objc_exception))
- at interface SimpleInternalSPI : NSObject
- at end

diff  --git a/clang/test/InstallAPI/extra-exclude-headers.test b/clang/test/InstallAPI/extra-exclude-headers.test
deleted file mode 100644
index 663ca1a5d5000d..00000000000000
--- a/clang/test/InstallAPI/extra-exclude-headers.test
+++ /dev/null
@@ -1,207 +0,0 @@
-; RUN: rm -rf %t 
-; RUN: split-file %s %t
-; RUN: mkdir -p %t/System/Library/Frameworks 
-; RUN: cp -r %S/Inputs/Simple/Simple.framework %t/System/Library/Frameworks/
-; RUN: sed -e "s|DSTROOT|%/t|g" %t/inputs.json.in > %t/inputs.json
-; RUN: yaml2obj %S/Inputs/Simple/Simple.yaml -o %t/Simple 
-
-// Add exclude options.
-; RUN: clang-installapi -target x86_64-apple-macosx10.12 \
-; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
-; RUN: -current_version 1.2.3 -compatibility_version 1 \
-; RUN: -F%t/System/Library/Frameworks \
-; RUN: %t/inputs.json -o %t/Simple.tbd \
-; RUN: --verify-against=%t/Simple --verify-mode=ErrorsAndWarnings \
-; RUN: --exclude-public-header=**/SimpleAPI.h \
-; RUN: --exclude-private-header=**/SimplePrivateSPI.h 2>&1 | FileCheck -check-prefix=WARNINGS %s
-; RUN: llvm-readtapi -compare %t/Simple.tbd %t/expected-excluded.tbd
-
-// Add extra options.
-; RUN: clang-installapi -target x86_64-apple-macosx10.12 \
-; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
-; RUN: -current_version 1.2.3 -compatibility_version 1 \
-; RUN: -F%t/System/Library/Frameworks \
-; RUN: %t/inputs.json -o %t/Simple.tbd \
-; RUN: --verify-against=%t/Simple --verify-mode=Pedantic \
-; RUN: --extra-project-header=%S/Inputs/Simple/SimpleInternalAPI2.h \
-; RUN: --extra-project-header=%S/Inputs/Simple/SimpleInternalAPI.h \
-; RUN: --extra-public-header=%S/Inputs/Simple/Extra \
-; RUN: --extra-private-header=%S/Inputs/Simple/SimpleInternalSPI.h \
-; RUN: --exclude-public-header=**/SimpleAPI.h \
-; RUN: --exclude-private-header=**/SimplePrivateSPI.h 2>&1 | FileCheck -check-prefix=PEDANTIC -allow-empty %s
-; RUN: llvm-readtapi -compare %t/Simple.tbd %t/expected-extra.tbd
-
-// Check fatal missing file input.
-; RUN: not clang-installapi -target x86_64-apple-macosx10.12 \
-; RUN: -install_name /System/Library/Frameworks/Simple.framework/Versions/A/Simple \
-; RUN: -current_version 1.2.3 -compatibility_version 1 \
-; RUN: -F%t/System/Library/Frameworks \
-; RUN: %t/inputs.json -o %t/Simple.tbd \
-; RUN: --extra-public-header=%S/Inputs/Simple/NoSuchFile.h 2>&1 | FileCheck -allow-empty -check-prefix=NOPUBLIC %s
-
-; WARNINGS: warning: no declaration was found for exported symbol '_extraGlobalAPI1' in dynamic library
-; WARNINGS: warning: no declaration was found for exported symbol '_extraGlobalAPI2' in dynamic library
-; WARNINGS: warning: no declaration was found for exported symbol '(ObjC Class) SimpleInternalSPI' in dynamic library
-; WARNINGS: warning: no declaration was found for exported symbol '(ObjC Class) SimpleInternalAPI' in dynamic library
-
-; PEDANTIC-NOT: error
-; PEDANTIC: warning: cannot find protocol definition for 'ForwardProcotol'
-
-; NOPUBLIC: error: no such public header file:
-
-;--- expected-excluded.tbd
-{
-  "main_library": {
-    "current_versions": [
-      {
-        "version": "1.2.3"
-      }
-    ],
-    "exported_symbols": [
-      {
-        "data": {
-          "global": [
-            "_publicGlobalVariable",
-            "_privateGlobalVariable"
-          ],
-          "objc_class": [
-            "ExternalManagedObject", "Basic6",
-            "Basic1", "Base", "Basic3",
-            "FooClass", "Simple",
-            "Basic4_2", "Basic5",
-            "Basic9","Basic8",
-            "Basic2", "Basic4", "A", "SubClass"
-          ],
-          "objc_eh_type": [
-            "SubClass", "Base"
-          ],
-          "objc_ivar": [
-            "Basic4.ivar2", "Basic4_2.ivar1", "Basic6.ivar1",
-            "Basic4.ivar1", "Basic4_2.ivar2"
-          ],
-          "weak": [
-            "_weakPrivateGlobalVariable", "_weakPublicGlobalVariable"
-          ]
-        }
-      }
-    ],
-    "flags": [
-      {
-        "attributes": ["not_app_extension_safe"]
-      }
-    ],
-    "install_names": [
-      {
-        "name": "/System/Library/Frameworks/Simple.framework/Versions/A/Simple"
-      }
-    ],
-    "target_info": [
-      {"min_deployment": "10.12", "target": "x86_64-macos"}
-    ]
-  },
-  "tapi_tbd_version": 5
-}
-
-;--- expected-extra.tbd
-{
-  "main_library": {
-    "current_versions": [
-      { "version": "1.2.3" }
-    ],
-    "exported_symbols": [
-      {
-        "data": {
-          "global": [
-            "_publicGlobalVariable", "_extraGlobalAPI2",
-            "_extraGlobalAPI1", "_privateGlobalVariable"
-          ],
-          "objc_class": [
-            "SubClass", "SimpleInternalSPI",
-            "Basic6", "Basic1", "Base",
-            "Basic3", "Simple", "Basic4_2",
-            "Basic5", "FooClass", "Basic9",
-            "Basic8", "Basic2", "Basic4",
-            "A", "SimpleInternalAPI",
-            "ExternalManagedObject"
-          ],
-          "objc_eh_type": [
-            "SubClass", "SimpleInternalAPI",
-            "Base", "SimpleInternalSPI"
-          ],
-          "objc_ivar": [
-            "Basic4.ivar2", "Basic4_2.ivar1",
-            "Basic6.ivar1", "Basic4.ivar1",
-            "Basic4_2.ivar2"
-          ],
-          "weak": [
-            "_weakPrivateGlobalVariable", "_weakPublicGlobalVariable"
-          ]
-        }
-      }
-    ],
-    "flags": [
-      {
-        "attributes": [ "not_app_extension_safe"]
-      }
-    ],
-    "install_names": [
-      { "name": "/System/Library/Frameworks/Simple.framework/Versions/A/Simple" }
-    ],
-    "target_info": [
-      { "min_deployment": "10.12", "target": "x86_64-macos" }
-    ]
-  },
-  "tapi_tbd_version": 5
-}
-
-;--- inputs.json.in
-{
-  "headers": [ 
-  {
-    "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/Headers/Basic.h",
-    "type" : "public"
-  }, 
-  {
-    "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/Headers/External.h",
-    "type" : "public"
-  }, 
-  {
-    "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/Headers/Simple.h",
-    "type" : "public"
-  }, 
-  {
-    "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/Headers/SimpleAPI.h",
-    "type" : "public"
-  }, 
-  {
-    "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/PrivateHeaders/SimplePrivate.h",
-    "type" : "private"
-  }, 
-  {
-    "path" : "DSTROOT/System/Library/Frameworks/Simple.framework/PrivateHeaders/SimplePrivateSPI.h",
-    "type" : "private"
-  }
-  ],
-  "version": "3"
-}
-
-;--- System/Library/Frameworks/Foundation.framework/Headers/Foundation.h
- at interface NSObject 
- at end
-
-typedef unsigned char BOOL; 
-#ifndef NS_AVAILABLE
-#define NS_AVAILABLE(x,y) __attribute__((availability(macosx,introduced=x)))
-#endif 
-#ifndef NS_UNAVAILABLE
-#define NS_UNAVAILABLE  __attribute__((unavailable))
-#endif 
-#ifndef NS_DEPRECATED_MAC
-#define NS_DEPRECATED_MAC(x,y) __attribute__((availability(macosx,introduced=x,deprecated=y,message="" )));
-#endif 
-
- at interface NSManagedObject
- at end 
-
- at interface NSSet 
- at end 

diff  --git a/clang/tools/clang-installapi/InstallAPIOpts.td b/clang/tools/clang-installapi/InstallAPIOpts.td
index ab9e1fe7f2f949..87f4c3327e8409 100644
--- a/clang/tools/clang-installapi/InstallAPIOpts.td
+++ b/clang/tools/clang-installapi/InstallAPIOpts.td
@@ -29,35 +29,3 @@ def verify_mode_EQ : Joined<["--"], "verify-mode=">,
   HelpText<"Specify the severity and extend of the validation. Valid modes are ErrorsOnly, ErrorsAndWarnings, and Pedantic.">;
 def demangle : Flag<["--", "-"], "demangle">,
   HelpText<"Demangle symbols when printing warnings and errors">;
-
-// Additional input options.
-def extra_project_header : Separate<["-"], "extra-project-header">,
-  MetaVarName<"<path>">,
-  HelpText<"Add additional project header location for parsing">;
-def extra_project_header_EQ : Joined<["--"], "extra-project-header=">,
-  Alias<extra_project_header>;
-def exclude_project_header : Separate<["-"], "exclude-project-header">,
-  MetaVarName<"<glob>">,
-  HelpText<"Exclude project header from parsing">;
-def exclude_project_header_EQ : Joined<["--"], "exclude-project-header=">,
-  Alias<exclude_project_header>;
-def extra_public_header : Separate<["-"], "extra-public-header">,
-  MetaVarName<"<path>">,
-  HelpText<"Add additional public header location for parsing">;
-def extra_public_header_EQ : Joined<["--"], "extra-public-header=">,
-  Alias<extra_public_header>;
-def extra_private_header : Separate<["-"], "extra-private-header">,
-  MetaVarName<"<path>">,
-  HelpText<"Add additional private header location for parsing">;
-def extra_private_header_EQ : Joined<["--"], "extra-private-header=">,
-  Alias<extra_private_header>;
-def exclude_public_header : Separate<["-"], "exclude-public-header">,
-  MetaVarName<"<glob>">,
-  HelpText<"Exclude public header from parsing">;
-def exclude_public_header_EQ : Joined<["--"], "exclude-public-header=">,
-  Alias<exclude_public_header>;
-def exclude_private_header : Separate<["-"], "exclude-private-header">,
-  MetaVarName<"<glob>">,
-  HelpText<"Exclude private header from parsing">;
-def exclude_private_header_EQ : Joined<["--"], "exclude-private-header=">,
-  Alias<exclude_private_header>;

diff  --git a/clang/tools/clang-installapi/Options.cpp b/clang/tools/clang-installapi/Options.cpp
index 4f79c62724a62d..b8696bb7896d86 100644
--- a/clang/tools/clang-installapi/Options.cpp
+++ b/clang/tools/clang-installapi/Options.cpp
@@ -10,7 +10,6 @@
 #include "clang/Driver/Driver.h"
 #include "clang/Frontend/FrontendDiagnostic.h"
 #include "clang/InstallAPI/FileList.h"
-#include "clang/InstallAPI/HeaderFile.h"
 #include "clang/InstallAPI/InstallAPIDiagnostic.h"
 #include "llvm/Support/Program.h"
 #include "llvm/TargetParser/Host.h"
@@ -182,26 +181,6 @@ bool Options::processFrontendOptions(InputArgList &Args) {
   return true;
 }
 
-bool Options::addFilePaths(InputArgList &Args, PathSeq &Headers,
-                           OptSpecifier ID) {
-  for (const StringRef Path : Args.getAllArgValues(ID)) {
-    if ((bool)FM->getDirectory(Path, /*CacheFailure=*/false)) {
-      auto InputHeadersOrErr = enumerateFiles(*FM, Path);
-      if (!InputHeadersOrErr) {
-        Diags->Report(diag::err_cannot_open_file)
-            << Path << toString(InputHeadersOrErr.takeError());
-        return false;
-      }
-      // Sort headers to ensure deterministic behavior.
-      sort(*InputHeadersOrErr);
-      for (std::string &H : *InputHeadersOrErr)
-        Headers.emplace_back(std::move(H));
-    } else
-      Headers.emplace_back(Path);
-  }
-  return true;
-}
-
 std::vector<const char *>
 Options::processAndFilterOutInstallAPIOptions(ArrayRef<const char *> Args) {
   std::unique_ptr<llvm::opt::OptTable> Table;
@@ -241,35 +220,6 @@ Options::processAndFilterOutInstallAPIOptions(ArrayRef<const char *> Args) {
   if (const Arg *A = ParsedArgs.getLastArg(OPT_verify_against))
     DriverOpts.DylibToVerify = A->getValue();
 
-  // Handle exclude & extra header directories or files.
-  auto handleAdditionalInputArgs = [&](PathSeq &Headers,
-                                       clang::installapi::ID OptID) {
-    if (ParsedArgs.hasArgNoClaim(OptID))
-      Headers.clear();
-    return addFilePaths(ParsedArgs, Headers, OptID);
-  };
-
-  if (!handleAdditionalInputArgs(DriverOpts.ExtraPublicHeaders,
-                                 OPT_extra_public_header))
-    return {};
-
-  if (!handleAdditionalInputArgs(DriverOpts.ExtraPrivateHeaders,
-                                 OPT_extra_private_header))
-    return {};
-  if (!handleAdditionalInputArgs(DriverOpts.ExtraProjectHeaders,
-                                 OPT_extra_project_header))
-    return {};
-
-  if (!handleAdditionalInputArgs(DriverOpts.ExcludePublicHeaders,
-                                 OPT_exclude_public_header))
-    return {};
-  if (!handleAdditionalInputArgs(DriverOpts.ExcludePrivateHeaders,
-                                 OPT_exclude_private_header))
-    return {};
-  if (!handleAdditionalInputArgs(DriverOpts.ExcludeProjectHeaders,
-                                 OPT_exclude_project_header))
-    return {};
-
   /// Any unclaimed arguments should be forwarded to the clang driver.
   std::vector<const char *> ClangDriverArgs(ParsedArgs.size());
   for (const Arg *A : ParsedArgs) {
@@ -352,77 +302,6 @@ InstallAPIContext Options::createContext() {
       return Ctx;
     }
   }
-  // After initial input has been processed, add any extra headers.
-  auto HandleExtraHeaders = [&](PathSeq &Headers, HeaderType Type) -> bool {
-    assert(Type != HeaderType::Unknown && "Missing header type.");
-    for (const StringRef Path : Headers) {
-      if (!FM->getOptionalFileRef(Path)) {
-        Diags->Report(diag::err_no_such_header_file)
-            << Path << (unsigned)Type - 1;
-        return false;
-      }
-      SmallString<PATH_MAX> FullPath(Path);
-      FM->makeAbsolutePath(FullPath);
-
-      auto IncludeName = createIncludeHeaderName(FullPath);
-      Ctx.InputHeaders.emplace_back(
-          FullPath, Type, IncludeName.has_value() ? *IncludeName : "");
-      Ctx.InputHeaders.back().setExtra();
-    }
-    return true;
-  };
-
-  if (!HandleExtraHeaders(DriverOpts.ExtraPublicHeaders, HeaderType::Public) ||
-      !HandleExtraHeaders(DriverOpts.ExtraPrivateHeaders,
-                          HeaderType::Private) ||
-      !HandleExtraHeaders(DriverOpts.ExtraProjectHeaders, HeaderType::Project))
-    return Ctx;
-
-  // After all headers have been added, consider excluded headers.
-  std::vector<std::unique_ptr<HeaderGlob>> ExcludedHeaderGlobs;
-  std::set<FileEntryRef> ExcludedHeaderFiles;
-  auto ParseGlobs = [&](const PathSeq &Paths, HeaderType Type) {
-    for (const StringRef Path : Paths) {
-      auto Glob = HeaderGlob::create(Path, Type);
-      if (Glob)
-        ExcludedHeaderGlobs.emplace_back(std::move(Glob.get()));
-      else {
-        consumeError(Glob.takeError());
-        if (auto File = FM->getFileRef(Path))
-          ExcludedHeaderFiles.emplace(*File);
-        else {
-          Diags->Report(diag::err_no_such_header_file)
-              << Path << (unsigned)Type;
-          return false;
-        }
-      }
-    }
-    return true;
-  };
-
-  if (!ParseGlobs(DriverOpts.ExcludePublicHeaders, HeaderType::Public) ||
-      !ParseGlobs(DriverOpts.ExcludePrivateHeaders, HeaderType::Private) ||
-      !ParseGlobs(DriverOpts.ExcludeProjectHeaders, HeaderType::Project))
-    return Ctx;
-
-  for (HeaderFile &Header : Ctx.InputHeaders) {
-    for (auto &Glob : ExcludedHeaderGlobs)
-      if (Glob->match(Header))
-        Header.setExcluded();
-  }
-  if (!ExcludedHeaderFiles.empty()) {
-    for (HeaderFile &Header : Ctx.InputHeaders) {
-      auto FileRef = FM->getFileRef(Header.getPath());
-      if (!FileRef)
-        continue;
-      if (ExcludedHeaderFiles.count(*FileRef))
-        Header.setExcluded();
-    }
-  }
-  // Report if glob was ignored.
-  for (const auto &Glob : ExcludedHeaderGlobs)
-    if (!Glob->didMatch())
-      Diags->Report(diag::warn_glob_did_not_match) << Glob->str();
 
   // Parse binary dylib and initialize verifier.
   if (DriverOpts.DylibToVerify.empty()) {

diff  --git a/clang/tools/clang-installapi/Options.h b/clang/tools/clang-installapi/Options.h
index c18309f693701e..2beeafc86bb086 100644
--- a/clang/tools/clang-installapi/Options.h
+++ b/clang/tools/clang-installapi/Options.h
@@ -31,24 +31,6 @@ struct DriverOptions {
   /// \brief Path to input file lists (JSON).
   llvm::MachO::PathSeq FileLists;
 
-  /// \brief Paths of extra public headers.
-  PathSeq ExtraPublicHeaders;
-
-  /// \brief Paths of extra private headers.
-  PathSeq ExtraPrivateHeaders;
-
-  /// \brief Paths of extra project headers.
-  PathSeq ExtraProjectHeaders;
-
-  /// \brief List of excluded public headers.
-  PathSeq ExcludePublicHeaders;
-
-  /// \brief List of excluded private headers.
-  PathSeq ExcludePrivateHeaders;
-
-  /// \brief List of excluded project headers.
-  PathSeq ExcludeProjectHeaders;
-
   /// \brief Mappings of target triples & tapi targets to build for.
   std::map<llvm::MachO::Target, llvm::Triple> Targets;
 
@@ -121,9 +103,6 @@ class Options {
   std::vector<std::string> &getClangFrontendArgs() { return FrontendArgs; }
 
 private:
-  bool addFilePaths(llvm::opt::InputArgList &Args, PathSeq &Headers,
-                    llvm::opt::OptSpecifier ID);
-
   DiagnosticsEngine *Diags;
   FileManager *FM;
   std::vector<std::string> FrontendArgs;

diff  --git a/llvm/include/llvm/TextAPI/Utils.h b/llvm/include/llvm/TextAPI/Utils.h
index 319e0abce25b03..31d3c45f9e2964 100644
--- a/llvm/include/llvm/TextAPI/Utils.h
+++ b/llvm/include/llvm/TextAPI/Utils.h
@@ -14,10 +14,8 @@
 #define LLVM_TEXTAPI_UTILS_H
 
 #include "llvm/ADT/Twine.h"
-#include "llvm/Support/Error.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/Path.h"
-#include "llvm/Support/Regex.h"
 
 #if !defined(PATH_MAX)
 #define PATH_MAX 1024
@@ -70,10 +68,5 @@ std::error_code make_relative(StringRef From, StringRef To,
 /// \param IsSymLink Whether path points to a symlink.
 bool isPrivateLibrary(StringRef Path, bool IsSymLink = false);
 
-/// Create a regex rule from provided glob string.
-/// \param Glob String that represents glob input.
-/// \return The equivalent regex rule.
-llvm::Expected<llvm::Regex> createRegexFromGlob(llvm::StringRef Glob);
-
 } // namespace llvm::MachO
 #endif // LLVM_TEXTAPI_UTILS_H

diff  --git a/llvm/lib/TextAPI/Utils.cpp b/llvm/lib/TextAPI/Utils.cpp
index 56b63ee01b390c..b5c3999a86ea9d 100644
--- a/llvm/lib/TextAPI/Utils.cpp
+++ b/llvm/lib/TextAPI/Utils.cpp
@@ -152,49 +152,3 @@ bool llvm::MachO::isPrivateLibrary(StringRef Path, bool IsSymLink) {
   }
   return false;
 }
-
-static StringLiteral RegexMetachars = "()^$|+.[]\\{}";
-
-llvm::Expected<Regex> llvm::MachO::createRegexFromGlob(StringRef Glob) {
-  SmallString<128> RegexString("^");
-  unsigned NumWildcards = 0;
-  for (unsigned i = 0; i < Glob.size(); ++i) {
-    char C = Glob[i];
-    switch (C) {
-    case '?':
-      RegexString += '.';
-      break;
-    case '*': {
-      const char *PrevChar = i > 0 ? Glob.data() + i - 1 : nullptr;
-      NumWildcards = 1;
-      ++i;
-      while (i < Glob.size() && Glob[i] == '*') {
-        ++NumWildcards;
-        ++i;
-      }
-      const char *NextChar = i < Glob.size() ? Glob.data() + i : nullptr;
-
-      if ((NumWildcards > 1) && (PrevChar == nullptr || *PrevChar == '/') &&
-          (NextChar == nullptr || *NextChar == '/')) {
-        RegexString += "(([^/]*(/|$))*)";
-      } else
-        RegexString += "([^/]*)";
-      break;
-    }
-    default:
-      if (RegexMetachars.find(C) != StringRef::npos)
-        RegexString.push_back('\\');
-      RegexString.push_back(C);
-    }
-  }
-  RegexString.push_back('$');
-  if (NumWildcards == 0)
-    return make_error<StringError>("not a glob", inconvertibleErrorCode());
-
-  llvm::Regex Rule = Regex(RegexString);
-  std::string Error;
-  if (!Rule.isValid(Error))
-    return make_error<StringError>(Error, inconvertibleErrorCode());
-
-  return Rule;
-}


        


More information about the cfe-commits mailing list