Merge pull request #560 from dart-lang/stable-to-7-x

Stable to 7 x
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..1603cdd
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,9 @@
+# Dependabot configuration file.
+# See https://docs.github.com/en/code-security/dependabot/dependabot-version-updates
+version: 2
+
+updates:
+  - package-ecosystem: "github-actions"
+    directory: "/"
+    schedule:
+      interval: "monthly"
diff --git a/.github/workflows/test-package.yml b/.github/workflows/test-package.yml
index 3c4d535..8bcf6e6 100644
--- a/.github/workflows/test-package.yml
+++ b/.github/workflows/test-package.yml
@@ -13,49 +13,105 @@
   PUB_ENVIRONMENT: bot.github
 
 jobs:
-  # Check code formatting and static analysis on a single OS (linux).
+  # Check code formatting and static analysis on a single OS (macos).
   analyze:
-    runs-on: ubuntu-latest
+    runs-on: macos-latest
     strategy:
       fail-fast: false
       matrix:
-        sdk: [2.14.0]
+        sdk: [stable]
     steps:
-      - uses: actions/checkout@v2
-      - uses: dart-lang/setup-dart@v1.0
+      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
         with:
           sdk: ${{ matrix.sdk }}
       - id: install
         name: Install dependencies
-        run: dart pub get
+        run: dart pub get && dart pub get --directory="example/shared_bindings"
       - name: Check formatting
         run: dart format --output=none --set-exit-if-changed .
         if: always() && steps.install.outcome == 'success'
+      - name: Build test dylib and bindings
+        run: dart test/setup.dart
       - name: Analyze code
         run: dart analyze --fatal-infos
         if: always() && steps.install.outcome == 'success'
 
-  test:
+  test-linux:
     needs: analyze
-    # This job requires clang-10 which is the default on 20.04
-    runs-on: ubuntu-20.04
+    runs-on: ubuntu-22.04
     steps:
-      - uses: actions/checkout@v2
-      - uses: dart-lang/setup-dart@v1.0
+      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
         with:
-          sdk: 2.14.0
+          sdk: stable
       - name: Install dependencies
         run: dart pub get
-      - name: Install libclang-10-dev
-        run: sudo apt-get install libclang-10-dev
-      - name: Build test dylib
-        run: cd test/native_test && dart build_test_dylib.dart && cd ../..
+      - name: Install libclang-14-dev
+        run: sudo apt-get install libclang-14-dev
+      - name: Build test dylib and bindings
+        run: dart test/setup.dart
       - name: Run VM tests
-        run: dart test --platform vm
+        run: dart test --platform vm --concurrency=1
+
+  test-mac:
+    needs: analyze
+    runs-on: macos-latest
+    steps:
+      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
+        with:
+          sdk: stable
+      - name: Install dependencies
+        run: dart pub get
+      - name: Build test dylib and bindings
+        run: dart test/setup.dart
+      - name: Run VM tests
+        run: dart test --platform vm --concurrency=1
       - name: Collect coverage
         run: ./tool/coverage.sh
       - name: Upload coverage
-        uses: coverallsapp/github-action@v1.1.2
+        uses: coverallsapp/github-action@67662d24394fd74bffcf7b462d1b432814159afd
         with:
           github-token: ${{ secrets.GITHUB_TOKEN }}
           path-to-lcov: lcov.info
+
+  test-windows:
+    needs: analyze
+    runs-on: windows-latest
+    steps:
+      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: dart-lang/setup-dart@d6a63dab3335f427404425de0fbfed4686d93c4f
+        with:
+          sdk: stable
+      - name: Install dependencies
+        run: dart pub get
+      - name: Build test dylib and bindings
+        run: dart test/setup.dart
+      - name: Run VM tests
+        run: dart test --platform vm --concurrency=1
+
+  # Sanity check the latest `flutter create --template plugin_ffi`.
+  # This will break if we change the Flutter template or the generated code.
+  # But, getting libclang on the LUCI infrastructure has proven to be
+  # non-trivial. See discussion on
+  # https://github.com/flutter/flutter/issues/105513.
+  # If we need to change the generated code, we should temporarily disable this
+  # test, or temporarily disable the requirement for all bots to be green to
+  # merge PRs.
+  # Running this sanity check on one OS should be sufficient. Chosing Windows
+  # because it is the most likely to break.
+  test-windows-flutter:
+    needs: analyze
+    runs-on: windows-latest
+    steps:
+      - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3
+      - uses: subosito/flutter-action@48cafc24713cca54bbe03cdc3a423187d413aafa
+        with:
+          channel: 'master'
+      - name: Install dependencies
+        run: flutter pub get
+      - name: Build test dylib and bindings
+        run: dart test/setup.dart
+      - name: Run VM tests
+        run: flutter pub run test test_flutter/ --platform vm
diff --git a/.gitignore b/.gitignore
index 96f7b01..d9616e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,3 +37,8 @@
 # Files generated by tests for debugging purposes.
 test/debug_generated/*
 !test/debug_generated/readme.md
+lcov.info
+coverage.json
+
+# Files generated by various OSs.
+.DS_Store
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 73861a3..e996b1c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,108 @@
+# 7.2.10
+
+- Generate parameter names in function pointer fields and typedefs.
+
+# 7.2.9
+
+- Detect LLVM installed using Scoop on Windows machines.
+
+# 7.2.8
+
+- Automatically generate `ignore_for_file: type=lint` if not specified in preamble.
+
+# 7.2.7
+
+- Fix some macros not being generated in some cases due to relative header paths.
+
+# 7.2.6
+
+- Fix path normalization behaviour for absolute paths and globs starting with `**`.
+
+# 7.2.5
+
+- Add support nested anonymous union/struct
+
+# 7.2.4
+
+- Add new supported typedef - `uintptr_t` (mapped to `ffi.UintPtr`).
+
+# 7.2.3
+
+- Change compiler option order so that user options can override built-in
+  options.
+
+# 7.2.2
+
+- Added newer versions of LLVM, to default `linuxDylibLocations`.
+
+# 7.2.1
+
+- Fix helper methods sometimes missing from NSString.
+
+# 7.2.0
+
+- Added support for sharing bindings using `symbol-file` config. (See `README.md`
+and examples/shared_bindings).
+
+# 7.1.0
+
+- Handle declarations with definition accessible from a different entry-point.
+
+# 7.0.0
+
+- Fix typedef include/exclude config.
+- Return `ObjCBlock` wrapper instead of raw pointer in more cases.
+
+# 7.0.0-dev
+
+- Relative paths in ffigen config files are now assumed to be relative to the
+  config file, rather than the working directory of the tool invocation.
+
+# 6.1.2
+
+- Fix bug where function bindings were not deduped correctly.
+
+# 6.1.1
+
+- _EXPERIMENTAL_ support for `FfiNative`. The API and output
+  might change at any point.
+
+# 6.1.0
+
+- Added `exclude-all-by-default` config flag, which changes the default behavior
+  of declaration filters to exclude everything, rather than include everything.
+
+# 6.0.2
+
+- Bump `package:ffi` to 2.0.1.
+
+# 6.0.1
+
+- Replace path separators in `include-directives` before matching file names.
+- Add more ways to find `libclang`.
+
+# 6.0.0
+- Removed config `dart-bool`. Booleans are now always generated with `bool`
+and `ffi.Bool` as it's Dart and C Type respectively.
+
+# 5.0.1
+
+- Add a the xcode tools llvm as default path on MacOS.
+
+# 5.0.0
+
+- Stable release targeting Dart 2.17, supporting ABI-specific integer types.
+- _EXPERIMENTAL_ support for ObjectiveC on MacOS hosts. The API and output
+  might change at any point. Feel free to report bugs if encountered.
+
+# 5.0.0-dev.1
+- Fixed invalid default dart types being generated for `size_t` and `wchar_t`.
+
+# 5.0.0-dev.0
+- Added support for generating ABI Specific integers.
+- Breaking: removed config keys - `size-map` and `typedef-map`.
+- Added config keys - `library-imports` and `type-map`.
+
 # 4.1.3
 - Analyzer fixes.
 
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..1ef4cd9
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,35 @@
+# How to Contribute
+
+We'd love to accept your patches and contributions to this project. There are
+just a few small guidelines you need to follow.
+
+## Contributor License Agreement
+
+Contributions to this project must be accompanied by a Contributor License
+Agreement. You (or your employer) retain the copyright to your contribution;
+this simply gives us permission to use and redistribute your contributions as
+part of the project. Head over to <https://cla.developers.google.com/> to see
+your current agreements on file or to sign a new one.
+
+You generally only need to submit a CLA once, so if you've already submitted one
+(even if it was for a different project), you probably don't need to do it
+again.
+
+## Code reviews
+
+All submissions, including submissions by project members, require review. We
+use GitHub pull requests for this purpose. Consult
+[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
+information on using pull requests.
+
+## Process
+
+Some of our branching and releasing process is described on the
+[wiki](https://github.com/dart-lang/ffigen/wiki). Please familiarize yourself
+with the info there.
+
+## Community Guidelines
+
+This project follows [Google's Open Source Community
+Guidelines](https://opensource.google/conduct/) and the [Dart code of
+conduct](https://dart.dev/code-of-conduct).
diff --git a/LICENSE b/LICENSE
index 467a982..c7e642d 100644
--- a/LICENSE
+++ b/LICENSE
@@ -25,3 +25,6 @@
 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Code generated by FFIgen is owned by the owner of the input file used
+when generating it.
diff --git a/README.md b/README.md
index a4439bb..c4f5a02 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,16 @@
 
 Binding generator for [FFI](https://dart.dev/guides/libraries/c-interop) bindings.
 
-> Note: ffigen only supports parsing `C` headers.
+> Note: ffigen only supports parsing `C` headers, not `C++` headers.
+
+This bindings generator can be used to call C code -- or code in another
+language that compiles to C modules that follow the C calling convention --
+such as Go or Rust. For more details, see:
+https://dart.dev/guides/libraries/c-interop
+
+ffigen also has experimental support for calling ObjC and Swift code;
+for details see:
+https://dart.dev/guides/libraries/objective-c-interop
 
 ## Example
 
@@ -22,13 +31,14 @@
 ```
 Output (_generated_bindings.dart_).
 ```dart
+import 'dart:ffi' as ffi;
 class NativeLibrary {
-  final Pointer<T> Function<T extends NativeType>(String symbolName)
+  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
       _lookup;
-  NativeLibrary(DynamicLibrary dynamicLibrary)
+  NativeLibrary(ffi.DynamicLibrary dynamicLibrary)
       : _lookup = dynamicLibrary.lookup;
   NativeLibrary.fromLookup(
-      Pointer<T> Function<T extends NativeType>(String symbolName)
+      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
           lookup)
       : _lookup = lookup;
 
@@ -36,12 +46,14 @@
     return _sum(a, b);
   }
 
-  late final _sumPtr = _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Int32, ffi.Int32)>>('sum');
-  late final _sum = _sum_ptr.asFunction<int Function(int, int)>();
+  late final _sumPtr = _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Int, ffi.Int)>>('sum');
+  late final _sum = _sumPtr.asFunction<int Function(int, int)>();
+}
 }
 ```
 ## Using this package
 - Add `ffigen` under `dev_dependencies` in your `pubspec.yaml` (run `dart pub add -d ffigen`).
+- Add `package:ffi` under `dependencies` in your `pubspec.yaml` (run `dart pub add ffi`).
 - Install LLVM (see [Installing LLVM](#installing-llvm)).
 - Configurations must be provided in `pubspec.yaml` or in a custom YAML file (see [configurations](#configurations)).
 - Run the tool- `dart run ffigen`.
@@ -90,6 +102,12 @@
 ```yaml
 output: 'generated_bindings.dart'
 ```
+or
+```yaml
+output:
+  bindings: 'generated_bindings.dart'
+  ... 
+```
   </td>
   </tr>
   <tr>
@@ -182,7 +200,10 @@
   </td>
   </tr>
   <tr>
-    <td>functions<br><br>structs<br><br>unions<br><br>enums<br><br>unnamed-enums<br><br>macros<br><br>globals</td>
+    <td>
+      functions<br><br>structs<br><br>unions<br><br>enums<br><br>
+      unnamed-enums<br><br>macros<br><br>globals
+    </td>
     <td>Filters for declarations.<br><b>Default: all are included.</b><br><br>
     Options -<br>
     - Include/Exclude declarations.<br>
@@ -385,7 +406,7 @@
   </tr>
   <tr>
     <td>use-supported-typedefs</td>
-    <td>Should automatically map typedefs, E.g uint8_t => Uint8, int16_t => Int16 etc.<br>
+    <td>Should automatically map typedefs, E.g uint8_t => Uint8, int16_t => Int16, size_t => Size etc.<br>
     <b>Default: true</b>
     </td>
     <td>
@@ -396,18 +417,6 @@
   </td>
   </tr>
   <tr>
-    <td>dart-bool</td>
-    <td>Should generate dart `bool` instead of Uint8 for c99 bool in functions.<br>
-    <b>Default: true</b>
-    </td>
-    <td>
-
-```yaml
-dart-bool: true
-```
-  </td>
-  </tr>
-  <tr>
     <td>use-dart-handle</td>
     <td>Should map `Dart_Handle` to `Handle`.<br>
     <b>Default: true</b>
@@ -420,6 +429,21 @@
   </td>
   </tr>
   <tr>
+    <td>exclude-all-by-default</td>
+    <td>
+      When a declaration filter (eg `functions:` or `structs:`) is empty or
+      unset, it defaults to including everything. If this flag is enabled, the
+      default behavior is to exclude everything instead.<br>
+      <b>Default: false</b>
+    </td>
+    <td>
+
+```yaml
+exclude-all-by-default: true
+```
+  </td>
+  </tr>
+  <tr>
     <td>preamble</td>
     <td>Raw header of the file, pasted as-it-is.</td>
     <td>
@@ -431,63 +455,204 @@
 </td>
   </tr>
   <tr>
-    <td>typedef-map</td>
-    <td>Map typedefs to Native Types.<br> Values can only be
-    <i>Void, Uint8, Int8, Uint16, Int16, Uint32, Int32, Uint64, Int64, IntPtr, Float and Double.</i>
+    <td>library-imports</td>
+    <td>Specify library imports for use in type-map.<br><br>
+    Note: ffi (dart:ffi) is already available as a predefined import.
     </td>
     <td>
 
 ```yaml
-typedef-map:
-  'my_custom_type': 'IntPtr'
-  'size_t': 'Int64'
+library-imports:
+  custom_lib: 'package:some_pkg/some_file.dart'
 ```
   </td>
   </tr>
   <tr>
-    <td>size-map</td>
-    <td>Size of integers to use (in bytes).<br>
-    <b>The defaults (see example) <i>may</i> not be portable on all OS.
-    Do not change these unless absolutely sure.</b>
+    <td>type-map</td>
+    <td>Map types like integers, typedefs, structs,  unions to any other type.<br><br>
+    <b>Sub-fields</b> - <i>typedefs</i>, <i>structs</i>, <i>unions</i>, <i>ints</i><br><br>
+    <b><i>lib</i></b> must be specified in <i>library-imports</i> or be one of a predefined import.
     </td>
     <td>
 
 ```yaml
-# These are optional and also default,
-# Omitting any and the default
-# will be used.
-size-map:
-  char: 1
-  unsigned char: 1
-  short: 2
-  unsigned short: 2
-  int: 4
-  unsigned int: 4
-  long: 8
-  unsigned long: 8
-  long long: 8
-  unsigned long long: 8
-  enum: 4
+type-map:
+  'native-types': # Targets native types.
+    'char':
+      'lib': 'pkg_ffi' # predefined import.
+      'c-type': 'Char'
+      # For native-types dart-type can be be int, double or float
+      # but same otherwise.
+      'dart-type': 'int'
+    'int':
+      'lib': 'custom_lib'
+      'c-type': 'CustomType4'
+      'dart-type': 'int'
+  'typedefs': # Targets typedefs.
+    'my_type1':
+      'lib': 'custom_lib'
+      'c-type': 'CustomType'
+      'dart-type': 'CustomType'
+  'structs': # Targets structs.
+    'my_type2':
+      'lib': 'custom_lib'
+      'c-type': 'CustomType2'
+      'dart-type': 'CustomType2'
+  'unions': # Targets unions.
+    'my_type3':
+      'lib': 'custom_lib'
+      'c-type': 'CustomType3'
+      'dart-type': 'CustomType3'
 ```
   </td>
   </tr>
+  <tr>
+    <td>ffi-native</td>
+    <td>
+      <b>WARNING:</b> FfiNative support is EXPERIMENTAL. The API may change
+      in a breaking way without notice.
+      <br><br>
+      Generate `@FfiNative` bindings instead of bindings using `DynamicLibrary` or `lookup`.
+    </td>
+    <td>
+
+```yaml
+ffi-native:
+  asset: 'myasset' # Optional.
+```
+  </td>
+  </tr>
+  <tr>
+    <td>language</td>
+    <td>
+      <b>WARNING:</b> Other language support is EXPERIMENTAL. The API may change
+      in a breaking way without notice.
+      <br><br>
+      Choose the input langauge. Must be one of 'c', or 'objc'. Defaults to 'c'.
+    </td>
+    <td>
+
+```yaml
+language: 'objc'
+```
+  </td>
+  </tr>
+  <tr>
+    <td>output -> symbol-file</td>
+    <td>Generates a symbol file yaml containing all types defined in the generated output.</td>
+    <td>
+
+```yaml
+output:
+  ...
+  symbol-file:
+    # Although file paths are supported here, prefer Package Uri's here
+    # so that other pacakges can use them.
+    output: 'package:some_pkg/symbols.yaml'
+    import-path: 'package:some_pkg/base.dart'
+```
+</td>
+  </tr>
+  <tr>
+    <td>import -> symbol-files</td>
+    <td>Import symbols from a symbol file. Used for sharing type definitions from other pacakges.</td>
+    <td>
+
+```yaml
+import:
+  symbol-files:
+    # Both package Uri and file paths are supported here.
+    - 'package:some_pkg/symbols.yaml'
+    - 'path/to/some/symbol_file.yaml'
+```
+</td>
+  </tr>
 </tbody>
 </table>
 
-## Limitations
-1. Multi OS support for types such as long. [Issue #7](https://github.com/dart-lang/ffigen/issues/7)
+### Objective-C config options
+
+<table>
+<thead>
+  <tr>
+    <th>Key</th>
+    <th>Explaination</th>
+    <th>Example</th>
+  </tr>
+  <colgroup>
+    <col>
+    <col style="width: 100px;">
+  </colgroup>
+</thead>
+<tbody>
+  <tr>
+    <td>
+      objc-interfaces
+    </td>
+    <td>
+      Filters for interface declarations. This option works the same as other
+      declaration filters like `functions` and `structs`.
+    </td>
+    <td>
+
+```yaml
+objc-interfaces:
+  include:
+    # Includes a specific interface.
+    - 'MyInterface'
+    # Includes all interfaces starting with "NS".
+    - 'NS.*'
+  exclude:
+    # Override the above NS.* inclusion, to exclude NSURL.
+    - 'NSURL'
+  rename:
+    # Removes '_' prefix from interface names.
+    '_(.*)': '$1'
+```
+
+  </td>
+  </tr>
+
+  <tr>
+    <td>
+      objc-interfaces -> module
+    </td>
+    <td>
+      Adds a module prefix to the class name when loading the class
+      from the dylib. This is only relevent for ObjC headers that are generated
+      wrappers for a Swift library. See example/swift for more information.
+    </td>
+    <td>
+
+```yaml
+headers:
+  entry-points:
+    # Generated by swiftc to wrap foo_lib.swift.
+    - 'foo_lib-Swift.h'
+objc-interfaces:
+  include:
+    # Eg, foo_lib contains a set of classes prefixed with FL.
+    - 'FL.*'
+  module:
+    # Use 'foo_lib' as the module name for all the FL.* classes.
+    # We don't match .* here because other classes like NSString
+    # shouldn't be given a module prefix.
+    'FL.*': 'foo_lib'
+```
+
+  </td>
+  </tr>
+</tbody>
+</table>
 
 ## Trying out examples
 1. `cd examples/<example_u_want_to_run>`, Run `dart pub get`.
 2. Run `dart run ffigen`.
 
 ## Running Tests
-1. Dynamic library for some tests need to be built before running the examples.
-  1. `cd test/native_test`.
-  2. Run `dart build_test_dylib.dart`.
 
-Run tests from the root of the package with `dart run test`.
-> Note: If llvm is not installed in one of the default locations, tests may fail.
+See [test/README.md](test/README.md)
+
 ## FAQ
 ### Can ffigen be used for removing underscores or renaming declarations?
 Ffigen supports **regexp based renaming**, the regexp must be a
@@ -537,11 +702,6 @@
 
 Ffigen treats `char*` just as any other pointer,(`Pointer<Int8>`).
 To convert these to/from `String`, you can use [package:ffi](https://pub.dev/packages/ffi). Use `ptr.cast<Utf8>().toDartString()` to convert `char*` to dart `string` and `"str".toNativeUtf8()` to convert `string` to `char*`.
-### How does ffigen handle C99 bool data type?
-
-Although `dart:ffi` doesn't have a NativeType for `bool`, they can be implemented as `Uint8`.
-Ffigen generates dart `bool` for function parameters and return type by default.
-To disable this, and use `int` instead, set `dart-bool: false` in configurations.
 
 ### How are unnamed enums handled?
 
@@ -619,6 +779,12 @@
   - They refer to a struct/union having the same name as itself.
   - They refer to a boolean, enum, inline array, Handle or any unsupported type.
 
+### How are macros handled?
+
+`ffigen` uses `clang`'s own compiler frontend to parse and traverse the `C` header files. `ffigen` expands the macros using `clang`'s macro expansion and then traverses the expanded code. To do this, `ffigen` generates temporary files in a system tmp directory.
+
+A custom temporary directory can be specified by setting the `TEST_TMPDIR` environment variable.
+
 ### What are these logs generated by ffigen and how to fix them?
 
 Ffigen can sometimes generate a lot of logs, especially when it's parsing a lot of code.
@@ -637,3 +803,16 @@
     Level options are - `[all, fine, info (default), warning, severe]`.
     The `all` and `fine` will print a ton of logs are meant for debugging
     purposes only.
+
+### How can type definitions be shared?
+
+Ffigen can share type definitions using symbol files.
+- A package can generate a symbol file using the `output -> symbol-file` config.
+- And another package can then import this, using `import -> symbol-files` config.
+- Doing so will reuse all the types such as Struct/Unions, and will automatically
+ exclude generating other types (E.g functions, enums, macros).
+
+Checkout `examples/shared_bindings` for details.
+
+For manually reusing definitions from another package, the `library-imports`
+and `type-map` config can be used.
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 002a2c4..5028f95 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -5,9 +5,13 @@
 include: package:lints/recommended.yaml
 
 analyzer:
-  strong-mode:
-    implicit-casts: false
-    implicit-dynamic: false
+  exclude:
+    - 'test/**_expected*'
+    # Goldens cannot be generated outside MacOS causing analysis errors.
+    - test/native_objc_test/** 
+  language:
+    strict-casts: true
+    strict-inference: true
 
 linter:
   rules:
diff --git a/example/README.md b/example/README.md
index 954249d..91a8db8 100644
--- a/example/README.md
+++ b/example/README.md
@@ -3,3 +3,5 @@
 - [Simple](https://github.com/dart-lang/ffigen/tree/master/example/simple)
 - [cJSON](https://github.com/dart-lang/ffigen/tree/master/example/c_json)
 - [LibClang](https://github.com/dart-lang/ffigen/tree/master/example/libclang-example)
+- [ObjectiveC](https://github.com/dart-lang/ffigen/tree/master/example/objective_c)
+- [Swift](https://github.com/dart-lang/ffigen/tree/master/example/swift)
diff --git a/example/c_json/README.md b/example/c_json/README.md
index 229d65b..f222cc2 100644
--- a/example/c_json/README.md
+++ b/example/c_json/README.md
@@ -15,7 +15,7 @@
 ## Generating bindings
 At the root of this example (`example/c_json`), run -
 ```
-dart run ffigen
+dart run ffigen --config config.yaml
 ```
 This will generate bindings in a file: [cjson_generated_bindings.dart](./cjson_generated_bindings.dart)
 
diff --git a/example/c_json/cjson_generated_bindings.dart b/example/c_json/cjson_generated_bindings.dart
index a518d8a..c520c20 100644
--- a/example/c_json/cjson_generated_bindings.dart
+++ b/example/c_json/cjson_generated_bindings.dart
@@ -19,10 +19,10 @@
 // THE SOFTWARE.
 
 // ignore_for_file: camel_case_types, non_constant_identifier_names
-
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
 
 /// Holds bindings to cJSON.
@@ -40,15 +40,15 @@
           lookup)
       : _lookup = lookup;
 
-  ffi.Pointer<ffi.Int8> cJSON_Version() {
+  ffi.Pointer<ffi.Char> cJSON_Version() {
     return _cJSON_Version();
   }
 
   late final _cJSON_VersionPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function()>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>(
           'cJSON_Version');
   late final _cJSON_Version =
-      _cJSON_VersionPtr.asFunction<ffi.Pointer<ffi.Int8> Function()>();
+      _cJSON_VersionPtr.asFunction<ffi.Pointer<ffi.Char> Function()>();
 
   void cJSON_InitHooks(
     ffi.Pointer<cJSON_Hooks> hooks,
@@ -65,7 +65,7 @@
       _cJSON_InitHooksPtr.asFunction<void Function(ffi.Pointer<cJSON_Hooks>)>();
 
   ffi.Pointer<cJSON> cJSON_Parse(
-    ffi.Pointer<ffi.Int8> value,
+    ffi.Pointer<ffi.Char> value,
   ) {
     return _cJSON_Parse(
       value,
@@ -74,13 +74,13 @@
 
   late final _cJSON_ParsePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>>('cJSON_Parse');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>>('cJSON_Parse');
   late final _cJSON_Parse = _cJSON_ParsePtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_ParseWithOpts(
-    ffi.Pointer<ffi.Int8> value,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> return_parse_end,
+    ffi.Pointer<ffi.Char> value,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> return_parse_end,
     int require_null_terminated,
   ) {
     return _cJSON_ParseWithOpts(
@@ -93,14 +93,14 @@
   late final _cJSON_ParseWithOptsPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Pointer<ffi.Int8>>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Pointer<ffi.Char>>,
               cJSON_bool)>>('cJSON_ParseWithOpts');
   late final _cJSON_ParseWithOpts = _cJSON_ParseWithOptsPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Pointer<ffi.Int8>>, int)>();
+          ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Pointer<ffi.Char>>, int)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_Print(
+  ffi.Pointer<ffi.Char> cJSON_Print(
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_Print(
@@ -110,11 +110,11 @@
 
   late final _cJSON_PrintPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>>('cJSON_Print');
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>>('cJSON_Print');
   late final _cJSON_Print = _cJSON_PrintPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_PrintUnformatted(
+  ffi.Pointer<ffi.Char> cJSON_PrintUnformatted(
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_PrintUnformatted(
@@ -124,12 +124,12 @@
 
   late final _cJSON_PrintUnformattedPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<cJSON>)>>('cJSON_PrintUnformatted');
   late final _cJSON_PrintUnformatted = _cJSON_PrintUnformattedPtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_PrintBuffered(
+  ffi.Pointer<ffi.Char> cJSON_PrintBuffered(
     ffi.Pointer<cJSON> item,
     int prebuffer,
     int fmt,
@@ -143,14 +143,14 @@
 
   late final _cJSON_PrintBufferedPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>, ffi.Int32,
-              cJSON_bool)>>('cJSON_PrintBuffered');
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<cJSON>, ffi.Int, cJSON_bool)>>('cJSON_PrintBuffered');
   late final _cJSON_PrintBuffered = _cJSON_PrintBufferedPtr.asFunction<
-      ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>, int, int)>();
+      ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>, int, int)>();
 
   int cJSON_PrintPreallocated(
     ffi.Pointer<cJSON> item,
-    ffi.Pointer<ffi.Int8> buffer,
+    ffi.Pointer<ffi.Char> buffer,
     int length,
     int format,
   ) {
@@ -164,10 +164,10 @@
 
   late final _cJSON_PrintPreallocatedPtr = _lookup<
       ffi.NativeFunction<
-          cJSON_bool Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
-              ffi.Int32, cJSON_bool)>>('cJSON_PrintPreallocated');
+          cJSON_bool Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
+              ffi.Int, cJSON_bool)>>('cJSON_PrintPreallocated');
   late final _cJSON_PrintPreallocated = _cJSON_PrintPreallocatedPtr.asFunction<
-      int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, int, int)>();
+      int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, int, int)>();
 
   void cJSON_Delete(
     ffi.Pointer<cJSON> item,
@@ -192,7 +192,7 @@
   }
 
   late final _cJSON_GetArraySizePtr =
-      _lookup<ffi.NativeFunction<ffi.Int32 Function(ffi.Pointer<cJSON>)>>(
+      _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Pointer<cJSON>)>>(
           'cJSON_GetArraySize');
   late final _cJSON_GetArraySize =
       _cJSON_GetArraySizePtr.asFunction<int Function(ffi.Pointer<cJSON>)>();
@@ -210,13 +210,13 @@
   late final _cJSON_GetArrayItemPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Int32)>>('cJSON_GetArrayItem');
+              ffi.Pointer<cJSON>, ffi.Int)>>('cJSON_GetArrayItem');
   late final _cJSON_GetArrayItem = _cJSON_GetArrayItemPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, int)>();
 
   ffi.Pointer<cJSON> cJSON_GetObjectItem(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_GetObjectItem(
       object,
@@ -227,13 +227,13 @@
   late final _cJSON_GetObjectItemPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_GetObjectItem');
+              ffi.Pointer<ffi.Char>)>>('cJSON_GetObjectItem');
   late final _cJSON_GetObjectItem = _cJSON_GetObjectItemPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_GetObjectItemCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_GetObjectItemCaseSensitive(
       object,
@@ -244,15 +244,15 @@
   late final _cJSON_GetObjectItemCaseSensitivePtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_GetObjectItemCaseSensitive');
+              ffi.Pointer<ffi.Char>)>>('cJSON_GetObjectItemCaseSensitive');
   late final _cJSON_GetObjectItemCaseSensitive =
       _cJSON_GetObjectItemCaseSensitivePtr.asFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   int cJSON_HasObjectItem(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_HasObjectItem(
       object,
@@ -263,21 +263,21 @@
   late final _cJSON_HasObjectItemPtr = _lookup<
       ffi.NativeFunction<
           cJSON_bool Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_HasObjectItem');
+              ffi.Pointer<ffi.Char>)>>('cJSON_HasObjectItem');
   late final _cJSON_HasObjectItem = _cJSON_HasObjectItemPtr
-      .asFunction<int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<int Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
-  ffi.Pointer<ffi.Int8> cJSON_GetErrorPtr() {
+  ffi.Pointer<ffi.Char> cJSON_GetErrorPtr() {
     return _cJSON_GetErrorPtr();
   }
 
   late final _cJSON_GetErrorPtrPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Int8> Function()>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Char> Function()>>(
           'cJSON_GetErrorPtr');
   late final _cJSON_GetErrorPtr =
-      _cJSON_GetErrorPtrPtr.asFunction<ffi.Pointer<ffi.Int8> Function()>();
+      _cJSON_GetErrorPtrPtr.asFunction<ffi.Pointer<ffi.Char> Function()>();
 
-  ffi.Pointer<ffi.Int8> cJSON_GetStringValue(
+  ffi.Pointer<ffi.Char> cJSON_GetStringValue(
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_GetStringValue(
@@ -287,10 +287,10 @@
 
   late final _cJSON_GetStringValuePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<ffi.Int8> Function(
+          ffi.Pointer<ffi.Char> Function(
               ffi.Pointer<cJSON>)>>('cJSON_GetStringValue');
   late final _cJSON_GetStringValue = _cJSON_GetStringValuePtr
-      .asFunction<ffi.Pointer<ffi.Int8> Function(ffi.Pointer<cJSON>)>();
+      .asFunction<ffi.Pointer<ffi.Char> Function(ffi.Pointer<cJSON>)>();
 
   int cJSON_IsInvalid(
     ffi.Pointer<cJSON> item,
@@ -491,7 +491,7 @@
       _cJSON_CreateNumberPtr.asFunction<ffi.Pointer<cJSON> Function(double)>();
 
   ffi.Pointer<cJSON> cJSON_CreateString(
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_CreateString(
       string,
@@ -501,12 +501,12 @@
   late final _cJSON_CreateStringPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>)>>('cJSON_CreateString');
+              ffi.Pointer<ffi.Char>)>>('cJSON_CreateString');
   late final _cJSON_CreateString = _cJSON_CreateStringPtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateRaw(
-    ffi.Pointer<ffi.Int8> raw,
+    ffi.Pointer<ffi.Char> raw,
   ) {
     return _cJSON_CreateRaw(
       raw,
@@ -516,9 +516,9 @@
   late final _cJSON_CreateRawPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>)>>('cJSON_CreateRaw');
+              ffi.Pointer<ffi.Char>)>>('cJSON_CreateRaw');
   late final _cJSON_CreateRaw = _cJSON_CreateRawPtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateArray() {
     return _cJSON_CreateArray();
@@ -541,7 +541,7 @@
       _cJSON_CreateObjectPtr.asFunction<ffi.Pointer<cJSON> Function()>();
 
   ffi.Pointer<cJSON> cJSON_CreateStringReference(
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_CreateStringReference(
       string,
@@ -551,9 +551,9 @@
   late final _cJSON_CreateStringReferencePtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int8>)>>('cJSON_CreateStringReference');
+              ffi.Pointer<ffi.Char>)>>('cJSON_CreateStringReference');
   late final _cJSON_CreateStringReference = _cJSON_CreateStringReferencePtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int8>)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateObjectReference(
     ffi.Pointer<cJSON> child,
@@ -584,7 +584,7 @@
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>)>();
 
   ffi.Pointer<cJSON> cJSON_CreateIntArray(
-    ffi.Pointer<ffi.Int32> numbers,
+    ffi.Pointer<ffi.Int> numbers,
     int count,
   ) {
     return _cJSON_CreateIntArray(
@@ -596,9 +596,9 @@
   late final _cJSON_CreateIntArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Int32>, ffi.Int32)>>('cJSON_CreateIntArray');
+              ffi.Pointer<ffi.Int>, ffi.Int)>>('cJSON_CreateIntArray');
   late final _cJSON_CreateIntArray = _cJSON_CreateIntArrayPtr
-      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int32>, int)>();
+      .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Int>, int)>();
 
   ffi.Pointer<cJSON> cJSON_CreateFloatArray(
     ffi.Pointer<ffi.Float> numbers,
@@ -613,7 +613,7 @@
   late final _cJSON_CreateFloatArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Float>, ffi.Int32)>>('cJSON_CreateFloatArray');
+              ffi.Pointer<ffi.Float>, ffi.Int)>>('cJSON_CreateFloatArray');
   late final _cJSON_CreateFloatArray = _cJSON_CreateFloatArrayPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Float>, int)>();
 
@@ -630,12 +630,12 @@
   late final _cJSON_CreateDoubleArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<ffi.Double>, ffi.Int32)>>('cJSON_CreateDoubleArray');
+              ffi.Pointer<ffi.Double>, ffi.Int)>>('cJSON_CreateDoubleArray');
   late final _cJSON_CreateDoubleArray = _cJSON_CreateDoubleArrayPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Double>, int)>();
 
   ffi.Pointer<cJSON> cJSON_CreateStringArray(
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> strings,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> strings,
     int count,
   ) {
     return _cJSON_CreateStringArray(
@@ -646,10 +646,10 @@
 
   late final _cJSON_CreateStringArrayPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Int8>>,
-              ffi.Int32)>>('cJSON_CreateStringArray');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Char>>,
+              ffi.Int)>>('cJSON_CreateStringArray');
   late final _cJSON_CreateStringArray = _cJSON_CreateStringArrayPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Int8>>, int)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<ffi.Pointer<ffi.Char>>, int)>();
 
   void cJSON_AddItemToArray(
     ffi.Pointer<cJSON> array,
@@ -670,7 +670,7 @@
 
   void cJSON_AddItemToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_AddItemToObject(
@@ -682,15 +682,15 @@
 
   late final _cJSON_AddItemToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_AddItemToObject');
   late final _cJSON_AddItemToObject = _cJSON_AddItemToObjectPtr.asFunction<
       void Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   void cJSON_AddItemToObjectCS(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_AddItemToObjectCS(
@@ -702,11 +702,11 @@
 
   late final _cJSON_AddItemToObjectCSPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_AddItemToObjectCS');
   late final _cJSON_AddItemToObjectCS = _cJSON_AddItemToObjectCSPtr.asFunction<
       void Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   void cJSON_AddItemReferenceToArray(
     ffi.Pointer<cJSON> array,
@@ -727,7 +727,7 @@
 
   void cJSON_AddItemReferenceToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> item,
   ) {
     return _cJSON_AddItemReferenceToObject(
@@ -739,12 +739,12 @@
 
   late final _cJSON_AddItemReferenceToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_AddItemReferenceToObject');
   late final _cJSON_AddItemReferenceToObject =
       _cJSON_AddItemReferenceToObjectPtr.asFunction<
           void Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemViaPointer(
     ffi.Pointer<cJSON> parent,
@@ -778,7 +778,7 @@
   late final _cJSON_DetachItemFromArrayPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Int32)>>('cJSON_DetachItemFromArray');
+              ffi.Pointer<cJSON>, ffi.Int)>>('cJSON_DetachItemFromArray');
   late final _cJSON_DetachItemFromArray = _cJSON_DetachItemFromArrayPtr
       .asFunction<ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, int)>();
 
@@ -793,14 +793,14 @@
   }
 
   late final _cJSON_DeleteItemFromArrayPtr = _lookup<
-          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int32)>>(
+          ffi.NativeFunction<ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int)>>(
       'cJSON_DeleteItemFromArray');
   late final _cJSON_DeleteItemFromArray = _cJSON_DeleteItemFromArrayPtr
       .asFunction<void Function(ffi.Pointer<cJSON>, int)>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DetachItemFromObject(
       object,
@@ -811,15 +811,15 @@
   late final _cJSON_DetachItemFromObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_DetachItemFromObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_DetachItemFromObject');
   late final _cJSON_DetachItemFromObject =
       _cJSON_DetachItemFromObjectPtr.asFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_DetachItemFromObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DetachItemFromObjectCaseSensitive(
       object,
@@ -830,16 +830,16 @@
   late final _cJSON_DetachItemFromObjectCaseSensitivePtr = _lookup<
           ffi.NativeFunction<
               ffi.Pointer<cJSON> Function(
-                  ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>>(
+                  ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>>(
       'cJSON_DetachItemFromObjectCaseSensitive');
   late final _cJSON_DetachItemFromObjectCaseSensitive =
       _cJSON_DetachItemFromObjectCaseSensitivePtr.asFunction<
           ffi.Pointer<cJSON> Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   void cJSON_DeleteItemFromObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DeleteItemFromObject(
       object,
@@ -850,13 +850,13 @@
   late final _cJSON_DeleteItemFromObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Void Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_DeleteItemFromObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_DeleteItemFromObject');
   late final _cJSON_DeleteItemFromObject = _cJSON_DeleteItemFromObjectPtr
-      .asFunction<void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      .asFunction<void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   void cJSON_DeleteItemFromObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_DeleteItemFromObjectCaseSensitive(
       object,
@@ -866,11 +866,11 @@
 
   late final _cJSON_DeleteItemFromObjectCaseSensitivePtr = _lookup<
           ffi.NativeFunction<
-              ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>>(
+              ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>>(
       'cJSON_DeleteItemFromObjectCaseSensitive');
   late final _cJSON_DeleteItemFromObjectCaseSensitive =
       _cJSON_DeleteItemFromObjectCaseSensitivePtr.asFunction<
-          void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+          void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   void cJSON_InsertItemInArray(
     ffi.Pointer<cJSON> array,
@@ -886,7 +886,7 @@
 
   late final _cJSON_InsertItemInArrayPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int32,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int,
               ffi.Pointer<cJSON>)>>('cJSON_InsertItemInArray');
   late final _cJSON_InsertItemInArray = _cJSON_InsertItemInArrayPtr
       .asFunction<void Function(ffi.Pointer<cJSON>, int, ffi.Pointer<cJSON>)>();
@@ -926,14 +926,14 @@
 
   late final _cJSON_ReplaceItemInArrayPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int32,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Int,
               ffi.Pointer<cJSON>)>>('cJSON_ReplaceItemInArray');
   late final _cJSON_ReplaceItemInArray = _cJSON_ReplaceItemInArrayPtr
       .asFunction<void Function(ffi.Pointer<cJSON>, int, ffi.Pointer<cJSON>)>();
 
   void cJSON_ReplaceItemInObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> newitem,
   ) {
     return _cJSON_ReplaceItemInObject(
@@ -945,16 +945,16 @@
 
   late final _cJSON_ReplaceItemInObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_ReplaceItemInObject');
   late final _cJSON_ReplaceItemInObject =
       _cJSON_ReplaceItemInObjectPtr.asFunction<
           void Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   void cJSON_ReplaceItemInObjectCaseSensitive(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> string,
     ffi.Pointer<cJSON> newitem,
   ) {
     return _cJSON_ReplaceItemInObjectCaseSensitive(
@@ -966,12 +966,12 @@
 
   late final _cJSON_ReplaceItemInObjectCaseSensitivePtr = _lookup<
       ffi.NativeFunction<
-          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Void Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Pointer<cJSON>)>>('cJSON_ReplaceItemInObjectCaseSensitive');
   late final _cJSON_ReplaceItemInObjectCaseSensitive =
       _cJSON_ReplaceItemInObjectCaseSensitivePtr.asFunction<
           void Function(
-              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<cJSON>)>();
+              ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<cJSON>)>();
 
   ffi.Pointer<cJSON> cJSON_Duplicate(
     ffi.Pointer<cJSON> item,
@@ -1010,7 +1010,7 @@
       .asFunction<int Function(ffi.Pointer<cJSON>, ffi.Pointer<cJSON>, int)>();
 
   void cJSON_Minify(
-    ffi.Pointer<ffi.Int8> json,
+    ffi.Pointer<ffi.Char> json,
   ) {
     return _cJSON_Minify(
       json,
@@ -1018,14 +1018,14 @@
   }
 
   late final _cJSON_MinifyPtr =
-      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Int8>)>>(
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Char>)>>(
           'cJSON_Minify');
   late final _cJSON_Minify =
-      _cJSON_MinifyPtr.asFunction<void Function(ffi.Pointer<ffi.Int8>)>();
+      _cJSON_MinifyPtr.asFunction<void Function(ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddNullToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddNullToObject(
       object,
@@ -1036,13 +1036,13 @@
   late final _cJSON_AddNullToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddNullToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddNullToObject');
   late final _cJSON_AddNullToObject = _cJSON_AddNullToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddTrueToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddTrueToObject(
       object,
@@ -1053,13 +1053,13 @@
   late final _cJSON_AddTrueToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddTrueToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddTrueToObject');
   late final _cJSON_AddTrueToObject = _cJSON_AddTrueToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddFalseToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddFalseToObject(
       object,
@@ -1070,13 +1070,13 @@
   late final _cJSON_AddFalseToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddFalseToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddFalseToObject');
   late final _cJSON_AddFalseToObject = _cJSON_AddFalseToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddBoolToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     int boolean,
   ) {
     return _cJSON_AddBoolToObject(
@@ -1088,15 +1088,15 @@
 
   late final _cJSON_AddBoolToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               cJSON_bool)>>('cJSON_AddBoolToObject');
   late final _cJSON_AddBoolToObject = _cJSON_AddBoolToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, int)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, int)>();
 
   ffi.Pointer<cJSON> cJSON_AddNumberToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     double number,
   ) {
     return _cJSON_AddNumberToObject(
@@ -1108,16 +1108,16 @@
 
   late final _cJSON_AddNumberToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
               ffi.Double)>>('cJSON_AddNumberToObject');
   late final _cJSON_AddNumberToObject = _cJSON_AddNumberToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, double)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, double)>();
 
   ffi.Pointer<cJSON> cJSON_AddStringToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
-    ffi.Pointer<ffi.Int8> string,
+    ffi.Pointer<ffi.Char> name,
+    ffi.Pointer<ffi.Char> string,
   ) {
     return _cJSON_AddStringToObject(
       object,
@@ -1128,16 +1128,16 @@
 
   late final _cJSON_AddStringToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddStringToObject');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddStringToObject');
   late final _cJSON_AddStringToObject = _cJSON_AddStringToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddRawToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
-    ffi.Pointer<ffi.Int8> raw,
+    ffi.Pointer<ffi.Char> name,
+    ffi.Pointer<ffi.Char> raw,
   ) {
     return _cJSON_AddRawToObject(
       object,
@@ -1148,15 +1148,15 @@
 
   late final _cJSON_AddRawToObjectPtr = _lookup<
       ffi.NativeFunction<
-          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddRawToObject');
+          ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddRawToObject');
   late final _cJSON_AddRawToObject = _cJSON_AddRawToObjectPtr.asFunction<
       ffi.Pointer<cJSON> Function(
-          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>, ffi.Pointer<ffi.Int8>)>();
+          ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddObjectToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddObjectToObject(
       object,
@@ -1167,13 +1167,13 @@
   late final _cJSON_AddObjectToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddObjectToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddObjectToObject');
   late final _cJSON_AddObjectToObject = _cJSON_AddObjectToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   ffi.Pointer<cJSON> cJSON_AddArrayToObject(
     ffi.Pointer<cJSON> object,
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
   ) {
     return _cJSON_AddArrayToObject(
       object,
@@ -1184,9 +1184,9 @@
   late final _cJSON_AddArrayToObjectPtr = _lookup<
       ffi.NativeFunction<
           ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>,
-              ffi.Pointer<ffi.Int8>)>>('cJSON_AddArrayToObject');
+              ffi.Pointer<ffi.Char>)>>('cJSON_AddArrayToObject');
   late final _cJSON_AddArrayToObject = _cJSON_AddArrayToObjectPtr.asFunction<
-      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Int8>)>();
+      ffi.Pointer<cJSON> Function(ffi.Pointer<cJSON>, ffi.Pointer<ffi.Char>)>();
 
   double cJSON_SetNumberHelper(
     ffi.Pointer<cJSON> object,
@@ -1214,7 +1214,7 @@
   }
 
   late final _cJSON_mallocPtr =
-      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.IntPtr)>>(
+      _lookup<ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Size)>>(
           'cJSON_malloc');
   late final _cJSON_malloc =
       _cJSON_mallocPtr.asFunction<ffi.Pointer<ffi.Void> Function(int)>();
@@ -1241,30 +1241,30 @@
 
   external ffi.Pointer<cJSON> child;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int type;
 
-  external ffi.Pointer<ffi.Int8> valuestring;
+  external ffi.Pointer<ffi.Char> valuestring;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int valueint;
 
   @ffi.Double()
   external double valuedouble;
 
-  external ffi.Pointer<ffi.Int8> string;
+  external ffi.Pointer<ffi.Char> string;
 }
 
 class cJSON_Hooks extends ffi.Struct {
   external ffi.Pointer<
-      ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.IntPtr)>> malloc_fn;
+          ffi.NativeFunction<ffi.Pointer<ffi.Void> Function(ffi.Size sz)>>
+      malloc_fn;
 
-  external ffi
-          .Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
-      free_fn;
+  external ffi.Pointer<
+      ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void> ptr)>> free_fn;
 }
 
-typedef cJSON_bool = ffi.Int32;
+typedef cJSON_bool = ffi.Int;
 
 const int CJSON_VERSION_MAJOR = 1;
 
diff --git a/example/c_json/config.yaml b/example/c_json/config.yaml
new file mode 100644
index 0000000..08c5891
--- /dev/null
+++ b/example/c_json/config.yaml
@@ -0,0 +1,31 @@
+output: 'cjson_generated_bindings.dart'
+name: 'CJson'
+description: 'Holds bindings to cJSON.'
+headers:
+  entry-points:
+    - '../../third_party/cjson_library/cJSON.h'
+  include-directives:
+    - '**cJSON.h'
+comments: false
+preamble: |
+  // Copyright (c) 2009-2017 Dave Gamble and cJSON contributors
+  //
+  // Permission is hereby granted, free of charge, to any person obtaining a copy
+  // of this software and associated documentation files (the "Software"), to deal
+  // in the Software without restriction, including without limitation the rights
+  // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  // copies of the Software, and to permit persons to whom the Software is
+  // furnished to do so, subject to the following conditions:
+  //
+  // The above copyright notice and this permission notice shall be included in
+  // all copies or substantial portions of the Software.
+  //
+  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+  // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+  // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+  // THE SOFTWARE.
+
+  // ignore_for_file: camel_case_types, non_constant_identifier_names
\ No newline at end of file
diff --git a/example/c_json/main.dart b/example/c_json/main.dart
index 99042eb..adbdac6 100644
--- a/example/c_json/main.dart
+++ b/example/c_json/main.dart
@@ -40,8 +40,8 @@
     print('Json converted successfully');
   } else {
     print("Converted json doesn't match\n");
-    print('Actual:\n' + dartJson.toString() + '\n');
-    print('Expected:\n' + json.decode(jsonString).toString());
+    print('Actual:\n$dartJson\n');
+    print('Expected:\n${json.decode(jsonString)}');
   }
 }
 
diff --git a/example/c_json/pubspec.yaml b/example/c_json/pubspec.yaml
index e9b7960..1733b5f 100644
--- a/example/c_json/pubspec.yaml
+++ b/example/c_json/pubspec.yaml
@@ -5,49 +5,13 @@
 name: c_json_example
 
 environment:
-  sdk: '>=2.13.0 <3.0.0'
+  sdk: '>=2.17.0 <4.0.0'
 
 dependencies:
-  ffi: ^1.0.0
+  ffi: ^2.0.1
   path: ^1.8.0
 
 dev_dependencies:
   ffigen:
     path: '../../'
-  lints: ^1.0.1
-
-ffigen:
-  output: 'cjson_generated_bindings.dart'
-  name: 'CJson'
-  description: 'Holds bindings to cJSON.'
-  headers:
-    entry-points:
-      - '../../third_party/cjson_library/cJSON.h'
-    include-directives:
-      - '**cJSON.h'
-  comments: false
-  typedef-map:
-    'size_t': 'IntPtr'
-
-  preamble: |
-    // Copyright (c) 2009-2017 Dave Gamble and cJSON contributors
-    //
-    // Permission is hereby granted, free of charge, to any person obtaining a copy
-    // of this software and associated documentation files (the "Software"), to deal
-    // in the Software without restriction, including without limitation the rights
-    // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-    // copies of the Software, and to permit persons to whom the Software is
-    // furnished to do so, subject to the following conditions:
-    //
-    // The above copyright notice and this permission notice shall be included in
-    // all copies or substantial portions of the Software.
-    //
-    // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-    // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-    // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-    // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-    // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-    // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-    // THE SOFTWARE.
-
-    // ignore_for_file: camel_case_types, non_constant_identifier_names
+  lints: ^2.0.1
diff --git a/example/ffinative/.gitignore b/example/ffinative/.gitignore
new file mode 100644
index 0000000..1b05164
--- /dev/null
+++ b/example/ffinative/.gitignore
@@ -0,0 +1,11 @@
+# Files and directories created by pub.
+.dart_tool/
+.packages
+# Remove the following pattern if you wish to check in your lock file.
+pubspec.lock
+
+# Conventional directory for build outputs.
+build/
+
+# Directory created by dartdoc.
+doc/api/
diff --git a/example/ffinative/README.md b/example/ffinative/README.md
new file mode 100644
index 0000000..82b0e88
--- /dev/null
+++ b/example/ffinative/README.md
@@ -0,0 +1,10 @@
+# FfiNatives example
+
+A simple example generating `FfiNative` bindings for a very small header file (`headers/example.h`).
+
+## Generating bindings
+At the root of this example (`example/simple`), run -
+```
+dart run ffigen --config config.yaml
+```
+This will generate bindings in a file: [generated_bindings.dart](./generated_bindings.dart).
diff --git a/example/ffinative/config.yaml b/example/ffinative/config.yaml
new file mode 100644
index 0000000..18aeb3f
--- /dev/null
+++ b/example/ffinative/config.yaml
@@ -0,0 +1,10 @@
+name: NativeLibrary
+ffi-native:
+  # asset: 'assetname' # (optional)
+description: Bindings to `headers/example.h`.
+output: 'generated_bindings.dart'
+headers:
+  entry-points:
+    - 'headers/example.h'
+preamble: |
+  // ignore_for_file: deprecated_member_use
\ No newline at end of file
diff --git a/example/ffinative/generated_bindings.dart b/example/ffinative/generated_bindings.dart
new file mode 100644
index 0000000..1529564
--- /dev/null
+++ b/example/ffinative/generated_bindings.dart
@@ -0,0 +1,43 @@
+// ignore_for_file: deprecated_member_use
+
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+// ignore_for_file: type=lint
+import 'dart:ffi' as ffi;
+
+/// Adds 2 integers.
+@ffi.FfiNative<ffi.Int Function(ffi.Int, ffi.Int)>('sum')
+external int sum(
+  int a,
+  int b,
+);
+
+/// Subtracts 2 integers.
+@ffi.FfiNative<ffi.Int Function(ffi.Int, ffi.Int)>('subtract')
+external int subtract(
+  int a,
+  int b,
+);
+
+/// Multiplies 2 integers, returns pointer to an integer,.
+@ffi.FfiNative<ffi.Pointer<ffi.Int> Function(ffi.Int, ffi.Int)>('multiply')
+external ffi.Pointer<ffi.Int> multiply(
+  int a,
+  int b,
+);
+
+/// Divides 2 integers, returns pointer to a float.
+@ffi.FfiNative<ffi.Pointer<ffi.Float> Function(ffi.Int, ffi.Int)>('divide')
+external ffi.Pointer<ffi.Float> divide(
+  int a,
+  int b,
+);
+
+/// Divides 2 floats, returns a pointer to double.
+@ffi.FfiNative<ffi.Pointer<ffi.Double> Function(ffi.Float, ffi.Float)>(
+    'dividePrecision')
+external ffi.Pointer<ffi.Double> dividePrecision(
+  double a,
+  double b,
+);
diff --git a/example/ffinative/headers/example.h b/example/ffinative/headers/example.h
new file mode 100644
index 0000000..44056dd
--- /dev/null
+++ b/example/ffinative/headers/example.h
@@ -0,0 +1,18 @@
+// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/** Adds 2 integers. */
+int sum(int a, int b);
+
+/** Subtracts 2 integers. */
+int subtract(int a, int b);
+
+/** Multiplies 2 integers, returns pointer to an integer,. */
+int *multiply(int a, int b);
+
+/** Divides 2 integers, returns pointer to a float. */
+float *divide(int a, int b);
+
+/** Divides 2 floats, returns a pointer to double. */
+double *dividePrecision(float a, float b);
diff --git a/example/ffinative/pubspec.yaml b/example/ffinative/pubspec.yaml
new file mode 100644
index 0000000..2247de4
--- /dev/null
+++ b/example/ffinative/pubspec.yaml
@@ -0,0 +1,15 @@
+# Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+name: ffinative_example
+
+environment:
+  sdk: '>=2.17.0 <4.0.0'
+
+dependencies:
+  ffi: ^2.0.1
+dev_dependencies:
+  ffigen:
+    path: '../../'
+  lints: ^2.0.0
diff --git a/example/libclang-example/config.yaml b/example/libclang-example/config.yaml
new file mode 100644
index 0000000..f6517c0
--- /dev/null
+++ b/example/libclang-example/config.yaml
@@ -0,0 +1,74 @@
+output: 'generated_bindings.dart'
+
+# This will sort the bindings alphabetically.
+# sort: true
+
+# This is required if LLVM can't be found in default locations by ffigen.
+# llvm-path:
+#   - '/usr/local/opt/llvm'
+
+# Bash style Glob matching is also supported.
+# TODO(11): Globs dont work on windows if they begin with '.' or '..'.
+headers:
+  entry-points:
+    - ../../third_party/libclang/include/clang-c/Index.h
+  include-directives: # use glob syntax to match with header file path.
+    - '**CXString.h'
+    - '**Index.h'
+
+compiler-opts:
+  - '-I../../third_party/libclang/include'
+  - '-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/'
+  - '-Wno-nullability-completeness'
+functions:
+  include:
+    - 'clang_.*' # Can be a regexp, '.' matches any character.
+  symbol-address:
+    include:
+      - 'clang_.*' # Symbol Address for these functions will be exposed via addresses.
+  expose-typedefs:
+    include:
+      - 'clang_.*' # Typedefs for Native and Dart type for these functions will be generated.
+structs:
+  include:
+      - 'CX.*'
+enums:
+  include:
+    - 'CXTypeKind' # Full names are given higher priority than regexp.
+    - 'CXGlobalOptFlags'
+
+library-imports:
+  custom_import: 'custom_import.dart'
+
+# These can be used to map any typedef to a specific native type.
+type-map:
+  typedefs:
+    'time_t':
+      lib: 'ffi'
+      c-type: 'Int64'
+      dart-type: 'int'
+  structs:
+    'CXCursorSetImpl':
+      lib: 'custom_import'
+      c-type: 'CXCursorSetImpl'
+      dart-type: 'CXCursorSetImpl'
+
+# Default is 'NativeLibrary'
+name: 'LibClang'
+
+description: 'Holds bindings to LibClang.'
+
+# Doc Comments for generated binings.
+# Comments can be disabled by using comments: false
+comments:
+  style: doxygen # Options - doxygen(default) / any.
+  length: full # Options - brief / full(default).
+
+# The header of the file, this is pasted as it is.
+preamble: |
+  // Part of the LLVM Project, under the Apache License v2.0 with LLVM
+  // Exceptions.
+  // See https://llvm.org/LICENSE.txt for license information.
+  // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+  // ignore_for_file: camel_case_types, non_constant_identifier_names
diff --git a/example/libclang-example/custom_import.dart b/example/libclang-example/custom_import.dart
new file mode 100644
index 0000000..df11af4
--- /dev/null
+++ b/example/libclang-example/custom_import.dart
@@ -0,0 +1,63 @@
+// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:ffi';
+
+/// Represents a native unsigned pointer-sized integer in C.
+///
+/// [UintPtr] is not constructible in the Dart code and serves purely as marker in
+/// type signatures.
+@AbiSpecificIntegerMapping({
+  Abi.androidArm: Uint32(),
+  Abi.androidArm64: Uint64(),
+  Abi.androidIA32: Uint32(),
+  Abi.androidX64: Uint64(),
+  Abi.fuchsiaArm64: Uint64(),
+  Abi.fuchsiaX64: Uint64(),
+  Abi.iosArm: Uint32(),
+  Abi.iosArm64: Uint64(),
+  Abi.iosX64: Uint64(),
+  Abi.linuxArm: Uint32(),
+  Abi.linuxArm64: Uint64(),
+  Abi.linuxIA32: Uint32(),
+  Abi.linuxX64: Uint64(),
+  Abi.macosArm64: Uint64(),
+  Abi.macosX64: Uint64(),
+  Abi.windowsArm64: Uint64(),
+  Abi.windowsIA32: Uint32(),
+  Abi.windowsX64: Uint64(),
+})
+class UintPtr extends AbiSpecificInteger {
+  const UintPtr();
+}
+
+/// `unsigned long` in C.
+///
+/// [UnsignedLong] is not constructible in the Dart code and serves purely as marker in
+/// type signatures.
+@AbiSpecificIntegerMapping({
+  Abi.androidArm: Uint32(),
+  Abi.androidArm64: Uint64(),
+  Abi.androidIA32: Uint32(),
+  Abi.androidX64: Uint64(),
+  Abi.fuchsiaArm64: Uint64(),
+  Abi.fuchsiaX64: Uint64(),
+  Abi.iosArm: Uint32(),
+  Abi.iosArm64: Uint64(),
+  Abi.iosX64: Uint64(),
+  Abi.linuxArm: Uint32(),
+  Abi.linuxArm64: Uint64(),
+  Abi.linuxIA32: Uint32(),
+  Abi.linuxX64: Uint64(),
+  Abi.macosArm64: Uint64(),
+  Abi.macosX64: Uint64(),
+  Abi.windowsArm64: Uint32(),
+  Abi.windowsIA32: Uint32(),
+  Abi.windowsX64: Uint32(),
+})
+class UnsignedLong extends AbiSpecificInteger {
+  const UnsignedLong();
+}
+
+class CXCursorSetImpl extends Opaque {}
diff --git a/example/libclang-example/generated_bindings.dart b/example/libclang-example/generated_bindings.dart
index 1c7c15b..800c580 100644
--- a/example/libclang-example/generated_bindings.dart
+++ b/example/libclang-example/generated_bindings.dart
@@ -8,7 +8,9 @@
 // AUTO GENERATED FILE, DO NOT EDIT.
 //
 // Generated by `package:ffigen`.
+// ignore_for_file: type=lint
 import 'dart:ffi' as ffi;
+import 'custom_import.dart' as custom_import;
 
 /// Holds bindings to LibClang.
 class LibClang {
@@ -26,7 +28,7 @@
       : _lookup = lookup;
 
   /// Retrieve the character data associated with the given string.
-  ffi.Pointer<ffi.Int8> clang_getCString(
+  ffi.Pointer<ffi.Char> clang_getCString(
     CXString string,
   ) {
     return _clang_getCString(
@@ -194,7 +196,7 @@
   /// libclang invocations are not logged..
   void clang_CXIndex_setInvocationEmissionPathOption(
     CXIndex arg0,
-    ffi.Pointer<ffi.Int8> Path,
+    ffi.Pointer<ffi.Char> Path,
   ) {
     return _clang_CXIndex_setInvocationEmissionPathOption(
       arg0,
@@ -290,7 +292,7 @@
   /// or a NULL file handle if the file was not a part of this translation unit.
   CXFile clang_getFile(
     CXTranslationUnit tu,
-    ffi.Pointer<ffi.Int8> file_name,
+    ffi.Pointer<ffi.Char> file_name,
   ) {
     return _clang_getFile(
       tu,
@@ -312,10 +314,10 @@
   ///
   /// \returns a pointer to the buffer in memory that holds the contents of
   /// \p file, or a NULL pointer when the file is not loaded.
-  ffi.Pointer<ffi.Int8> clang_getFileContents(
+  ffi.Pointer<ffi.Char> clang_getFileContents(
     CXTranslationUnit tu,
     CXFile file,
-    ffi.Pointer<ffi.IntPtr> size,
+    ffi.Pointer<ffi.Size> size,
   ) {
     return _clang_getFileContents(
       tu,
@@ -555,9 +557,9 @@
   void clang_getExpansionLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getExpansionLocation(
       location,
@@ -615,8 +617,8 @@
   void clang_getPresumedLocation(
     CXSourceLocation location,
     ffi.Pointer<CXString> filename,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
   ) {
     return _clang_getPresumedLocation(
       location,
@@ -641,9 +643,9 @@
   void clang_getInstantiationLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getInstantiationLocation(
       location,
@@ -684,9 +686,9 @@
   void clang_getSpellingLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getSpellingLocation(
       location,
@@ -727,9 +729,9 @@
   void clang_getFileLocation(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_getFileLocation(
       location,
@@ -881,7 +883,7 @@
   /// \returns A loaded CXDiagnosticSet if successful, and NULL otherwise.  These
   /// diagnostics should be released using clang_disposeDiagnosticSet().
   CXDiagnosticSet clang_loadDiagnostics(
-    ffi.Pointer<ffi.Int8> file,
+    ffi.Pointer<ffi.Char> file,
     ffi.Pointer<ffi.Int32> error,
     ffi.Pointer<CXString> errorString,
   ) {
@@ -1341,9 +1343,9 @@
   /// guarantee their validity until the call to this function returns.
   CXTranslationUnit clang_createTranslationUnitFromSourceFile(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
+    ffi.Pointer<ffi.Char> source_filename,
     int num_clang_command_line_args,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> clang_command_line_args,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> clang_command_line_args,
     int num_unsaved_files,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
   ) {
@@ -1370,7 +1372,7 @@
   /// error codes.
   CXTranslationUnit clang_createTranslationUnit(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> ast_filename,
+    ffi.Pointer<ffi.Char> ast_filename,
   ) {
     return _clang_createTranslationUnit(
       CIdx,
@@ -1392,7 +1394,7 @@
   /// \returns Zero on success, otherwise returns an error code.
   int clang_createTranslationUnit2(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> ast_filename,
+    ffi.Pointer<ffi.Char> ast_filename,
     ffi.Pointer<CXTranslationUnit> out_TU,
   ) {
     return _clang_createTranslationUnit2(
@@ -1435,8 +1437,8 @@
   /// error codes.
   CXTranslationUnit clang_parseTranslationUnit(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -1503,8 +1505,8 @@
   /// \returns Zero on success, otherwise returns an error code.
   int clang_parseTranslationUnit2(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -1534,8 +1536,8 @@
   /// library paths are relative to the binary.
   int clang_parseTranslationUnit2FullArgv(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -1605,7 +1607,7 @@
   /// saved successfully, while a non-zero value indicates that a problem occurred.
   int clang_saveTranslationUnit(
     CXTranslationUnit TU,
-    ffi.Pointer<ffi.Int8> FileName,
+    ffi.Pointer<ffi.Char> FileName,
     int options,
   ) {
     return _clang_saveTranslationUnit(
@@ -1736,7 +1738,7 @@
 
   /// Returns the human-readable null-terminated C string that represents
   /// the name of the memory category.  This string should never be freed.
-  ffi.Pointer<ffi.Int8> clang_getTUResourceUsageName(
+  ffi.Pointer<ffi.Char> clang_getTUResourceUsageName(
     int kind,
   ) {
     return _clang_getTUResourceUsageName(
@@ -2208,9 +2210,9 @@
   /// \c min(N, availability_size) such structures.
   int clang_getCursorPlatformAvailability(
     CXCursor cursor,
-    ffi.Pointer<ffi.Int32> always_deprecated,
+    ffi.Pointer<ffi.Int> always_deprecated,
     ffi.Pointer<CXString> deprecated_message,
-    ffi.Pointer<ffi.Int32> always_unavailable,
+    ffi.Pointer<ffi.Int> always_unavailable,
     ffi.Pointer<CXString> unavailable_message,
     ffi.Pointer<CXPlatformAvailability> availability,
     int availability_size,
@@ -2495,7 +2497,7 @@
   void clang_getOverriddenCursors(
     CXCursor cursor,
     ffi.Pointer<ffi.Pointer<CXCursor>> overridden,
-    ffi.Pointer<ffi.Uint32> num_overridden,
+    ffi.Pointer<ffi.UnsignedInt> num_overridden,
   ) {
     return _clang_getOverriddenCursors(
       cursor,
@@ -3637,7 +3639,7 @@
   /// CXTypeLayoutError_InvalidFieldName is returned.
   int clang_Type_getOffsetOf(
     CXType T,
-    ffi.Pointer<ffi.Int8> S,
+    ffi.Pointer<ffi.Char> S,
   ) {
     return _clang_Type_getOffsetOf(
       T,
@@ -3996,7 +3998,7 @@
 
   /// Construct a USR for a specified Objective-C class.
   CXString clang_constructUSR_ObjCClass(
-    ffi.Pointer<ffi.Int8> class_name,
+    ffi.Pointer<ffi.Char> class_name,
   ) {
     return _clang_constructUSR_ObjCClass(
       class_name,
@@ -4011,8 +4013,8 @@
 
   /// Construct a USR for a specified Objective-C category.
   CXString clang_constructUSR_ObjCCategory(
-    ffi.Pointer<ffi.Int8> class_name,
-    ffi.Pointer<ffi.Int8> category_name,
+    ffi.Pointer<ffi.Char> class_name,
+    ffi.Pointer<ffi.Char> category_name,
   ) {
     return _clang_constructUSR_ObjCCategory(
       class_name,
@@ -4029,7 +4031,7 @@
 
   /// Construct a USR for a specified Objective-C protocol.
   CXString clang_constructUSR_ObjCProtocol(
-    ffi.Pointer<ffi.Int8> protocol_name,
+    ffi.Pointer<ffi.Char> protocol_name,
   ) {
     return _clang_constructUSR_ObjCProtocol(
       protocol_name,
@@ -4046,7 +4048,7 @@
   /// Construct a USR for a specified Objective-C instance variable and
   /// the USR for its containing class.
   CXString clang_constructUSR_ObjCIvar(
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     CXString classUSR,
   ) {
     return _clang_constructUSR_ObjCIvar(
@@ -4064,7 +4066,7 @@
   /// Construct a USR for a specified Objective-C method and
   /// the USR for its containing class.
   CXString clang_constructUSR_ObjCMethod(
-    ffi.Pointer<ffi.Int8> name,
+    ffi.Pointer<ffi.Char> name,
     int isInstanceMethod,
     CXString classUSR,
   ) {
@@ -4084,7 +4086,7 @@
   /// Construct a USR for a specified Objective-C property and the USR
   /// for its containing class.
   CXString clang_constructUSR_ObjCProperty(
-    ffi.Pointer<ffi.Int8> property,
+    ffi.Pointer<ffi.Char> property,
     CXString classUSR,
   ) {
     return _clang_constructUSR_ObjCProperty(
@@ -4558,7 +4560,7 @@
     CXCursor C,
     ffi.Pointer<CXString> language,
     ffi.Pointer<CXString> definedIn,
-    ffi.Pointer<ffi.Uint32> isGenerated,
+    ffi.Pointer<ffi.UnsignedInt> isGenerated,
   ) {
     return _clang_Cursor_isExternalSymbol(
       C,
@@ -5244,7 +5246,7 @@
     CXTranslationUnit TU,
     CXSourceRange Range,
     ffi.Pointer<ffi.Pointer<CXToken>> Tokens,
-    ffi.Pointer<ffi.Uint32> NumTokens,
+    ffi.Pointer<ffi.UnsignedInt> NumTokens,
   ) {
     return _clang_tokenize(
       TU,
@@ -5348,12 +5350,12 @@
 
   void clang_getDefinitionSpellingAndExtent(
     CXCursor arg0,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> startBuf,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> endBuf,
-    ffi.Pointer<ffi.Uint32> startLine,
-    ffi.Pointer<ffi.Uint32> startColumn,
-    ffi.Pointer<ffi.Uint32> endLine,
-    ffi.Pointer<ffi.Uint32> endColumn,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> startBuf,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> endBuf,
+    ffi.Pointer<ffi.UnsignedInt> startLine,
+    ffi.Pointer<ffi.UnsignedInt> startColumn,
+    ffi.Pointer<ffi.UnsignedInt> endLine,
+    ffi.Pointer<ffi.UnsignedInt> endColumn,
   ) {
     return _clang_getDefinitionSpellingAndExtent(
       arg0,
@@ -5820,7 +5822,7 @@
   /// completion fails, returns NULL.
   ffi.Pointer<CXCodeCompleteResults> clang_codeCompleteAt(
     CXTranslationUnit TU,
-    ffi.Pointer<ffi.Int8> complete_filename,
+    ffi.Pointer<ffi.Char> complete_filename,
     int complete_line,
     int complete_column,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
@@ -5960,7 +5962,7 @@
   /// container
   int clang_codeCompleteGetContainerKind(
     ffi.Pointer<CXCodeCompleteResults> Results,
-    ffi.Pointer<ffi.Uint32> IsIncomplete,
+    ffi.Pointer<ffi.UnsignedInt> IsIncomplete,
   ) {
     return _clang_codeCompleteGetContainerKind(
       Results,
@@ -6193,7 +6195,7 @@
   /// kind is other than Int or float. User must not free this pointer,
   /// instead call clang_EvalResult_dispose on the CXEvalResult returned
   /// by clang_Cursor_Evaluate.
-  ffi.Pointer<ffi.Int8> clang_EvalResult_getAsStr(
+  ffi.Pointer<ffi.Char> clang_EvalResult_getAsStr(
     CXEvalResult E,
   ) {
     return _clang_EvalResult_getAsStr(
@@ -6229,7 +6231,7 @@
   /// \returns the requested remapping. This remapping must be freed
   /// via a call to \c clang_remap_dispose(). Can return NULL if an error occurred.
   CXRemapping clang_getRemappings(
-    ffi.Pointer<ffi.Int8> path,
+    ffi.Pointer<ffi.Char> path,
   ) {
     return _clang_getRemappings(
       path,
@@ -6251,7 +6253,7 @@
   /// \returns the requested remapping. This remapping must be freed
   /// via a call to \c clang_remap_dispose(). Can return NULL if an error occurred.
   CXRemapping clang_getRemappingsFromFileList(
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> filePaths,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> filePaths,
     int numFiles,
   ) {
     return _clang_getRemappingsFromFileList(
@@ -6636,8 +6638,8 @@
     ffi.Pointer<IndexerCallbacks> index_callbacks,
     int index_callbacks_size,
     int index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -6675,8 +6677,8 @@
     ffi.Pointer<IndexerCallbacks> index_callbacks,
     int index_callbacks_size,
     int index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -6753,9 +6755,9 @@
     CXIdxLoc loc,
     ffi.Pointer<CXIdxClientFile> indexFile,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset,
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset,
   ) {
     return _clang_indexLoc_getFileLocation(
       loc,
@@ -7648,20 +7650,20 @@
 class CXString extends ffi.Struct {
   external ffi.Pointer<ffi.Void> data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int private_flags;
 }
 
 class CXStringSet extends ffi.Struct {
   external ffi.Pointer<CXString> Strings;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int Count;
 }
 
-typedef NativeClang_getCString = ffi.Pointer<ffi.Int8> Function(
+typedef NativeClang_getCString = ffi.Pointer<ffi.Char> Function(
     CXString string);
-typedef DartClang_getCString = ffi.Pointer<ffi.Int8> Function(CXString string);
+typedef DartClang_getCString = ffi.Pointer<ffi.Char> Function(CXString string);
 typedef NativeClang_disposeString = ffi.Void Function(CXString string);
 typedef DartClang_disposeString = void Function(CXString string);
 typedef NativeClang_disposeStringSet = ffi.Void Function(
@@ -7682,13 +7684,13 @@
   /// The file whose contents have not yet been saved.
   ///
   /// This file must already exist in the file system.
-  external ffi.Pointer<ffi.Int8> Filename;
+  external ffi.Pointer<ffi.Char> Filename;
 
   /// A buffer containing the unsaved contents of this file.
-  external ffi.Pointer<ffi.Int8> Contents;
+  external ffi.Pointer<ffi.Char> Contents;
 
   /// The length of the unsaved contents of this buffer.
-  @ffi.Uint64()
+  @ffi.UnsignedLong()
   external int Length;
 }
 
@@ -7696,19 +7698,19 @@
 class CXVersion extends ffi.Struct {
   /// The major version number, e.g., the '10' in '10.7.3'. A negative
   /// value indicates that there is no version number at all.
-  @ffi.Int32()
+  @ffi.Int()
   external int Major;
 
   /// The minor version number, e.g., the '7' in '10.7.3'. This value
   /// will be negative if no minor version number was provided, e.g., for
   /// version '10'.
-  @ffi.Int32()
+  @ffi.Int()
   external int Minor;
 
   /// The subminor version number, e.g., the '3' in '10.7.3'. This value
   /// will be negative if no minor or subminor version number was provided,
   /// e.g., in version '10' or '10.7'.
-  @ffi.Int32()
+  @ffi.Int()
   external int Subminor;
 }
 
@@ -7716,7 +7718,7 @@
 /// typically be linked together into an executable or library.
 typedef CXIndex = ffi.Pointer<ffi.Void>;
 typedef NativeClang_createIndex = CXIndex Function(
-    ffi.Int32 excludeDeclarationsFromPCH, ffi.Int32 displayDiagnostics);
+    ffi.Int excludeDeclarationsFromPCH, ffi.Int displayDiagnostics);
 typedef DartClang_createIndex = CXIndex Function(
     int excludeDeclarationsFromPCH, int displayDiagnostics);
 typedef NativeClang_disposeIndex = ffi.Void Function(CXIndex index);
@@ -7746,16 +7748,16 @@
 }
 
 typedef NativeClang_CXIndex_setGlobalOptions = ffi.Void Function(
-    CXIndex arg0, ffi.Uint32 options);
+    CXIndex arg0, ffi.UnsignedInt options);
 typedef DartClang_CXIndex_setGlobalOptions = void Function(
     CXIndex arg0, int options);
-typedef NativeClang_CXIndex_getGlobalOptions = ffi.Uint32 Function(
+typedef NativeClang_CXIndex_getGlobalOptions = ffi.UnsignedInt Function(
     CXIndex arg0);
 typedef DartClang_CXIndex_getGlobalOptions = int Function(CXIndex arg0);
 typedef NativeClang_CXIndex_setInvocationEmissionPathOption = ffi.Void Function(
-    CXIndex arg0, ffi.Pointer<ffi.Int8> Path);
+    CXIndex arg0, ffi.Pointer<ffi.Char> Path);
 typedef DartClang_CXIndex_setInvocationEmissionPathOption = void Function(
-    CXIndex arg0, ffi.Pointer<ffi.Int8> Path);
+    CXIndex arg0, ffi.Pointer<ffi.Char> Path);
 
 /// A particular source file that is part of a translation unit.
 typedef CXFile = ffi.Pointer<ffi.Void>;
@@ -7768,30 +7770,29 @@
 /// across an indexing session.
 class CXFileUniqueID extends ffi.Struct {
   @ffi.Array.multi([3])
-  external ffi.Array<ffi.Uint64> data;
+  external ffi.Array<ffi.UnsignedLongLong> data;
 }
 
-typedef NativeClang_getFileUniqueID = ffi.Int32 Function(
+typedef NativeClang_getFileUniqueID = ffi.Int Function(
     CXFile file, ffi.Pointer<CXFileUniqueID> outID);
 typedef DartClang_getFileUniqueID = int Function(
     CXFile file, ffi.Pointer<CXFileUniqueID> outID);
 
 /// A single translation unit, which resides in an index.
 typedef CXTranslationUnit = ffi.Pointer<CXTranslationUnitImpl>;
-typedef NativeClang_isFileMultipleIncludeGuarded = ffi.Uint32 Function(
+typedef NativeClang_isFileMultipleIncludeGuarded = ffi.UnsignedInt Function(
     CXTranslationUnit tu, CXFile file);
 typedef DartClang_isFileMultipleIncludeGuarded = int Function(
     CXTranslationUnit tu, CXFile file);
 typedef NativeClang_getFile = CXFile Function(
-    CXTranslationUnit tu, ffi.Pointer<ffi.Int8> file_name);
+    CXTranslationUnit tu, ffi.Pointer<ffi.Char> file_name);
 typedef DartClang_getFile = CXFile Function(
-    CXTranslationUnit tu, ffi.Pointer<ffi.Int8> file_name);
-typedef NativeClang_getFileContents = ffi.Pointer<ffi.Int8> Function(
-    CXTranslationUnit tu, CXFile file, ffi.Pointer<ffi.IntPtr> size);
-typedef DartClang_getFileContents = ffi.Pointer<ffi.Int8> Function(
-    CXTranslationUnit tu, CXFile file, ffi.Pointer<ffi.IntPtr> size);
-typedef NativeClang_File_isEqual = ffi.Int32 Function(
-    CXFile file1, CXFile file2);
+    CXTranslationUnit tu, ffi.Pointer<ffi.Char> file_name);
+typedef NativeClang_getFileContents = ffi.Pointer<ffi.Char> Function(
+    CXTranslationUnit tu, CXFile file, ffi.Pointer<ffi.Size> size);
+typedef DartClang_getFileContents = ffi.Pointer<ffi.Char> Function(
+    CXTranslationUnit tu, CXFile file, ffi.Pointer<ffi.Size> size);
+typedef NativeClang_File_isEqual = ffi.Int Function(CXFile file1, CXFile file2);
 typedef DartClang_File_isEqual = int Function(CXFile file1, CXFile file2);
 typedef NativeClang_File_tryGetRealPathName = CXString Function(CXFile file);
 typedef DartClang_File_tryGetRealPathName = CXString Function(CXFile file);
@@ -7805,7 +7806,7 @@
   @ffi.Array.multi([2])
   external ffi.Array<ffi.Pointer<ffi.Void>> ptr_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int int_data;
 }
 
@@ -7817,32 +7818,35 @@
   @ffi.Array.multi([2])
   external ffi.Array<ffi.Pointer<ffi.Void>> ptr_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int begin_int_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int end_int_data;
 }
 
 typedef NativeClang_getNullLocation = CXSourceLocation Function();
 typedef DartClang_getNullLocation = CXSourceLocation Function();
-typedef NativeClang_equalLocations = ffi.Uint32 Function(
+typedef NativeClang_equalLocations = ffi.UnsignedInt Function(
     CXSourceLocation loc1, CXSourceLocation loc2);
 typedef DartClang_equalLocations = int Function(
     CXSourceLocation loc1, CXSourceLocation loc2);
 typedef NativeClang_getLocation = CXSourceLocation Function(
-    CXTranslationUnit tu, CXFile file, ffi.Uint32 line, ffi.Uint32 column);
+    CXTranslationUnit tu,
+    CXFile file,
+    ffi.UnsignedInt line,
+    ffi.UnsignedInt column);
 typedef DartClang_getLocation = CXSourceLocation Function(
     CXTranslationUnit tu, CXFile file, int line, int column);
 typedef NativeClang_getLocationForOffset = CXSourceLocation Function(
-    CXTranslationUnit tu, CXFile file, ffi.Uint32 offset);
+    CXTranslationUnit tu, CXFile file, ffi.UnsignedInt offset);
 typedef DartClang_getLocationForOffset = CXSourceLocation Function(
     CXTranslationUnit tu, CXFile file, int offset);
-typedef NativeClang_Location_isInSystemHeader = ffi.Int32 Function(
+typedef NativeClang_Location_isInSystemHeader = ffi.Int Function(
     CXSourceLocation location);
 typedef DartClang_Location_isInSystemHeader = int Function(
     CXSourceLocation location);
-typedef NativeClang_Location_isFromMainFile = ffi.Int32 Function(
+typedef NativeClang_Location_isFromMainFile = ffi.Int Function(
     CXSourceLocation location);
 typedef DartClang_Location_isFromMainFile = int Function(
     CXSourceLocation location);
@@ -7852,70 +7856,70 @@
     CXSourceLocation begin, CXSourceLocation end);
 typedef DartClang_getRange = CXSourceRange Function(
     CXSourceLocation begin, CXSourceLocation end);
-typedef NativeClang_equalRanges = ffi.Uint32 Function(
+typedef NativeClang_equalRanges = ffi.UnsignedInt Function(
     CXSourceRange range1, CXSourceRange range2);
 typedef DartClang_equalRanges = int Function(
     CXSourceRange range1, CXSourceRange range2);
-typedef NativeClang_Range_isNull = ffi.Int32 Function(CXSourceRange range);
+typedef NativeClang_Range_isNull = ffi.Int Function(CXSourceRange range);
 typedef DartClang_Range_isNull = int Function(CXSourceRange range);
 typedef NativeClang_getExpansionLocation = ffi.Void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef DartClang_getExpansionLocation = void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef NativeClang_getPresumedLocation = ffi.Void Function(
     CXSourceLocation location,
     ffi.Pointer<CXString> filename,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column);
 typedef DartClang_getPresumedLocation = void Function(
     CXSourceLocation location,
     ffi.Pointer<CXString> filename,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column);
 typedef NativeClang_getInstantiationLocation = ffi.Void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef DartClang_getInstantiationLocation = void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef NativeClang_getSpellingLocation = ffi.Void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef DartClang_getSpellingLocation = void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef NativeClang_getFileLocation = ffi.Void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef DartClang_getFileLocation = void Function(
     CXSourceLocation location,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef NativeClang_getRangeStart = CXSourceLocation Function(
     CXSourceRange range);
 typedef DartClang_getRangeStart = CXSourceLocation Function(
@@ -7927,7 +7931,7 @@
 /// Identifies an array of ranges.
 class CXSourceRangeList extends ffi.Struct {
   /// The number of ranges in the \c ranges array.
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int count;
 
   /// An array of \c CXSourceRanges.
@@ -7949,7 +7953,7 @@
 
 /// A group of CXDiagnostics.
 typedef CXDiagnosticSet = ffi.Pointer<ffi.Void>;
-typedef NativeClang_getNumDiagnosticsInSet = ffi.Uint32 Function(
+typedef NativeClang_getNumDiagnosticsInSet = ffi.UnsignedInt Function(
     CXDiagnosticSet Diags);
 typedef DartClang_getNumDiagnosticsInSet = int Function(CXDiagnosticSet Diags);
 
@@ -7957,7 +7961,7 @@
 /// location, text, source ranges, and fix-it hints.
 typedef CXDiagnostic = ffi.Pointer<ffi.Void>;
 typedef NativeClang_getDiagnosticInSet = CXDiagnostic Function(
-    CXDiagnosticSet Diags, ffi.Uint32 Index);
+    CXDiagnosticSet Diags, ffi.UnsignedInt Index);
 typedef DartClang_getDiagnosticInSet = CXDiagnostic Function(
     CXDiagnosticSet Diags, int Index);
 
@@ -7981,11 +7985,11 @@
 }
 
 typedef NativeClang_loadDiagnostics = CXDiagnosticSet Function(
-    ffi.Pointer<ffi.Int8> file,
+    ffi.Pointer<ffi.Char> file,
     ffi.Pointer<ffi.Int32> error,
     ffi.Pointer<CXString> errorString);
 typedef DartClang_loadDiagnostics = CXDiagnosticSet Function(
-    ffi.Pointer<ffi.Int8> file,
+    ffi.Pointer<ffi.Char> file,
     ffi.Pointer<ffi.Int32> error,
     ffi.Pointer<CXString> errorString);
 typedef NativeClang_disposeDiagnosticSet = ffi.Void Function(
@@ -7995,11 +7999,11 @@
     CXDiagnostic D);
 typedef DartClang_getChildDiagnostics = CXDiagnosticSet Function(
     CXDiagnostic D);
-typedef NativeClang_getNumDiagnostics = ffi.Uint32 Function(
+typedef NativeClang_getNumDiagnostics = ffi.UnsignedInt Function(
     CXTranslationUnit Unit);
 typedef DartClang_getNumDiagnostics = int Function(CXTranslationUnit Unit);
 typedef NativeClang_getDiagnostic = CXDiagnostic Function(
-    CXTranslationUnit Unit, ffi.Uint32 Index);
+    CXTranslationUnit Unit, ffi.UnsignedInt Index);
 typedef DartClang_getDiagnostic = CXDiagnostic Function(
     CXTranslationUnit Unit, int Index);
 typedef NativeClang_getDiagnosticSetFromTU = CXDiagnosticSet Function(
@@ -8010,10 +8014,11 @@
     CXDiagnostic Diagnostic);
 typedef DartClang_disposeDiagnostic = void Function(CXDiagnostic Diagnostic);
 typedef NativeClang_formatDiagnostic = CXString Function(
-    CXDiagnostic Diagnostic, ffi.Uint32 Options);
+    CXDiagnostic Diagnostic, ffi.UnsignedInt Options);
 typedef DartClang_formatDiagnostic = CXString Function(
     CXDiagnostic Diagnostic, int Options);
-typedef NativeClang_defaultDiagnosticDisplayOptions = ffi.Uint32 Function();
+typedef NativeClang_defaultDiagnosticDisplayOptions = ffi.UnsignedInt
+    Function();
 typedef DartClang_defaultDiagnosticDisplayOptions = int Function();
 
 /// Describes the severity of a particular diagnostic.
@@ -8053,30 +8058,30 @@
     CXDiagnostic Diag, ffi.Pointer<CXString> Disable);
 typedef DartClang_getDiagnosticOption = CXString Function(
     CXDiagnostic Diag, ffi.Pointer<CXString> Disable);
-typedef NativeClang_getDiagnosticCategory = ffi.Uint32 Function(
+typedef NativeClang_getDiagnosticCategory = ffi.UnsignedInt Function(
     CXDiagnostic arg0);
 typedef DartClang_getDiagnosticCategory = int Function(CXDiagnostic arg0);
 typedef NativeClang_getDiagnosticCategoryName = CXString Function(
-    ffi.Uint32 Category);
+    ffi.UnsignedInt Category);
 typedef DartClang_getDiagnosticCategoryName = CXString Function(int Category);
 typedef NativeClang_getDiagnosticCategoryText = CXString Function(
     CXDiagnostic arg0);
 typedef DartClang_getDiagnosticCategoryText = CXString Function(
     CXDiagnostic arg0);
-typedef NativeClang_getDiagnosticNumRanges = ffi.Uint32 Function(
+typedef NativeClang_getDiagnosticNumRanges = ffi.UnsignedInt Function(
     CXDiagnostic arg0);
 typedef DartClang_getDiagnosticNumRanges = int Function(CXDiagnostic arg0);
 typedef NativeClang_getDiagnosticRange = CXSourceRange Function(
-    CXDiagnostic Diagnostic, ffi.Uint32 Range);
+    CXDiagnostic Diagnostic, ffi.UnsignedInt Range);
 typedef DartClang_getDiagnosticRange = CXSourceRange Function(
     CXDiagnostic Diagnostic, int Range);
-typedef NativeClang_getDiagnosticNumFixIts = ffi.Uint32 Function(
+typedef NativeClang_getDiagnosticNumFixIts = ffi.UnsignedInt Function(
     CXDiagnostic Diagnostic);
 typedef DartClang_getDiagnosticNumFixIts = int Function(
     CXDiagnostic Diagnostic);
 typedef NativeClang_getDiagnosticFixIt = CXString Function(
     CXDiagnostic Diagnostic,
-    ffi.Uint32 FixIt,
+    ffi.UnsignedInt FixIt,
     ffi.Pointer<CXSourceRange> ReplacementRange);
 typedef DartClang_getDiagnosticFixIt = CXString Function(
     CXDiagnostic Diagnostic,
@@ -8089,23 +8094,23 @@
 typedef NativeClang_createTranslationUnitFromSourceFile
     = CXTranslationUnit Function(
         CXIndex CIdx,
-        ffi.Pointer<ffi.Int8> source_filename,
-        ffi.Int32 num_clang_command_line_args,
-        ffi.Pointer<ffi.Pointer<ffi.Int8>> clang_command_line_args,
-        ffi.Uint32 num_unsaved_files,
+        ffi.Pointer<ffi.Char> source_filename,
+        ffi.Int num_clang_command_line_args,
+        ffi.Pointer<ffi.Pointer<ffi.Char>> clang_command_line_args,
+        ffi.UnsignedInt num_unsaved_files,
         ffi.Pointer<CXUnsavedFile> unsaved_files);
 typedef DartClang_createTranslationUnitFromSourceFile
     = CXTranslationUnit Function(
         CXIndex CIdx,
-        ffi.Pointer<ffi.Int8> source_filename,
+        ffi.Pointer<ffi.Char> source_filename,
         int num_clang_command_line_args,
-        ffi.Pointer<ffi.Pointer<ffi.Int8>> clang_command_line_args,
+        ffi.Pointer<ffi.Pointer<ffi.Char>> clang_command_line_args,
         int num_unsaved_files,
         ffi.Pointer<CXUnsavedFile> unsaved_files);
 typedef NativeClang_createTranslationUnit = CXTranslationUnit Function(
-    CXIndex CIdx, ffi.Pointer<ffi.Int8> ast_filename);
+    CXIndex CIdx, ffi.Pointer<ffi.Char> ast_filename);
 typedef DartClang_createTranslationUnit = CXTranslationUnit Function(
-    CXIndex CIdx, ffi.Pointer<ffi.Int8> ast_filename);
+    CXIndex CIdx, ffi.Pointer<ffi.Char> ast_filename);
 
 /// Error codes returned by libclang routines.
 ///
@@ -8133,41 +8138,41 @@
 }
 
 typedef NativeClang_createTranslationUnit2 = ffi.Int32 Function(CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> ast_filename, ffi.Pointer<CXTranslationUnit> out_TU);
+    ffi.Pointer<ffi.Char> ast_filename, ffi.Pointer<CXTranslationUnit> out_TU);
 typedef DartClang_createTranslationUnit2 = int Function(CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> ast_filename, ffi.Pointer<CXTranslationUnit> out_TU);
-typedef NativeClang_defaultEditingTranslationUnitOptions = ffi.Uint32
+    ffi.Pointer<ffi.Char> ast_filename, ffi.Pointer<CXTranslationUnit> out_TU);
+typedef NativeClang_defaultEditingTranslationUnitOptions = ffi.UnsignedInt
     Function();
 typedef DartClang_defaultEditingTranslationUnitOptions = int Function();
 typedef NativeClang_parseTranslationUnit = CXTranslationUnit Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
-    ffi.Int32 num_command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
+    ffi.Int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 num_unsaved_files,
-    ffi.Uint32 options);
+    ffi.UnsignedInt num_unsaved_files,
+    ffi.UnsignedInt options);
 typedef DartClang_parseTranslationUnit = CXTranslationUnit Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
     int options);
 typedef NativeClang_parseTranslationUnit2 = ffi.Int32 Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
-    ffi.Int32 num_command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
+    ffi.Int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 num_unsaved_files,
-    ffi.Uint32 options,
+    ffi.UnsignedInt num_unsaved_files,
+    ffi.UnsignedInt options,
     ffi.Pointer<CXTranslationUnit> out_TU);
 typedef DartClang_parseTranslationUnit2 = int Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
@@ -8175,44 +8180,44 @@
     ffi.Pointer<CXTranslationUnit> out_TU);
 typedef NativeClang_parseTranslationUnit2FullArgv = ffi.Int32 Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
-    ffi.Int32 num_command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
+    ffi.Int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 num_unsaved_files,
-    ffi.Uint32 options,
+    ffi.UnsignedInt num_unsaved_files,
+    ffi.UnsignedInt options,
     ffi.Pointer<CXTranslationUnit> out_TU);
 typedef DartClang_parseTranslationUnit2FullArgv = int Function(
     CXIndex CIdx,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
     int options,
     ffi.Pointer<CXTranslationUnit> out_TU);
-typedef NativeClang_defaultSaveOptions = ffi.Uint32 Function(
+typedef NativeClang_defaultSaveOptions = ffi.UnsignedInt Function(
     CXTranslationUnit TU);
 typedef DartClang_defaultSaveOptions = int Function(CXTranslationUnit TU);
-typedef NativeClang_saveTranslationUnit = ffi.Int32 Function(
-    CXTranslationUnit TU, ffi.Pointer<ffi.Int8> FileName, ffi.Uint32 options);
+typedef NativeClang_saveTranslationUnit = ffi.Int Function(CXTranslationUnit TU,
+    ffi.Pointer<ffi.Char> FileName, ffi.UnsignedInt options);
 typedef DartClang_saveTranslationUnit = int Function(
-    CXTranslationUnit TU, ffi.Pointer<ffi.Int8> FileName, int options);
-typedef NativeClang_suspendTranslationUnit = ffi.Uint32 Function(
+    CXTranslationUnit TU, ffi.Pointer<ffi.Char> FileName, int options);
+typedef NativeClang_suspendTranslationUnit = ffi.UnsignedInt Function(
     CXTranslationUnit arg0);
 typedef DartClang_suspendTranslationUnit = int Function(CXTranslationUnit arg0);
 typedef NativeClang_disposeTranslationUnit = ffi.Void Function(
     CXTranslationUnit arg0);
 typedef DartClang_disposeTranslationUnit = void Function(
     CXTranslationUnit arg0);
-typedef NativeClang_defaultReparseOptions = ffi.Uint32 Function(
+typedef NativeClang_defaultReparseOptions = ffi.UnsignedInt Function(
     CXTranslationUnit TU);
 typedef DartClang_defaultReparseOptions = int Function(CXTranslationUnit TU);
-typedef NativeClang_reparseTranslationUnit = ffi.Int32 Function(
+typedef NativeClang_reparseTranslationUnit = ffi.Int Function(
     CXTranslationUnit TU,
-    ffi.Uint32 num_unsaved_files,
+    ffi.UnsignedInt num_unsaved_files,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 options);
+    ffi.UnsignedInt options);
 typedef DartClang_reparseTranslationUnit = int Function(
     CXTranslationUnit TU,
     int num_unsaved_files,
@@ -8241,16 +8246,16 @@
   static const int CXTUResourceUsage_Last = 14;
 }
 
-typedef NativeClang_getTUResourceUsageName = ffi.Pointer<ffi.Int8> Function(
+typedef NativeClang_getTUResourceUsageName = ffi.Pointer<ffi.Char> Function(
     ffi.Int32 kind);
-typedef DartClang_getTUResourceUsageName = ffi.Pointer<ffi.Int8> Function(
+typedef DartClang_getTUResourceUsageName = ffi.Pointer<ffi.Char> Function(
     int kind);
 
 class CXTUResourceUsageEntry extends ffi.Struct {
   @ffi.Int32()
   external int kind;
 
-  @ffi.Uint64()
+  @ffi.UnsignedLong()
   external int amount;
 }
 
@@ -8258,7 +8263,7 @@
 class CXTUResourceUsage extends ffi.Struct {
   external ffi.Pointer<ffi.Void> data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numEntries;
 
   external ffi.Pointer<CXTUResourceUsageEntry> entries;
@@ -8284,7 +8289,7 @@
 typedef DartClang_TargetInfo_dispose = void Function(CXTargetInfo Info);
 typedef NativeClang_TargetInfo_getTriple = CXString Function(CXTargetInfo Info);
 typedef DartClang_TargetInfo_getTriple = CXString Function(CXTargetInfo Info);
-typedef NativeClang_TargetInfo_getPointerWidth = ffi.Int32 Function(
+typedef NativeClang_TargetInfo_getPointerWidth = ffi.Int Function(
     CXTargetInfo Info);
 typedef DartClang_TargetInfo_getPointerWidth = int Function(CXTargetInfo Info);
 
@@ -8308,7 +8313,7 @@
   @ffi.Int32()
   external int kind;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int xdata;
 
   @ffi.Array.multi([3])
@@ -9107,36 +9112,38 @@
     CXTranslationUnit arg0);
 typedef DartClang_getTranslationUnitCursor = CXCursor Function(
     CXTranslationUnit arg0);
-typedef NativeClang_equalCursors = ffi.Uint32 Function(
+typedef NativeClang_equalCursors = ffi.UnsignedInt Function(
     CXCursor arg0, CXCursor arg1);
 typedef DartClang_equalCursors = int Function(CXCursor arg0, CXCursor arg1);
-typedef NativeClang_Cursor_isNull = ffi.Int32 Function(CXCursor cursor);
+typedef NativeClang_Cursor_isNull = ffi.Int Function(CXCursor cursor);
 typedef DartClang_Cursor_isNull = int Function(CXCursor cursor);
-typedef NativeClang_hashCursor = ffi.Uint32 Function(CXCursor arg0);
+typedef NativeClang_hashCursor = ffi.UnsignedInt Function(CXCursor arg0);
 typedef DartClang_hashCursor = int Function(CXCursor arg0);
 typedef NativeClang_getCursorKind = ffi.Int32 Function(CXCursor arg0);
 typedef DartClang_getCursorKind = int Function(CXCursor arg0);
-typedef NativeClang_isDeclaration = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isDeclaration = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isDeclaration = int Function(int arg0);
-typedef NativeClang_isInvalidDeclaration = ffi.Uint32 Function(CXCursor arg0);
+typedef NativeClang_isInvalidDeclaration = ffi.UnsignedInt Function(
+    CXCursor arg0);
 typedef DartClang_isInvalidDeclaration = int Function(CXCursor arg0);
-typedef NativeClang_isReference = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isReference = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isReference = int Function(int arg0);
-typedef NativeClang_isExpression = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isExpression = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isExpression = int Function(int arg0);
-typedef NativeClang_isStatement = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isStatement = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isStatement = int Function(int arg0);
-typedef NativeClang_isAttribute = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isAttribute = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isAttribute = int Function(int arg0);
-typedef NativeClang_Cursor_hasAttrs = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_hasAttrs = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_Cursor_hasAttrs = int Function(CXCursor C);
-typedef NativeClang_isInvalid = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isInvalid = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isInvalid = int Function(int arg0);
-typedef NativeClang_isTranslationUnit = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isTranslationUnit = ffi.UnsignedInt Function(
+    ffi.Int32 arg0);
 typedef DartClang_isTranslationUnit = int Function(int arg0);
-typedef NativeClang_isPreprocessing = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isPreprocessing = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isPreprocessing = int Function(int arg0);
-typedef NativeClang_isUnexposed = ffi.Uint32 Function(ffi.Int32 arg0);
+typedef NativeClang_isUnexposed = ffi.UnsignedInt Function(ffi.Int32 arg0);
 typedef DartClang_isUnexposed = int Function(int arg0);
 
 /// Describe the linkage of the entity referred to by a cursor.
@@ -9224,7 +9231,7 @@
   external CXVersion Obsoleted;
 
   /// Whether the entity is unconditionally unavailable on this platform.
-  @ffi.Int32()
+  @ffi.Int()
   external int Unavailable;
 
   /// An optional message to provide to a user of this API, e.g., to
@@ -9232,19 +9239,19 @@
   external CXString Message;
 }
 
-typedef NativeClang_getCursorPlatformAvailability = ffi.Int32 Function(
+typedef NativeClang_getCursorPlatformAvailability = ffi.Int Function(
     CXCursor cursor,
-    ffi.Pointer<ffi.Int32> always_deprecated,
+    ffi.Pointer<ffi.Int> always_deprecated,
     ffi.Pointer<CXString> deprecated_message,
-    ffi.Pointer<ffi.Int32> always_unavailable,
+    ffi.Pointer<ffi.Int> always_unavailable,
     ffi.Pointer<CXString> unavailable_message,
     ffi.Pointer<CXPlatformAvailability> availability,
-    ffi.Int32 availability_size);
+    ffi.Int availability_size);
 typedef DartClang_getCursorPlatformAvailability = int Function(
     CXCursor cursor,
-    ffi.Pointer<ffi.Int32> always_deprecated,
+    ffi.Pointer<ffi.Int> always_deprecated,
     ffi.Pointer<CXString> deprecated_message,
-    ffi.Pointer<ffi.Int32> always_unavailable,
+    ffi.Pointer<ffi.Int> always_unavailable,
     ffi.Pointer<CXString> unavailable_message,
     ffi.Pointer<CXPlatformAvailability> availability,
     int availability_size);
@@ -9279,19 +9286,17 @@
 typedef DartClang_Cursor_getTranslationUnit = CXTranslationUnit Function(
     CXCursor arg0);
 
-class CXCursorSetImpl extends ffi.Opaque {}
-
 /// A fast container representing a set of CXCursors.
-typedef CXCursorSet = ffi.Pointer<CXCursorSetImpl>;
+typedef CXCursorSet = ffi.Pointer<custom_import.CXCursorSetImpl>;
 typedef NativeClang_createCXCursorSet = CXCursorSet Function();
 typedef DartClang_createCXCursorSet = CXCursorSet Function();
 typedef NativeClang_disposeCXCursorSet = ffi.Void Function(CXCursorSet cset);
 typedef DartClang_disposeCXCursorSet = void Function(CXCursorSet cset);
-typedef NativeClang_CXCursorSet_contains = ffi.Uint32 Function(
+typedef NativeClang_CXCursorSet_contains = ffi.UnsignedInt Function(
     CXCursorSet cset, CXCursor cursor);
 typedef DartClang_CXCursorSet_contains = int Function(
     CXCursorSet cset, CXCursor cursor);
-typedef NativeClang_CXCursorSet_insert = ffi.Uint32 Function(
+typedef NativeClang_CXCursorSet_insert = ffi.UnsignedInt Function(
     CXCursorSet cset, CXCursor cursor);
 typedef DartClang_CXCursorSet_insert = int Function(
     CXCursorSet cset, CXCursor cursor);
@@ -9303,11 +9308,11 @@
 typedef NativeClang_getOverriddenCursors = ffi.Void Function(
     CXCursor cursor,
     ffi.Pointer<ffi.Pointer<CXCursor>> overridden,
-    ffi.Pointer<ffi.Uint32> num_overridden);
+    ffi.Pointer<ffi.UnsignedInt> num_overridden);
 typedef DartClang_getOverriddenCursors = void Function(
     CXCursor cursor,
     ffi.Pointer<ffi.Pointer<CXCursor>> overridden,
-    ffi.Pointer<ffi.Uint32> num_overridden);
+    ffi.Pointer<ffi.UnsignedInt> num_overridden);
 typedef NativeClang_disposeOverriddenCursors = ffi.Void Function(
     ffi.Pointer<CXCursor> overridden);
 typedef DartClang_disposeOverriddenCursors = void Function(
@@ -9471,19 +9476,20 @@
 typedef DartClang_getTypedefDeclUnderlyingType = CXType Function(CXCursor C);
 typedef NativeClang_getEnumDeclIntegerType = CXType Function(CXCursor C);
 typedef DartClang_getEnumDeclIntegerType = CXType Function(CXCursor C);
-typedef NativeClang_getEnumConstantDeclValue = ffi.Int64 Function(CXCursor C);
-typedef DartClang_getEnumConstantDeclValue = int Function(CXCursor C);
-typedef NativeClang_getEnumConstantDeclUnsignedValue = ffi.Uint64 Function(
+typedef NativeClang_getEnumConstantDeclValue = ffi.LongLong Function(
     CXCursor C);
+typedef DartClang_getEnumConstantDeclValue = int Function(CXCursor C);
+typedef NativeClang_getEnumConstantDeclUnsignedValue = ffi.UnsignedLongLong
+    Function(CXCursor C);
 typedef DartClang_getEnumConstantDeclUnsignedValue = int Function(CXCursor C);
-typedef NativeClang_getFieldDeclBitWidth = ffi.Int32 Function(CXCursor C);
+typedef NativeClang_getFieldDeclBitWidth = ffi.Int Function(CXCursor C);
 typedef DartClang_getFieldDeclBitWidth = int Function(CXCursor C);
-typedef NativeClang_Cursor_getNumArguments = ffi.Int32 Function(CXCursor C);
+typedef NativeClang_Cursor_getNumArguments = ffi.Int Function(CXCursor C);
 typedef DartClang_Cursor_getNumArguments = int Function(CXCursor C);
 typedef NativeClang_Cursor_getArgument = CXCursor Function(
-    CXCursor C, ffi.Uint32 i);
+    CXCursor C, ffi.UnsignedInt i);
 typedef DartClang_Cursor_getArgument = CXCursor Function(CXCursor C, int i);
-typedef NativeClang_Cursor_getNumTemplateArguments = ffi.Int32 Function(
+typedef NativeClang_Cursor_getNumTemplateArguments = ffi.Int Function(
     CXCursor C);
 typedef DartClang_Cursor_getNumTemplateArguments = int Function(CXCursor C);
 
@@ -9505,39 +9511,43 @@
 }
 
 typedef NativeClang_Cursor_getTemplateArgumentKind = ffi.Int32 Function(
-    CXCursor C, ffi.Uint32 I);
+    CXCursor C, ffi.UnsignedInt I);
 typedef DartClang_Cursor_getTemplateArgumentKind = int Function(
     CXCursor C, int I);
 typedef NativeClang_Cursor_getTemplateArgumentType = CXType Function(
-    CXCursor C, ffi.Uint32 I);
+    CXCursor C, ffi.UnsignedInt I);
 typedef DartClang_Cursor_getTemplateArgumentType = CXType Function(
     CXCursor C, int I);
-typedef NativeClang_Cursor_getTemplateArgumentValue = ffi.Int64 Function(
-    CXCursor C, ffi.Uint32 I);
+typedef NativeClang_Cursor_getTemplateArgumentValue = ffi.LongLong Function(
+    CXCursor C, ffi.UnsignedInt I);
 typedef DartClang_Cursor_getTemplateArgumentValue = int Function(
     CXCursor C, int I);
-typedef NativeClang_Cursor_getTemplateArgumentUnsignedValue = ffi.Uint64
-    Function(CXCursor C, ffi.Uint32 I);
+typedef NativeClang_Cursor_getTemplateArgumentUnsignedValue
+    = ffi.UnsignedLongLong Function(CXCursor C, ffi.UnsignedInt I);
 typedef DartClang_Cursor_getTemplateArgumentUnsignedValue = int Function(
     CXCursor C, int I);
-typedef NativeClang_equalTypes = ffi.Uint32 Function(CXType A, CXType B);
+typedef NativeClang_equalTypes = ffi.UnsignedInt Function(CXType A, CXType B);
 typedef DartClang_equalTypes = int Function(CXType A, CXType B);
 typedef NativeClang_getCanonicalType = CXType Function(CXType T);
 typedef DartClang_getCanonicalType = CXType Function(CXType T);
-typedef NativeClang_isConstQualifiedType = ffi.Uint32 Function(CXType T);
+typedef NativeClang_isConstQualifiedType = ffi.UnsignedInt Function(CXType T);
 typedef DartClang_isConstQualifiedType = int Function(CXType T);
-typedef NativeClang_Cursor_isMacroFunctionLike = ffi.Uint32 Function(
+typedef NativeClang_Cursor_isMacroFunctionLike = ffi.UnsignedInt Function(
     CXCursor C);
 typedef DartClang_Cursor_isMacroFunctionLike = int Function(CXCursor C);
-typedef NativeClang_Cursor_isMacroBuiltin = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isMacroBuiltin = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_Cursor_isMacroBuiltin = int Function(CXCursor C);
-typedef NativeClang_Cursor_isFunctionInlined = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isFunctionInlined = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_Cursor_isFunctionInlined = int Function(CXCursor C);
-typedef NativeClang_isVolatileQualifiedType = ffi.Uint32 Function(CXType T);
+typedef NativeClang_isVolatileQualifiedType = ffi.UnsignedInt Function(
+    CXType T);
 typedef DartClang_isVolatileQualifiedType = int Function(CXType T);
-typedef NativeClang_isRestrictQualifiedType = ffi.Uint32 Function(CXType T);
+typedef NativeClang_isRestrictQualifiedType = ffi.UnsignedInt Function(
+    CXType T);
 typedef DartClang_isRestrictQualifiedType = int Function(CXType T);
-typedef NativeClang_getAddressSpace = ffi.Uint32 Function(CXType T);
+typedef NativeClang_getAddressSpace = ffi.UnsignedInt Function(CXType T);
 typedef DartClang_getAddressSpace = int Function(CXType T);
 typedef NativeClang_getTypedefName = CXString Function(CXType CT);
 typedef DartClang_getTypedefName = CXString Function(CXType CT);
@@ -9580,46 +9590,47 @@
 typedef DartClang_getFunctionTypeCallingConv = int Function(CXType T);
 typedef NativeClang_getResultType = CXType Function(CXType T);
 typedef DartClang_getResultType = CXType Function(CXType T);
-typedef NativeClang_getExceptionSpecificationType = ffi.Int32 Function(
-    CXType T);
+typedef NativeClang_getExceptionSpecificationType = ffi.Int Function(CXType T);
 typedef DartClang_getExceptionSpecificationType = int Function(CXType T);
-typedef NativeClang_getNumArgTypes = ffi.Int32 Function(CXType T);
+typedef NativeClang_getNumArgTypes = ffi.Int Function(CXType T);
 typedef DartClang_getNumArgTypes = int Function(CXType T);
-typedef NativeClang_getArgType = CXType Function(CXType T, ffi.Uint32 i);
+typedef NativeClang_getArgType = CXType Function(CXType T, ffi.UnsignedInt i);
 typedef DartClang_getArgType = CXType Function(CXType T, int i);
 typedef NativeClang_Type_getObjCObjectBaseType = CXType Function(CXType T);
 typedef DartClang_Type_getObjCObjectBaseType = CXType Function(CXType T);
-typedef NativeClang_Type_getNumObjCProtocolRefs = ffi.Uint32 Function(CXType T);
+typedef NativeClang_Type_getNumObjCProtocolRefs = ffi.UnsignedInt Function(
+    CXType T);
 typedef DartClang_Type_getNumObjCProtocolRefs = int Function(CXType T);
 typedef NativeClang_Type_getObjCProtocolDecl = CXCursor Function(
-    CXType T, ffi.Uint32 i);
+    CXType T, ffi.UnsignedInt i);
 typedef DartClang_Type_getObjCProtocolDecl = CXCursor Function(CXType T, int i);
-typedef NativeClang_Type_getNumObjCTypeArgs = ffi.Uint32 Function(CXType T);
+typedef NativeClang_Type_getNumObjCTypeArgs = ffi.UnsignedInt Function(
+    CXType T);
 typedef DartClang_Type_getNumObjCTypeArgs = int Function(CXType T);
 typedef NativeClang_Type_getObjCTypeArg = CXType Function(
-    CXType T, ffi.Uint32 i);
+    CXType T, ffi.UnsignedInt i);
 typedef DartClang_Type_getObjCTypeArg = CXType Function(CXType T, int i);
-typedef NativeClang_isFunctionTypeVariadic = ffi.Uint32 Function(CXType T);
+typedef NativeClang_isFunctionTypeVariadic = ffi.UnsignedInt Function(CXType T);
 typedef DartClang_isFunctionTypeVariadic = int Function(CXType T);
 typedef NativeClang_getCursorResultType = CXType Function(CXCursor C);
 typedef DartClang_getCursorResultType = CXType Function(CXCursor C);
-typedef NativeClang_getCursorExceptionSpecificationType = ffi.Int32 Function(
+typedef NativeClang_getCursorExceptionSpecificationType = ffi.Int Function(
     CXCursor C);
 typedef DartClang_getCursorExceptionSpecificationType = int Function(
     CXCursor C);
-typedef NativeClang_isPODType = ffi.Uint32 Function(CXType T);
+typedef NativeClang_isPODType = ffi.UnsignedInt Function(CXType T);
 typedef DartClang_isPODType = int Function(CXType T);
 typedef NativeClang_getElementType = CXType Function(CXType T);
 typedef DartClang_getElementType = CXType Function(CXType T);
-typedef NativeClang_getNumElements = ffi.Int64 Function(CXType T);
+typedef NativeClang_getNumElements = ffi.LongLong Function(CXType T);
 typedef DartClang_getNumElements = int Function(CXType T);
 typedef NativeClang_getArrayElementType = CXType Function(CXType T);
 typedef DartClang_getArrayElementType = CXType Function(CXType T);
-typedef NativeClang_getArraySize = ffi.Int64 Function(CXType T);
+typedef NativeClang_getArraySize = ffi.LongLong Function(CXType T);
 typedef DartClang_getArraySize = int Function(CXType T);
 typedef NativeClang_Type_getNamedType = CXType Function(CXType T);
 typedef DartClang_Type_getNamedType = CXType Function(CXType T);
-typedef NativeClang_Type_isTransparentTagTypedef = ffi.Uint32 Function(
+typedef NativeClang_Type_isTransparentTagTypedef = ffi.UnsignedInt Function(
     CXType T);
 typedef DartClang_Type_isTransparentTagTypedef = int Function(CXType T);
 
@@ -9642,31 +9653,32 @@
 
 typedef NativeClang_Type_getNullability = ffi.Int32 Function(CXType T);
 typedef DartClang_Type_getNullability = int Function(CXType T);
-typedef NativeClang_Type_getAlignOf = ffi.Int64 Function(CXType T);
+typedef NativeClang_Type_getAlignOf = ffi.LongLong Function(CXType T);
 typedef DartClang_Type_getAlignOf = int Function(CXType T);
 typedef NativeClang_Type_getClassType = CXType Function(CXType T);
 typedef DartClang_Type_getClassType = CXType Function(CXType T);
-typedef NativeClang_Type_getSizeOf = ffi.Int64 Function(CXType T);
+typedef NativeClang_Type_getSizeOf = ffi.LongLong Function(CXType T);
 typedef DartClang_Type_getSizeOf = int Function(CXType T);
-typedef NativeClang_Type_getOffsetOf = ffi.Int64 Function(
-    CXType T, ffi.Pointer<ffi.Int8> S);
+typedef NativeClang_Type_getOffsetOf = ffi.LongLong Function(
+    CXType T, ffi.Pointer<ffi.Char> S);
 typedef DartClang_Type_getOffsetOf = int Function(
-    CXType T, ffi.Pointer<ffi.Int8> S);
+    CXType T, ffi.Pointer<ffi.Char> S);
 typedef NativeClang_Type_getModifiedType = CXType Function(CXType T);
 typedef DartClang_Type_getModifiedType = CXType Function(CXType T);
-typedef NativeClang_Cursor_getOffsetOfField = ffi.Int64 Function(CXCursor C);
+typedef NativeClang_Cursor_getOffsetOfField = ffi.LongLong Function(CXCursor C);
 typedef DartClang_Cursor_getOffsetOfField = int Function(CXCursor C);
-typedef NativeClang_Cursor_isAnonymous = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isAnonymous = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_Cursor_isAnonymous = int Function(CXCursor C);
-typedef NativeClang_Cursor_isAnonymousRecordDecl = ffi.Uint32 Function(
+typedef NativeClang_Cursor_isAnonymousRecordDecl = ffi.UnsignedInt Function(
     CXCursor C);
 typedef DartClang_Cursor_isAnonymousRecordDecl = int Function(CXCursor C);
-typedef NativeClang_Cursor_isInlineNamespace = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isInlineNamespace = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_Cursor_isInlineNamespace = int Function(CXCursor C);
-typedef NativeClang_Type_getNumTemplateArguments = ffi.Int32 Function(CXType T);
+typedef NativeClang_Type_getNumTemplateArguments = ffi.Int Function(CXType T);
 typedef DartClang_Type_getNumTemplateArguments = int Function(CXType T);
 typedef NativeClang_Type_getTemplateArgumentAsType = CXType Function(
-    CXType T, ffi.Uint32 i);
+    CXType T, ffi.UnsignedInt i);
 typedef DartClang_Type_getTemplateArgumentAsType = CXType Function(
     CXType T, int i);
 
@@ -9683,9 +9695,9 @@
 
 typedef NativeClang_Type_getCXXRefQualifier = ffi.Int32 Function(CXType T);
 typedef DartClang_Type_getCXXRefQualifier = int Function(CXType T);
-typedef NativeClang_Cursor_isBitField = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isBitField = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_Cursor_isBitField = int Function(CXCursor C);
-typedef NativeClang_isVirtualBase = ffi.Uint32 Function(CXCursor arg0);
+typedef NativeClang_isVirtualBase = ffi.UnsignedInt Function(CXCursor arg0);
 typedef DartClang_isVirtualBase = int Function(CXCursor arg0);
 
 /// Represents the C++ access control level to a base class for a
@@ -9715,11 +9727,11 @@
 
 typedef NativeClang_Cursor_getStorageClass = ffi.Int32 Function(CXCursor arg0);
 typedef DartClang_Cursor_getStorageClass = int Function(CXCursor arg0);
-typedef NativeClang_getNumOverloadedDecls = ffi.Uint32 Function(
+typedef NativeClang_getNumOverloadedDecls = ffi.UnsignedInt Function(
     CXCursor cursor);
 typedef DartClang_getNumOverloadedDecls = int Function(CXCursor cursor);
 typedef NativeClang_getOverloadedDecl = CXCursor Function(
-    CXCursor cursor, ffi.Uint32 index);
+    CXCursor cursor, ffi.UnsignedInt index);
 typedef DartClang_getOverloadedDecl = CXCursor Function(
     CXCursor cursor, int index);
 typedef NativeClang_getIBOutletCollectionType = CXType Function(CXCursor arg0);
@@ -9736,7 +9748,9 @@
 /// The visitor should return one of the \c CXChildVisitResult values
 /// to direct clang_visitCursorChildren().
 typedef CXCursorVisitor = ffi.Pointer<
-    ffi.NativeFunction<ffi.Int32 Function(CXCursor, CXCursor, CXClientData)>>;
+    ffi.NativeFunction<
+        ffi.Int32 Function(
+            CXCursor cursor, CXCursor parent, CXClientData client_data)>>;
 
 /// Describes how the traversal of the children of a particular
 /// cursor should proceed after visiting a particular child cursor.
@@ -9759,40 +9773,42 @@
 /// Opaque pointer representing client data that will be passed through
 /// to various callbacks and visitors.
 typedef CXClientData = ffi.Pointer<ffi.Void>;
-typedef NativeClang_visitChildren = ffi.Uint32 Function(
+typedef NativeClang_visitChildren = ffi.UnsignedInt Function(
     CXCursor parent, CXCursorVisitor visitor, CXClientData client_data);
 typedef DartClang_visitChildren = int Function(
     CXCursor parent, CXCursorVisitor visitor, CXClientData client_data);
 typedef NativeClang_getCursorUSR = CXString Function(CXCursor arg0);
 typedef DartClang_getCursorUSR = CXString Function(CXCursor arg0);
 typedef NativeClang_constructUSR_ObjCClass = CXString Function(
-    ffi.Pointer<ffi.Int8> class_name);
+    ffi.Pointer<ffi.Char> class_name);
 typedef DartClang_constructUSR_ObjCClass = CXString Function(
-    ffi.Pointer<ffi.Int8> class_name);
+    ffi.Pointer<ffi.Char> class_name);
 typedef NativeClang_constructUSR_ObjCCategory = CXString Function(
-    ffi.Pointer<ffi.Int8> class_name, ffi.Pointer<ffi.Int8> category_name);
+    ffi.Pointer<ffi.Char> class_name, ffi.Pointer<ffi.Char> category_name);
 typedef DartClang_constructUSR_ObjCCategory = CXString Function(
-    ffi.Pointer<ffi.Int8> class_name, ffi.Pointer<ffi.Int8> category_name);
+    ffi.Pointer<ffi.Char> class_name, ffi.Pointer<ffi.Char> category_name);
 typedef NativeClang_constructUSR_ObjCProtocol = CXString Function(
-    ffi.Pointer<ffi.Int8> protocol_name);
+    ffi.Pointer<ffi.Char> protocol_name);
 typedef DartClang_constructUSR_ObjCProtocol = CXString Function(
-    ffi.Pointer<ffi.Int8> protocol_name);
+    ffi.Pointer<ffi.Char> protocol_name);
 typedef NativeClang_constructUSR_ObjCIvar = CXString Function(
-    ffi.Pointer<ffi.Int8> name, CXString classUSR);
+    ffi.Pointer<ffi.Char> name, CXString classUSR);
 typedef DartClang_constructUSR_ObjCIvar = CXString Function(
-    ffi.Pointer<ffi.Int8> name, CXString classUSR);
+    ffi.Pointer<ffi.Char> name, CXString classUSR);
 typedef NativeClang_constructUSR_ObjCMethod = CXString Function(
-    ffi.Pointer<ffi.Int8> name, ffi.Uint32 isInstanceMethod, CXString classUSR);
+    ffi.Pointer<ffi.Char> name,
+    ffi.UnsignedInt isInstanceMethod,
+    CXString classUSR);
 typedef DartClang_constructUSR_ObjCMethod = CXString Function(
-    ffi.Pointer<ffi.Int8> name, int isInstanceMethod, CXString classUSR);
+    ffi.Pointer<ffi.Char> name, int isInstanceMethod, CXString classUSR);
 typedef NativeClang_constructUSR_ObjCProperty = CXString Function(
-    ffi.Pointer<ffi.Int8> property, CXString classUSR);
+    ffi.Pointer<ffi.Char> property, CXString classUSR);
 typedef DartClang_constructUSR_ObjCProperty = CXString Function(
-    ffi.Pointer<ffi.Int8> property, CXString classUSR);
+    ffi.Pointer<ffi.Char> property, CXString classUSR);
 typedef NativeClang_getCursorSpelling = CXString Function(CXCursor arg0);
 typedef DartClang_getCursorSpelling = CXString Function(CXCursor arg0);
 typedef NativeClang_Cursor_getSpellingNameRange = CXSourceRange Function(
-    CXCursor arg0, ffi.Uint32 pieceIndex, ffi.Uint32 options);
+    CXCursor arg0, ffi.UnsignedInt pieceIndex, ffi.UnsignedInt options);
 typedef DartClang_Cursor_getSpellingNameRange = CXSourceRange Function(
     CXCursor arg0, int pieceIndex, int options);
 
@@ -9833,12 +9849,12 @@
   static const int CXPrintingPolicy_LastProperty = 25;
 }
 
-typedef NativeClang_PrintingPolicy_getProperty = ffi.Uint32 Function(
+typedef NativeClang_PrintingPolicy_getProperty = ffi.UnsignedInt Function(
     CXPrintingPolicy Policy, ffi.Int32 Property);
 typedef DartClang_PrintingPolicy_getProperty = int Function(
     CXPrintingPolicy Policy, int Property);
 typedef NativeClang_PrintingPolicy_setProperty = ffi.Void Function(
-    CXPrintingPolicy Policy, ffi.Int32 Property, ffi.Uint32 Value);
+    CXPrintingPolicy Policy, ffi.Int32 Property, ffi.UnsignedInt Value);
 typedef DartClang_PrintingPolicy_setProperty = void Function(
     CXPrintingPolicy Policy, int Property, int Value);
 typedef NativeClang_getCursorPrintingPolicy = CXPrintingPolicy Function(
@@ -9859,19 +9875,20 @@
 typedef DartClang_getCursorReferenced = CXCursor Function(CXCursor arg0);
 typedef NativeClang_getCursorDefinition = CXCursor Function(CXCursor arg0);
 typedef DartClang_getCursorDefinition = CXCursor Function(CXCursor arg0);
-typedef NativeClang_isCursorDefinition = ffi.Uint32 Function(CXCursor arg0);
+typedef NativeClang_isCursorDefinition = ffi.UnsignedInt Function(
+    CXCursor arg0);
 typedef DartClang_isCursorDefinition = int Function(CXCursor arg0);
 typedef NativeClang_getCanonicalCursor = CXCursor Function(CXCursor arg0);
 typedef DartClang_getCanonicalCursor = CXCursor Function(CXCursor arg0);
-typedef NativeClang_Cursor_getObjCSelectorIndex = ffi.Int32 Function(
+typedef NativeClang_Cursor_getObjCSelectorIndex = ffi.Int Function(
     CXCursor arg0);
 typedef DartClang_Cursor_getObjCSelectorIndex = int Function(CXCursor arg0);
-typedef NativeClang_Cursor_isDynamicCall = ffi.Int32 Function(CXCursor C);
+typedef NativeClang_Cursor_isDynamicCall = ffi.Int Function(CXCursor C);
 typedef DartClang_Cursor_isDynamicCall = int Function(CXCursor C);
 typedef NativeClang_Cursor_getReceiverType = CXType Function(CXCursor C);
 typedef DartClang_Cursor_getReceiverType = CXType Function(CXCursor C);
-typedef NativeClang_Cursor_getObjCPropertyAttributes = ffi.Uint32 Function(
-    CXCursor C, ffi.Uint32 reserved);
+typedef NativeClang_Cursor_getObjCPropertyAttributes = ffi.UnsignedInt Function(
+    CXCursor C, ffi.UnsignedInt reserved);
 typedef DartClang_Cursor_getObjCPropertyAttributes = int Function(
     CXCursor C, int reserved);
 typedef NativeClang_Cursor_getObjCPropertyGetterName = CXString Function(
@@ -9882,23 +9899,24 @@
     CXCursor C);
 typedef DartClang_Cursor_getObjCPropertySetterName = CXString Function(
     CXCursor C);
-typedef NativeClang_Cursor_getObjCDeclQualifiers = ffi.Uint32 Function(
+typedef NativeClang_Cursor_getObjCDeclQualifiers = ffi.UnsignedInt Function(
     CXCursor C);
 typedef DartClang_Cursor_getObjCDeclQualifiers = int Function(CXCursor C);
-typedef NativeClang_Cursor_isObjCOptional = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isObjCOptional = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_Cursor_isObjCOptional = int Function(CXCursor C);
-typedef NativeClang_Cursor_isVariadic = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_Cursor_isVariadic = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_Cursor_isVariadic = int Function(CXCursor C);
-typedef NativeClang_Cursor_isExternalSymbol = ffi.Uint32 Function(
+typedef NativeClang_Cursor_isExternalSymbol = ffi.UnsignedInt Function(
     CXCursor C,
     ffi.Pointer<CXString> language,
     ffi.Pointer<CXString> definedIn,
-    ffi.Pointer<ffi.Uint32> isGenerated);
+    ffi.Pointer<ffi.UnsignedInt> isGenerated);
 typedef DartClang_Cursor_isExternalSymbol = int Function(
     CXCursor C,
     ffi.Pointer<CXString> language,
     ffi.Pointer<CXString> definedIn,
-    ffi.Pointer<ffi.Uint32> isGenerated);
+    ffi.Pointer<ffi.UnsignedInt> isGenerated);
 typedef NativeClang_Cursor_getCommentRange = CXSourceRange Function(CXCursor C);
 typedef DartClang_Cursor_getCommentRange = CXSourceRange Function(CXCursor C);
 typedef NativeClang_Cursor_getRawCommentText = CXString Function(CXCursor C);
@@ -9936,45 +9954,47 @@
 typedef DartClang_Module_getName = CXString Function(CXModule Module);
 typedef NativeClang_Module_getFullName = CXString Function(CXModule Module);
 typedef DartClang_Module_getFullName = CXString Function(CXModule Module);
-typedef NativeClang_Module_isSystem = ffi.Int32 Function(CXModule Module);
+typedef NativeClang_Module_isSystem = ffi.Int Function(CXModule Module);
 typedef DartClang_Module_isSystem = int Function(CXModule Module);
-typedef NativeClang_Module_getNumTopLevelHeaders = ffi.Uint32 Function(
+typedef NativeClang_Module_getNumTopLevelHeaders = ffi.UnsignedInt Function(
     CXTranslationUnit arg0, CXModule Module);
 typedef DartClang_Module_getNumTopLevelHeaders = int Function(
     CXTranslationUnit arg0, CXModule Module);
 typedef NativeClang_Module_getTopLevelHeader = CXFile Function(
-    CXTranslationUnit arg0, CXModule Module, ffi.Uint32 Index);
+    CXTranslationUnit arg0, CXModule Module, ffi.UnsignedInt Index);
 typedef DartClang_Module_getTopLevelHeader = CXFile Function(
     CXTranslationUnit arg0, CXModule Module, int Index);
-typedef NativeClang_CXXConstructor_isConvertingConstructor = ffi.Uint32
+typedef NativeClang_CXXConstructor_isConvertingConstructor = ffi.UnsignedInt
     Function(CXCursor C);
 typedef DartClang_CXXConstructor_isConvertingConstructor = int Function(
     CXCursor C);
-typedef NativeClang_CXXConstructor_isCopyConstructor = ffi.Uint32 Function(
+typedef NativeClang_CXXConstructor_isCopyConstructor = ffi.UnsignedInt Function(
     CXCursor C);
 typedef DartClang_CXXConstructor_isCopyConstructor = int Function(CXCursor C);
-typedef NativeClang_CXXConstructor_isDefaultConstructor = ffi.Uint32 Function(
-    CXCursor C);
+typedef NativeClang_CXXConstructor_isDefaultConstructor = ffi.UnsignedInt
+    Function(CXCursor C);
 typedef DartClang_CXXConstructor_isDefaultConstructor = int Function(
     CXCursor C);
-typedef NativeClang_CXXConstructor_isMoveConstructor = ffi.Uint32 Function(
+typedef NativeClang_CXXConstructor_isMoveConstructor = ffi.UnsignedInt Function(
     CXCursor C);
 typedef DartClang_CXXConstructor_isMoveConstructor = int Function(CXCursor C);
-typedef NativeClang_CXXField_isMutable = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXField_isMutable = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_CXXField_isMutable = int Function(CXCursor C);
-typedef NativeClang_CXXMethod_isDefaulted = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXMethod_isDefaulted = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_CXXMethod_isDefaulted = int Function(CXCursor C);
-typedef NativeClang_CXXMethod_isPureVirtual = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXMethod_isPureVirtual = ffi.UnsignedInt Function(
+    CXCursor C);
 typedef DartClang_CXXMethod_isPureVirtual = int Function(CXCursor C);
-typedef NativeClang_CXXMethod_isStatic = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXMethod_isStatic = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_CXXMethod_isStatic = int Function(CXCursor C);
-typedef NativeClang_CXXMethod_isVirtual = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXMethod_isVirtual = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_CXXMethod_isVirtual = int Function(CXCursor C);
-typedef NativeClang_CXXRecord_isAbstract = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXRecord_isAbstract = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_CXXRecord_isAbstract = int Function(CXCursor C);
-typedef NativeClang_EnumDecl_isScoped = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_EnumDecl_isScoped = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_EnumDecl_isScoped = int Function(CXCursor C);
-typedef NativeClang_CXXMethod_isConst = ffi.Uint32 Function(CXCursor C);
+typedef NativeClang_CXXMethod_isConst = ffi.UnsignedInt Function(CXCursor C);
 typedef DartClang_CXXMethod_isConst = int Function(CXCursor C);
 typedef NativeClang_getTemplateCursorKind = ffi.Int32 Function(CXCursor C);
 typedef DartClang_getTemplateCursorKind = int Function(CXCursor C);
@@ -9982,14 +10002,14 @@
     CXCursor C);
 typedef DartClang_getSpecializedCursorTemplate = CXCursor Function(CXCursor C);
 typedef NativeClang_getCursorReferenceNameRange = CXSourceRange Function(
-    CXCursor C, ffi.Uint32 NameFlags, ffi.Uint32 PieceIndex);
+    CXCursor C, ffi.UnsignedInt NameFlags, ffi.UnsignedInt PieceIndex);
 typedef DartClang_getCursorReferenceNameRange = CXSourceRange Function(
     CXCursor C, int NameFlags, int PieceIndex);
 
 /// Describes a single preprocessing token.
 class CXToken extends ffi.Struct {
   @ffi.Array.multi([4])
-  external ffi.Array<ffi.Uint32> int_data;
+  external ffi.Array<ffi.UnsignedInt> int_data;
 
   external ffi.Pointer<ffi.Void> ptr_data;
 }
@@ -10035,48 +10055,48 @@
     CXTranslationUnit TU,
     CXSourceRange Range,
     ffi.Pointer<ffi.Pointer<CXToken>> Tokens,
-    ffi.Pointer<ffi.Uint32> NumTokens);
+    ffi.Pointer<ffi.UnsignedInt> NumTokens);
 typedef DartClang_tokenize = void Function(
     CXTranslationUnit TU,
     CXSourceRange Range,
     ffi.Pointer<ffi.Pointer<CXToken>> Tokens,
-    ffi.Pointer<ffi.Uint32> NumTokens);
+    ffi.Pointer<ffi.UnsignedInt> NumTokens);
 typedef NativeClang_annotateTokens = ffi.Void Function(
     CXTranslationUnit TU,
     ffi.Pointer<CXToken> Tokens,
-    ffi.Uint32 NumTokens,
+    ffi.UnsignedInt NumTokens,
     ffi.Pointer<CXCursor> Cursors);
 typedef DartClang_annotateTokens = void Function(CXTranslationUnit TU,
     ffi.Pointer<CXToken> Tokens, int NumTokens, ffi.Pointer<CXCursor> Cursors);
-typedef NativeClang_disposeTokens = ffi.Void Function(
-    CXTranslationUnit TU, ffi.Pointer<CXToken> Tokens, ffi.Uint32 NumTokens);
+typedef NativeClang_disposeTokens = ffi.Void Function(CXTranslationUnit TU,
+    ffi.Pointer<CXToken> Tokens, ffi.UnsignedInt NumTokens);
 typedef DartClang_disposeTokens = void Function(
     CXTranslationUnit TU, ffi.Pointer<CXToken> Tokens, int NumTokens);
 typedef NativeClang_getCursorKindSpelling = CXString Function(ffi.Int32 Kind);
 typedef DartClang_getCursorKindSpelling = CXString Function(int Kind);
 typedef NativeClang_getDefinitionSpellingAndExtent = ffi.Void Function(
     CXCursor arg0,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> startBuf,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> endBuf,
-    ffi.Pointer<ffi.Uint32> startLine,
-    ffi.Pointer<ffi.Uint32> startColumn,
-    ffi.Pointer<ffi.Uint32> endLine,
-    ffi.Pointer<ffi.Uint32> endColumn);
+    ffi.Pointer<ffi.Pointer<ffi.Char>> startBuf,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> endBuf,
+    ffi.Pointer<ffi.UnsignedInt> startLine,
+    ffi.Pointer<ffi.UnsignedInt> startColumn,
+    ffi.Pointer<ffi.UnsignedInt> endLine,
+    ffi.Pointer<ffi.UnsignedInt> endColumn);
 typedef DartClang_getDefinitionSpellingAndExtent = void Function(
     CXCursor arg0,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> startBuf,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> endBuf,
-    ffi.Pointer<ffi.Uint32> startLine,
-    ffi.Pointer<ffi.Uint32> startColumn,
-    ffi.Pointer<ffi.Uint32> endLine,
-    ffi.Pointer<ffi.Uint32> endColumn);
+    ffi.Pointer<ffi.Pointer<ffi.Char>> startBuf,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> endBuf,
+    ffi.Pointer<ffi.UnsignedInt> startLine,
+    ffi.Pointer<ffi.UnsignedInt> startColumn,
+    ffi.Pointer<ffi.UnsignedInt> endLine,
+    ffi.Pointer<ffi.UnsignedInt> endColumn);
 typedef NativeClang_enableStackTraces = ffi.Void Function();
 typedef DartClang_enableStackTraces = void Function();
 typedef NativeClang_executeOnThread = ffi.Void Function(
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
         fn,
     ffi.Pointer<ffi.Void> user_data,
-    ffi.Uint32 stack_size);
+    ffi.UnsignedInt stack_size);
 typedef DartClang_executeOnThread = void Function(
     ffi.Pointer<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>
         fn,
@@ -10262,22 +10282,23 @@
 }
 
 typedef NativeClang_getCompletionChunkKind = ffi.Int32 Function(
-    CXCompletionString completion_string, ffi.Uint32 chunk_number);
+    CXCompletionString completion_string, ffi.UnsignedInt chunk_number);
 typedef DartClang_getCompletionChunkKind = int Function(
     CXCompletionString completion_string, int chunk_number);
 typedef NativeClang_getCompletionChunkText = CXString Function(
-    CXCompletionString completion_string, ffi.Uint32 chunk_number);
+    CXCompletionString completion_string, ffi.UnsignedInt chunk_number);
 typedef DartClang_getCompletionChunkText = CXString Function(
     CXCompletionString completion_string, int chunk_number);
-typedef NativeClang_getCompletionChunkCompletionString = CXCompletionString
-    Function(CXCompletionString completion_string, ffi.Uint32 chunk_number);
+typedef NativeClang_getCompletionChunkCompletionString
+    = CXCompletionString Function(
+        CXCompletionString completion_string, ffi.UnsignedInt chunk_number);
 typedef DartClang_getCompletionChunkCompletionString = CXCompletionString
     Function(CXCompletionString completion_string, int chunk_number);
-typedef NativeClang_getNumCompletionChunks = ffi.Uint32 Function(
+typedef NativeClang_getNumCompletionChunks = ffi.UnsignedInt Function(
     CXCompletionString completion_string);
 typedef DartClang_getNumCompletionChunks = int Function(
     CXCompletionString completion_string);
-typedef NativeClang_getCompletionPriority = ffi.Uint32 Function(
+typedef NativeClang_getCompletionPriority = ffi.UnsignedInt Function(
     CXCompletionString completion_string);
 typedef DartClang_getCompletionPriority = int Function(
     CXCompletionString completion_string);
@@ -10285,12 +10306,12 @@
     CXCompletionString completion_string);
 typedef DartClang_getCompletionAvailability = int Function(
     CXCompletionString completion_string);
-typedef NativeClang_getCompletionNumAnnotations = ffi.Uint32 Function(
+typedef NativeClang_getCompletionNumAnnotations = ffi.UnsignedInt Function(
     CXCompletionString completion_string);
 typedef DartClang_getCompletionNumAnnotations = int Function(
     CXCompletionString completion_string);
 typedef NativeClang_getCompletionAnnotation = CXString Function(
-    CXCompletionString completion_string, ffi.Uint32 annotation_number);
+    CXCompletionString completion_string, ffi.UnsignedInt annotation_number);
 typedef DartClang_getCompletionAnnotation = CXString Function(
     CXCompletionString completion_string, int annotation_number);
 typedef NativeClang_getCompletionParent = CXString Function(
@@ -10317,69 +10338,70 @@
 
   /// The number of code-completion results stored in the
   /// \c Results array.
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int NumResults;
 }
 
-typedef NativeClang_getCompletionNumFixIts = ffi.Uint32 Function(
-    ffi.Pointer<CXCodeCompleteResults> results, ffi.Uint32 completion_index);
+typedef NativeClang_getCompletionNumFixIts = ffi.UnsignedInt Function(
+    ffi.Pointer<CXCodeCompleteResults> results,
+    ffi.UnsignedInt completion_index);
 typedef DartClang_getCompletionNumFixIts = int Function(
     ffi.Pointer<CXCodeCompleteResults> results, int completion_index);
 typedef NativeClang_getCompletionFixIt = CXString Function(
     ffi.Pointer<CXCodeCompleteResults> results,
-    ffi.Uint32 completion_index,
-    ffi.Uint32 fixit_index,
+    ffi.UnsignedInt completion_index,
+    ffi.UnsignedInt fixit_index,
     ffi.Pointer<CXSourceRange> replacement_range);
 typedef DartClang_getCompletionFixIt = CXString Function(
     ffi.Pointer<CXCodeCompleteResults> results,
     int completion_index,
     int fixit_index,
     ffi.Pointer<CXSourceRange> replacement_range);
-typedef NativeClang_defaultCodeCompleteOptions = ffi.Uint32 Function();
+typedef NativeClang_defaultCodeCompleteOptions = ffi.UnsignedInt Function();
 typedef DartClang_defaultCodeCompleteOptions = int Function();
 typedef NativeClang_codeCompleteAt
     = ffi.Pointer<CXCodeCompleteResults> Function(
         CXTranslationUnit TU,
-        ffi.Pointer<ffi.Int8> complete_filename,
-        ffi.Uint32 complete_line,
-        ffi.Uint32 complete_column,
+        ffi.Pointer<ffi.Char> complete_filename,
+        ffi.UnsignedInt complete_line,
+        ffi.UnsignedInt complete_column,
         ffi.Pointer<CXUnsavedFile> unsaved_files,
-        ffi.Uint32 num_unsaved_files,
-        ffi.Uint32 options);
+        ffi.UnsignedInt num_unsaved_files,
+        ffi.UnsignedInt options);
 typedef DartClang_codeCompleteAt = ffi.Pointer<CXCodeCompleteResults> Function(
     CXTranslationUnit TU,
-    ffi.Pointer<ffi.Int8> complete_filename,
+    ffi.Pointer<ffi.Char> complete_filename,
     int complete_line,
     int complete_column,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
     int options);
 typedef NativeClang_sortCodeCompletionResults = ffi.Void Function(
-    ffi.Pointer<CXCompletionResult> Results, ffi.Uint32 NumResults);
+    ffi.Pointer<CXCompletionResult> Results, ffi.UnsignedInt NumResults);
 typedef DartClang_sortCodeCompletionResults = void Function(
     ffi.Pointer<CXCompletionResult> Results, int NumResults);
 typedef NativeClang_disposeCodeCompleteResults = ffi.Void Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef DartClang_disposeCodeCompleteResults = void Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
-typedef NativeClang_codeCompleteGetNumDiagnostics = ffi.Uint32 Function(
+typedef NativeClang_codeCompleteGetNumDiagnostics = ffi.UnsignedInt Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef DartClang_codeCompleteGetNumDiagnostics = int Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef NativeClang_codeCompleteGetDiagnostic = CXDiagnostic Function(
-    ffi.Pointer<CXCodeCompleteResults> Results, ffi.Uint32 Index);
+    ffi.Pointer<CXCodeCompleteResults> Results, ffi.UnsignedInt Index);
 typedef DartClang_codeCompleteGetDiagnostic = CXDiagnostic Function(
     ffi.Pointer<CXCodeCompleteResults> Results, int Index);
-typedef NativeClang_codeCompleteGetContexts = ffi.Uint64 Function(
+typedef NativeClang_codeCompleteGetContexts = ffi.UnsignedLongLong Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef DartClang_codeCompleteGetContexts = int Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef NativeClang_codeCompleteGetContainerKind = ffi.Int32 Function(
     ffi.Pointer<CXCodeCompleteResults> Results,
-    ffi.Pointer<ffi.Uint32> IsIncomplete);
+    ffi.Pointer<ffi.UnsignedInt> IsIncomplete);
 typedef DartClang_codeCompleteGetContainerKind = int Function(
     ffi.Pointer<CXCodeCompleteResults> Results,
-    ffi.Pointer<ffi.Uint32> IsIncomplete);
+    ffi.Pointer<ffi.UnsignedInt> IsIncomplete);
 typedef NativeClang_codeCompleteGetContainerUSR = CXString Function(
     ffi.Pointer<CXCodeCompleteResults> Results);
 typedef DartClang_codeCompleteGetContainerUSR = CXString Function(
@@ -10391,7 +10413,7 @@
 typedef NativeClang_getClangVersion = CXString Function();
 typedef DartClang_getClangVersion = CXString Function();
 typedef NativeClang_toggleCrashRecovery = ffi.Void Function(
-    ffi.Uint32 isEnabled);
+    ffi.UnsignedInt isEnabled);
 typedef DartClang_toggleCrashRecovery = void Function(int isEnabled);
 
 /// Visitor invoked for each file in a translation unit
@@ -10406,7 +10428,10 @@
 typedef CXInclusionVisitor = ffi.Pointer<
     ffi.NativeFunction<
         ffi.Void Function(
-            CXFile, ffi.Pointer<CXSourceLocation>, ffi.Uint32, CXClientData)>>;
+            CXFile included_file,
+            ffi.Pointer<CXSourceLocation> inclusion_stack,
+            ffi.UnsignedInt include_len,
+            CXClientData client_data)>>;
 typedef NativeClang_getInclusions = ffi.Void Function(
     CXTranslationUnit tu, CXInclusionVisitor visitor, CXClientData client_data);
 typedef DartClang_getInclusions = void Function(
@@ -10429,23 +10454,23 @@
 
 typedef NativeClang_EvalResult_getKind = ffi.Int32 Function(CXEvalResult E);
 typedef DartClang_EvalResult_getKind = int Function(CXEvalResult E);
-typedef NativeClang_EvalResult_getAsInt = ffi.Int32 Function(CXEvalResult E);
+typedef NativeClang_EvalResult_getAsInt = ffi.Int Function(CXEvalResult E);
 typedef DartClang_EvalResult_getAsInt = int Function(CXEvalResult E);
-typedef NativeClang_EvalResult_getAsLongLong = ffi.Int64 Function(
+typedef NativeClang_EvalResult_getAsLongLong = ffi.LongLong Function(
     CXEvalResult E);
 typedef DartClang_EvalResult_getAsLongLong = int Function(CXEvalResult E);
-typedef NativeClang_EvalResult_isUnsignedInt = ffi.Uint32 Function(
+typedef NativeClang_EvalResult_isUnsignedInt = ffi.UnsignedInt Function(
     CXEvalResult E);
 typedef DartClang_EvalResult_isUnsignedInt = int Function(CXEvalResult E);
-typedef NativeClang_EvalResult_getAsUnsigned = ffi.Uint64 Function(
+typedef NativeClang_EvalResult_getAsUnsigned = ffi.UnsignedLongLong Function(
     CXEvalResult E);
 typedef DartClang_EvalResult_getAsUnsigned = int Function(CXEvalResult E);
 typedef NativeClang_EvalResult_getAsDouble = ffi.Double Function(
     CXEvalResult E);
 typedef DartClang_EvalResult_getAsDouble = double Function(CXEvalResult E);
-typedef NativeClang_EvalResult_getAsStr = ffi.Pointer<ffi.Int8> Function(
+typedef NativeClang_EvalResult_getAsStr = ffi.Pointer<ffi.Char> Function(
     CXEvalResult E);
-typedef DartClang_EvalResult_getAsStr = ffi.Pointer<ffi.Int8> Function(
+typedef DartClang_EvalResult_getAsStr = ffi.Pointer<ffi.Char> Function(
     CXEvalResult E);
 typedef NativeClang_EvalResult_dispose = ffi.Void Function(CXEvalResult E);
 typedef DartClang_EvalResult_dispose = void Function(CXEvalResult E);
@@ -10453,18 +10478,19 @@
 /// A remapping of original source files and their translated files.
 typedef CXRemapping = ffi.Pointer<ffi.Void>;
 typedef NativeClang_getRemappings = CXRemapping Function(
-    ffi.Pointer<ffi.Int8> path);
+    ffi.Pointer<ffi.Char> path);
 typedef DartClang_getRemappings = CXRemapping Function(
-    ffi.Pointer<ffi.Int8> path);
+    ffi.Pointer<ffi.Char> path);
 typedef NativeClang_getRemappingsFromFileList = CXRemapping Function(
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> filePaths, ffi.Uint32 numFiles);
+    ffi.Pointer<ffi.Pointer<ffi.Char>> filePaths, ffi.UnsignedInt numFiles);
 typedef DartClang_getRemappingsFromFileList = CXRemapping Function(
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> filePaths, int numFiles);
-typedef NativeClang_remap_getNumFiles = ffi.Uint32 Function(CXRemapping arg0);
+    ffi.Pointer<ffi.Pointer<ffi.Char>> filePaths, int numFiles);
+typedef NativeClang_remap_getNumFiles = ffi.UnsignedInt Function(
+    CXRemapping arg0);
 typedef DartClang_remap_getNumFiles = int Function(CXRemapping arg0);
 typedef NativeClang_remap_getFilenames = ffi.Void Function(
     CXRemapping arg0,
-    ffi.Uint32 index,
+    ffi.UnsignedInt index,
     ffi.Pointer<CXString> original,
     ffi.Pointer<CXString> transformed);
 typedef DartClang_remap_getFilenames = void Function(
@@ -10518,7 +10544,7 @@
   @ffi.Array.multi([2])
   external ffi.Array<ffi.Pointer<ffi.Void>> ptr_data;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int int_data;
 }
 
@@ -10528,20 +10554,20 @@
   external CXIdxLoc hashLoc;
 
   /// Filename as written in the \#include/\#import directive.
-  external ffi.Pointer<ffi.Int8> filename;
+  external ffi.Pointer<ffi.Char> filename;
 
   /// The actual file that the \#include/\#import directive resolved to.
   external CXFile file;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isImport;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isAngled;
 
   /// Non-zero if the directive was automatically turned into a module
   /// import.
-  @ffi.Int32()
+  @ffi.Int()
   external int isModuleImport;
 }
 
@@ -10558,7 +10584,7 @@
 
   /// Non-zero if an inclusion directive was automatically turned into
   /// a module import. Applicable only for modules.
-  @ffi.Int32()
+  @ffi.Int()
   external int isImplicit;
 }
 
@@ -10588,15 +10614,15 @@
   @ffi.Int32()
   external int lang;
 
-  external ffi.Pointer<ffi.Int8> name;
+  external ffi.Pointer<ffi.Char> name;
 
-  external ffi.Pointer<ffi.Int8> USR;
+  external ffi.Pointer<ffi.Char> USR;
 
   external CXCursor cursor;
 
   external ffi.Pointer<ffi.Pointer<CXIdxAttrInfo>> attributes;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numAttributes;
 }
 
@@ -10680,28 +10706,28 @@
   /// cases like out-of-line C++ member functions.
   external ffi.Pointer<CXIdxContainerInfo> lexicalContainer;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isRedeclaration;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isDefinition;
 
-  @ffi.Int32()
+  @ffi.Int()
   external int isContainer;
 
   external ffi.Pointer<CXIdxContainerInfo> declAsContainer;
 
   /// Whether the declaration exists in code or was created implicitly
   /// by the compiler, e.g. implicit Objective-C methods for properties.
-  @ffi.Int32()
+  @ffi.Int()
   external int isImplicit;
 
   external ffi.Pointer<ffi.Pointer<CXIdxAttrInfo>> attributes;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numAttributes;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int flags;
 }
 
@@ -10737,7 +10763,7 @@
 class CXIdxObjCProtocolRefListInfo extends ffi.Struct {
   external ffi.Pointer<ffi.Pointer<CXIdxObjCProtocolRefInfo>> protocols;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numProtocols;
 }
 
@@ -10774,7 +10800,7 @@
 
   external ffi.Pointer<ffi.Pointer<CXIdxBaseClassInfo>> bases;
 
-  @ffi.Uint32()
+  @ffi.UnsignedInt()
   external int numBases;
 }
 
@@ -10840,7 +10866,7 @@
   static const int CXSymbolRole_Implicit = 256;
 }
 
-typedef NativeClang_index_isEntityObjCContainerKind = ffi.Int32 Function(
+typedef NativeClang_index_isEntityObjCContainerKind = ffi.Int Function(
     ffi.Int32 arg0);
 typedef DartClang_index_isEntityObjCContainerKind = int Function(int arg0);
 typedef NativeClang_index_getObjCContainerDeclInfo
@@ -10922,8 +10948,10 @@
   /// Called periodically to check whether indexing should be aborted.
   /// Should return 0 to continue, and non-zero to abort.
   external ffi.Pointer<
-      ffi.NativeFunction<
-          ffi.Int32 Function(CXClientData, ffi.Pointer<ffi.Void>)>> abortQuery;
+          ffi.NativeFunction<
+              ffi.Int Function(
+                  CXClientData client_data, ffi.Pointer<ffi.Void> reserved)>>
+      abortQuery;
 
   /// Called at the end of indexing; passes the complete diagnostic set.
   external ffi.Pointer<
@@ -10934,8 +10962,8 @@
 
   external ffi.Pointer<
       ffi.NativeFunction<
-          CXIdxClientFile Function(
-              CXClientData, CXFile, ffi.Pointer<ffi.Void>)>> enteredMainFile;
+          CXIdxClientFile Function(CXClientData client_data, CXFile mainFile,
+              ffi.Pointer<ffi.Void> reserved)>> enteredMainFile;
 
   /// Called when a file gets \#included/\#imported.
   external ffi.Pointer<
@@ -10958,9 +10986,10 @@
 
   /// Called at the beginning of indexing a translation unit.
   external ffi.Pointer<
-      ffi.NativeFunction<
-          CXIdxClientContainer Function(
-              CXClientData, ffi.Pointer<ffi.Void>)>> startedTranslationUnit;
+          ffi.NativeFunction<
+              CXIdxClientContainer Function(
+                  CXClientData client_data, ffi.Pointer<ffi.Void> reserved)>>
+      startedTranslationUnit;
 
   external ffi.Pointer<
           ffi.NativeFunction<
@@ -10980,64 +11009,64 @@
 /// The client's data object that is associated with an AST file (PCH
 /// or module).
 typedef CXIdxClientASTFile = ffi.Pointer<ffi.Void>;
-typedef NativeClang_indexSourceFile = ffi.Int32 Function(
+typedef NativeClang_indexSourceFile = ffi.Int Function(
     CXIndexAction arg0,
     CXClientData client_data,
     ffi.Pointer<IndexerCallbacks> index_callbacks,
-    ffi.Uint32 index_callbacks_size,
-    ffi.Uint32 index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
-    ffi.Int32 num_command_line_args,
+    ffi.UnsignedInt index_callbacks_size,
+    ffi.UnsignedInt index_options,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
+    ffi.Int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 num_unsaved_files,
+    ffi.UnsignedInt num_unsaved_files,
     ffi.Pointer<CXTranslationUnit> out_TU,
-    ffi.Uint32 TU_options);
+    ffi.UnsignedInt TU_options);
 typedef DartClang_indexSourceFile = int Function(
     CXIndexAction arg0,
     CXClientData client_data,
     ffi.Pointer<IndexerCallbacks> index_callbacks,
     int index_callbacks_size,
     int index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
     ffi.Pointer<CXTranslationUnit> out_TU,
     int TU_options);
-typedef NativeClang_indexSourceFileFullArgv = ffi.Int32 Function(
+typedef NativeClang_indexSourceFileFullArgv = ffi.Int Function(
     CXIndexAction arg0,
     CXClientData client_data,
     ffi.Pointer<IndexerCallbacks> index_callbacks,
-    ffi.Uint32 index_callbacks_size,
-    ffi.Uint32 index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
-    ffi.Int32 num_command_line_args,
+    ffi.UnsignedInt index_callbacks_size,
+    ffi.UnsignedInt index_options,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
+    ffi.Int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
-    ffi.Uint32 num_unsaved_files,
+    ffi.UnsignedInt num_unsaved_files,
     ffi.Pointer<CXTranslationUnit> out_TU,
-    ffi.Uint32 TU_options);
+    ffi.UnsignedInt TU_options);
 typedef DartClang_indexSourceFileFullArgv = int Function(
     CXIndexAction arg0,
     CXClientData client_data,
     ffi.Pointer<IndexerCallbacks> index_callbacks,
     int index_callbacks_size,
     int index_options,
-    ffi.Pointer<ffi.Int8> source_filename,
-    ffi.Pointer<ffi.Pointer<ffi.Int8>> command_line_args,
+    ffi.Pointer<ffi.Char> source_filename,
+    ffi.Pointer<ffi.Pointer<ffi.Char>> command_line_args,
     int num_command_line_args,
     ffi.Pointer<CXUnsavedFile> unsaved_files,
     int num_unsaved_files,
     ffi.Pointer<CXTranslationUnit> out_TU,
     int TU_options);
-typedef NativeClang_indexTranslationUnit = ffi.Int32 Function(
+typedef NativeClang_indexTranslationUnit = ffi.Int Function(
     CXIndexAction arg0,
     CXClientData client_data,
     ffi.Pointer<IndexerCallbacks> index_callbacks,
-    ffi.Uint32 index_callbacks_size,
-    ffi.Uint32 index_options,
+    ffi.UnsignedInt index_callbacks_size,
+    ffi.UnsignedInt index_options,
     CXTranslationUnit arg5);
 typedef DartClang_indexTranslationUnit = int Function(
     CXIndexAction arg0,
@@ -11050,16 +11079,16 @@
     CXIdxLoc loc,
     ffi.Pointer<CXIdxClientFile> indexFile,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef DartClang_indexLoc_getFileLocation = void Function(
     CXIdxLoc loc,
     ffi.Pointer<CXIdxClientFile> indexFile,
     ffi.Pointer<CXFile> file,
-    ffi.Pointer<ffi.Uint32> line,
-    ffi.Pointer<ffi.Uint32> column,
-    ffi.Pointer<ffi.Uint32> offset);
+    ffi.Pointer<ffi.UnsignedInt> line,
+    ffi.Pointer<ffi.UnsignedInt> column,
+    ffi.Pointer<ffi.UnsignedInt> offset);
 typedef NativeClang_indexLoc_getCXSourceLocation = CXSourceLocation Function(
     CXIdxLoc loc);
 typedef DartClang_indexLoc_getCXSourceLocation = CXSourceLocation Function(
@@ -11074,9 +11103,10 @@
 ///
 /// The visitor should return one of the \c CXVisitorResult values
 /// to direct \c clang_Type_visitFields.
-typedef CXFieldVisitor = ffi
-    .Pointer<ffi.NativeFunction<ffi.Int32 Function(CXCursor, CXClientData)>>;
-typedef NativeClang_Type_visitFields = ffi.Uint32 Function(
+typedef CXFieldVisitor = ffi.Pointer<
+    ffi.NativeFunction<
+        ffi.Int32 Function(CXCursor C, CXClientData client_data)>>;
+typedef NativeClang_Type_visitFields = ffi.UnsignedInt Function(
     CXType T, CXFieldVisitor visitor, CXClientData client_data);
 typedef DartClang_Type_visitFields = int Function(
     CXType T, CXFieldVisitor visitor, CXClientData client_data);
diff --git a/example/libclang-example/pubspec.yaml b/example/libclang-example/pubspec.yaml
index f10498b..daef35b 100644
--- a/example/libclang-example/pubspec.yaml
+++ b/example/libclang-example/pubspec.yaml
@@ -5,88 +5,11 @@
 name: libclang_example
 
 environment:
-  sdk: '>=2.13.0 <3.0.0'
+  sdk: '>=2.17.0 <4.0.0'
 
+dependencies:
+  ffi: ^2.0.1
 dev_dependencies:
   ffigen:
     path: '../../'
-  lints: ^1.0.1
-
-ffigen:
-  output: 'generated_bindings.dart'
-
-  # This will sort the bindings alphabetically.
-  # sort: true
-
-  # This is required if LLVM can't be found in default locations by ffigen.
-  # llvm-path:
-  #   - '/usr/local/opt/llvm'
-
-  # Bash style Glob matching is also supported.
-  # TODO(11): Globs dont work on windows if they begin with '.' or '..'.
-  headers:
-    entry-points:
-      - ../../third_party/libclang/include/clang-c/Index.h
-    include-directives: # use glob syntax to match with header file path.
-      - '**CXString.h'
-      - '**Index.h'
-
-  compiler-opts:
-    - '-I../../third_party/libclang/include'
-    - '-Wno-nullability-completeness'
-  functions:
-    include:
-      - 'clang_.*' # Can be a regexp, '.' matches any character.
-    symbol-address:
-      include:
-        - 'clang_.*' # Symbol Address for these functions will be exposed via addresses.
-    expose-typedefs:
-      include:
-        - 'clang_.*' # Typedefs for Native and Dart type for these functions will be generated.
-  structs:
-    include:
-        - 'CX.*'
-  enums:
-    include:
-      - 'CXTypeKind' # Full names are given higher priority than regexp.
-      - 'CXGlobalOptFlags'
-
-  # These are optional and also default,
-  # Omitting any and the default will be used.
-  size-map:
-    char: 1
-    unsigned char: 1
-    short: 2
-    unsigned short: 2
-    int: 4
-    unsigned int: 4
-    long: 8
-    unsigned long: 8
-    long long: 8
-    unsigned long long: 8
-    enum: 4
-
-  # These can be used to map any typedef to a specific native type.
-  typedef-map:
-    'size_t': 'IntPtr'
-    'time_t': 'Int64'
-
-  # Default is 'NativeLibrary'
-  name: 'LibClang'
-
-  description: 'Holds bindings to LibClang.'
-
-  # Doc Comments for generated binings.
-  # Comments can be disabled by using comments: false
-  comments:
-    style: doxygen # Options - doxygen(default) / any.
-    length: full # Options - brief / full(default).
-
-  # The header of the file, this is pasted as it is.
-  preamble: |
-    // Part of the LLVM Project, under the Apache License v2.0 with LLVM
-    // Exceptions.
-    // See https://llvm.org/LICENSE.txt for license information.
-    // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-    // ignore_for_file: camel_case_types, non_constant_identifier_names
+  lints: ^2.0.1
diff --git a/example/libclang-example/readme.md b/example/libclang-example/readme.md
index dab0bdf..39f2474 100644
--- a/example/libclang-example/readme.md
+++ b/example/libclang-example/readme.md
@@ -6,6 +6,6 @@
 ## Generating bindings
 At the root of this example (`example/libclang-example`), run -
 ```
-dart run ffigen
+dart run ffigen --config config.yaml
 ```
 This will generate bindings in a file: [generated_bindings.dart](./generated_bindings.dart).
diff --git a/example/objective_c/README.md b/example/objective_c/README.md
new file mode 100644
index 0000000..846b77a
--- /dev/null
+++ b/example/objective_c/README.md
@@ -0,0 +1,44 @@
+# Objective C example
+
+This example shows how to use ffigen to generate bindings for an Objective C
+library. It uses the AVFAudio framework to play audio files.
+
+```
+dart play_audio.dart test.mp3
+```
+
+## Config notes
+
+The ffigen config for an Objective C library looks very similar to a C library.
+The most important difference is that you must set `language: objc`. If you want
+to filter which interfaces are included you can use the `objc-interfaces:`
+option. This works similarly to the other filtering options.
+
+It is recommended that you filter out just about everything you're not
+interested in binding (see the ffigen config in [pubspec.yaml](./pubspec.yaml)).
+Virtually all Objective C libraries depend on Apple's internal libraries, which
+are huge. Filtering can reduce the generated bindings from millions of lines to
+tens of thousands. You can use the `exclude-all-by-default` flag, or exclude
+individual sets of declarations like this:
+
+```yaml
+functions:
+  exclude:
+    - '.*'
+# Same for structs/unions/enums etc.
+```
+
+In this example, we're only interested in `AVAudioPlayer`, so we've filtered out
+everything else. But ffigen will automatically pull in anything referenced by
+any of the fields or methods of `AVAudioPlayer`, so we're still able to use
+`NSURL` etc to load our audio file.
+
+## Generating bindings
+
+At the root of this example (`example/objective_c`), run:
+
+```
+dart run ffigen --config config.yaml
+```
+
+This will generate [avf_audio_bindings.dart](./avf_audio_bindings.dart).
diff --git a/example/objective_c/avf_audio_bindings.dart b/example/objective_c/avf_audio_bindings.dart
new file mode 100644
index 0000000..972e8fe
--- /dev/null
+++ b/example/objective_c/avf_audio_bindings.dart
@@ -0,0 +1,67761 @@
+// ignore_for_file: camel_case_types, non_constant_identifier_names, unused_element, unused_field, return_of_invalid_type, void_checks, annotate_overrides, no_leading_underscores_for_local_identifiers, library_private_types_in_public_api
+
+// AUTO GENERATED FILE, DO NOT EDIT.
+//
+// Generated by `package:ffigen`.
+// ignore_for_file: type=lint
+import 'dart:ffi' as ffi;
+import 'package:ffi/ffi.dart' as pkg_ffi;
+
+/// Bindings for AVFAudio.
+class AVFAudio {
+  /// Holds the symbol lookup function.
+  final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+      _lookup;
+
+  /// The symbols are looked up in [dynamicLibrary].
+  AVFAudio(ffi.DynamicLibrary dynamicLibrary) : _lookup = dynamicLibrary.lookup;
+
+  /// The symbols are looked up with [lookup].
+  AVFAudio.fromLookup(
+      ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName)
+          lookup)
+      : _lookup = lookup;
+
+  ffi.Pointer<ObjCSel> _registerName1(String name) {
+    final cstr = name.toNativeUtf8();
+    final sel = _sel_registerName(cstr.cast());
+    pkg_ffi.calloc.free(cstr);
+    return sel;
+  }
+
+  ffi.Pointer<ObjCSel> _sel_registerName(
+    ffi.Pointer<ffi.Char> str,
+  ) {
+    return __sel_registerName(
+      str,
+    );
+  }
+
+  late final __sel_registerNamePtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCSel> Function(
+              ffi.Pointer<ffi.Char>)>>('sel_registerName');
+  late final __sel_registerName = __sel_registerNamePtr
+      .asFunction<ffi.Pointer<ObjCSel> Function(ffi.Pointer<ffi.Char>)>();
+
+  ffi.Pointer<ObjCObject> _getClass1(String name) {
+    final cstr = name.toNativeUtf8();
+    final clazz = _objc_getClass(cstr.cast());
+    pkg_ffi.calloc.free(cstr);
+    if (clazz == ffi.nullptr) {
+      throw Exception('Failed to load Objective-C class: $name');
+    }
+    return clazz;
+  }
+
+  ffi.Pointer<ObjCObject> _objc_getClass(
+    ffi.Pointer<ffi.Char> str,
+  ) {
+    return __objc_getClass(
+      str,
+    );
+  }
+
+  late final __objc_getClassPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ffi.Char>)>>('objc_getClass');
+  late final __objc_getClass = __objc_getClassPtr
+      .asFunction<ffi.Pointer<ObjCObject> Function(ffi.Pointer<ffi.Char>)>();
+
+  ffi.Pointer<ObjCObject> _objc_retain(
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_retain(
+      value,
+    );
+  }
+
+  late final __objc_retainPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>)>>('objc_retain');
+  late final __objc_retain = __objc_retainPtr
+      .asFunction<ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>)>();
+
+  void _objc_release(
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_release(
+      value,
+    );
+  }
+
+  late final __objc_releasePtr =
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ObjCObject>)>>(
+          'objc_release');
+  late final __objc_release =
+      __objc_releasePtr.asFunction<void Function(ffi.Pointer<ObjCObject>)>();
+
+  late final _objc_releaseFinalizer2 =
+      ffi.NativeFinalizer(__objc_releasePtr.cast());
+  late final _class_NSObject1 = _getClass1("NSObject");
+  late final _sel_load1 = _registerName1("load");
+  void _objc_msgSend_1(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_1(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_1Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_1 = __objc_msgSend_1Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_initialize1 = _registerName1("initialize");
+  late final _sel_init1 = _registerName1("init");
+  instancetype _objc_msgSend_2(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_2(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_2Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_2 = __objc_msgSend_2Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_new1 = _registerName1("new");
+  late final _sel_allocWithZone_1 = _registerName1("allocWithZone:");
+  instancetype _objc_msgSend_3(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_NSZone> zone,
+  ) {
+    return __objc_msgSend_3(
+      obj,
+      sel,
+      zone,
+    );
+  }
+
+  late final __objc_msgSend_3Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_NSZone>)>>('objc_msgSend');
+  late final __objc_msgSend_3 = __objc_msgSend_3Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_NSZone>)>();
+
+  late final _sel_alloc1 = _registerName1("alloc");
+  late final _sel_dealloc1 = _registerName1("dealloc");
+  late final _sel_finalize1 = _registerName1("finalize");
+  late final _sel_copy1 = _registerName1("copy");
+  late final _sel_mutableCopy1 = _registerName1("mutableCopy");
+  late final _sel_copyWithZone_1 = _registerName1("copyWithZone:");
+  late final _sel_mutableCopyWithZone_1 =
+      _registerName1("mutableCopyWithZone:");
+  late final _sel_instancesRespondToSelector_1 =
+      _registerName1("instancesRespondToSelector:");
+  bool _objc_msgSend_4(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_4(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_4Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_4 = __objc_msgSend_4Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  bool _objc_msgSend_0(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> clazz,
+  ) {
+    return __objc_msgSend_0(
+      obj,
+      sel,
+      clazz,
+    );
+  }
+
+  late final __objc_msgSend_0Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_0 = __objc_msgSend_0Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isKindOfClass_1 = _registerName1("isKindOfClass:");
+  late final _class_Protocol1 = _getClass1("Protocol");
+  late final _sel_conformsToProtocol_1 = _registerName1("conformsToProtocol:");
+  bool _objc_msgSend_5(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> protocol,
+  ) {
+    return __objc_msgSend_5(
+      obj,
+      sel,
+      protocol,
+    );
+  }
+
+  late final __objc_msgSend_5Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_5 = __objc_msgSend_5Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_methodForSelector_1 = _registerName1("methodForSelector:");
+  IMP _objc_msgSend_6(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_6(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_6Ptr = _lookup<
+      ffi.NativeFunction<
+          IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_6 = __objc_msgSend_6Ptr.asFunction<
+      IMP Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_instanceMethodForSelector_1 =
+      _registerName1("instanceMethodForSelector:");
+  late final _sel_doesNotRecognizeSelector_1 =
+      _registerName1("doesNotRecognizeSelector:");
+  void _objc_msgSend_7(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_7(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_7Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_7 = __objc_msgSend_7Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_forwardingTargetForSelector_1 =
+      _registerName1("forwardingTargetForSelector:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_8(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_8(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_8Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_8 = __objc_msgSend_8Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSInvocation1 = _getClass1("NSInvocation");
+  late final _class_NSMethodSignature1 = _getClass1("NSMethodSignature");
+  late final _sel_signatureWithObjCTypes_1 =
+      _registerName1("signatureWithObjCTypes:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_9(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> types,
+  ) {
+    return __objc_msgSend_9(
+      obj,
+      sel,
+      types,
+    );
+  }
+
+  late final __objc_msgSend_9Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_9 = __objc_msgSend_9Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_numberOfArguments1 = _registerName1("numberOfArguments");
+  int _objc_msgSend_10(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_10(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_10Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_10 = __objc_msgSend_10Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_getArgumentTypeAtIndex_1 =
+      _registerName1("getArgumentTypeAtIndex:");
+  ffi.Pointer<ffi.Char> _objc_msgSend_11(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int idx,
+  ) {
+    return __objc_msgSend_11(
+      obj,
+      sel,
+      idx,
+    );
+  }
+
+  late final __objc_msgSend_11Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Char> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_11 = __objc_msgSend_11Ptr.asFunction<
+      ffi.Pointer<ffi.Char> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_frameLength1 = _registerName1("frameLength");
+  late final _sel_isOneway1 = _registerName1("isOneway");
+  bool _objc_msgSend_12(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_12(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_12Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_12 = __objc_msgSend_12Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_methodReturnType1 = _registerName1("methodReturnType");
+  ffi.Pointer<ffi.Char> _objc_msgSend_13(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_13(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_13Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Char> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_13 = __objc_msgSend_13Ptr.asFunction<
+      ffi.Pointer<ffi.Char> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_methodReturnLength1 = _registerName1("methodReturnLength");
+  late final _sel_cancelPreviousPerformRequestsWithTarget_selector_object_1 =
+      _registerName1(
+          "cancelPreviousPerformRequestsWithTarget:selector:object:");
+  void _objc_msgSend_14(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTarget,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> anArgument,
+  ) {
+    return __objc_msgSend_14(
+      obj,
+      sel,
+      aTarget,
+      aSelector,
+      anArgument,
+    );
+  }
+
+  late final __objc_msgSend_14Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_14 = __objc_msgSend_14Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cancelPreviousPerformRequestsWithTarget_1 =
+      _registerName1("cancelPreviousPerformRequestsWithTarget:");
+  void _objc_msgSend_15(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTarget,
+  ) {
+    return __objc_msgSend_15(
+      obj,
+      sel,
+      aTarget,
+    );
+  }
+
+  late final __objc_msgSend_15Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_15 = __objc_msgSend_15Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_accessInstanceVariablesDirectly1 =
+      _registerName1("accessInstanceVariablesDirectly");
+  late final _sel_useStoredAccessor1 = _registerName1("useStoredAccessor");
+  late final _class_NSSet1 = _getClass1("NSSet");
+  late final _sel_count1 = _registerName1("count");
+  late final _sel_member_1 = _registerName1("member:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_16(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+  ) {
+    return __objc_msgSend_16(
+      obj,
+      sel,
+      object,
+    );
+  }
+
+  late final __objc_msgSend_16Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_16 = __objc_msgSend_16Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSEnumerator1 = _getClass1("NSEnumerator");
+  late final _sel_nextObject1 = _registerName1("nextObject");
+  late final _class_NSString1 = _getClass1("NSString");
+  late final _sel_length1 = _registerName1("length");
+  late final _sel_characterAtIndex_1 = _registerName1("characterAtIndex:");
+  int _objc_msgSend_17(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_17(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_17Ptr = _lookup<
+      ffi.NativeFunction<
+          unichar Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_17 = __objc_msgSend_17Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _class_NSCoder1 = _getClass1("NSCoder");
+  late final _sel_encodeValueOfObjCType_at_1 =
+      _registerName1("encodeValueOfObjCType:at:");
+  void _objc_msgSend_18(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> type,
+    ffi.Pointer<ffi.Void> addr,
+  ) {
+    return __objc_msgSend_18(
+      obj,
+      sel,
+      type,
+      addr,
+    );
+  }
+
+  late final __objc_msgSend_18Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_18 = __objc_msgSend_18Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Void>)>();
+
+  late final _class_NSData1 = _getClass1("NSData");
+  late final _sel_bytes1 = _registerName1("bytes");
+  ffi.Pointer<ffi.Void> _objc_msgSend_19(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_19(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_19Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_19 = __objc_msgSend_19Ptr.asFunction<
+      ffi.Pointer<ffi.Void> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_description1 = _registerName1("description");
+  ffi.Pointer<ObjCObject> _objc_msgSend_20(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_20(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_20Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_20 = __objc_msgSend_20Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_getBytes_length_1 = _registerName1("getBytes:length:");
+  void _objc_msgSend_21(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> buffer,
+    int length,
+  ) {
+    return __objc_msgSend_21(
+      obj,
+      sel,
+      buffer,
+      length,
+    );
+  }
+
+  late final __objc_msgSend_21Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_21 = __objc_msgSend_21Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_getBytes_range_1 = _registerName1("getBytes:range:");
+  void _objc_msgSend_22(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> buffer,
+    NSRange range,
+  ) {
+    return __objc_msgSend_22(
+      obj,
+      sel,
+      buffer,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_22Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_22 = __objc_msgSend_22Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, NSRange)>();
+
+  late final _sel_isEqualToData_1 = _registerName1("isEqualToData:");
+  bool _objc_msgSend_23(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_23(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_23Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_23 = __objc_msgSend_23Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_subdataWithRange_1 = _registerName1("subdataWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_24(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_24(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_24Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_24 = __objc_msgSend_24Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_writeToFile_atomically_1 =
+      _registerName1("writeToFile:atomically:");
+  bool _objc_msgSend_25(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool useAuxiliaryFile,
+  ) {
+    return __objc_msgSend_25(
+      obj,
+      sel,
+      path,
+      useAuxiliaryFile,
+    );
+  }
+
+  late final __objc_msgSend_25Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_25 = __objc_msgSend_25Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _class_NSURL1 = _getClass1("NSURL");
+  late final _sel_initWithScheme_host_path_1 =
+      _registerName1("initWithScheme:host:path:");
+  instancetype _objc_msgSend_26(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> scheme,
+    ffi.Pointer<ObjCObject> host,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_26(
+      obj,
+      sel,
+      scheme,
+      host,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_26Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_26 = __objc_msgSend_26Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithPath_isDirectory_relativeToURL_1 =
+      _registerName1("initFileURLWithPath:isDirectory:relativeToURL:");
+  instancetype _objc_msgSend_27(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_27(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_27Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_27 = __objc_msgSend_27Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithPath_relativeToURL_1 =
+      _registerName1("initFileURLWithPath:relativeToURL:");
+  instancetype _objc_msgSend_28(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_28(
+      obj,
+      sel,
+      path,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_28Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_28 = __objc_msgSend_28Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithPath_isDirectory_1 =
+      _registerName1("initFileURLWithPath:isDirectory:");
+  instancetype _objc_msgSend_29(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+  ) {
+    return __objc_msgSend_29(
+      obj,
+      sel,
+      path,
+      isDir,
+    );
+  }
+
+  late final __objc_msgSend_29Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_29 = __objc_msgSend_29Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initFileURLWithPath_1 =
+      _registerName1("initFileURLWithPath:");
+  instancetype _objc_msgSend_30(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_30(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_30Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_30 = __objc_msgSend_30Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithPath_isDirectory_relativeToURL_1 =
+      _registerName1("fileURLWithPath:isDirectory:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_31(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_31(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_31Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_31 = __objc_msgSend_31Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithPath_relativeToURL_1 =
+      _registerName1("fileURLWithPath:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_32(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_32(
+      obj,
+      sel,
+      path,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_32Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_32 = __objc_msgSend_32Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithPath_isDirectory_1 =
+      _registerName1("fileURLWithPath:isDirectory:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_33(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool isDir,
+  ) {
+    return __objc_msgSend_33(
+      obj,
+      sel,
+      path,
+      isDir,
+    );
+  }
+
+  late final __objc_msgSend_33Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_33 = __objc_msgSend_33Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_fileURLWithPath_1 = _registerName1("fileURLWithPath:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_34(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_34(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_34Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_34 = __objc_msgSend_34Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initFileURLWithFileSystemRepresentation_isDirectory_relativeToURL_1 =
+      _registerName1(
+          "initFileURLWithFileSystemRepresentation:isDirectory:relativeToURL:");
+  instancetype _objc_msgSend_35(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_35(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_35Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_35 = __objc_msgSend_35Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, bool, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileURLWithFileSystemRepresentation_isDirectory_relativeToURL_1 =
+      _registerName1(
+          "fileURLWithFileSystemRepresentation:isDirectory:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_36(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> path,
+    bool isDir,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_36(
+      obj,
+      sel,
+      path,
+      isDir,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_36Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Bool,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_36 = __objc_msgSend_36Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>,
+          bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithString_1 = _registerName1("initWithString:");
+  late final _sel_initWithString_relativeToURL_1 =
+      _registerName1("initWithString:relativeToURL:");
+  late final _sel_URLWithString_1 = _registerName1("URLWithString:");
+  late final _sel_URLWithString_relativeToURL_1 =
+      _registerName1("URLWithString:relativeToURL:");
+  late final _sel_initWithDataRepresentation_relativeToURL_1 =
+      _registerName1("initWithDataRepresentation:relativeToURL:");
+  instancetype _objc_msgSend_37(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_37(
+      obj,
+      sel,
+      data,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_37Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_37 = __objc_msgSend_37Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_URLWithDataRepresentation_relativeToURL_1 =
+      _registerName1("URLWithDataRepresentation:relativeToURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_38(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> baseURL,
+  ) {
+    return __objc_msgSend_38(
+      obj,
+      sel,
+      data,
+      baseURL,
+    );
+  }
+
+  late final __objc_msgSend_38Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_38 = __objc_msgSend_38Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initAbsoluteURLWithDataRepresentation_relativeToURL_1 =
+      _registerName1("initAbsoluteURLWithDataRepresentation:relativeToURL:");
+  late final _sel_absoluteURLWithDataRepresentation_relativeToURL_1 =
+      _registerName1("absoluteURLWithDataRepresentation:relativeToURL:");
+  late final _sel_dataRepresentation1 = _registerName1("dataRepresentation");
+  ffi.Pointer<ObjCObject> _objc_msgSend_39(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_39(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_39Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_39 = __objc_msgSend_39Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_absoluteString1 = _registerName1("absoluteString");
+  late final _sel_relativeString1 = _registerName1("relativeString");
+  late final _sel_baseURL1 = _registerName1("baseURL");
+  ffi.Pointer<ObjCObject> _objc_msgSend_40(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_40(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_40Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_40 = __objc_msgSend_40Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_absoluteURL1 = _registerName1("absoluteURL");
+  late final _sel_scheme1 = _registerName1("scheme");
+  late final _sel_resourceSpecifier1 = _registerName1("resourceSpecifier");
+  late final _sel_host1 = _registerName1("host");
+  late final _class_NSNumber1 = _getClass1("NSNumber");
+  late final _class_NSValue1 = _getClass1("NSValue");
+  late final _sel_getValue_size_1 = _registerName1("getValue:size:");
+  late final _sel_objCType1 = _registerName1("objCType");
+  late final _sel_initWithBytes_objCType_1 =
+      _registerName1("initWithBytes:objCType:");
+  instancetype _objc_msgSend_41(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> value,
+    ffi.Pointer<ffi.Char> type,
+  ) {
+    return __objc_msgSend_41(
+      obj,
+      sel,
+      value,
+      type,
+    );
+  }
+
+  late final __objc_msgSend_41Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_41 = __objc_msgSend_41Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_initWithCoder_1 = _registerName1("initWithCoder:");
+  instancetype _objc_msgSend_42(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> coder,
+  ) {
+    return __objc_msgSend_42(
+      obj,
+      sel,
+      coder,
+    );
+  }
+
+  late final __objc_msgSend_42Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_42 = __objc_msgSend_42Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_valueWithBytes_objCType_1 =
+      _registerName1("valueWithBytes:objCType:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_43(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> value,
+    ffi.Pointer<ffi.Char> type,
+  ) {
+    return __objc_msgSend_43(
+      obj,
+      sel,
+      value,
+      type,
+    );
+  }
+
+  late final __objc_msgSend_43Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_43 = __objc_msgSend_43Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>,
+          ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_value_withObjCType_1 = _registerName1("value:withObjCType:");
+  late final _sel_valueWithNonretainedObject_1 =
+      _registerName1("valueWithNonretainedObject:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_44(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_44(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_44Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_44 = __objc_msgSend_44Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_nonretainedObjectValue1 =
+      _registerName1("nonretainedObjectValue");
+  late final _sel_valueWithPointer_1 = _registerName1("valueWithPointer:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_45(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> pointer,
+  ) {
+    return __objc_msgSend_45(
+      obj,
+      sel,
+      pointer,
+    );
+  }
+
+  late final __objc_msgSend_45Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_45 = __objc_msgSend_45Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_pointerValue1 = _registerName1("pointerValue");
+  late final _sel_isEqualToValue_1 = _registerName1("isEqualToValue:");
+  bool _objc_msgSend_46(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_46(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_46Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_46 = __objc_msgSend_46Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getValue_1 = _registerName1("getValue:");
+  void _objc_msgSend_47(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> value,
+  ) {
+    return __objc_msgSend_47(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_47Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_47 = __objc_msgSend_47Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_valueWithRange_1 = _registerName1("valueWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_48(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_48(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_48Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_48 = __objc_msgSend_48Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_rangeValue1 = _registerName1("rangeValue");
+  NSRange _objc_msgSend_49(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_49(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_49Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_49 = __objc_msgSend_49Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_valueWithPoint_1 = _registerName1("valueWithPoint:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_50(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSPoint point,
+  ) {
+    return __objc_msgSend_50(
+      obj,
+      sel,
+      point,
+    );
+  }
+
+  late final __objc_msgSend_50Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSPoint)>>('objc_msgSend');
+  late final __objc_msgSend_50 = __objc_msgSend_50Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSPoint)>();
+
+  late final _sel_valueWithSize_1 = _registerName1("valueWithSize:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_51(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSSize size,
+  ) {
+    return __objc_msgSend_51(
+      obj,
+      sel,
+      size,
+    );
+  }
+
+  late final __objc_msgSend_51Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSSize)>>('objc_msgSend');
+  late final __objc_msgSend_51 = __objc_msgSend_51Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSSize)>();
+
+  late final _sel_valueWithRect_1 = _registerName1("valueWithRect:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_52(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRect rect,
+  ) {
+    return __objc_msgSend_52(
+      obj,
+      sel,
+      rect,
+    );
+  }
+
+  late final __objc_msgSend_52Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRect)>>('objc_msgSend');
+  late final __objc_msgSend_52 = __objc_msgSend_52Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRect)>();
+
+  late final _sel_valueWithEdgeInsets_1 =
+      _registerName1("valueWithEdgeInsets:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_53(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSEdgeInsets insets,
+  ) {
+    return __objc_msgSend_53(
+      obj,
+      sel,
+      insets,
+    );
+  }
+
+  late final __objc_msgSend_53Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSEdgeInsets)>>('objc_msgSend');
+  late final __objc_msgSend_53 = __objc_msgSend_53Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSEdgeInsets)>();
+
+  late final _sel_pointValue1 = _registerName1("pointValue");
+  NSPoint _objc_msgSend_54(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_54(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_54Ptr = _lookup<
+      ffi.NativeFunction<
+          NSPoint Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_54 = __objc_msgSend_54Ptr.asFunction<
+      NSPoint Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_sizeValue1 = _registerName1("sizeValue");
+  NSSize _objc_msgSend_55(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_55(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_55Ptr = _lookup<
+      ffi.NativeFunction<
+          NSSize Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_55 = __objc_msgSend_55Ptr.asFunction<
+      NSSize Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_rectValue1 = _registerName1("rectValue");
+  NSRect _objc_msgSend_56(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_56(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_56Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRect Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_56 = __objc_msgSend_56Ptr.asFunction<
+      NSRect Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_edgeInsetsValue1 = _registerName1("edgeInsetsValue");
+  NSEdgeInsets _objc_msgSend_57(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_57(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_57Ptr = _lookup<
+      ffi.NativeFunction<
+          NSEdgeInsets Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_57 = __objc_msgSend_57Ptr.asFunction<
+      NSEdgeInsets Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_keyPathsForValuesAffectingValueForKey_1 =
+      _registerName1("keyPathsForValuesAffectingValueForKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_58(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_58(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_58Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_58 = __objc_msgSend_58Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_automaticallyNotifiesObserversForKey_1 =
+      _registerName1("automaticallyNotifiesObserversForKey:");
+  bool _objc_msgSend_59(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_59(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_59Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_59 = __objc_msgSend_59Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSArray1 = _getClass1("NSArray");
+  late final _sel_objectAtIndex_1 = _registerName1("objectAtIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_60(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_60(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_60Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_60 = __objc_msgSend_60Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithObjects_count_1 =
+      _registerName1("initWithObjects:count:");
+  instancetype _objc_msgSend_61(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    int cnt,
+  ) {
+    return __objc_msgSend_61(
+      obj,
+      sel,
+      objects,
+      cnt,
+    );
+  }
+
+  late final __objc_msgSend_61Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_61 = __objc_msgSend_61Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>, int)>();
+
+  late final _sel_arrayByAddingObject_1 =
+      _registerName1("arrayByAddingObject:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_62(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_62(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_62Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_62 = __objc_msgSend_62Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_arrayByAddingObjectsFromArray_1 =
+      _registerName1("arrayByAddingObjectsFromArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_63(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_63(
+      obj,
+      sel,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_63Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_63 = __objc_msgSend_63Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_componentsJoinedByString_1 =
+      _registerName1("componentsJoinedByString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_64(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> separator,
+  ) {
+    return __objc_msgSend_64(
+      obj,
+      sel,
+      separator,
+    );
+  }
+
+  late final __objc_msgSend_64Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_64 = __objc_msgSend_64Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_containsObject_1 = _registerName1("containsObject:");
+  late final _sel_descriptionWithLocale_1 =
+      _registerName1("descriptionWithLocale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_65(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_65(
+      obj,
+      sel,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_65Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_65 = __objc_msgSend_65Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptionWithLocale_indent_1 =
+      _registerName1("descriptionWithLocale:indent:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_66(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> locale,
+    int level,
+  ) {
+    return __objc_msgSend_66(
+      obj,
+      sel,
+      locale,
+      level,
+    );
+  }
+
+  late final __objc_msgSend_66Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_66 = __objc_msgSend_66Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_firstObjectCommonWithArray_1 =
+      _registerName1("firstObjectCommonWithArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_67(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_67(
+      obj,
+      sel,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_67Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_67 = __objc_msgSend_67Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_getObjects_range_1 = _registerName1("getObjects:range:");
+  void _objc_msgSend_68(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    NSRange range,
+  ) {
+    return __objc_msgSend_68(
+      obj,
+      sel,
+      objects,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_68Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_68 = __objc_msgSend_68Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>, NSRange)>();
+
+  late final _sel_indexOfObject_1 = _registerName1("indexOfObject:");
+  int _objc_msgSend_69(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_69(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_69Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_69 = __objc_msgSend_69Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_indexOfObject_inRange_1 =
+      _registerName1("indexOfObject:inRange:");
+  int _objc_msgSend_70(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+    NSRange range,
+  ) {
+    return __objc_msgSend_70(
+      obj,
+      sel,
+      anObject,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_70Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_70 = __objc_msgSend_70Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange)>();
+
+  late final _sel_indexOfObjectIdenticalTo_1 =
+      _registerName1("indexOfObjectIdenticalTo:");
+  late final _sel_indexOfObjectIdenticalTo_inRange_1 =
+      _registerName1("indexOfObjectIdenticalTo:inRange:");
+  late final _sel_isEqualToArray_1 = _registerName1("isEqualToArray:");
+  bool _objc_msgSend_71(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherArray,
+  ) {
+    return __objc_msgSend_71(
+      obj,
+      sel,
+      otherArray,
+    );
+  }
+
+  late final __objc_msgSend_71Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_71 = __objc_msgSend_71Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_firstObject1 = _registerName1("firstObject");
+  late final _sel_lastObject1 = _registerName1("lastObject");
+  late final _sel_objectEnumerator1 = _registerName1("objectEnumerator");
+  ffi.Pointer<ObjCObject> _objc_msgSend_72(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_72(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_72Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_72 = __objc_msgSend_72Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_reverseObjectEnumerator1 =
+      _registerName1("reverseObjectEnumerator");
+  late final _sel_sortedArrayHint1 = _registerName1("sortedArrayHint");
+  late final _sel_sortedArrayUsingFunction_context_1 =
+      _registerName1("sortedArrayUsingFunction:context:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_73(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                NSInteger Function(ffi.Pointer<ObjCObject>,
+                    ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+        comparator,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_73(
+      obj,
+      sel,
+      comparator,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_73Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSInteger Function(ffi.Pointer<ObjCObject>,
+                          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_73 = __objc_msgSend_73Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_sortedArrayUsingFunction_context_hint_1 =
+      _registerName1("sortedArrayUsingFunction:context:hint:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_74(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<
+            ffi.NativeFunction<
+                NSInteger Function(ffi.Pointer<ObjCObject>,
+                    ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>
+        comparator,
+    ffi.Pointer<ffi.Void> context,
+    ffi.Pointer<ObjCObject> hint,
+  ) {
+    return __objc_msgSend_74(
+      obj,
+      sel,
+      comparator,
+      context,
+      hint,
+    );
+  }
+
+  late final __objc_msgSend_74Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<
+                  ffi.NativeFunction<
+                      NSInteger Function(ffi.Pointer<ObjCObject>,
+                          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+              ffi.Pointer<ffi.Void>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_74 = __objc_msgSend_74Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<
+              ffi.NativeFunction<
+                  NSInteger Function(ffi.Pointer<ObjCObject>,
+                      ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Void>)>>,
+          ffi.Pointer<ffi.Void>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sortedArrayUsingSelector_1 =
+      _registerName1("sortedArrayUsingSelector:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_75(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> comparator,
+  ) {
+    return __objc_msgSend_75(
+      obj,
+      sel,
+      comparator,
+    );
+  }
+
+  late final __objc_msgSend_75Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_75 = __objc_msgSend_75Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_subarrayWithRange_1 = _registerName1("subarrayWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_76(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_76(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_76Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_76 = __objc_msgSend_76Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _class_NSError1 = _getClass1("NSError");
+  late final _sel_initWithDomain_code_userInfo_1 =
+      _registerName1("initWithDomain:code:userInfo:");
+  instancetype _objc_msgSend_77(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSErrorDomain domain,
+    int code,
+  ) {
+    return __objc_msgSend_77(
+      obj,
+      sel,
+      domain,
+      code,
+    );
+  }
+
+  late final __objc_msgSend_77Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSErrorDomain, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_77 = __objc_msgSend_77Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSErrorDomain, int)>();
+
+  late final _sel_errorWithDomain_code_userInfo_1 =
+      _registerName1("errorWithDomain:code:userInfo:");
+  late final _sel_domain1 = _registerName1("domain");
+  late final _sel_code1 = _registerName1("code");
+  int _objc_msgSend_78(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_78(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_78Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_78 = __objc_msgSend_78Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setKeys_triggerChangeNotificationsForDependentKey_1 =
+      _registerName1("setKeys:triggerChangeNotificationsForDependentKey:");
+  void _objc_msgSend_79(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keys,
+    ffi.Pointer<ObjCObject> dependentKey,
+  ) {
+    return __objc_msgSend_79(
+      obj,
+      sel,
+      keys,
+      dependentKey,
+    );
+  }
+
+  late final __objc_msgSend_79Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_79 = __objc_msgSend_79Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_classFallbacksForKeyedArchiver1 =
+      _registerName1("classFallbacksForKeyedArchiver");
+  ffi.Pointer<ObjCObject> _objc_msgSend_80(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_80(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_80Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_80 = __objc_msgSend_80Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_classForKeyedUnarchiver1 =
+      _registerName1("classForKeyedUnarchiver");
+  late final _sel_writeToURL_error_1 = _registerName1("writeToURL:error:");
+  bool _objc_msgSend_81(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_81(
+      obj,
+      sel,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_81Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_81 = __objc_msgSend_81Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_makeObjectsPerformSelector_1 =
+      _registerName1("makeObjectsPerformSelector:");
+  late final _sel_makeObjectsPerformSelector_withObject_1 =
+      _registerName1("makeObjectsPerformSelector:withObject:");
+  void _objc_msgSend_82(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+    ffi.Pointer<ObjCObject> argument,
+  ) {
+    return __objc_msgSend_82(
+      obj,
+      sel,
+      aSelector,
+      argument,
+    );
+  }
+
+  late final __objc_msgSend_82Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_82 = __objc_msgSend_82Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSIndexSet1 = _getClass1("NSIndexSet");
+  late final _sel_indexSet1 = _registerName1("indexSet");
+  late final _sel_indexSetWithIndex_1 = _registerName1("indexSetWithIndex:");
+  late final _sel_indexSetWithIndexesInRange_1 =
+      _registerName1("indexSetWithIndexesInRange:");
+  instancetype _objc_msgSend_83(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_83(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_83Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_83 = __objc_msgSend_83Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_initWithIndexesInRange_1 =
+      _registerName1("initWithIndexesInRange:");
+  late final _sel_initWithIndexSet_1 = _registerName1("initWithIndexSet:");
+  instancetype _objc_msgSend_84(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexSet,
+  ) {
+    return __objc_msgSend_84(
+      obj,
+      sel,
+      indexSet,
+    );
+  }
+
+  late final __objc_msgSend_84Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_84 = __objc_msgSend_84Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithIndex_1 = _registerName1("initWithIndex:");
+  late final _sel_isEqualToIndexSet_1 = _registerName1("isEqualToIndexSet:");
+  bool _objc_msgSend_85(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexSet,
+  ) {
+    return __objc_msgSend_85(
+      obj,
+      sel,
+      indexSet,
+    );
+  }
+
+  late final __objc_msgSend_85Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_85 = __objc_msgSend_85Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_firstIndex1 = _registerName1("firstIndex");
+  late final _sel_lastIndex1 = _registerName1("lastIndex");
+  late final _sel_indexGreaterThanIndex_1 =
+      _registerName1("indexGreaterThanIndex:");
+  int _objc_msgSend_86(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_86(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_86Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_86 = __objc_msgSend_86Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_indexLessThanIndex_1 = _registerName1("indexLessThanIndex:");
+  late final _sel_indexGreaterThanOrEqualToIndex_1 =
+      _registerName1("indexGreaterThanOrEqualToIndex:");
+  late final _sel_indexLessThanOrEqualToIndex_1 =
+      _registerName1("indexLessThanOrEqualToIndex:");
+  late final _sel_getIndexes_maxCount_inIndexRange_1 =
+      _registerName1("getIndexes:maxCount:inIndexRange:");
+  int _objc_msgSend_87(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> indexBuffer,
+    int bufferSize,
+    NSRangePointer range,
+  ) {
+    return __objc_msgSend_87(
+      obj,
+      sel,
+      indexBuffer,
+      bufferSize,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_87Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>,
+              NSUInteger,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_87 = __objc_msgSend_87Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>, int, NSRangePointer)>();
+
+  late final _sel_countOfIndexesInRange_1 =
+      _registerName1("countOfIndexesInRange:");
+  int _objc_msgSend_88(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_88(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_88Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_88 = __objc_msgSend_88Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_containsIndex_1 = _registerName1("containsIndex:");
+  bool _objc_msgSend_89(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_89(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_89Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_89 = __objc_msgSend_89Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_containsIndexesInRange_1 =
+      _registerName1("containsIndexesInRange:");
+  bool _objc_msgSend_90(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_90(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_90Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_90 = __objc_msgSend_90Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_containsIndexes_1 = _registerName1("containsIndexes:");
+  late final _sel_intersectsIndexesInRange_1 =
+      _registerName1("intersectsIndexesInRange:");
+  ffi.Pointer<_ObjCBlockDesc> _newBlockDesc1() {
+    final d =
+        pkg_ffi.calloc.allocate<_ObjCBlockDesc>(ffi.sizeOf<_ObjCBlockDesc>());
+    d.ref.size = ffi.sizeOf<_ObjCBlock>();
+    return d;
+  }
+
+  late final _objc_block_desc1 = _newBlockDesc1();
+  late final _objc_concrete_global_block1 =
+      _lookup<ffi.Void>('_NSConcreteGlobalBlock');
+  ffi.Pointer<_ObjCBlock> _newBlock1(
+      ffi.Pointer<ffi.Void> invoke, ffi.Pointer<ffi.Void> target) {
+    final b = pkg_ffi.calloc.allocate<_ObjCBlock>(ffi.sizeOf<_ObjCBlock>());
+    b.ref.isa = _objc_concrete_global_block1;
+    b.ref.invoke = invoke;
+    b.ref.target = target;
+    b.ref.descriptor = _objc_block_desc1;
+    final copy = _Block_copy(b.cast()).cast<_ObjCBlock>();
+    pkg_ffi.calloc.free(b);
+    return copy;
+  }
+
+  ffi.Pointer<ffi.Void> _Block_copy(
+    ffi.Pointer<ffi.Void> value,
+  ) {
+    return __Block_copy(
+      value,
+    );
+  }
+
+  late final __Block_copyPtr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(
+              ffi.Pointer<ffi.Void>)>>('_Block_copy');
+  late final __Block_copy = __Block_copyPtr
+      .asFunction<ffi.Pointer<ffi.Void> Function(ffi.Pointer<ffi.Void>)>();
+
+  void _Block_release(
+    ffi.Pointer<ffi.Void> value,
+  ) {
+    return __Block_release(
+      value,
+    );
+  }
+
+  late final __Block_releasePtr =
+      _lookup<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>(
+          '_Block_release');
+  late final __Block_release =
+      __Block_releasePtr.asFunction<void Function(ffi.Pointer<ffi.Void>)>();
+
+  late final _objc_releaseFinalizer11 =
+      ffi.NativeFinalizer(__Block_releasePtr.cast());
+  late final _sel_enumerateIndexesUsingBlock_1 =
+      _registerName1("enumerateIndexesUsingBlock:");
+  void _objc_msgSend_91(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_91(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_91Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_91 = __objc_msgSend_91Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateIndexesWithOptions_usingBlock_1 =
+      _registerName1("enumerateIndexesWithOptions:usingBlock:");
+  void _objc_msgSend_92(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_92(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_92Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_92 = __objc_msgSend_92Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateIndexesInRange_options_usingBlock_1 =
+      _registerName1("enumerateIndexesInRange:options:usingBlock:");
+  void _objc_msgSend_93(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_93(
+      obj,
+      sel,
+      range,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_93Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_93 = __objc_msgSend_93Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexPassingTest_1 = _registerName1("indexPassingTest:");
+  int _objc_msgSend_94(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_94(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_94Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_94 = __objc_msgSend_94Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexWithOptions_passingTest_1 =
+      _registerName1("indexWithOptions:passingTest:");
+  int _objc_msgSend_95(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_95(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_95Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_95 = __objc_msgSend_95Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexInRange_options_passingTest_1 =
+      _registerName1("indexInRange:options:passingTest:");
+  int _objc_msgSend_96(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_96(
+      obj,
+      sel,
+      range,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_96Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_96 = __objc_msgSend_96Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesPassingTest_1 = _registerName1("indexesPassingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_97(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_97(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_97Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_97 = __objc_msgSend_97Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesWithOptions_passingTest_1 =
+      _registerName1("indexesWithOptions:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_98(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_98(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_98Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_98 = __objc_msgSend_98Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesInRange_options_passingTest_1 =
+      _registerName1("indexesInRange:options:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_99(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_99(
+      obj,
+      sel,
+      range,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_99Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_99 = __objc_msgSend_99Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateRangesUsingBlock_1 =
+      _registerName1("enumerateRangesUsingBlock:");
+  void _objc_msgSend_100(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_100(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_100Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_100 = __objc_msgSend_100Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateRangesWithOptions_usingBlock_1 =
+      _registerName1("enumerateRangesWithOptions:usingBlock:");
+  void _objc_msgSend_101(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_101(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_101Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_101 = __objc_msgSend_101Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateRangesInRange_options_usingBlock_1 =
+      _registerName1("enumerateRangesInRange:options:usingBlock:");
+  void _objc_msgSend_102(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_102(
+      obj,
+      sel,
+      range,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_102Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_102 = __objc_msgSend_102Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_objectsAtIndexes_1 = _registerName1("objectsAtIndexes:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_103(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> indexes,
+  ) {
+    return __objc_msgSend_103(
+      obj,
+      sel,
+      indexes,
+    );
+  }
+
+  late final __objc_msgSend_103Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_103 = __objc_msgSend_103Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_objectAtIndexedSubscript_1 =
+      _registerName1("objectAtIndexedSubscript:");
+  late final _sel_enumerateObjectsUsingBlock_1 =
+      _registerName1("enumerateObjectsUsingBlock:");
+  void _objc_msgSend_104(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_104(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_104Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_104 = __objc_msgSend_104Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateObjectsWithOptions_usingBlock_1 =
+      _registerName1("enumerateObjectsWithOptions:usingBlock:");
+  void _objc_msgSend_105(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_105(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_105Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_105 = __objc_msgSend_105Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateObjectsAtIndexes_options_usingBlock_1 =
+      _registerName1("enumerateObjectsAtIndexes:options:usingBlock:");
+  void _objc_msgSend_106(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> s,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_106(
+      obj,
+      sel,
+      s,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_106Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_106 = __objc_msgSend_106Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexOfObjectPassingTest_1 =
+      _registerName1("indexOfObjectPassingTest:");
+  int _objc_msgSend_107(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_107(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_107Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_107 = __objc_msgSend_107Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexOfObjectWithOptions_passingTest_1 =
+      _registerName1("indexOfObjectWithOptions:passingTest:");
+  int _objc_msgSend_108(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_108(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_108Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_108 = __objc_msgSend_108Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexOfObjectAtIndexes_options_passingTest_1 =
+      _registerName1("indexOfObjectAtIndexes:options:passingTest:");
+  int _objc_msgSend_109(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> s,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_109(
+      obj,
+      sel,
+      s,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_109Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_109 = __objc_msgSend_109Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesOfObjectsPassingTest_1 =
+      _registerName1("indexesOfObjectsPassingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_110(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_110(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_110Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_110 = __objc_msgSend_110Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesOfObjectsWithOptions_passingTest_1 =
+      _registerName1("indexesOfObjectsWithOptions:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_111(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_111(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_111Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_111 = __objc_msgSend_111Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_indexesOfObjectsAtIndexes_options_passingTest_1 =
+      _registerName1("indexesOfObjectsAtIndexes:options:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_112(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> s,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_112(
+      obj,
+      sel,
+      s,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_112Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_112 = __objc_msgSend_112Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_sortedArrayUsingComparator_1 =
+      _registerName1("sortedArrayUsingComparator:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_113(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_113(
+      obj,
+      sel,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_113Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_113 = __objc_msgSend_113Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSComparator)>();
+
+  late final _sel_sortedArrayWithOptions_usingComparator_1 =
+      _registerName1("sortedArrayWithOptions:usingComparator:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_114(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    NSComparator cmptr,
+  ) {
+    return __objc_msgSend_114(
+      obj,
+      sel,
+      opts,
+      cmptr,
+    );
+  }
+
+  late final __objc_msgSend_114Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32, NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_114 = __objc_msgSend_114Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, NSComparator)>();
+
+  late final _sel_indexOfObject_inSortedRange_options_usingComparator_1 =
+      _registerName1("indexOfObject:inSortedRange:options:usingComparator:");
+  int _objc_msgSend_115(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> obj1,
+    NSRange r,
+    int opts,
+    NSComparator cmp,
+  ) {
+    return __objc_msgSend_115(
+      obj,
+      sel,
+      obj1,
+      r,
+      opts,
+      cmp,
+    );
+  }
+
+  late final __objc_msgSend_115Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSRange,
+              ffi.Int32,
+              NSComparator)>>('objc_msgSend');
+  late final __objc_msgSend_115 = __objc_msgSend_115Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, NSRange, int, NSComparator)>();
+
+  late final _sel_array1 = _registerName1("array");
+  late final _sel_arrayWithObject_1 = _registerName1("arrayWithObject:");
+  late final _sel_arrayWithObjects_count_1 =
+      _registerName1("arrayWithObjects:count:");
+  late final _sel_arrayWithObjects_1 = _registerName1("arrayWithObjects:");
+  late final _sel_arrayWithArray_1 = _registerName1("arrayWithArray:");
+  late final _sel_initWithObjects_1 = _registerName1("initWithObjects:");
+  late final _sel_initWithArray_1 = _registerName1("initWithArray:");
+  late final _sel_initWithArray_copyItems_1 =
+      _registerName1("initWithArray:copyItems:");
+  instancetype _objc_msgSend_116(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> array,
+    bool flag,
+  ) {
+    return __objc_msgSend_116(
+      obj,
+      sel,
+      array,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_116Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_116 = __objc_msgSend_116Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initWithContentsOfURL_error_1 =
+      _registerName1("initWithContentsOfURL:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_117(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_117(
+      obj,
+      sel,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_117Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_117 = __objc_msgSend_117Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_arrayWithContentsOfURL_error_1 =
+      _registerName1("arrayWithContentsOfURL:error:");
+  late final _sel_getObjects_1 = _registerName1("getObjects:");
+  void _objc_msgSend_118(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+  ) {
+    return __objc_msgSend_118(
+      obj,
+      sel,
+      objects,
+    );
+  }
+
+  late final __objc_msgSend_118Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_118 = __objc_msgSend_118Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_arrayWithContentsOfFile_1 =
+      _registerName1("arrayWithContentsOfFile:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_119(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_119(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_119Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_119 = __objc_msgSend_119Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_arrayWithContentsOfURL_1 =
+      _registerName1("arrayWithContentsOfURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_120(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_120(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_120Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_120 = __objc_msgSend_120Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithContentsOfFile_1 =
+      _registerName1("initWithContentsOfFile:");
+  late final _sel_initWithContentsOfURL_1 =
+      _registerName1("initWithContentsOfURL:");
+  late final _sel_writeToURL_atomically_1 =
+      _registerName1("writeToURL:atomically:");
+  bool _objc_msgSend_121(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    bool atomically,
+  ) {
+    return __objc_msgSend_121(
+      obj,
+      sel,
+      url,
+      atomically,
+    );
+  }
+
+  late final __objc_msgSend_121Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_121 = __objc_msgSend_121Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_pathsMatchingExtensions_1 =
+      _registerName1("pathsMatchingExtensions:");
+  late final _sel_valueForKey_1 = _registerName1("valueForKey:");
+  late final _sel_setValue_forKey_1 = _registerName1("setValue:forKey:");
+  void _objc_msgSend_122(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_122(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_122Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_122 = __objc_msgSend_122Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addObserver_toObjectsAtIndexes_forKeyPath_options_context_1 =
+      _registerName1(
+          "addObserver:toObjectsAtIndexes:forKeyPath:options:context:");
+  void _objc_msgSend_123(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> keyPath,
+    int options,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_123(
+      obj,
+      sel,
+      observer,
+      indexes,
+      keyPath,
+      options,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_123Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_123 = __objc_msgSend_123Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_fromObjectsAtIndexes_forKeyPath_context_1 =
+      _registerName1("removeObserver:fromObjectsAtIndexes:forKeyPath:context:");
+  void _objc_msgSend_124(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> keyPath,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_124(
+      obj,
+      sel,
+      observer,
+      indexes,
+      keyPath,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_124Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_124 = __objc_msgSend_124Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_fromObjectsAtIndexes_forKeyPath_1 =
+      _registerName1("removeObserver:fromObjectsAtIndexes:forKeyPath:");
+  void _objc_msgSend_125(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> indexes,
+    ffi.Pointer<ObjCObject> keyPath,
+  ) {
+    return __objc_msgSend_125(
+      obj,
+      sel,
+      observer,
+      indexes,
+      keyPath,
+    );
+  }
+
+  late final __objc_msgSend_125Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_125 = __objc_msgSend_125Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_addObserver_forKeyPath_options_context_1 =
+      _registerName1("addObserver:forKeyPath:options:context:");
+  void _objc_msgSend_126(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> keyPath,
+    int options,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_126(
+      obj,
+      sel,
+      observer,
+      keyPath,
+      options,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_126Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_126 = __objc_msgSend_126Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_forKeyPath_context_1 =
+      _registerName1("removeObserver:forKeyPath:context:");
+  void _objc_msgSend_127(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> keyPath,
+    ffi.Pointer<ffi.Void> context,
+  ) {
+    return __objc_msgSend_127(
+      obj,
+      sel,
+      observer,
+      keyPath,
+      context,
+    );
+  }
+
+  late final __objc_msgSend_127Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_127 = __objc_msgSend_127Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_removeObserver_forKeyPath_1 =
+      _registerName1("removeObserver:forKeyPath:");
+  void _objc_msgSend_128(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> observer,
+    ffi.Pointer<ObjCObject> keyPath,
+  ) {
+    return __objc_msgSend_128(
+      obj,
+      sel,
+      observer,
+      keyPath,
+    );
+  }
+
+  late final __objc_msgSend_128Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_128 = __objc_msgSend_128Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_sortedArrayUsingDescriptors_1 =
+      _registerName1("sortedArrayUsingDescriptors:");
+  late final _class_NSPredicate1 = _getClass1("NSPredicate");
+  late final _sel_predicateWithFormat_argumentArray_1 =
+      _registerName1("predicateWithFormat:argumentArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_129(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicateFormat,
+    ffi.Pointer<ObjCObject> arguments,
+  ) {
+    return __objc_msgSend_129(
+      obj,
+      sel,
+      predicateFormat,
+      arguments,
+    );
+  }
+
+  late final __objc_msgSend_129Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_129 = __objc_msgSend_129Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_predicateWithFormat_1 =
+      _registerName1("predicateWithFormat:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_130(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicateFormat,
+  ) {
+    return __objc_msgSend_130(
+      obj,
+      sel,
+      predicateFormat,
+    );
+  }
+
+  late final __objc_msgSend_130Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_130 = __objc_msgSend_130Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_predicateWithFormat_arguments_1 =
+      _registerName1("predicateWithFormat:arguments:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_131(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicateFormat,
+    ffi.Pointer<__va_list_tag> argList,
+  ) {
+    return __objc_msgSend_131(
+      obj,
+      sel,
+      predicateFormat,
+      argList,
+    );
+  }
+
+  late final __objc_msgSend_131Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_131 = __objc_msgSend_131Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<__va_list_tag>)>();
+
+  late final _sel_predicateFromMetadataQueryString_1 =
+      _registerName1("predicateFromMetadataQueryString:");
+  late final _sel_predicateWithValue_1 = _registerName1("predicateWithValue:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_132(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool value,
+  ) {
+    return __objc_msgSend_132(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_132Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_132 = __objc_msgSend_132Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _class_NSDictionary1 = _getClass1("NSDictionary");
+  late final _sel_objectForKey_1 = _registerName1("objectForKey:");
+  late final _sel_keyEnumerator1 = _registerName1("keyEnumerator");
+  late final _sel_initWithObjects_forKeys_count_1 =
+      _registerName1("initWithObjects:forKeys:count:");
+  instancetype _objc_msgSend_133(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+    int cnt,
+  ) {
+    return __objc_msgSend_133(
+      obj,
+      sel,
+      objects,
+      keys,
+      cnt,
+    );
+  }
+
+  late final __objc_msgSend_133Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_133 = __objc_msgSend_133Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          int)>();
+
+  late final _sel_allKeys1 = _registerName1("allKeys");
+  late final _sel_allKeysForObject_1 = _registerName1("allKeysForObject:");
+  late final _sel_allValues1 = _registerName1("allValues");
+  late final _sel_descriptionInStringsFileFormat1 =
+      _registerName1("descriptionInStringsFileFormat");
+  late final _sel_isEqualToDictionary_1 =
+      _registerName1("isEqualToDictionary:");
+  bool _objc_msgSend_134(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherDictionary,
+  ) {
+    return __objc_msgSend_134(
+      obj,
+      sel,
+      otherDictionary,
+    );
+  }
+
+  late final __objc_msgSend_134Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_134 = __objc_msgSend_134Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_objectsForKeys_notFoundMarker_1 =
+      _registerName1("objectsForKeys:notFoundMarker:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_135(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keys,
+    ffi.Pointer<ObjCObject> marker,
+  ) {
+    return __objc_msgSend_135(
+      obj,
+      sel,
+      keys,
+      marker,
+    );
+  }
+
+  late final __objc_msgSend_135Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_135 = __objc_msgSend_135Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_keysSortedByValueUsingSelector_1 =
+      _registerName1("keysSortedByValueUsingSelector:");
+  late final _sel_getObjects_andKeys_count_1 =
+      _registerName1("getObjects:andKeys:count:");
+  void _objc_msgSend_136(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+    int count,
+  ) {
+    return __objc_msgSend_136(
+      obj,
+      sel,
+      objects,
+      keys,
+      count,
+    );
+  }
+
+  late final __objc_msgSend_136Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_136 = __objc_msgSend_136Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          int)>();
+
+  late final _sel_objectForKeyedSubscript_1 =
+      _registerName1("objectForKeyedSubscript:");
+  late final _sel_enumerateKeysAndObjectsUsingBlock_1 =
+      _registerName1("enumerateKeysAndObjectsUsingBlock:");
+  void _objc_msgSend_137(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_137(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_137Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_137 = __objc_msgSend_137Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateKeysAndObjectsWithOptions_usingBlock_1 =
+      _registerName1("enumerateKeysAndObjectsWithOptions:usingBlock:");
+  void _objc_msgSend_138(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_138(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_138Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_138 = __objc_msgSend_138Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_keysSortedByValueUsingComparator_1 =
+      _registerName1("keysSortedByValueUsingComparator:");
+  late final _sel_keysSortedByValueWithOptions_usingComparator_1 =
+      _registerName1("keysSortedByValueWithOptions:usingComparator:");
+  late final _sel_getObjects_andKeys_1 = _registerName1("getObjects:andKeys:");
+  void _objc_msgSend_139(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> objects,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> keys,
+  ) {
+    return __objc_msgSend_139(
+      obj,
+      sel,
+      objects,
+      keys,
+    );
+  }
+
+  late final __objc_msgSend_139Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_139 = __objc_msgSend_139Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dictionaryWithContentsOfFile_1 =
+      _registerName1("dictionaryWithContentsOfFile:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_140(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+  ) {
+    return __objc_msgSend_140(
+      obj,
+      sel,
+      path,
+    );
+  }
+
+  late final __objc_msgSend_140Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_140 = __objc_msgSend_140Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionaryWithContentsOfURL_1 =
+      _registerName1("dictionaryWithContentsOfURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_141(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+  ) {
+    return __objc_msgSend_141(
+      obj,
+      sel,
+      url,
+    );
+  }
+
+  late final __objc_msgSend_141Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_141 = __objc_msgSend_141Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionary1 = _registerName1("dictionary");
+  late final _sel_dictionaryWithObject_forKey_1 =
+      _registerName1("dictionaryWithObject:forKey:");
+  instancetype _objc_msgSend_142(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_142(
+      obj,
+      sel,
+      object,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_142Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_142 = __objc_msgSend_142Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionaryWithObjects_forKeys_count_1 =
+      _registerName1("dictionaryWithObjects:forKeys:count:");
+  late final _sel_dictionaryWithObjectsAndKeys_1 =
+      _registerName1("dictionaryWithObjectsAndKeys:");
+  late final _sel_dictionaryWithDictionary_1 =
+      _registerName1("dictionaryWithDictionary:");
+  instancetype _objc_msgSend_143(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dict,
+  ) {
+    return __objc_msgSend_143(
+      obj,
+      sel,
+      dict,
+    );
+  }
+
+  late final __objc_msgSend_143Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_143 = __objc_msgSend_143Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dictionaryWithObjects_forKeys_1 =
+      _registerName1("dictionaryWithObjects:forKeys:");
+  instancetype _objc_msgSend_144(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> objects,
+    ffi.Pointer<ObjCObject> keys,
+  ) {
+    return __objc_msgSend_144(
+      obj,
+      sel,
+      objects,
+      keys,
+    );
+  }
+
+  late final __objc_msgSend_144Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_144 = __objc_msgSend_144Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithObjectsAndKeys_1 =
+      _registerName1("initWithObjectsAndKeys:");
+  late final _sel_initWithDictionary_1 = _registerName1("initWithDictionary:");
+  late final _sel_initWithDictionary_copyItems_1 =
+      _registerName1("initWithDictionary:copyItems:");
+  instancetype _objc_msgSend_145(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherDictionary,
+    bool flag,
+  ) {
+    return __objc_msgSend_145(
+      obj,
+      sel,
+      otherDictionary,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_145Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_145 = __objc_msgSend_145Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_initWithObjects_forKeys_1 =
+      _registerName1("initWithObjects:forKeys:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_146(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_146(
+      obj,
+      sel,
+      url,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_146Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_146 = __objc_msgSend_146Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dictionaryWithContentsOfURL_error_1 =
+      _registerName1("dictionaryWithContentsOfURL:error:");
+  late final _sel_sharedKeySetForKeys_1 =
+      _registerName1("sharedKeySetForKeys:");
+  late final _sel_countByEnumeratingWithState_objects_count_1 =
+      _registerName1("countByEnumeratingWithState:objects:count:");
+  int _objc_msgSend_147(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSFastEnumerationState> state,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> buffer,
+    int len,
+  ) {
+    return __objc_msgSend_147(
+      obj,
+      sel,
+      state,
+      buffer,
+      len,
+    );
+  }
+
+  late final __objc_msgSend_147Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSFastEnumerationState>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_147 = __objc_msgSend_147Ptr.asFunction<
+      int Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSFastEnumerationState>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          int)>();
+
+  late final _sel_fileSize1 = _registerName1("fileSize");
+  int _objc_msgSend_148(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_148(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_148Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.UnsignedLongLong Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_148 = __objc_msgSend_148Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _class_NSDate1 = _getClass1("NSDate");
+  late final _sel_timeIntervalSinceReferenceDate1 =
+      _registerName1("timeIntervalSinceReferenceDate");
+  double _objc_msgSend_149(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_149(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_149Ptr = _lookup<
+      ffi.NativeFunction<
+          NSTimeInterval Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_149 = __objc_msgSend_149Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_initWithTimeIntervalSinceReferenceDate_1 =
+      _registerName1("initWithTimeIntervalSinceReferenceDate:");
+  instancetype _objc_msgSend_150(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double ti,
+  ) {
+    return __objc_msgSend_150(
+      obj,
+      sel,
+      ti,
+    );
+  }
+
+  late final __objc_msgSend_150Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSTimeInterval)>>('objc_msgSend');
+  late final __objc_msgSend_150 = __objc_msgSend_150Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_timeIntervalSinceDate_1 =
+      _registerName1("timeIntervalSinceDate:");
+  double _objc_msgSend_151(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anotherDate,
+  ) {
+    return __objc_msgSend_151(
+      obj,
+      sel,
+      anotherDate,
+    );
+  }
+
+  late final __objc_msgSend_151Ptr = _lookup<
+      ffi.NativeFunction<
+          NSTimeInterval Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_151 = __objc_msgSend_151Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_timeIntervalSinceNow1 =
+      _registerName1("timeIntervalSinceNow");
+  late final _sel_timeIntervalSince19701 =
+      _registerName1("timeIntervalSince1970");
+  late final _sel_addTimeInterval_1 = _registerName1("addTimeInterval:");
+  late final _sel_dateByAddingTimeInterval_1 =
+      _registerName1("dateByAddingTimeInterval:");
+  late final _sel_earlierDate_1 = _registerName1("earlierDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_152(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anotherDate,
+  ) {
+    return __objc_msgSend_152(
+      obj,
+      sel,
+      anotherDate,
+    );
+  }
+
+  late final __objc_msgSend_152Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_152 = __objc_msgSend_152Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_laterDate_1 = _registerName1("laterDate:");
+  late final _sel_compare_1 = _registerName1("compare:");
+  int _objc_msgSend_153(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_153(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_153Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_153 = __objc_msgSend_153Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isEqualToDate_1 = _registerName1("isEqualToDate:");
+  bool _objc_msgSend_154(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherDate,
+  ) {
+    return __objc_msgSend_154(
+      obj,
+      sel,
+      otherDate,
+    );
+  }
+
+  late final __objc_msgSend_154Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_154 = __objc_msgSend_154Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_date1 = _registerName1("date");
+  late final _sel_dateWithTimeIntervalSinceNow_1 =
+      _registerName1("dateWithTimeIntervalSinceNow:");
+  late final _sel_dateWithTimeIntervalSinceReferenceDate_1 =
+      _registerName1("dateWithTimeIntervalSinceReferenceDate:");
+  late final _sel_dateWithTimeIntervalSince1970_1 =
+      _registerName1("dateWithTimeIntervalSince1970:");
+  late final _sel_dateWithTimeInterval_sinceDate_1 =
+      _registerName1("dateWithTimeInterval:sinceDate:");
+  instancetype _objc_msgSend_155(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double secsToBeAdded,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_155(
+      obj,
+      sel,
+      secsToBeAdded,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_155Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSTimeInterval, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_155 = __objc_msgSend_155Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          double, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_distantFuture1 = _registerName1("distantFuture");
+  ffi.Pointer<ObjCObject> _objc_msgSend_156(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_156(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_156Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_156 = __objc_msgSend_156Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_distantPast1 = _registerName1("distantPast");
+  late final _sel_now1 = _registerName1("now");
+  late final _sel_initWithTimeIntervalSinceNow_1 =
+      _registerName1("initWithTimeIntervalSinceNow:");
+  late final _sel_initWithTimeIntervalSince1970_1 =
+      _registerName1("initWithTimeIntervalSince1970:");
+  late final _sel_initWithTimeInterval_sinceDate_1 =
+      _registerName1("initWithTimeInterval:sinceDate:");
+  late final _sel_dateWithNaturalLanguageString_locale_1 =
+      _registerName1("dateWithNaturalLanguageString:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_157(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_157(
+      obj,
+      sel,
+      string,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_157Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_157 = __objc_msgSend_157Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateWithNaturalLanguageString_1 =
+      _registerName1("dateWithNaturalLanguageString:");
+  late final _sel_dateWithString_1 = _registerName1("dateWithString:");
+  late final _class_NSCalendarDate1 = _getClass1("NSCalendarDate");
+  late final _sel_calendarDate1 = _registerName1("calendarDate");
+  late final _sel_dateWithString_calendarFormat_locale_1 =
+      _registerName1("dateWithString:calendarFormat:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_158(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> description,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_158(
+      obj,
+      sel,
+      description,
+      format,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_158Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_158 = __objc_msgSend_158Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateWithString_calendarFormat_1 =
+      _registerName1("dateWithString:calendarFormat:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_159(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> description,
+    ffi.Pointer<ObjCObject> format,
+  ) {
+    return __objc_msgSend_159(
+      obj,
+      sel,
+      description,
+      format,
+    );
+  }
+
+  late final __objc_msgSend_159Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_159 = __objc_msgSend_159Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSTimeZone1 = _getClass1("NSTimeZone");
+  late final _sel_name1 = _registerName1("name");
+  late final _sel_data1 = _registerName1("data");
+  late final _sel_secondsFromGMTForDate_1 =
+      _registerName1("secondsFromGMTForDate:");
+  int _objc_msgSend_160(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aDate,
+  ) {
+    return __objc_msgSend_160(
+      obj,
+      sel,
+      aDate,
+    );
+  }
+
+  late final __objc_msgSend_160Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_160 = __objc_msgSend_160Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_abbreviationForDate_1 =
+      _registerName1("abbreviationForDate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_161(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aDate,
+  ) {
+    return __objc_msgSend_161(
+      obj,
+      sel,
+      aDate,
+    );
+  }
+
+  late final __objc_msgSend_161Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_161 = __objc_msgSend_161Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isDaylightSavingTimeForDate_1 =
+      _registerName1("isDaylightSavingTimeForDate:");
+  late final _sel_daylightSavingTimeOffsetForDate_1 =
+      _registerName1("daylightSavingTimeOffsetForDate:");
+  late final _sel_nextDaylightSavingTimeTransitionAfterDate_1 =
+      _registerName1("nextDaylightSavingTimeTransitionAfterDate:");
+  late final _sel_systemTimeZone1 = _registerName1("systemTimeZone");
+  ffi.Pointer<ObjCObject> _objc_msgSend_162(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_162(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_162Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_162 = __objc_msgSend_162Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_resetSystemTimeZone1 = _registerName1("resetSystemTimeZone");
+  late final _sel_defaultTimeZone1 = _registerName1("defaultTimeZone");
+  late final _sel_setDefaultTimeZone_1 = _registerName1("setDefaultTimeZone:");
+  void _objc_msgSend_163(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_163(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_163Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_163 = __objc_msgSend_163Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_localTimeZone1 = _registerName1("localTimeZone");
+  late final _sel_knownTimeZoneNames1 = _registerName1("knownTimeZoneNames");
+  late final _sel_abbreviationDictionary1 =
+      _registerName1("abbreviationDictionary");
+  ffi.Pointer<ObjCObject> _objc_msgSend_164(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_164(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_164Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_164 = __objc_msgSend_164Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setAbbreviationDictionary_1 =
+      _registerName1("setAbbreviationDictionary:");
+  void _objc_msgSend_165(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_165(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_165Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_165 = __objc_msgSend_165Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_timeZoneDataVersion1 = _registerName1("timeZoneDataVersion");
+  late final _sel_secondsFromGMT1 = _registerName1("secondsFromGMT");
+  late final _sel_abbreviation1 = _registerName1("abbreviation");
+  late final _sel_isDaylightSavingTime1 =
+      _registerName1("isDaylightSavingTime");
+  late final _sel_daylightSavingTimeOffset1 =
+      _registerName1("daylightSavingTimeOffset");
+  late final _sel_nextDaylightSavingTimeTransition1 =
+      _registerName1("nextDaylightSavingTimeTransition");
+  late final _sel_isEqualToTimeZone_1 = _registerName1("isEqualToTimeZone:");
+  bool _objc_msgSend_166(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_166(
+      obj,
+      sel,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_166Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_166 = __objc_msgSend_166Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSLocale1 = _getClass1("NSLocale");
+  late final _sel_displayNameForKey_value_1 =
+      _registerName1("displayNameForKey:value:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_167(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSLocaleKey key,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_167(
+      obj,
+      sel,
+      key,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_167Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSLocaleKey,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_167 = __objc_msgSend_167Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSLocaleKey, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithLocaleIdentifier_1 =
+      _registerName1("initWithLocaleIdentifier:");
+  late final _sel_localeIdentifier1 = _registerName1("localeIdentifier");
+  late final _sel_localizedStringForLocaleIdentifier_1 =
+      _registerName1("localizedStringForLocaleIdentifier:");
+  late final _sel_languageCode1 = _registerName1("languageCode");
+  late final _sel_localizedStringForLanguageCode_1 =
+      _registerName1("localizedStringForLanguageCode:");
+  late final _sel_countryCode1 = _registerName1("countryCode");
+  late final _sel_localizedStringForCountryCode_1 =
+      _registerName1("localizedStringForCountryCode:");
+  late final _sel_scriptCode1 = _registerName1("scriptCode");
+  late final _sel_localizedStringForScriptCode_1 =
+      _registerName1("localizedStringForScriptCode:");
+  late final _sel_variantCode1 = _registerName1("variantCode");
+  late final _sel_localizedStringForVariantCode_1 =
+      _registerName1("localizedStringForVariantCode:");
+  late final _class_NSCharacterSet1 = _getClass1("NSCharacterSet");
+  late final _sel_controlCharacterSet1 = _registerName1("controlCharacterSet");
+  ffi.Pointer<ObjCObject> _objc_msgSend_168(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_168(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_168Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_168 = __objc_msgSend_168Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_whitespaceCharacterSet1 =
+      _registerName1("whitespaceCharacterSet");
+  late final _sel_whitespaceAndNewlineCharacterSet1 =
+      _registerName1("whitespaceAndNewlineCharacterSet");
+  late final _sel_decimalDigitCharacterSet1 =
+      _registerName1("decimalDigitCharacterSet");
+  late final _sel_letterCharacterSet1 = _registerName1("letterCharacterSet");
+  late final _sel_lowercaseLetterCharacterSet1 =
+      _registerName1("lowercaseLetterCharacterSet");
+  late final _sel_uppercaseLetterCharacterSet1 =
+      _registerName1("uppercaseLetterCharacterSet");
+  late final _sel_nonBaseCharacterSet1 = _registerName1("nonBaseCharacterSet");
+  late final _sel_alphanumericCharacterSet1 =
+      _registerName1("alphanumericCharacterSet");
+  late final _sel_decomposableCharacterSet1 =
+      _registerName1("decomposableCharacterSet");
+  late final _sel_illegalCharacterSet1 = _registerName1("illegalCharacterSet");
+  late final _sel_punctuationCharacterSet1 =
+      _registerName1("punctuationCharacterSet");
+  late final _sel_capitalizedLetterCharacterSet1 =
+      _registerName1("capitalizedLetterCharacterSet");
+  late final _sel_symbolCharacterSet1 = _registerName1("symbolCharacterSet");
+  late final _sel_newlineCharacterSet1 = _registerName1("newlineCharacterSet");
+  late final _sel_characterSetWithRange_1 =
+      _registerName1("characterSetWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_169(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange aRange,
+  ) {
+    return __objc_msgSend_169(
+      obj,
+      sel,
+      aRange,
+    );
+  }
+
+  late final __objc_msgSend_169Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_169 = __objc_msgSend_169Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_characterSetWithCharactersInString_1 =
+      _registerName1("characterSetWithCharactersInString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_170(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aString,
+  ) {
+    return __objc_msgSend_170(
+      obj,
+      sel,
+      aString,
+    );
+  }
+
+  late final __objc_msgSend_170Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_170 = __objc_msgSend_170Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_characterSetWithBitmapRepresentation_1 =
+      _registerName1("characterSetWithBitmapRepresentation:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_171(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_171(
+      obj,
+      sel,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_171Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_171 = __objc_msgSend_171Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_characterSetWithContentsOfFile_1 =
+      _registerName1("characterSetWithContentsOfFile:");
+  late final _sel_characterIsMember_1 = _registerName1("characterIsMember:");
+  bool _objc_msgSend_172(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int aCharacter,
+  ) {
+    return __objc_msgSend_172(
+      obj,
+      sel,
+      aCharacter,
+    );
+  }
+
+  late final __objc_msgSend_172Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              unichar)>>('objc_msgSend');
+  late final __objc_msgSend_172 = __objc_msgSend_172Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_bitmapRepresentation1 =
+      _registerName1("bitmapRepresentation");
+  late final _sel_invertedSet1 = _registerName1("invertedSet");
+  late final _sel_longCharacterIsMember_1 =
+      _registerName1("longCharacterIsMember:");
+  bool _objc_msgSend_173(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int theLongChar,
+  ) {
+    return __objc_msgSend_173(
+      obj,
+      sel,
+      theLongChar,
+    );
+  }
+
+  late final __objc_msgSend_173Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              UTF32Char)>>('objc_msgSend');
+  late final __objc_msgSend_173 = __objc_msgSend_173Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_isSupersetOfSet_1 = _registerName1("isSupersetOfSet:");
+  bool _objc_msgSend_174(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> theOtherSet,
+  ) {
+    return __objc_msgSend_174(
+      obj,
+      sel,
+      theOtherSet,
+    );
+  }
+
+  late final __objc_msgSend_174Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_174 = __objc_msgSend_174Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_hasMemberInPlane_1 = _registerName1("hasMemberInPlane:");
+  bool _objc_msgSend_175(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int thePlane,
+  ) {
+    return __objc_msgSend_175(
+      obj,
+      sel,
+      thePlane,
+    );
+  }
+
+  late final __objc_msgSend_175Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Uint8)>>('objc_msgSend');
+  late final __objc_msgSend_175 = __objc_msgSend_175Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_URLUserAllowedCharacterSet1 =
+      _registerName1("URLUserAllowedCharacterSet");
+  late final _sel_URLPasswordAllowedCharacterSet1 =
+      _registerName1("URLPasswordAllowedCharacterSet");
+  late final _sel_URLHostAllowedCharacterSet1 =
+      _registerName1("URLHostAllowedCharacterSet");
+  late final _sel_URLPathAllowedCharacterSet1 =
+      _registerName1("URLPathAllowedCharacterSet");
+  late final _sel_URLQueryAllowedCharacterSet1 =
+      _registerName1("URLQueryAllowedCharacterSet");
+  late final _sel_URLFragmentAllowedCharacterSet1 =
+      _registerName1("URLFragmentAllowedCharacterSet");
+  late final _sel_exemplarCharacterSet1 =
+      _registerName1("exemplarCharacterSet");
+  late final _sel_calendarIdentifier1 = _registerName1("calendarIdentifier");
+  late final _sel_localizedStringForCalendarIdentifier_1 =
+      _registerName1("localizedStringForCalendarIdentifier:");
+  late final _sel_collationIdentifier1 = _registerName1("collationIdentifier");
+  late final _sel_localizedStringForCollationIdentifier_1 =
+      _registerName1("localizedStringForCollationIdentifier:");
+  late final _sel_usesMetricSystem1 = _registerName1("usesMetricSystem");
+  late final _sel_decimalSeparator1 = _registerName1("decimalSeparator");
+  late final _sel_groupingSeparator1 = _registerName1("groupingSeparator");
+  late final _sel_currencySymbol1 = _registerName1("currencySymbol");
+  late final _sel_currencyCode1 = _registerName1("currencyCode");
+  late final _sel_localizedStringForCurrencyCode_1 =
+      _registerName1("localizedStringForCurrencyCode:");
+  late final _sel_collatorIdentifier1 = _registerName1("collatorIdentifier");
+  late final _sel_localizedStringForCollatorIdentifier_1 =
+      _registerName1("localizedStringForCollatorIdentifier:");
+  late final _sel_quotationBeginDelimiter1 =
+      _registerName1("quotationBeginDelimiter");
+  late final _sel_quotationEndDelimiter1 =
+      _registerName1("quotationEndDelimiter");
+  late final _sel_alternateQuotationBeginDelimiter1 =
+      _registerName1("alternateQuotationBeginDelimiter");
+  late final _sel_alternateQuotationEndDelimiter1 =
+      _registerName1("alternateQuotationEndDelimiter");
+  late final _sel_autoupdatingCurrentLocale1 =
+      _registerName1("autoupdatingCurrentLocale");
+  ffi.Pointer<ObjCObject> _objc_msgSend_176(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_176(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_176Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_176 = __objc_msgSend_176Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_currentLocale1 = _registerName1("currentLocale");
+  late final _sel_systemLocale1 = _registerName1("systemLocale");
+  late final _sel_localeWithLocaleIdentifier_1 =
+      _registerName1("localeWithLocaleIdentifier:");
+  late final _sel_availableLocaleIdentifiers1 =
+      _registerName1("availableLocaleIdentifiers");
+  late final _sel_ISOLanguageCodes1 = _registerName1("ISOLanguageCodes");
+  late final _sel_ISOCountryCodes1 = _registerName1("ISOCountryCodes");
+  late final _sel_ISOCurrencyCodes1 = _registerName1("ISOCurrencyCodes");
+  late final _sel_commonISOCurrencyCodes1 =
+      _registerName1("commonISOCurrencyCodes");
+  late final _sel_preferredLanguages1 = _registerName1("preferredLanguages");
+  late final _sel_componentsFromLocaleIdentifier_1 =
+      _registerName1("componentsFromLocaleIdentifier:");
+  late final _sel_localeIdentifierFromComponents_1 =
+      _registerName1("localeIdentifierFromComponents:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_177(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dict,
+  ) {
+    return __objc_msgSend_177(
+      obj,
+      sel,
+      dict,
+    );
+  }
+
+  late final __objc_msgSend_177Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_177 = __objc_msgSend_177Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_canonicalLocaleIdentifierFromString_1 =
+      _registerName1("canonicalLocaleIdentifierFromString:");
+  late final _sel_canonicalLanguageIdentifierFromString_1 =
+      _registerName1("canonicalLanguageIdentifierFromString:");
+  late final _sel_localeIdentifierFromWindowsLocaleCode_1 =
+      _registerName1("localeIdentifierFromWindowsLocaleCode:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_178(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int lcid,
+  ) {
+    return __objc_msgSend_178(
+      obj,
+      sel,
+      lcid,
+    );
+  }
+
+  late final __objc_msgSend_178Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Uint32)>>('objc_msgSend');
+  late final __objc_msgSend_178 = __objc_msgSend_178Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_windowsLocaleCodeFromLocaleIdentifier_1 =
+      _registerName1("windowsLocaleCodeFromLocaleIdentifier:");
+  int _objc_msgSend_179(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> localeIdentifier,
+  ) {
+    return __objc_msgSend_179(
+      obj,
+      sel,
+      localeIdentifier,
+    );
+  }
+
+  late final __objc_msgSend_179Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Uint32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_179 = __objc_msgSend_179Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_characterDirectionForLanguage_1 =
+      _registerName1("characterDirectionForLanguage:");
+  int _objc_msgSend_180(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> isoLangCode,
+  ) {
+    return __objc_msgSend_180(
+      obj,
+      sel,
+      isoLangCode,
+    );
+  }
+
+  late final __objc_msgSend_180Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_180 = __objc_msgSend_180Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_lineDirectionForLanguage_1 =
+      _registerName1("lineDirectionForLanguage:");
+  late final _sel_localizedName_locale_1 =
+      _registerName1("localizedName:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_181(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int style,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_181(
+      obj,
+      sel,
+      style,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_181Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_181 = __objc_msgSend_181Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_timeZoneWithName_1 = _registerName1("timeZoneWithName:");
+  late final _sel_timeZoneWithName_data_1 =
+      _registerName1("timeZoneWithName:data:");
+  instancetype _objc_msgSend_182(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> tzName,
+    ffi.Pointer<ObjCObject> aData,
+  ) {
+    return __objc_msgSend_182(
+      obj,
+      sel,
+      tzName,
+      aData,
+    );
+  }
+
+  late final __objc_msgSend_182Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_182 = __objc_msgSend_182Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithName_1 = _registerName1("initWithName:");
+  late final _sel_initWithName_data_1 = _registerName1("initWithName:data:");
+  late final _sel_timeZoneForSecondsFromGMT_1 =
+      _registerName1("timeZoneForSecondsFromGMT:");
+  instancetype _objc_msgSend_183(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int seconds,
+  ) {
+    return __objc_msgSend_183(
+      obj,
+      sel,
+      seconds,
+    );
+  }
+
+  late final __objc_msgSend_183Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_183 = __objc_msgSend_183Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_timeZoneWithAbbreviation_1 =
+      _registerName1("timeZoneWithAbbreviation:");
+  late final _sel_dateWithYear_month_day_hour_minute_second_timeZone_1 =
+      _registerName1("dateWithYear:month:day:hour:minute:second:timeZone:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_184(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int year,
+    int month,
+    int day,
+    int hour,
+    int minute,
+    int second,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_184(
+      obj,
+      sel,
+      year,
+      month,
+      day,
+      hour,
+      minute,
+      second,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_184Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSInteger,
+              NSUInteger,
+              NSUInteger,
+              NSUInteger,
+              NSUInteger,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_184 = __objc_msgSend_184Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          int,
+          int,
+          int,
+          int,
+          int,
+          int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateByAddingYears_months_days_hours_minutes_seconds_1 =
+      _registerName1("dateByAddingYears:months:days:hours:minutes:seconds:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_185(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int year,
+    int month,
+    int day,
+    int hour,
+    int minute,
+    int second,
+  ) {
+    return __objc_msgSend_185(
+      obj,
+      sel,
+      year,
+      month,
+      day,
+      hour,
+      minute,
+      second,
+    );
+  }
+
+  late final __objc_msgSend_185Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_185 = __objc_msgSend_185Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, int, int, int, int, int)>();
+
+  late final _sel_dayOfCommonEra1 = _registerName1("dayOfCommonEra");
+  late final _sel_dayOfMonth1 = _registerName1("dayOfMonth");
+  late final _sel_dayOfWeek1 = _registerName1("dayOfWeek");
+  late final _sel_dayOfYear1 = _registerName1("dayOfYear");
+  late final _sel_hourOfDay1 = _registerName1("hourOfDay");
+  late final _sel_minuteOfHour1 = _registerName1("minuteOfHour");
+  late final _sel_monthOfYear1 = _registerName1("monthOfYear");
+  late final _sel_secondOfMinute1 = _registerName1("secondOfMinute");
+  late final _sel_yearOfCommonEra1 = _registerName1("yearOfCommonEra");
+  late final _sel_calendarFormat1 = _registerName1("calendarFormat");
+  late final _sel_descriptionWithCalendarFormat_locale_1 =
+      _registerName1("descriptionWithCalendarFormat:locale:");
+  late final _sel_descriptionWithCalendarFormat_1 =
+      _registerName1("descriptionWithCalendarFormat:");
+  late final _sel_timeZone1 = _registerName1("timeZone");
+  late final _sel_initWithString_calendarFormat_locale_1 =
+      _registerName1("initWithString:calendarFormat:locale:");
+  late final _sel_initWithString_calendarFormat_1 =
+      _registerName1("initWithString:calendarFormat:");
+  late final _sel_initWithYear_month_day_hour_minute_second_timeZone_1 =
+      _registerName1("initWithYear:month:day:hour:minute:second:timeZone:");
+  late final _sel_setCalendarFormat_1 = _registerName1("setCalendarFormat:");
+  void _objc_msgSend_186(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+  ) {
+    return __objc_msgSend_186(
+      obj,
+      sel,
+      format,
+    );
+  }
+
+  late final __objc_msgSend_186Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_186 = __objc_msgSend_186Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setTimeZone_1 = _registerName1("setTimeZone:");
+  void _objc_msgSend_187(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_187(
+      obj,
+      sel,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_187Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_187 = __objc_msgSend_187Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_years_months_days_hours_minutes_seconds_sinceDate_1 =
+      _registerName1("years:months:days:hours:minutes:seconds:sinceDate:");
+  void _objc_msgSend_188(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSInteger> yp,
+    ffi.Pointer<NSInteger> mop,
+    ffi.Pointer<NSInteger> dp,
+    ffi.Pointer<NSInteger> hp,
+    ffi.Pointer<NSInteger> mip,
+    ffi.Pointer<NSInteger> sp,
+    ffi.Pointer<ObjCObject> date,
+  ) {
+    return __objc_msgSend_188(
+      obj,
+      sel,
+      yp,
+      mop,
+      dp,
+      hp,
+      mip,
+      sp,
+      date,
+    );
+  }
+
+  late final __objc_msgSend_188Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<NSInteger>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_188 = __objc_msgSend_188Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<NSInteger>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dateWithCalendarFormat_timeZone_1 =
+      _registerName1("dateWithCalendarFormat:timeZone:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_189(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> aTimeZone,
+  ) {
+    return __objc_msgSend_189(
+      obj,
+      sel,
+      format,
+      aTimeZone,
+    );
+  }
+
+  late final __objc_msgSend_189Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_189 = __objc_msgSend_189Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_descriptionWithCalendarFormat_timeZone_locale_1 =
+      _registerName1("descriptionWithCalendarFormat:timeZone:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_190(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> aTimeZone,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_190(
+      obj,
+      sel,
+      format,
+      aTimeZone,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_190Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_190 = __objc_msgSend_190Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_fileModificationDate1 =
+      _registerName1("fileModificationDate");
+  late final _sel_fileType1 = _registerName1("fileType");
+  late final _sel_filePosixPermissions1 =
+      _registerName1("filePosixPermissions");
+  late final _sel_fileOwnerAccountName1 =
+      _registerName1("fileOwnerAccountName");
+  late final _sel_fileGroupOwnerAccountName1 =
+      _registerName1("fileGroupOwnerAccountName");
+  late final _sel_fileSystemNumber1 = _registerName1("fileSystemNumber");
+  late final _sel_fileSystemFileNumber1 =
+      _registerName1("fileSystemFileNumber");
+  late final _sel_fileExtensionHidden1 = _registerName1("fileExtensionHidden");
+  late final _sel_fileHFSCreatorCode1 = _registerName1("fileHFSCreatorCode");
+  int _objc_msgSend_191(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_191(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_191Ptr = _lookup<
+      ffi.NativeFunction<
+          OSType Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_191 = __objc_msgSend_191Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_fileHFSTypeCode1 = _registerName1("fileHFSTypeCode");
+  late final _sel_fileIsImmutable1 = _registerName1("fileIsImmutable");
+  late final _sel_fileIsAppendOnly1 = _registerName1("fileIsAppendOnly");
+  late final _sel_fileCreationDate1 = _registerName1("fileCreationDate");
+  late final _sel_fileOwnerAccountID1 = _registerName1("fileOwnerAccountID");
+  ffi.Pointer<ObjCObject> _objc_msgSend_192(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_192(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_192Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_192 = __objc_msgSend_192Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_fileGroupOwnerAccountID1 =
+      _registerName1("fileGroupOwnerAccountID");
+  late final _sel_predicateWithBlock_1 = _registerName1("predicateWithBlock:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_193(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_193(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_193Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_193 = __objc_msgSend_193Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_predicateFormat1 = _registerName1("predicateFormat");
+  late final _sel_predicateWithSubstitutionVariables_1 =
+      _registerName1("predicateWithSubstitutionVariables:");
+  late final _sel_evaluateWithObject_1 = _registerName1("evaluateWithObject:");
+  late final _sel_evaluateWithObject_substitutionVariables_1 =
+      _registerName1("evaluateWithObject:substitutionVariables:");
+  bool _objc_msgSend_194(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> object,
+    ffi.Pointer<ObjCObject> bindings,
+  ) {
+    return __objc_msgSend_194(
+      obj,
+      sel,
+      object,
+      bindings,
+    );
+  }
+
+  late final __objc_msgSend_194Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_194 = __objc_msgSend_194Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_allowEvaluation1 = _registerName1("allowEvaluation");
+  late final _sel_filteredArrayUsingPredicate_1 =
+      _registerName1("filteredArrayUsingPredicate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_195(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicate,
+  ) {
+    return __objc_msgSend_195(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_195Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_195 = __objc_msgSend_195Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithChar_1 = _registerName1("initWithChar:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_196(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_196(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_196Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Char)>>('objc_msgSend');
+  late final __objc_msgSend_196 = __objc_msgSend_196Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedChar_1 =
+      _registerName1("initWithUnsignedChar:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_197(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_197(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_197Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedChar)>>('objc_msgSend');
+  late final __objc_msgSend_197 = __objc_msgSend_197Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithShort_1 = _registerName1("initWithShort:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_198(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_198(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_198Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Short)>>('objc_msgSend');
+  late final __objc_msgSend_198 = __objc_msgSend_198Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedShort_1 =
+      _registerName1("initWithUnsignedShort:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_199(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_199(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_199Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedShort)>>('objc_msgSend');
+  late final __objc_msgSend_199 = __objc_msgSend_199Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithInt_1 = _registerName1("initWithInt:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_200(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_200(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_200Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int)>>('objc_msgSend');
+  late final __objc_msgSend_200 = __objc_msgSend_200Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedInt_1 =
+      _registerName1("initWithUnsignedInt:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_201(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_201(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_201Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedInt)>>('objc_msgSend');
+  late final __objc_msgSend_201 = __objc_msgSend_201Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithLong_1 = _registerName1("initWithLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_202(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_202(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_202Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Long)>>('objc_msgSend');
+  late final __objc_msgSend_202 = __objc_msgSend_202Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedLong_1 =
+      _registerName1("initWithUnsignedLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_203(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_203(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_203Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedLong)>>('objc_msgSend');
+  late final __objc_msgSend_203 = __objc_msgSend_203Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithLongLong_1 = _registerName1("initWithLongLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_204(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_204(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_204Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.LongLong)>>('objc_msgSend');
+  late final __objc_msgSend_204 = __objc_msgSend_204Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithUnsignedLongLong_1 =
+      _registerName1("initWithUnsignedLongLong:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_205(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+  ) {
+    return __objc_msgSend_205(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_205Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.UnsignedLongLong)>>('objc_msgSend');
+  late final __objc_msgSend_205 = __objc_msgSend_205Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithFloat_1 = _registerName1("initWithFloat:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_206(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+  ) {
+    return __objc_msgSend_206(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_206Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Float)>>('objc_msgSend');
+  late final __objc_msgSend_206 = __objc_msgSend_206Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_initWithDouble_1 = _registerName1("initWithDouble:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_207(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+  ) {
+    return __objc_msgSend_207(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_207Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Double)>>('objc_msgSend');
+  late final __objc_msgSend_207 = __objc_msgSend_207Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double)>();
+
+  late final _sel_initWithBool_1 = _registerName1("initWithBool:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_208(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool value,
+  ) {
+    return __objc_msgSend_208(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_208Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_208 = __objc_msgSend_208Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_initWithInteger_1 = _registerName1("initWithInteger:");
+  late final _sel_initWithUnsignedInteger_1 =
+      _registerName1("initWithUnsignedInteger:");
+  late final _sel_charValue1 = _registerName1("charValue");
+  int _objc_msgSend_209(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_209(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_209Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Char Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_209 = __objc_msgSend_209Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedCharValue1 = _registerName1("unsignedCharValue");
+  int _objc_msgSend_210(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_210(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_210Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.UnsignedChar Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_210 = __objc_msgSend_210Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_shortValue1 = _registerName1("shortValue");
+  int _objc_msgSend_211(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_211(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_211Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Short Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_211 = __objc_msgSend_211Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedShortValue1 = _registerName1("unsignedShortValue");
+  int _objc_msgSend_212(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_212(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_212Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.UnsignedShort Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_212 = __objc_msgSend_212Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_intValue1 = _registerName1("intValue");
+  int _objc_msgSend_213(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_213(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_213Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_213 = __objc_msgSend_213Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedIntValue1 = _registerName1("unsignedIntValue");
+  late final _sel_longValue1 = _registerName1("longValue");
+  late final _sel_unsignedLongValue1 = _registerName1("unsignedLongValue");
+  late final _sel_longLongValue1 = _registerName1("longLongValue");
+  int _objc_msgSend_214(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_214(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_214Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.LongLong Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_214 = __objc_msgSend_214Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_unsignedLongLongValue1 =
+      _registerName1("unsignedLongLongValue");
+  late final _sel_floatValue1 = _registerName1("floatValue");
+  double _objc_msgSend_215(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_215(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_215Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Float Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_215 = __objc_msgSend_215Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_doubleValue1 = _registerName1("doubleValue");
+  late final _sel_boolValue1 = _registerName1("boolValue");
+  late final _sel_integerValue1 = _registerName1("integerValue");
+  late final _sel_unsignedIntegerValue1 =
+      _registerName1("unsignedIntegerValue");
+  late final _sel_stringValue1 = _registerName1("stringValue");
+  int _objc_msgSend_216(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherNumber,
+  ) {
+    return __objc_msgSend_216(
+      obj,
+      sel,
+      otherNumber,
+    );
+  }
+
+  late final __objc_msgSend_216Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_216 = __objc_msgSend_216Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isEqualToNumber_1 = _registerName1("isEqualToNumber:");
+  bool _objc_msgSend_217(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> number,
+  ) {
+    return __objc_msgSend_217(
+      obj,
+      sel,
+      number,
+    );
+  }
+
+  late final __objc_msgSend_217Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_217 = __objc_msgSend_217Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_numberWithChar_1 = _registerName1("numberWithChar:");
+  late final _sel_numberWithUnsignedChar_1 =
+      _registerName1("numberWithUnsignedChar:");
+  late final _sel_numberWithShort_1 = _registerName1("numberWithShort:");
+  late final _sel_numberWithUnsignedShort_1 =
+      _registerName1("numberWithUnsignedShort:");
+  late final _sel_numberWithInt_1 = _registerName1("numberWithInt:");
+  late final _sel_numberWithUnsignedInt_1 =
+      _registerName1("numberWithUnsignedInt:");
+  late final _sel_numberWithLong_1 = _registerName1("numberWithLong:");
+  late final _sel_numberWithUnsignedLong_1 =
+      _registerName1("numberWithUnsignedLong:");
+  late final _sel_numberWithLongLong_1 = _registerName1("numberWithLongLong:");
+  late final _sel_numberWithUnsignedLongLong_1 =
+      _registerName1("numberWithUnsignedLongLong:");
+  late final _sel_numberWithFloat_1 = _registerName1("numberWithFloat:");
+  late final _sel_numberWithDouble_1 = _registerName1("numberWithDouble:");
+  late final _sel_numberWithBool_1 = _registerName1("numberWithBool:");
+  late final _sel_numberWithInteger_1 = _registerName1("numberWithInteger:");
+  late final _sel_numberWithUnsignedInteger_1 =
+      _registerName1("numberWithUnsignedInteger:");
+  late final _sel_port1 = _registerName1("port");
+  late final _sel_user1 = _registerName1("user");
+  late final _sel_password1 = _registerName1("password");
+  late final _sel_path1 = _registerName1("path");
+  late final _sel_fragment1 = _registerName1("fragment");
+  late final _sel_parameterString1 = _registerName1("parameterString");
+  late final _sel_query1 = _registerName1("query");
+  late final _sel_relativePath1 = _registerName1("relativePath");
+  late final _sel_hasDirectoryPath1 = _registerName1("hasDirectoryPath");
+  late final _sel_getFileSystemRepresentation_maxLength_1 =
+      _registerName1("getFileSystemRepresentation:maxLength:");
+  bool _objc_msgSend_218(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> buffer,
+    int maxBufferLength,
+  ) {
+    return __objc_msgSend_218(
+      obj,
+      sel,
+      buffer,
+      maxBufferLength,
+    );
+  }
+
+  late final __objc_msgSend_218Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_218 = __objc_msgSend_218Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int)>();
+
+  late final _sel_fileSystemRepresentation1 =
+      _registerName1("fileSystemRepresentation");
+  late final _sel_isFileURL1 = _registerName1("isFileURL");
+  late final _sel_standardizedURL1 = _registerName1("standardizedURL");
+  late final _sel_checkResourceIsReachableAndReturnError_1 =
+      _registerName1("checkResourceIsReachableAndReturnError:");
+  bool _objc_msgSend_219(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_219(
+      obj,
+      sel,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_219Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_219 = __objc_msgSend_219Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_isFileReferenceURL1 = _registerName1("isFileReferenceURL");
+  late final _sel_fileReferenceURL1 = _registerName1("fileReferenceURL");
+  late final _sel_filePathURL1 = _registerName1("filePathURL");
+  late final _sel_getResourceValue_forKey_error_1 =
+      _registerName1("getResourceValue:forKey:error:");
+  bool _objc_msgSend_220(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> value,
+    NSURLResourceKey key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_220(
+      obj,
+      sel,
+      value,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_220Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              NSURLResourceKey,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_220 = __objc_msgSend_220Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          NSURLResourceKey,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_getPromisedItemResourceValue_forKey_error_1 =
+      _registerName1("getPromisedItemResourceValue:forKey:error:");
+  late final _sel_promisedItemResourceValuesForKeys_error_1 =
+      _registerName1("promisedItemResourceValuesForKeys:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_221(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keys,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_221(
+      obj,
+      sel,
+      keys,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_221Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_221 = __objc_msgSend_221Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_checkPromisedItemIsReachableAndReturnError_1 =
+      _registerName1("checkPromisedItemIsReachableAndReturnError:");
+  late final _sel_fileURLWithPathComponents_1 =
+      _registerName1("fileURLWithPathComponents:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_222(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> components,
+  ) {
+    return __objc_msgSend_222(
+      obj,
+      sel,
+      components,
+    );
+  }
+
+  late final __objc_msgSend_222Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_222 = __objc_msgSend_222Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_pathComponents1 = _registerName1("pathComponents");
+  late final _sel_lastPathComponent1 = _registerName1("lastPathComponent");
+  late final _sel_pathExtension1 = _registerName1("pathExtension");
+  late final _sel_URLByAppendingPathComponent_1 =
+      _registerName1("URLByAppendingPathComponent:");
+  late final _sel_URLByAppendingPathComponent_isDirectory_1 =
+      _registerName1("URLByAppendingPathComponent:isDirectory:");
+  late final _sel_URLByDeletingLastPathComponent1 =
+      _registerName1("URLByDeletingLastPathComponent");
+  late final _sel_URLByAppendingPathExtension_1 =
+      _registerName1("URLByAppendingPathExtension:");
+  late final _sel_URLByDeletingPathExtension1 =
+      _registerName1("URLByDeletingPathExtension");
+  late final _sel_URLByStandardizingPath1 =
+      _registerName1("URLByStandardizingPath");
+  late final _sel_URLByResolvingSymlinksInPath1 =
+      _registerName1("URLByResolvingSymlinksInPath");
+  late final _sel_resourceDataUsingCache_1 =
+      _registerName1("resourceDataUsingCache:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_223(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool shouldUseCache,
+  ) {
+    return __objc_msgSend_223(
+      obj,
+      sel,
+      shouldUseCache,
+    );
+  }
+
+  late final __objc_msgSend_223Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_223 = __objc_msgSend_223Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_loadResourceDataNotifyingClient_usingCache_1 =
+      _registerName1("loadResourceDataNotifyingClient:usingCache:");
+  void _objc_msgSend_224(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> client,
+    bool shouldUseCache,
+  ) {
+    return __objc_msgSend_224(
+      obj,
+      sel,
+      client,
+      shouldUseCache,
+    );
+  }
+
+  late final __objc_msgSend_224Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_224 = __objc_msgSend_224Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_propertyForKey_1 = _registerName1("propertyForKey:");
+  late final _sel_setResourceData_1 = _registerName1("setResourceData:");
+  late final _sel_setProperty_forKey_1 = _registerName1("setProperty:forKey:");
+  bool _objc_msgSend_225(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> property,
+    ffi.Pointer<ObjCObject> propertyKey,
+  ) {
+    return __objc_msgSend_225(
+      obj,
+      sel,
+      property,
+      propertyKey,
+    );
+  }
+
+  late final __objc_msgSend_225Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_225 = __objc_msgSend_225Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _class_NSURLHandle1 = _getClass1("NSURLHandle");
+  late final _sel_registerURLHandleClass_1 =
+      _registerName1("registerURLHandleClass:");
+  late final _sel_URLHandleClassForURL_1 =
+      _registerName1("URLHandleClassForURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_226(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+  ) {
+    return __objc_msgSend_226(
+      obj,
+      sel,
+      anURL,
+    );
+  }
+
+  late final __objc_msgSend_226Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_226 = __objc_msgSend_226Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_status1 = _registerName1("status");
+  int _objc_msgSend_227(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_227(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_227Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_227 = __objc_msgSend_227Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_failureReason1 = _registerName1("failureReason");
+  late final _sel_addClient_1 = _registerName1("addClient:");
+  late final _sel_removeClient_1 = _registerName1("removeClient:");
+  late final _sel_loadInBackground1 = _registerName1("loadInBackground");
+  late final _sel_cancelLoadInBackground1 =
+      _registerName1("cancelLoadInBackground");
+  late final _sel_resourceData1 = _registerName1("resourceData");
+  late final _sel_availableResourceData1 =
+      _registerName1("availableResourceData");
+  late final _sel_expectedResourceDataSize1 =
+      _registerName1("expectedResourceDataSize");
+  late final _sel_flushCachedData1 = _registerName1("flushCachedData");
+  late final _sel_backgroundLoadDidFailWithReason_1 =
+      _registerName1("backgroundLoadDidFailWithReason:");
+  late final _sel_didLoadBytes_loadComplete_1 =
+      _registerName1("didLoadBytes:loadComplete:");
+  void _objc_msgSend_228(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> newBytes,
+    bool yorn,
+  ) {
+    return __objc_msgSend_228(
+      obj,
+      sel,
+      newBytes,
+      yorn,
+    );
+  }
+
+  late final __objc_msgSend_228Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_228 = __objc_msgSend_228Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_canInitWithURL_1 = _registerName1("canInitWithURL:");
+  bool _objc_msgSend_229(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+  ) {
+    return __objc_msgSend_229(
+      obj,
+      sel,
+      anURL,
+    );
+  }
+
+  late final __objc_msgSend_229Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_229 = __objc_msgSend_229Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_cachedHandleForURL_1 = _registerName1("cachedHandleForURL:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_230(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+  ) {
+    return __objc_msgSend_230(
+      obj,
+      sel,
+      anURL,
+    );
+  }
+
+  late final __objc_msgSend_230Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_230 = __objc_msgSend_230Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_initWithURL_cached_1 = _registerName1("initWithURL:cached:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_231(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anURL,
+    bool willCache,
+  ) {
+    return __objc_msgSend_231(
+      obj,
+      sel,
+      anURL,
+      willCache,
+    );
+  }
+
+  late final __objc_msgSend_231Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_231 = __objc_msgSend_231Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_propertyForKeyIfAvailable_1 =
+      _registerName1("propertyForKeyIfAvailable:");
+  late final _sel_writeProperty_forKey_1 =
+      _registerName1("writeProperty:forKey:");
+  late final _sel_writeData_1 = _registerName1("writeData:");
+  late final _sel_loadInForeground1 = _registerName1("loadInForeground");
+  late final _sel_beginLoadInBackground1 =
+      _registerName1("beginLoadInBackground");
+  late final _sel_endLoadInBackground1 = _registerName1("endLoadInBackground");
+  late final _sel_URLHandleUsingCache_1 =
+      _registerName1("URLHandleUsingCache:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_232(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool shouldUseCache,
+  ) {
+    return __objc_msgSend_232(
+      obj,
+      sel,
+      shouldUseCache,
+    );
+  }
+
+  late final __objc_msgSend_232Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_232 = __objc_msgSend_232Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool)>();
+
+  late final _sel_writeToFile_options_error_1 =
+      _registerName1("writeToFile:options:error:");
+  bool _objc_msgSend_233(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    int writeOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_233(
+      obj,
+      sel,
+      path,
+      writeOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_233Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_233 = __objc_msgSend_233Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_writeToURL_options_error_1 =
+      _registerName1("writeToURL:options:error:");
+  bool _objc_msgSend_234(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int writeOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_234(
+      obj,
+      sel,
+      url,
+      writeOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_234Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_234 = __objc_msgSend_234Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_rangeOfData_options_range_1 =
+      _registerName1("rangeOfData:options:range:");
+  NSRange _objc_msgSend_235(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> dataToFind,
+    int mask,
+    NSRange searchRange,
+  ) {
+    return __objc_msgSend_235(
+      obj,
+      sel,
+      dataToFind,
+      mask,
+      searchRange,
+    );
+  }
+
+  late final __objc_msgSend_235Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_235 = __objc_msgSend_235Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_enumerateByteRangesUsingBlock_1 =
+      _registerName1("enumerateByteRangesUsingBlock:");
+  void _objc_msgSend_236(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_236(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_236Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_236 = __objc_msgSend_236Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_dataWithBytes_length_1 =
+      _registerName1("dataWithBytes:length:");
+  instancetype _objc_msgSend_237(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int length,
+  ) {
+    return __objc_msgSend_237(
+      obj,
+      sel,
+      bytes,
+      length,
+    );
+  }
+
+  late final __objc_msgSend_237Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_237 = __objc_msgSend_237Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_dataWithBytesNoCopy_length_1 =
+      _registerName1("dataWithBytesNoCopy:length:");
+  late final _sel_dataWithBytesNoCopy_length_freeWhenDone_1 =
+      _registerName1("dataWithBytesNoCopy:length:freeWhenDone:");
+  instancetype _objc_msgSend_238(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int length,
+    bool b,
+  ) {
+    return __objc_msgSend_238(
+      obj,
+      sel,
+      bytes,
+      length,
+      b,
+    );
+  }
+
+  late final __objc_msgSend_238Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSUInteger, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_238 = __objc_msgSend_238Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, bool)>();
+
+  late final _sel_dataWithContentsOfFile_options_error_1 =
+      _registerName1("dataWithContentsOfFile:options:error:");
+  instancetype _objc_msgSend_239(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    int readOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_239(
+      obj,
+      sel,
+      path,
+      readOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_239Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_239 = __objc_msgSend_239Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dataWithContentsOfURL_options_error_1 =
+      _registerName1("dataWithContentsOfURL:options:error:");
+  instancetype _objc_msgSend_240(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int readOptionsMask,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> errorPtr,
+  ) {
+    return __objc_msgSend_240(
+      obj,
+      sel,
+      url,
+      readOptionsMask,
+      errorPtr,
+    );
+  }
+
+  late final __objc_msgSend_240Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_240 = __objc_msgSend_240Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_dataWithContentsOfFile_1 =
+      _registerName1("dataWithContentsOfFile:");
+  late final _sel_dataWithContentsOfURL_1 =
+      _registerName1("dataWithContentsOfURL:");
+  late final _sel_initWithBytes_length_1 =
+      _registerName1("initWithBytes:length:");
+  late final _sel_initWithBytesNoCopy_length_1 =
+      _registerName1("initWithBytesNoCopy:length:");
+  late final _sel_initWithBytesNoCopy_length_freeWhenDone_1 =
+      _registerName1("initWithBytesNoCopy:length:freeWhenDone:");
+  late final _sel_initWithBytesNoCopy_length_deallocator_1 =
+      _registerName1("initWithBytesNoCopy:length:deallocator:");
+  instancetype _objc_msgSend_241(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int length,
+    ffi.Pointer<_ObjCBlock> deallocator,
+  ) {
+    return __objc_msgSend_241(
+      obj,
+      sel,
+      bytes,
+      length,
+      deallocator,
+    );
+  }
+
+  late final __objc_msgSend_241Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_241 = __objc_msgSend_241Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_initWithContentsOfFile_options_error_1 =
+      _registerName1("initWithContentsOfFile:options:error:");
+  late final _sel_initWithContentsOfURL_options_error_1 =
+      _registerName1("initWithContentsOfURL:options:error:");
+  late final _sel_initWithData_1 = _registerName1("initWithData:");
+  instancetype _objc_msgSend_242(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_242(
+      obj,
+      sel,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_242Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_242 = __objc_msgSend_242Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_dataWithData_1 = _registerName1("dataWithData:");
+  late final _sel_initWithBase64EncodedString_options_1 =
+      _registerName1("initWithBase64EncodedString:options:");
+  instancetype _objc_msgSend_243(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> base64String,
+    int options,
+  ) {
+    return __objc_msgSend_243(
+      obj,
+      sel,
+      base64String,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_243Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_243 = __objc_msgSend_243Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_base64EncodedStringWithOptions_1 =
+      _registerName1("base64EncodedStringWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_244(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_244(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_244Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_244 = __objc_msgSend_244Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_initWithBase64EncodedData_options_1 =
+      _registerName1("initWithBase64EncodedData:options:");
+  instancetype _objc_msgSend_245(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> base64Data,
+    int options,
+  ) {
+    return __objc_msgSend_245(
+      obj,
+      sel,
+      base64Data,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_245Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_245 = __objc_msgSend_245Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_base64EncodedDataWithOptions_1 =
+      _registerName1("base64EncodedDataWithOptions:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_246(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+  ) {
+    return __objc_msgSend_246(
+      obj,
+      sel,
+      options,
+    );
+  }
+
+  late final __objc_msgSend_246Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_246 = __objc_msgSend_246Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_decompressedDataUsingAlgorithm_error_1 =
+      _registerName1("decompressedDataUsingAlgorithm:error:");
+  instancetype _objc_msgSend_247(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int algorithm,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_247(
+      obj,
+      sel,
+      algorithm,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_247Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_247 = __objc_msgSend_247Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_compressedDataUsingAlgorithm_error_1 =
+      _registerName1("compressedDataUsingAlgorithm:error:");
+  late final _sel_getBytes_1 = _registerName1("getBytes:");
+  late final _sel_dataWithContentsOfMappedFile_1 =
+      _registerName1("dataWithContentsOfMappedFile:");
+  late final _sel_initWithContentsOfMappedFile_1 =
+      _registerName1("initWithContentsOfMappedFile:");
+  late final _sel_initWithBase64Encoding_1 =
+      _registerName1("initWithBase64Encoding:");
+  late final _sel_base64Encoding1 = _registerName1("base64Encoding");
+  late final _sel_encodeDataObject_1 = _registerName1("encodeDataObject:");
+  void _objc_msgSend_248(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+  ) {
+    return __objc_msgSend_248(
+      obj,
+      sel,
+      data,
+    );
+  }
+
+  late final __objc_msgSend_248Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_248 = __objc_msgSend_248Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDataObject1 = _registerName1("decodeDataObject");
+  late final _sel_decodeValueOfObjCType_at_size_1 =
+      _registerName1("decodeValueOfObjCType:at:size:");
+  void _objc_msgSend_249(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> type,
+    ffi.Pointer<ffi.Void> data,
+    int size,
+  ) {
+    return __objc_msgSend_249(
+      obj,
+      sel,
+      type,
+      data,
+      size,
+    );
+  }
+
+  late final __objc_msgSend_249Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_249 = __objc_msgSend_249Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_versionForClassName_1 =
+      _registerName1("versionForClassName:");
+  int _objc_msgSend_250(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> className,
+  ) {
+    return __objc_msgSend_250(
+      obj,
+      sel,
+      className,
+    );
+  }
+
+  late final __objc_msgSend_250Ptr = _lookup<
+      ffi.NativeFunction<
+          NSInteger Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_250 = __objc_msgSend_250Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeObject_1 = _registerName1("encodeObject:");
+  late final _sel_encodeRootObject_1 = _registerName1("encodeRootObject:");
+  late final _sel_encodeBycopyObject_1 = _registerName1("encodeBycopyObject:");
+  late final _sel_encodeByrefObject_1 = _registerName1("encodeByrefObject:");
+  late final _sel_encodeConditionalObject_1 =
+      _registerName1("encodeConditionalObject:");
+  late final _sel_encodeValuesOfObjCTypes_1 =
+      _registerName1("encodeValuesOfObjCTypes:");
+  void _objc_msgSend_251(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> types,
+  ) {
+    return __objc_msgSend_251(
+      obj,
+      sel,
+      types,
+    );
+  }
+
+  late final __objc_msgSend_251Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_251 = __objc_msgSend_251Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_encodeArrayOfObjCType_count_at_1 =
+      _registerName1("encodeArrayOfObjCType:count:at:");
+  void _objc_msgSend_252(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> type,
+    int count,
+    ffi.Pointer<ffi.Void> array,
+  ) {
+    return __objc_msgSend_252(
+      obj,
+      sel,
+      type,
+      count,
+      array,
+    );
+  }
+
+  late final __objc_msgSend_252Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              ffi.Pointer<ffi.Void>)>>('objc_msgSend');
+  late final __objc_msgSend_252 = __objc_msgSend_252Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int, ffi.Pointer<ffi.Void>)>();
+
+  late final _sel_encodeBytes_length_1 = _registerName1("encodeBytes:length:");
+  late final _sel_decodeObject1 = _registerName1("decodeObject");
+  late final _sel_decodeTopLevelObjectAndReturnError_1 =
+      _registerName1("decodeTopLevelObjectAndReturnError:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_253(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_253(
+      obj,
+      sel,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_253Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_253 = __objc_msgSend_253Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeValuesOfObjCTypes_1 =
+      _registerName1("decodeValuesOfObjCTypes:");
+  late final _sel_decodeArrayOfObjCType_count_at_1 =
+      _registerName1("decodeArrayOfObjCType:count:at:");
+  late final _sel_decodeBytesWithReturnedLength_1 =
+      _registerName1("decodeBytesWithReturnedLength:");
+  ffi.Pointer<ffi.Void> _objc_msgSend_254(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> lengthp,
+  ) {
+    return __objc_msgSend_254(
+      obj,
+      sel,
+      lengthp,
+    );
+  }
+
+  late final __objc_msgSend_254Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Void> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<NSUInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_254 = __objc_msgSend_254Ptr.asFunction<
+      ffi.Pointer<ffi.Void> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<NSUInteger>)>();
+
+  late final _sel_encodePropertyList_1 = _registerName1("encodePropertyList:");
+  late final _sel_decodePropertyList1 = _registerName1("decodePropertyList");
+  late final _sel_setObjectZone_1 = _registerName1("setObjectZone:");
+  void _objc_msgSend_255(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSZone> zone,
+  ) {
+    return __objc_msgSend_255(
+      obj,
+      sel,
+      zone,
+    );
+  }
+
+  late final __objc_msgSend_255Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSZone>)>>('objc_msgSend');
+  late final __objc_msgSend_255 = __objc_msgSend_255Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSZone>)>();
+
+  late final _sel_objectZone1 = _registerName1("objectZone");
+  ffi.Pointer<NSZone> _objc_msgSend_256(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_256(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_256Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<NSZone> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_256 = __objc_msgSend_256Ptr.asFunction<
+      ffi.Pointer<NSZone> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_systemVersion1 = _registerName1("systemVersion");
+  late final _sel_allowsKeyedCoding1 = _registerName1("allowsKeyedCoding");
+  late final _sel_encodeObject_forKey_1 =
+      _registerName1("encodeObject:forKey:");
+  late final _sel_encodeConditionalObject_forKey_1 =
+      _registerName1("encodeConditionalObject:forKey:");
+  late final _sel_encodeBool_forKey_1 = _registerName1("encodeBool:forKey:");
+  void _objc_msgSend_257(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    bool value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_257(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_257Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Bool, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_257 = __objc_msgSend_257Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, bool,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeInt_forKey_1 = _registerName1("encodeInt:forKey:");
+  void _objc_msgSend_258(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_258(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_258Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_258 = __objc_msgSend_258Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeInt32_forKey_1 = _registerName1("encodeInt32:forKey:");
+  void _objc_msgSend_259(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_259(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_259Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_259 = __objc_msgSend_259Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeInt64_forKey_1 = _registerName1("encodeInt64:forKey:");
+  void _objc_msgSend_260(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_260(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_260Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int64, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_260 = __objc_msgSend_260Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeFloat_forKey_1 = _registerName1("encodeFloat:forKey:");
+  void _objc_msgSend_261(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_261(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_261Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Float, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_261 = __objc_msgSend_261Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeDouble_forKey_1 =
+      _registerName1("encodeDouble:forKey:");
+  void _objc_msgSend_262(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    double value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_262(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_262Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Double, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_262 = __objc_msgSend_262Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, double,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeBytes_length_forKey_1 =
+      _registerName1("encodeBytes:length:forKey:");
+  void _objc_msgSend_263(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Uint8> bytes,
+    int length,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_263(
+      obj,
+      sel,
+      bytes,
+      length,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_263Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Uint8>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_263 = __objc_msgSend_263Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Uint8>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_containsValueForKey_1 =
+      _registerName1("containsValueForKey:");
+  late final _sel_decodeObjectForKey_1 = _registerName1("decodeObjectForKey:");
+  late final _sel_decodeTopLevelObjectForKey_error_1 =
+      _registerName1("decodeTopLevelObjectForKey:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_264(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_264(
+      obj,
+      sel,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_264Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_264 = __objc_msgSend_264Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeBoolForKey_1 = _registerName1("decodeBoolForKey:");
+  late final _sel_decodeIntForKey_1 = _registerName1("decodeIntForKey:");
+  int _objc_msgSend_265(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_265(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_265Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_265 = __objc_msgSend_265Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeInt32ForKey_1 = _registerName1("decodeInt32ForKey:");
+  int _objc_msgSend_266(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_266(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_266Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_266 = __objc_msgSend_266Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeInt64ForKey_1 = _registerName1("decodeInt64ForKey:");
+  int _objc_msgSend_267(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_267(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_267Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int64 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_267 = __objc_msgSend_267Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeFloatForKey_1 = _registerName1("decodeFloatForKey:");
+  double _objc_msgSend_268(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_268(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_268Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Float Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_268 = __objc_msgSend_268Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDoubleForKey_1 = _registerName1("decodeDoubleForKey:");
+  double _objc_msgSend_269(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_269(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_269Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_269 = __objc_msgSend_269Ptr.asFunction<
+      double Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeBytesForKey_returnedLength_1 =
+      _registerName1("decodeBytesForKey:returnedLength:");
+  ffi.Pointer<ffi.Uint8> _objc_msgSend_270(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<NSUInteger> lengthp,
+  ) {
+    return __objc_msgSend_270(
+      obj,
+      sel,
+      key,
+      lengthp,
+    );
+  }
+
+  late final __objc_msgSend_270Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ffi.Uint8> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSUInteger>)>>('objc_msgSend');
+  late final __objc_msgSend_270 = __objc_msgSend_270Ptr.asFunction<
+      ffi.Pointer<ffi.Uint8> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSUInteger>)>();
+
+  late final _sel_encodeInteger_forKey_1 =
+      _registerName1("encodeInteger:forKey:");
+  void _objc_msgSend_271(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int value,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_271(
+      obj,
+      sel,
+      value,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_271Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_271 = __objc_msgSend_271Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeIntegerForKey_1 =
+      _registerName1("decodeIntegerForKey:");
+  late final _sel_requiresSecureCoding1 =
+      _registerName1("requiresSecureCoding");
+  late final _sel_decodeObjectOfClass_forKey_1 =
+      _registerName1("decodeObjectOfClass:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_272(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_272(
+      obj,
+      sel,
+      aClass,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_272Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_272 = __objc_msgSend_272Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeTopLevelObjectOfClass_forKey_error_1 =
+      _registerName1("decodeTopLevelObjectOfClass:forKey:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_273(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> aClass,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_273(
+      obj,
+      sel,
+      aClass,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_273Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_273 = __objc_msgSend_273Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeArrayOfObjectsOfClass_forKey_1 =
+      _registerName1("decodeArrayOfObjectsOfClass:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_274(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> cls,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_274(
+      obj,
+      sel,
+      cls,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_274Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_274 = __objc_msgSend_274Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDictionaryWithKeysOfClass_objectsOfClass_forKey_1 =
+      _registerName1("decodeDictionaryWithKeysOfClass:objectsOfClass:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_275(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyCls,
+    ffi.Pointer<ObjCObject> objectCls,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_275(
+      obj,
+      sel,
+      keyCls,
+      objectCls,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_275Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_275 = __objc_msgSend_275Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeObjectOfClasses_forKey_1 =
+      _registerName1("decodeObjectOfClasses:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_276(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> classes,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_276(
+      obj,
+      sel,
+      classes,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_276Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_276 = __objc_msgSend_276Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeTopLevelObjectOfClasses_forKey_error_1 =
+      _registerName1("decodeTopLevelObjectOfClasses:forKey:error:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_277(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> classes,
+    ffi.Pointer<ObjCObject> key,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_277(
+      obj,
+      sel,
+      classes,
+      key,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_277Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_277 = __objc_msgSend_277Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_decodeArrayOfObjectsOfClasses_forKey_1 =
+      _registerName1("decodeArrayOfObjectsOfClasses:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_278(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> classes,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_278(
+      obj,
+      sel,
+      classes,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_278Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_278 = __objc_msgSend_278Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeDictionaryWithKeysOfClasses_objectsOfClasses_forKey_1 =
+      _registerName1(
+          "decodeDictionaryWithKeysOfClasses:objectsOfClasses:forKey:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_279(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> keyClasses,
+    ffi.Pointer<ObjCObject> objectClasses,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_279(
+      obj,
+      sel,
+      keyClasses,
+      objectClasses,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_279Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_279 = __objc_msgSend_279Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodePropertyListForKey_1 =
+      _registerName1("decodePropertyListForKey:");
+  late final _sel_allowedClasses1 = _registerName1("allowedClasses");
+  ffi.Pointer<ObjCObject> _objc_msgSend_280(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_280(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_280Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_280 = __objc_msgSend_280Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_failWithError_1 = _registerName1("failWithError:");
+  void _objc_msgSend_281(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> error,
+  ) {
+    return __objc_msgSend_281(
+      obj,
+      sel,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_281Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_281 = __objc_msgSend_281Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodingFailurePolicy1 =
+      _registerName1("decodingFailurePolicy");
+  int _objc_msgSend_282(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_282(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_282Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_282 = __objc_msgSend_282Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_error1 = _registerName1("error");
+  ffi.Pointer<ObjCObject> _objc_msgSend_283(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_283(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_283Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_283 = __objc_msgSend_283Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_encodeNXObject_1 = _registerName1("encodeNXObject:");
+  late final _sel_decodeNXObject1 = _registerName1("decodeNXObject");
+  late final _sel_decodeValueOfObjCType_at_1 =
+      _registerName1("decodeValueOfObjCType:at:");
+  late final _sel_encodePoint_1 = _registerName1("encodePoint:");
+  void _objc_msgSend_284(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSPoint point,
+  ) {
+    return __objc_msgSend_284(
+      obj,
+      sel,
+      point,
+    );
+  }
+
+  late final __objc_msgSend_284Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSPoint)>>('objc_msgSend');
+  late final __objc_msgSend_284 = __objc_msgSend_284Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSPoint)>();
+
+  late final _sel_decodePoint1 = _registerName1("decodePoint");
+  late final _sel_encodeSize_1 = _registerName1("encodeSize:");
+  void _objc_msgSend_285(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSSize size,
+  ) {
+    return __objc_msgSend_285(
+      obj,
+      sel,
+      size,
+    );
+  }
+
+  late final __objc_msgSend_285Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSSize)>>('objc_msgSend');
+  late final __objc_msgSend_285 = __objc_msgSend_285Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSSize)>();
+
+  late final _sel_decodeSize1 = _registerName1("decodeSize");
+  late final _sel_encodeRect_1 = _registerName1("encodeRect:");
+  void _objc_msgSend_286(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRect rect,
+  ) {
+    return __objc_msgSend_286(
+      obj,
+      sel,
+      rect,
+    );
+  }
+
+  late final __objc_msgSend_286Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRect)>>('objc_msgSend');
+  late final __objc_msgSend_286 = __objc_msgSend_286Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRect)>();
+
+  late final _sel_decodeRect1 = _registerName1("decodeRect");
+  late final _sel_encodePoint_forKey_1 = _registerName1("encodePoint:forKey:");
+  void _objc_msgSend_287(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSPoint point,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_287(
+      obj,
+      sel,
+      point,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_287Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSPoint, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_287 = __objc_msgSend_287Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSPoint,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeSize_forKey_1 = _registerName1("encodeSize:forKey:");
+  void _objc_msgSend_288(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSSize size,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_288(
+      obj,
+      sel,
+      size,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_288Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSSize, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_288 = __objc_msgSend_288Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSSize,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_encodeRect_forKey_1 = _registerName1("encodeRect:forKey:");
+  void _objc_msgSend_289(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRect rect,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_289(
+      obj,
+      sel,
+      rect,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_289Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRect, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_289 = __objc_msgSend_289Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRect,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodePointForKey_1 = _registerName1("decodePointForKey:");
+  NSPoint _objc_msgSend_290(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_290(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_290Ptr = _lookup<
+      ffi.NativeFunction<
+          NSPoint Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_290 = __objc_msgSend_290Ptr.asFunction<
+      NSPoint Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeSizeForKey_1 = _registerName1("decodeSizeForKey:");
+  NSSize _objc_msgSend_291(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_291(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_291Ptr = _lookup<
+      ffi.NativeFunction<
+          NSSize Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_291 = __objc_msgSend_291Ptr.asFunction<
+      NSSize Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_decodeRectForKey_1 = _registerName1("decodeRectForKey:");
+  NSRect _objc_msgSend_292(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> key,
+  ) {
+    return __objc_msgSend_292(
+      obj,
+      sel,
+      key,
+    );
+  }
+
+  late final __objc_msgSend_292Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRect Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_292 = __objc_msgSend_292Ptr.asFunction<
+      NSRect Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_substringFromIndex_1 = _registerName1("substringFromIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_293(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int from,
+  ) {
+    return __objc_msgSend_293(
+      obj,
+      sel,
+      from,
+    );
+  }
+
+  late final __objc_msgSend_293Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_293 = __objc_msgSend_293Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_substringToIndex_1 = _registerName1("substringToIndex:");
+  late final _sel_substringWithRange_1 = _registerName1("substringWithRange:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_294(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_294(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_294Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_294 = __objc_msgSend_294Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_getCharacters_range_1 =
+      _registerName1("getCharacters:range:");
+  void _objc_msgSend_295(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> buffer,
+    NSRange range,
+  ) {
+    return __objc_msgSend_295(
+      obj,
+      sel,
+      buffer,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_295Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_295 = __objc_msgSend_295Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, NSRange)>();
+
+  int _objc_msgSend_296(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+  ) {
+    return __objc_msgSend_296(
+      obj,
+      sel,
+      string,
+    );
+  }
+
+  late final __objc_msgSend_296Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_296 = __objc_msgSend_296Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_compare_options_1 = _registerName1("compare:options:");
+  int _objc_msgSend_297(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int mask,
+  ) {
+    return __objc_msgSend_297(
+      obj,
+      sel,
+      string,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_297Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_297 = __objc_msgSend_297Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_compare_options_range_1 =
+      _registerName1("compare:options:range:");
+  int _objc_msgSend_298(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int mask,
+    NSRange rangeOfReceiverToCompare,
+  ) {
+    return __objc_msgSend_298(
+      obj,
+      sel,
+      string,
+      mask,
+      rangeOfReceiverToCompare,
+    );
+  }
+
+  late final __objc_msgSend_298Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_298 = __objc_msgSend_298Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_compare_options_range_locale_1 =
+      _registerName1("compare:options:range:locale:");
+  int _objc_msgSend_299(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> string,
+    int mask,
+    NSRange rangeOfReceiverToCompare,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_299(
+      obj,
+      sel,
+      string,
+      mask,
+      rangeOfReceiverToCompare,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_299Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Int32 Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_299 = __objc_msgSend_299Ptr.asFunction<
+      int Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_caseInsensitiveCompare_1 =
+      _registerName1("caseInsensitiveCompare:");
+  late final _sel_localizedCompare_1 = _registerName1("localizedCompare:");
+  late final _sel_localizedCaseInsensitiveCompare_1 =
+      _registerName1("localizedCaseInsensitiveCompare:");
+  late final _sel_localizedStandardCompare_1 =
+      _registerName1("localizedStandardCompare:");
+  late final _sel_isEqualToString_1 = _registerName1("isEqualToString:");
+  late final _sel_hasPrefix_1 = _registerName1("hasPrefix:");
+  late final _sel_hasSuffix_1 = _registerName1("hasSuffix:");
+  late final _sel_commonPrefixWithString_options_1 =
+      _registerName1("commonPrefixWithString:options:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_300(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> str,
+    int mask,
+  ) {
+    return __objc_msgSend_300(
+      obj,
+      sel,
+      str,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_300Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_300 = __objc_msgSend_300Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_containsString_1 = _registerName1("containsString:");
+  late final _sel_localizedCaseInsensitiveContainsString_1 =
+      _registerName1("localizedCaseInsensitiveContainsString:");
+  late final _sel_localizedStandardContainsString_1 =
+      _registerName1("localizedStandardContainsString:");
+  late final _sel_localizedStandardRangeOfString_1 =
+      _registerName1("localizedStandardRangeOfString:");
+  NSRange _objc_msgSend_301(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> str,
+  ) {
+    return __objc_msgSend_301(
+      obj,
+      sel,
+      str,
+    );
+  }
+
+  late final __objc_msgSend_301Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_301 = __objc_msgSend_301Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rangeOfString_1 = _registerName1("rangeOfString:");
+  late final _sel_rangeOfString_options_1 =
+      _registerName1("rangeOfString:options:");
+  NSRange _objc_msgSend_302(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchString,
+    int mask,
+  ) {
+    return __objc_msgSend_302(
+      obj,
+      sel,
+      searchString,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_302Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_302 = __objc_msgSend_302Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_rangeOfString_options_range_1 =
+      _registerName1("rangeOfString:options:range:");
+  NSRange _objc_msgSend_303(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchString,
+    int mask,
+    NSRange rangeOfReceiverToSearch,
+  ) {
+    return __objc_msgSend_303(
+      obj,
+      sel,
+      searchString,
+      mask,
+      rangeOfReceiverToSearch,
+    );
+  }
+
+  late final __objc_msgSend_303Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_303 = __objc_msgSend_303Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_rangeOfString_options_range_locale_1 =
+      _registerName1("rangeOfString:options:range:locale:");
+  NSRange _objc_msgSend_304(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchString,
+    int mask,
+    NSRange rangeOfReceiverToSearch,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_304(
+      obj,
+      sel,
+      searchString,
+      mask,
+      rangeOfReceiverToSearch,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_304Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_304 = __objc_msgSend_304Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rangeOfCharacterFromSet_1 =
+      _registerName1("rangeOfCharacterFromSet:");
+  NSRange _objc_msgSend_305(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchSet,
+  ) {
+    return __objc_msgSend_305(
+      obj,
+      sel,
+      searchSet,
+    );
+  }
+
+  late final __objc_msgSend_305Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_305 = __objc_msgSend_305Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_rangeOfCharacterFromSet_options_1 =
+      _registerName1("rangeOfCharacterFromSet:options:");
+  NSRange _objc_msgSend_306(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchSet,
+    int mask,
+  ) {
+    return __objc_msgSend_306(
+      obj,
+      sel,
+      searchSet,
+      mask,
+    );
+  }
+
+  late final __objc_msgSend_306Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32)>>('objc_msgSend');
+  late final __objc_msgSend_306 = __objc_msgSend_306Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_rangeOfCharacterFromSet_options_range_1 =
+      _registerName1("rangeOfCharacterFromSet:options:range:");
+  NSRange _objc_msgSend_307(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> searchSet,
+    int mask,
+    NSRange rangeOfReceiverToSearch,
+  ) {
+    return __objc_msgSend_307(
+      obj,
+      sel,
+      searchSet,
+      mask,
+      rangeOfReceiverToSearch,
+    );
+  }
+
+  late final __objc_msgSend_307Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Int32, NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_307 = __objc_msgSend_307Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int, NSRange)>();
+
+  late final _sel_rangeOfComposedCharacterSequenceAtIndex_1 =
+      _registerName1("rangeOfComposedCharacterSequenceAtIndex:");
+  NSRange _objc_msgSend_308(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int index,
+  ) {
+    return __objc_msgSend_308(
+      obj,
+      sel,
+      index,
+    );
+  }
+
+  late final __objc_msgSend_308Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_308 = __objc_msgSend_308Ptr.asFunction<
+      NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_rangeOfComposedCharacterSequencesForRange_1 =
+      _registerName1("rangeOfComposedCharacterSequencesForRange:");
+  NSRange _objc_msgSend_309(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+  ) {
+    return __objc_msgSend_309(
+      obj,
+      sel,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_309Ptr = _lookup<
+      ffi.NativeFunction<
+          NSRange Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_309 = __objc_msgSend_309Ptr.asFunction<
+      NSRange Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange)>();
+
+  late final _sel_stringByAppendingString_1 =
+      _registerName1("stringByAppendingString:");
+  late final _sel_stringByAppendingFormat_1 =
+      _registerName1("stringByAppendingFormat:");
+  late final _sel_uppercaseString1 = _registerName1("uppercaseString");
+  late final _sel_lowercaseString1 = _registerName1("lowercaseString");
+  late final _sel_capitalizedString1 = _registerName1("capitalizedString");
+  late final _sel_localizedUppercaseString1 =
+      _registerName1("localizedUppercaseString");
+  late final _sel_localizedLowercaseString1 =
+      _registerName1("localizedLowercaseString");
+  late final _sel_localizedCapitalizedString1 =
+      _registerName1("localizedCapitalizedString");
+  late final _sel_uppercaseStringWithLocale_1 =
+      _registerName1("uppercaseStringWithLocale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_310(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_310(
+      obj,
+      sel,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_310Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_310 = __objc_msgSend_310Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_lowercaseStringWithLocale_1 =
+      _registerName1("lowercaseStringWithLocale:");
+  late final _sel_capitalizedStringWithLocale_1 =
+      _registerName1("capitalizedStringWithLocale:");
+  late final _sel_getLineStart_end_contentsEnd_forRange_1 =
+      _registerName1("getLineStart:end:contentsEnd:forRange:");
+  void _objc_msgSend_311(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<NSUInteger> startPtr,
+    ffi.Pointer<NSUInteger> lineEndPtr,
+    ffi.Pointer<NSUInteger> contentsEndPtr,
+    NSRange range,
+  ) {
+    return __objc_msgSend_311(
+      obj,
+      sel,
+      startPtr,
+      lineEndPtr,
+      contentsEndPtr,
+      range,
+    );
+  }
+
+  late final __objc_msgSend_311Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<NSUInteger>,
+              ffi.Pointer<NSUInteger>,
+              ffi.Pointer<NSUInteger>,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_311 = __objc_msgSend_311Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<NSUInteger>,
+          ffi.Pointer<NSUInteger>,
+          ffi.Pointer<NSUInteger>,
+          NSRange)>();
+
+  late final _sel_lineRangeForRange_1 = _registerName1("lineRangeForRange:");
+  late final _sel_getParagraphStart_end_contentsEnd_forRange_1 =
+      _registerName1("getParagraphStart:end:contentsEnd:forRange:");
+  late final _sel_paragraphRangeForRange_1 =
+      _registerName1("paragraphRangeForRange:");
+  late final _sel_enumerateSubstringsInRange_options_usingBlock_1 =
+      _registerName1("enumerateSubstringsInRange:options:usingBlock:");
+  void _objc_msgSend_312(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_312(
+      obj,
+      sel,
+      range,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_312Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSRange, ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_312 = __objc_msgSend_312Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, NSRange, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_enumerateLinesUsingBlock_1 =
+      _registerName1("enumerateLinesUsingBlock:");
+  void _objc_msgSend_313(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_313(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_313Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_313 = __objc_msgSend_313Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_UTF8String1 = _registerName1("UTF8String");
+  late final _sel_fastestEncoding1 = _registerName1("fastestEncoding");
+  late final _sel_smallestEncoding1 = _registerName1("smallestEncoding");
+  late final _sel_dataUsingEncoding_allowLossyConversion_1 =
+      _registerName1("dataUsingEncoding:allowLossyConversion:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_314(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int encoding,
+    bool lossy,
+  ) {
+    return __objc_msgSend_314(
+      obj,
+      sel,
+      encoding,
+      lossy,
+    );
+  }
+
+  late final __objc_msgSend_314Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSStringEncoding,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_314 = __objc_msgSend_314Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int, bool)>();
+
+  late final _sel_dataUsingEncoding_1 = _registerName1("dataUsingEncoding:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_315(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int encoding,
+  ) {
+    return __objc_msgSend_315(
+      obj,
+      sel,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_315Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_315 = __objc_msgSend_315Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_canBeConvertedToEncoding_1 =
+      _registerName1("canBeConvertedToEncoding:");
+  late final _sel_cStringUsingEncoding_1 =
+      _registerName1("cStringUsingEncoding:");
+  late final _sel_getCString_maxLength_encoding_1 =
+      _registerName1("getCString:maxLength:encoding:");
+  bool _objc_msgSend_316(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> buffer,
+    int maxBufferCount,
+    int encoding,
+  ) {
+    return __objc_msgSend_316(
+      obj,
+      sel,
+      buffer,
+      maxBufferCount,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_316Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_316 = __objc_msgSend_316Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int, int)>();
+
+  late final _sel_getBytes_maxLength_usedLength_encoding_options_range_remainingRange_1 =
+      _registerName1(
+          "getBytes:maxLength:usedLength:encoding:options:range:remainingRange:");
+  bool _objc_msgSend_317(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> buffer,
+    int maxBufferCount,
+    ffi.Pointer<NSUInteger> usedBufferCount,
+    int encoding,
+    int options,
+    NSRange range,
+    NSRangePointer leftover,
+  ) {
+    return __objc_msgSend_317(
+      obj,
+      sel,
+      buffer,
+      maxBufferCount,
+      usedBufferCount,
+      encoding,
+      options,
+      range,
+      leftover,
+    );
+  }
+
+  late final __objc_msgSend_317Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              ffi.Pointer<NSUInteger>,
+              NSStringEncoding,
+              ffi.Int32,
+              NSRange,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_317 = __objc_msgSend_317Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>,
+          int,
+          ffi.Pointer<NSUInteger>,
+          int,
+          int,
+          NSRange,
+          NSRangePointer)>();
+
+  late final _sel_maximumLengthOfBytesUsingEncoding_1 =
+      _registerName1("maximumLengthOfBytesUsingEncoding:");
+  late final _sel_lengthOfBytesUsingEncoding_1 =
+      _registerName1("lengthOfBytesUsingEncoding:");
+  late final _sel_availableStringEncodings1 =
+      _registerName1("availableStringEncodings");
+  ffi.Pointer<NSStringEncoding> _objc_msgSend_318(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_318(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_318Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<NSStringEncoding> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_318 = __objc_msgSend_318Ptr.asFunction<
+      ffi.Pointer<NSStringEncoding> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_localizedNameOfStringEncoding_1 =
+      _registerName1("localizedNameOfStringEncoding:");
+  late final _sel_defaultCStringEncoding1 =
+      _registerName1("defaultCStringEncoding");
+  late final _sel_decomposedStringWithCanonicalMapping1 =
+      _registerName1("decomposedStringWithCanonicalMapping");
+  late final _sel_precomposedStringWithCanonicalMapping1 =
+      _registerName1("precomposedStringWithCanonicalMapping");
+  late final _sel_decomposedStringWithCompatibilityMapping1 =
+      _registerName1("decomposedStringWithCompatibilityMapping");
+  late final _sel_precomposedStringWithCompatibilityMapping1 =
+      _registerName1("precomposedStringWithCompatibilityMapping");
+  late final _sel_componentsSeparatedByString_1 =
+      _registerName1("componentsSeparatedByString:");
+  late final _sel_componentsSeparatedByCharactersInSet_1 =
+      _registerName1("componentsSeparatedByCharactersInSet:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_319(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> separator,
+  ) {
+    return __objc_msgSend_319(
+      obj,
+      sel,
+      separator,
+    );
+  }
+
+  late final __objc_msgSend_319Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_319 = __objc_msgSend_319Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByTrimmingCharactersInSet_1 =
+      _registerName1("stringByTrimmingCharactersInSet:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_320(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+  ) {
+    return __objc_msgSend_320(
+      obj,
+      sel,
+      set1,
+    );
+  }
+
+  late final __objc_msgSend_320Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_320 = __objc_msgSend_320Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByPaddingToLength_withString_startingAtIndex_1 =
+      _registerName1("stringByPaddingToLength:withString:startingAtIndex:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_321(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int newLength,
+    ffi.Pointer<ObjCObject> padString,
+    int padIndex,
+  ) {
+    return __objc_msgSend_321(
+      obj,
+      sel,
+      newLength,
+      padString,
+      padIndex,
+    );
+  }
+
+  late final __objc_msgSend_321Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSUInteger,
+              ffi.Pointer<ObjCObject>,
+              NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_321 = __objc_msgSend_321Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_stringByFoldingWithOptions_locale_1 =
+      _registerName1("stringByFoldingWithOptions:locale:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_322(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int options,
+    ffi.Pointer<ObjCObject> locale,
+  ) {
+    return __objc_msgSend_322(
+      obj,
+      sel,
+      options,
+      locale,
+    );
+  }
+
+  late final __objc_msgSend_322Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_322 = __objc_msgSend_322Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByReplacingOccurrencesOfString_withString_options_range_1 =
+      _registerName1(
+          "stringByReplacingOccurrencesOfString:withString:options:range:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_323(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> replacement,
+    int options,
+    NSRange searchRange,
+  ) {
+    return __objc_msgSend_323(
+      obj,
+      sel,
+      target,
+      replacement,
+      options,
+      searchRange,
+    );
+  }
+
+  late final __objc_msgSend_323Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Int32,
+              NSRange)>>('objc_msgSend');
+  late final __objc_msgSend_323 = __objc_msgSend_323Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          NSRange)>();
+
+  late final _sel_stringByReplacingOccurrencesOfString_withString_1 =
+      _registerName1("stringByReplacingOccurrencesOfString:withString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_324(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> target,
+    ffi.Pointer<ObjCObject> replacement,
+  ) {
+    return __objc_msgSend_324(
+      obj,
+      sel,
+      target,
+      replacement,
+    );
+  }
+
+  late final __objc_msgSend_324Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_324 = __objc_msgSend_324Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByReplacingCharactersInRange_withString_1 =
+      _registerName1("stringByReplacingCharactersInRange:withString:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_325(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    ffi.Pointer<ObjCObject> replacement,
+  ) {
+    return __objc_msgSend_325(
+      obj,
+      sel,
+      range,
+      replacement,
+    );
+  }
+
+  late final __objc_msgSend_325Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_325 = __objc_msgSend_325Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSRange, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByApplyingTransform_reverse_1 =
+      _registerName1("stringByApplyingTransform:reverse:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_326(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSStringTransform transform,
+    bool reverse,
+  ) {
+    return __objc_msgSend_326(
+      obj,
+      sel,
+      transform,
+      reverse,
+    );
+  }
+
+  late final __objc_msgSend_326Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSStringTransform,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_326 = __objc_msgSend_326Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, NSStringTransform, bool)>();
+
+  late final _sel_writeToURL_atomically_encoding_error_1 =
+      _registerName1("writeToURL:atomically:encoding:error:");
+  bool _objc_msgSend_327(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    bool useAuxiliaryFile,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_327(
+      obj,
+      sel,
+      url,
+      useAuxiliaryFile,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_327Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_327 = __objc_msgSend_327Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_writeToFile_atomically_encoding_error_1 =
+      _registerName1("writeToFile:atomically:encoding:error:");
+  bool _objc_msgSend_328(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    bool useAuxiliaryFile,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_328(
+      obj,
+      sel,
+      path,
+      useAuxiliaryFile,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_328Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Bool,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_328 = __objc_msgSend_328Ptr.asFunction<
+      bool Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          bool,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_hash1 = _registerName1("hash");
+  late final _sel_initWithCharactersNoCopy_length_freeWhenDone_1 =
+      _registerName1("initWithCharactersNoCopy:length:freeWhenDone:");
+  instancetype _objc_msgSend_329(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> characters,
+    int length,
+    bool freeBuffer,
+  ) {
+    return __objc_msgSend_329(
+      obj,
+      sel,
+      characters,
+      length,
+      freeBuffer,
+    );
+  }
+
+  late final __objc_msgSend_329Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>, NSUInteger, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_329 = __objc_msgSend_329Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, int, bool)>();
+
+  late final _sel_initWithCharactersNoCopy_length_deallocator_1 =
+      _registerName1("initWithCharactersNoCopy:length:deallocator:");
+  instancetype _objc_msgSend_330(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> chars,
+    int len,
+    ffi.Pointer<_ObjCBlock> deallocator,
+  ) {
+    return __objc_msgSend_330(
+      obj,
+      sel,
+      chars,
+      len,
+      deallocator,
+    );
+  }
+
+  late final __objc_msgSend_330Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>,
+              NSUInteger,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_330 = __objc_msgSend_330Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_initWithCharacters_length_1 =
+      _registerName1("initWithCharacters:length:");
+  instancetype _objc_msgSend_331(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> characters,
+    int length,
+  ) {
+    return __objc_msgSend_331(
+      obj,
+      sel,
+      characters,
+      length,
+    );
+  }
+
+  late final __objc_msgSend_331Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_331 = __objc_msgSend_331Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>, int)>();
+
+  late final _sel_initWithUTF8String_1 = _registerName1("initWithUTF8String:");
+  instancetype _objc_msgSend_332(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> nullTerminatedCString,
+  ) {
+    return __objc_msgSend_332(
+      obj,
+      sel,
+      nullTerminatedCString,
+    );
+  }
+
+  late final __objc_msgSend_332Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>)>>('objc_msgSend');
+  late final __objc_msgSend_332 = __objc_msgSend_332Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>)>();
+
+  late final _sel_initWithFormat_1 = _registerName1("initWithFormat:");
+  late final _sel_initWithFormat_arguments_1 =
+      _registerName1("initWithFormat:arguments:");
+  instancetype _objc_msgSend_333(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<__va_list_tag> argList,
+  ) {
+    return __objc_msgSend_333(
+      obj,
+      sel,
+      format,
+      argList,
+    );
+  }
+
+  late final __objc_msgSend_333Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_333 = __objc_msgSend_333Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<__va_list_tag>)>();
+
+  late final _sel_initWithFormat_locale_1 =
+      _registerName1("initWithFormat:locale:");
+  late final _sel_initWithFormat_locale_arguments_1 =
+      _registerName1("initWithFormat:locale:arguments:");
+  instancetype _objc_msgSend_334(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> format,
+    ffi.Pointer<ObjCObject> locale,
+    ffi.Pointer<__va_list_tag> argList,
+  ) {
+    return __objc_msgSend_334(
+      obj,
+      sel,
+      format,
+      locale,
+      argList,
+    );
+  }
+
+  late final __objc_msgSend_334Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<__va_list_tag>)>>('objc_msgSend');
+  late final __objc_msgSend_334 = __objc_msgSend_334Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<__va_list_tag>)>();
+
+  late final _sel_initWithData_encoding_1 =
+      _registerName1("initWithData:encoding:");
+  instancetype _objc_msgSend_335(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    int encoding,
+  ) {
+    return __objc_msgSend_335(
+      obj,
+      sel,
+      data,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_335Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_335 = __objc_msgSend_335Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, int)>();
+
+  late final _sel_initWithBytes_length_encoding_1 =
+      _registerName1("initWithBytes:length:encoding:");
+  instancetype _objc_msgSend_336(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int len,
+    int encoding,
+  ) {
+    return __objc_msgSend_336(
+      obj,
+      sel,
+      bytes,
+      len,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_336Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_336 = __objc_msgSend_336Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, int)>();
+
+  late final _sel_initWithBytesNoCopy_length_encoding_freeWhenDone_1 =
+      _registerName1("initWithBytesNoCopy:length:encoding:freeWhenDone:");
+  instancetype _objc_msgSend_337(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int len,
+    int encoding,
+    bool freeBuffer,
+  ) {
+    return __objc_msgSend_337(
+      obj,
+      sel,
+      bytes,
+      len,
+      encoding,
+      freeBuffer,
+    );
+  }
+
+  late final __objc_msgSend_337Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              NSStringEncoding,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_337 = __objc_msgSend_337Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, int, bool)>();
+
+  late final _sel_initWithBytesNoCopy_length_encoding_deallocator_1 =
+      _registerName1("initWithBytesNoCopy:length:encoding:deallocator:");
+  instancetype _objc_msgSend_338(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> bytes,
+    int len,
+    int encoding,
+    ffi.Pointer<_ObjCBlock> deallocator,
+  ) {
+    return __objc_msgSend_338(
+      obj,
+      sel,
+      bytes,
+      len,
+      encoding,
+      deallocator,
+    );
+  }
+
+  late final __objc_msgSend_338Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>,
+              NSUInteger,
+              NSStringEncoding,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_338 = __objc_msgSend_338Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_string1 = _registerName1("string");
+  late final _sel_stringWithString_1 = _registerName1("stringWithString:");
+  late final _sel_stringWithCharacters_length_1 =
+      _registerName1("stringWithCharacters:length:");
+  late final _sel_stringWithUTF8String_1 =
+      _registerName1("stringWithUTF8String:");
+  late final _sel_stringWithFormat_1 = _registerName1("stringWithFormat:");
+  late final _sel_localizedStringWithFormat_1 =
+      _registerName1("localizedStringWithFormat:");
+  late final _sel_initWithCString_encoding_1 =
+      _registerName1("initWithCString:encoding:");
+  instancetype _objc_msgSend_339(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> nullTerminatedCString,
+    int encoding,
+  ) {
+    return __objc_msgSend_339(
+      obj,
+      sel,
+      nullTerminatedCString,
+      encoding,
+    );
+  }
+
+  late final __objc_msgSend_339Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, NSStringEncoding)>>('objc_msgSend');
+  late final __objc_msgSend_339 = __objc_msgSend_339Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int)>();
+
+  late final _sel_stringWithCString_encoding_1 =
+      _registerName1("stringWithCString:encoding:");
+  late final _sel_initWithContentsOfURL_encoding_error_1 =
+      _registerName1("initWithContentsOfURL:encoding:error:");
+  instancetype _objc_msgSend_340(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_340(
+      obj,
+      sel,
+      url,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_340Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_340 = __objc_msgSend_340Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithContentsOfFile_encoding_error_1 =
+      _registerName1("initWithContentsOfFile:encoding:error:");
+  instancetype _objc_msgSend_341(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    int enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_341(
+      obj,
+      sel,
+      path,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_341Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              NSStringEncoding,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_341 = __objc_msgSend_341Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          int,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_stringWithContentsOfURL_encoding_error_1 =
+      _registerName1("stringWithContentsOfURL:encoding:error:");
+  late final _sel_stringWithContentsOfFile_encoding_error_1 =
+      _registerName1("stringWithContentsOfFile:encoding:error:");
+  late final _sel_initWithContentsOfURL_usedEncoding_error_1 =
+      _registerName1("initWithContentsOfURL:usedEncoding:error:");
+  instancetype _objc_msgSend_342(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> url,
+    ffi.Pointer<NSStringEncoding> enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_342(
+      obj,
+      sel,
+      url,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_342Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSStringEncoding>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_342 = __objc_msgSend_342Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSStringEncoding>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_initWithContentsOfFile_usedEncoding_error_1 =
+      _registerName1("initWithContentsOfFile:usedEncoding:error:");
+  instancetype _objc_msgSend_343(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> path,
+    ffi.Pointer<NSStringEncoding> enc,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> error,
+  ) {
+    return __objc_msgSend_343(
+      obj,
+      sel,
+      path,
+      enc,
+      error,
+    );
+  }
+
+  late final __objc_msgSend_343Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<NSStringEncoding>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_343 = __objc_msgSend_343Ptr.asFunction<
+      instancetype Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<NSStringEncoding>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_stringWithContentsOfURL_usedEncoding_error_1 =
+      _registerName1("stringWithContentsOfURL:usedEncoding:error:");
+  late final _sel_stringWithContentsOfFile_usedEncoding_error_1 =
+      _registerName1("stringWithContentsOfFile:usedEncoding:error:");
+  late final _sel_stringEncodingForData_encodingOptions_convertedString_usedLossyConversion_1 =
+      _registerName1(
+          "stringEncodingForData:encodingOptions:convertedString:usedLossyConversion:");
+  int _objc_msgSend_344(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> data,
+    ffi.Pointer<ObjCObject> opts,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> string,
+    ffi.Pointer<ffi.Bool> usedLossyConversion,
+  ) {
+    return __objc_msgSend_344(
+      obj,
+      sel,
+      data,
+      opts,
+      string,
+      usedLossyConversion,
+    );
+  }
+
+  late final __objc_msgSend_344Ptr = _lookup<
+      ffi.NativeFunction<
+          NSStringEncoding Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ffi.Bool>)>>('objc_msgSend');
+  late final __objc_msgSend_344 = __objc_msgSend_344Ptr.asFunction<
+      int Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ffi.Bool>)>();
+
+  late final _sel_propertyList1 = _registerName1("propertyList");
+  late final _sel_propertyListFromStringsFileFormat1 =
+      _registerName1("propertyListFromStringsFileFormat");
+  late final _sel_cString1 = _registerName1("cString");
+  late final _sel_lossyCString1 = _registerName1("lossyCString");
+  late final _sel_cStringLength1 = _registerName1("cStringLength");
+  late final _sel_getCString_1 = _registerName1("getCString:");
+  late final _sel_getCString_maxLength_1 =
+      _registerName1("getCString:maxLength:");
+  void _objc_msgSend_345(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> bytes,
+    int maxLength,
+  ) {
+    return __objc_msgSend_345(
+      obj,
+      sel,
+      bytes,
+      maxLength,
+    );
+  }
+
+  late final __objc_msgSend_345Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>, NSUInteger)>>('objc_msgSend');
+  late final __objc_msgSend_345 = __objc_msgSend_345Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int)>();
+
+  late final _sel_getCString_maxLength_range_remainingRange_1 =
+      _registerName1("getCString:maxLength:range:remainingRange:");
+  void _objc_msgSend_346(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> bytes,
+    int maxLength,
+    NSRange aRange,
+    NSRangePointer leftoverRange,
+  ) {
+    return __objc_msgSend_346(
+      obj,
+      sel,
+      bytes,
+      maxLength,
+      aRange,
+      leftoverRange,
+    );
+  }
+
+  late final __objc_msgSend_346Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              NSRange,
+              NSRangePointer)>>('objc_msgSend');
+  late final __objc_msgSend_346 = __objc_msgSend_346Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Char>, int, NSRange, NSRangePointer)>();
+
+  late final _sel_stringWithContentsOfFile_1 =
+      _registerName1("stringWithContentsOfFile:");
+  late final _sel_stringWithContentsOfURL_1 =
+      _registerName1("stringWithContentsOfURL:");
+  late final _sel_initWithCStringNoCopy_length_freeWhenDone_1 =
+      _registerName1("initWithCStringNoCopy:length:freeWhenDone:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_347(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Char> bytes,
+    int length,
+    bool freeBuffer,
+  ) {
+    return __objc_msgSend_347(
+      obj,
+      sel,
+      bytes,
+      length,
+      freeBuffer,
+    );
+  }
+
+  late final __objc_msgSend_347Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Char>,
+              NSUInteger,
+              ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_347 = __objc_msgSend_347Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ffi.Char>, int, bool)>();
+
+  late final _sel_initWithCString_length_1 =
+      _registerName1("initWithCString:length:");
+  late final _sel_initWithCString_1 = _registerName1("initWithCString:");
+  late final _sel_stringWithCString_length_1 =
+      _registerName1("stringWithCString:length:");
+  late final _sel_stringWithCString_1 = _registerName1("stringWithCString:");
+  late final _sel_getCharacters_1 = _registerName1("getCharacters:");
+  void _objc_msgSend_348(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<unichar> buffer,
+  ) {
+    return __objc_msgSend_348(
+      obj,
+      sel,
+      buffer,
+    );
+  }
+
+  late final __objc_msgSend_348Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<unichar>)>>('objc_msgSend');
+  late final __objc_msgSend_348 = __objc_msgSend_348Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<unichar>)>();
+
+  late final _sel_variantFittingPresentationWidth_1 =
+      _registerName1("variantFittingPresentationWidth:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_349(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int width,
+  ) {
+    return __objc_msgSend_349(
+      obj,
+      sel,
+      width,
+    );
+  }
+
+  late final __objc_msgSend_349Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_349 = __objc_msgSend_349Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_pathWithComponents_1 = _registerName1("pathWithComponents:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_350(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> components,
+  ) {
+    return __objc_msgSend_350(
+      obj,
+      sel,
+      components,
+    );
+  }
+
+  late final __objc_msgSend_350Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_350 = __objc_msgSend_350Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isAbsolutePath1 = _registerName1("isAbsolutePath");
+  late final _sel_stringByDeletingLastPathComponent1 =
+      _registerName1("stringByDeletingLastPathComponent");
+  late final _sel_stringByAppendingPathComponent_1 =
+      _registerName1("stringByAppendingPathComponent:");
+  late final _sel_stringByDeletingPathExtension1 =
+      _registerName1("stringByDeletingPathExtension");
+  late final _sel_stringByAppendingPathExtension_1 =
+      _registerName1("stringByAppendingPathExtension:");
+  late final _sel_stringByAbbreviatingWithTildeInPath1 =
+      _registerName1("stringByAbbreviatingWithTildeInPath");
+  late final _sel_stringByExpandingTildeInPath1 =
+      _registerName1("stringByExpandingTildeInPath");
+  late final _sel_stringByStandardizingPath1 =
+      _registerName1("stringByStandardizingPath");
+  late final _sel_stringByResolvingSymlinksInPath1 =
+      _registerName1("stringByResolvingSymlinksInPath");
+  late final _sel_stringsByAppendingPaths_1 =
+      _registerName1("stringsByAppendingPaths:");
+  late final _sel_completePathIntoString_caseSensitive_matchesIntoArray_filterTypes_1 =
+      _registerName1(
+          "completePathIntoString:caseSensitive:matchesIntoArray:filterTypes:");
+  int _objc_msgSend_351(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputName,
+    bool flag,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> outputArray,
+    ffi.Pointer<ObjCObject> filterTypes,
+  ) {
+    return __objc_msgSend_351(
+      obj,
+      sel,
+      outputName,
+      flag,
+      outputArray,
+      filterTypes,
+    );
+  }
+
+  late final __objc_msgSend_351Ptr = _lookup<
+      ffi.NativeFunction<
+          NSUInteger Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Bool,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_351 = __objc_msgSend_351Ptr.asFunction<
+      int Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          bool,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_stringByAddingPercentEncodingWithAllowedCharacters_1 =
+      _registerName1("stringByAddingPercentEncodingWithAllowedCharacters:");
+  late final _sel_stringByRemovingPercentEncoding1 =
+      _registerName1("stringByRemovingPercentEncoding");
+  late final _sel_stringByAddingPercentEscapesUsingEncoding_1 =
+      _registerName1("stringByAddingPercentEscapesUsingEncoding:");
+  late final _sel_stringByReplacingPercentEscapesUsingEncoding_1 =
+      _registerName1("stringByReplacingPercentEscapesUsingEncoding:");
+  late final _class_NSOrthography1 = _getClass1("NSOrthography");
+  late final _sel_dominantScript1 = _registerName1("dominantScript");
+  late final _sel_languageMap1 = _registerName1("languageMap");
+  late final _sel_initWithDominantScript_languageMap_1 =
+      _registerName1("initWithDominantScript:languageMap:");
+  instancetype _objc_msgSend_352(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> script,
+    ffi.Pointer<ObjCObject> map,
+  ) {
+    return __objc_msgSend_352(
+      obj,
+      sel,
+      script,
+      map,
+    );
+  }
+
+  late final __objc_msgSend_352Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_352 = __objc_msgSend_352Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_languagesForScript_1 = _registerName1("languagesForScript:");
+  late final _sel_dominantLanguageForScript_1 =
+      _registerName1("dominantLanguageForScript:");
+  late final _sel_dominantLanguage1 = _registerName1("dominantLanguage");
+  late final _sel_allScripts1 = _registerName1("allScripts");
+  late final _sel_allLanguages1 = _registerName1("allLanguages");
+  late final _sel_defaultOrthographyForLanguage_1 =
+      _registerName1("defaultOrthographyForLanguage:");
+  late final _sel_orthographyWithDominantScript_languageMap_1 =
+      _registerName1("orthographyWithDominantScript:languageMap:");
+  late final _sel_linguisticTagsInRange_scheme_options_orthography_tokenRanges_1 =
+      _registerName1(
+          "linguisticTagsInRange:scheme:options:orthography:tokenRanges:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_353(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    NSLinguisticTagScheme scheme,
+    int options,
+    ffi.Pointer<ObjCObject> orthography,
+    ffi.Pointer<ffi.Pointer<ObjCObject>> tokenRanges,
+  ) {
+    return __objc_msgSend_353(
+      obj,
+      sel,
+      range,
+      scheme,
+      options,
+      orthography,
+      tokenRanges,
+    );
+  }
+
+  late final __objc_msgSend_353Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              NSLinguisticTagScheme,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ffi.Pointer<ObjCObject>>)>>('objc_msgSend');
+  late final __objc_msgSend_353 = __objc_msgSend_353Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRange,
+          NSLinguisticTagScheme,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ffi.Pointer<ObjCObject>>)>();
+
+  late final _sel_enumerateLinguisticTagsInRange_scheme_options_orthography_usingBlock_1 =
+      _registerName1(
+          "enumerateLinguisticTagsInRange:scheme:options:orthography:usingBlock:");
+  void _objc_msgSend_354(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    NSRange range,
+    NSLinguisticTagScheme scheme,
+    int options,
+    ffi.Pointer<ObjCObject> orthography,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_354(
+      obj,
+      sel,
+      range,
+      scheme,
+      options,
+      orthography,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_354Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              NSRange,
+              NSLinguisticTagScheme,
+              ffi.Int32,
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_354 = __objc_msgSend_354Ptr.asFunction<
+      void Function(
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>,
+          NSRange,
+          NSLinguisticTagScheme,
+          int,
+          ffi.Pointer<ObjCObject>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_allObjects1 = _registerName1("allObjects");
+  late final _sel_anyObject1 = _registerName1("anyObject");
+  late final _sel_intersectsSet_1 = _registerName1("intersectsSet:");
+  bool _objc_msgSend_355(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> otherSet,
+  ) {
+    return __objc_msgSend_355(
+      obj,
+      sel,
+      otherSet,
+    );
+  }
+
+  late final __objc_msgSend_355Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_355 = __objc_msgSend_355Ptr.asFunction<
+      bool Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_isEqualToSet_1 = _registerName1("isEqualToSet:");
+  late final _sel_isSubsetOfSet_1 = _registerName1("isSubsetOfSet:");
+  late final _sel_setByAddingObject_1 = _registerName1("setByAddingObject:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_356(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anObject,
+  ) {
+    return __objc_msgSend_356(
+      obj,
+      sel,
+      anObject,
+    );
+  }
+
+  late final __objc_msgSend_356Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_356 = __objc_msgSend_356Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setByAddingObjectsFromSet_1 =
+      _registerName1("setByAddingObjectsFromSet:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_357(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_357(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_357Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_357 = __objc_msgSend_357Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setByAddingObjectsFromArray_1 =
+      _registerName1("setByAddingObjectsFromArray:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_358(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> other,
+  ) {
+    return __objc_msgSend_358(
+      obj,
+      sel,
+      other,
+    );
+  }
+
+  late final __objc_msgSend_358Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_358 = __objc_msgSend_358Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  void _objc_msgSend_359(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_359(
+      obj,
+      sel,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_359Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_359 = __objc_msgSend_359Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  void _objc_msgSend_360(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> block,
+  ) {
+    return __objc_msgSend_360(
+      obj,
+      sel,
+      opts,
+      block,
+    );
+  }
+
+  late final __objc_msgSend_360Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Int32, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_360 = __objc_msgSend_360Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int,
+          ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_objectsPassingTest_1 = _registerName1("objectsPassingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_361(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_361(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_361Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_361 = __objc_msgSend_361Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_objectsWithOptions_passingTest_1 =
+      _registerName1("objectsWithOptions:passingTest:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_362(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int opts,
+    ffi.Pointer<_ObjCBlock> predicate,
+  ) {
+    return __objc_msgSend_362(
+      obj,
+      sel,
+      opts,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_362Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>,
+              ffi.Int32,
+              ffi.Pointer<_ObjCBlock>)>>('objc_msgSend');
+  late final __objc_msgSend_362 = __objc_msgSend_362Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, int, ffi.Pointer<_ObjCBlock>)>();
+
+  late final _sel_set1 = _registerName1("set");
+  late final _sel_setWithObject_1 = _registerName1("setWithObject:");
+  late final _sel_setWithObjects_count_1 =
+      _registerName1("setWithObjects:count:");
+  late final _sel_setWithObjects_1 = _registerName1("setWithObjects:");
+  late final _sel_setWithSet_1 = _registerName1("setWithSet:");
+  instancetype _objc_msgSend_363(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+  ) {
+    return __objc_msgSend_363(
+      obj,
+      sel,
+      set1,
+    );
+  }
+
+  late final __objc_msgSend_363Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_363 = __objc_msgSend_363Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_setWithArray_1 = _registerName1("setWithArray:");
+  late final _sel_initWithSet_1 = _registerName1("initWithSet:");
+  late final _sel_initWithSet_copyItems_1 =
+      _registerName1("initWithSet:copyItems:");
+  instancetype _objc_msgSend_364(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> set1,
+    bool flag,
+  ) {
+    return __objc_msgSend_364(
+      obj,
+      sel,
+      set1,
+      flag,
+    );
+  }
+
+  late final __objc_msgSend_364Ptr = _lookup<
+      ffi.NativeFunction<
+          instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>, ffi.Bool)>>('objc_msgSend');
+  late final __objc_msgSend_364 = __objc_msgSend_364Ptr.asFunction<
+      instancetype Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>, bool)>();
+
+  late final _sel_filteredSetUsingPredicate_1 =
+      _registerName1("filteredSetUsingPredicate:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_365(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> predicate,
+  ) {
+    return __objc_msgSend_365(
+      obj,
+      sel,
+      predicate,
+    );
+  }
+
+  late final __objc_msgSend_365Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_365 = __objc_msgSend_365Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_invocationWithMethodSignature_1 =
+      _registerName1("invocationWithMethodSignature:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_366(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> sig,
+  ) {
+    return __objc_msgSend_366(
+      obj,
+      sel,
+      sig,
+    );
+  }
+
+  late final __objc_msgSend_366Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_366 = __objc_msgSend_366Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_methodSignature1 = _registerName1("methodSignature");
+  ffi.Pointer<ObjCObject> _objc_msgSend_367(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_367(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_367Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_367 = __objc_msgSend_367Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_retainArguments1 = _registerName1("retainArguments");
+  late final _sel_argumentsRetained1 = _registerName1("argumentsRetained");
+  late final _sel_target1 = _registerName1("target");
+  late final _sel_setTarget_1 = _registerName1("setTarget:");
+  void _objc_msgSend_368(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> value,
+  ) {
+    return __objc_msgSend_368(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_368Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_368 = __objc_msgSend_368Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_selector1 = _registerName1("selector");
+  ffi.Pointer<ObjCSel> _objc_msgSend_369(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+  ) {
+    return __objc_msgSend_369(
+      obj,
+      sel,
+    );
+  }
+
+  late final __objc_msgSend_369Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCSel> Function(
+              ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_369 = __objc_msgSend_369Ptr.asFunction<
+      ffi.Pointer<ObjCSel> Function(
+          ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_setSelector_1 = _registerName1("setSelector:");
+  void _objc_msgSend_370(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> value,
+  ) {
+    return __objc_msgSend_370(
+      obj,
+      sel,
+      value,
+    );
+  }
+
+  late final __objc_msgSend_370Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_370 = __objc_msgSend_370Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_getReturnValue_1 = _registerName1("getReturnValue:");
+  late final _sel_setReturnValue_1 = _registerName1("setReturnValue:");
+  late final _sel_getArgument_atIndex_1 =
+      _registerName1("getArgument:atIndex:");
+  void _objc_msgSend_371(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ffi.Void> argumentLocation,
+    int idx,
+  ) {
+    return __objc_msgSend_371(
+      obj,
+      sel,
+      argumentLocation,
+      idx,
+    );
+  }
+
+  late final __objc_msgSend_371Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ffi.Void>, NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_371 = __objc_msgSend_371Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ffi.Void>, int)>();
+
+  late final _sel_setArgument_atIndex_1 =
+      _registerName1("setArgument:atIndex:");
+  late final _sel_invoke1 = _registerName1("invoke");
+  late final _sel_invokeWithTarget_1 = _registerName1("invokeWithTarget:");
+  late final _sel_forwardInvocation_1 = _registerName1("forwardInvocation:");
+  void _objc_msgSend_372(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCObject> anInvocation,
+  ) {
+    return __objc_msgSend_372(
+      obj,
+      sel,
+      anInvocation,
+    );
+  }
+
+  late final __objc_msgSend_372Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              ffi.Pointer<ObjCObject>)>>('objc_msgSend');
+  late final __objc_msgSend_372 = __objc_msgSend_372Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+          ffi.Pointer<ObjCObject>)>();
+
+  late final _sel_methodSignatureForSelector_1 =
+      _registerName1("methodSignatureForSelector:");
+  ffi.Pointer<ObjCObject> _objc_msgSend_373(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    ffi.Pointer<ObjCSel> aSelector,
+  ) {
+    return __objc_msgSend_373(
+      obj,
+      sel,
+      aSelector,
+    );
+  }
+
+  late final __objc_msgSend_373Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+              ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>>('objc_msgSend');
+  late final __objc_msgSend_373 = __objc_msgSend_373Ptr.asFunction<
+      ffi.Pointer<ObjCObject> Function(ffi.Pointer<ObjCObject>,
+          ffi.Pointer<ObjCSel>, ffi.Pointer<ObjCSel>)>();
+
+  late final _sel_instanceMethodSignatureForSelector_1 =
+      _registerName1("instanceMethodSignatureForSelector:");
+  late final _sel_allowsWeakReference1 = _registerName1("allowsWeakReference");
+  late final _sel_retainWeakReference1 = _registerName1("retainWeakReference");
+  late final _sel_isSubclassOfClass_1 = _registerName1("isSubclassOfClass:");
+  late final _sel_resolveClassMethod_1 = _registerName1("resolveClassMethod:");
+  late final _sel_resolveInstanceMethod_1 =
+      _registerName1("resolveInstanceMethod:");
+  late final _sel_superclass1 = _registerName1("superclass");
+  late final _sel_class1 = _registerName1("class");
+  late final _sel_debugDescription1 = _registerName1("debugDescription");
+  late final _sel_version1 = _registerName1("version");
+  late final _sel_setVersion_1 = _registerName1("setVersion:");
+  void _objc_msgSend_374(
+    ffi.Pointer<ObjCObject> obj,
+    ffi.Pointer<ObjCSel> sel,
+    int aVersion,
+  ) {
+    return __objc_msgSend_374(
+      obj,
+      sel,
+      aVersion,
+    );
+  }
+
+  late final __objc_msgSend_374Ptr = _lookup<
+      ffi.NativeFunction<
+          ffi.Void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>,
+              NSInteger)>>('objc_msgSend');
+  late final __objc_msgSend_374 = __objc_msgSend_374Ptr.asFunction<
+      void Function(ffi.Pointer<ObjCObject>, ffi.Pointer<ObjCSel>, int)>();
+
+  late final _sel_classForCoder1 = _registerName1("classForCoder");
+  late final _sel_replacementObjectForCoder_1 =
+      _registerName1("replacementObjectForCoder:");
+  late final _sel_awakeAfterUsingCoder_1 =
+      _registerName1("awakeAfterUsingCoder:");
+  late final _sel_poseAsClass_1 = _registerName1("poseAsClass:");