[neon/backports-noble/flatbuffers-noble/Neon/unstable] debian: backport flatbuffers for onnxruntime for pipewrie for kwin

Carlos De Maine null at kde.org
Sun Sep 27 00:29:58 BST 2026


Git commit fd3837fac32c66d8797b640cfc5cd60e9beae043 by Carlos De Maine.
Committed on 26/09/2026 at 23:29.
Pushed by carlosdem into branch 'Neon/unstable'.

backport flatbuffers for onnxruntime for pipewrie for kwin

A  +4    -0    debian/TODO
A  +270  -0    debian/changelog
A  +93   -0    debian/control
A  +321  -0    debian/copyright
A  +1    -0    debian/flatbuffers-compiler-dev.install
A  +1    -0    debian/flatbuffers-compiler.install
A  +1    -0    debian/flatbuffers-compiler.lintian-overrides
A  +4    -0    debian/gbp.conf
A  +8    -0    debian/gitlab-ci.yml
A  +8    -0    debian/libflatbuffers-dev.install
A  +2    -0    debian/libflatbuffers23.5.26.install
A  +1269 -0    debian/missing-sources/tests/ts/my-game/example/monster.js
A  +39   -0    debian/patches/8201.patch
A  +13   -0    debian/patches/s390x.patch
A  +2    -0    debian/patches/series
A  +42   -0    debian/rules
A  +1    -0    debian/source/format
A  +4    -0    debian/source/lintian-overrides
A  +6    -0    debian/upstream/metadata
A  +4    -0    debian/watch

https://invent.kde.org/neon/backports-noble/flatbuffers-noble/-/commit/fd3837fac32c66d8797b640cfc5cd60e9beae043

diff --git a/debian/TODO b/debian/TODO
new file mode 100644
index 0000000..f79c6e1
--- /dev/null
+++ b/debian/TODO
@@ -0,0 +1,4 @@
+* Ship other language bindings
+* Re-generate generated files in test/ - since they are not used in
+   the binary packages it is ok to have them in the source package for now.
+* Ship more documentation files
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..0b8ebfb
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,270 @@
+flatbuffers (23.5.26+dfsg-1.1) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * debian/control: Update the version range of Breaks/Replaces so
+    that all the past versions of libflatbuffers2 are covered.
+    (really closes: #1043102)
+
+ -- Boyuan Yang <byang at debian.org>  Fri, 19 Jul 2024 22:36:52 -0400
+
+flatbuffers (23.5.26+dfsg-1) unstable; urgency=medium
+
+  * Upload to unstable.
+
+ -- Mo Zhou <lumin at debian.org>  Sat, 13 Jul 2024 02:50:50 -0400
+
+flatbuffers (23.5.26+dfsg-1~exp1) experimental; urgency=medium
+
+  * Patch code to fix tests on mips64el and hppa.
+  * Specify Breaks+Replaces for the lib package as well. (Closes: #1043244)
+  * Fix ftbfs-source-after-build. (Closes: #1044425)
+
+ -- Mo Zhou <lumin at debian.org>  Fri, 29 Dec 2023 16:38:36 -0500
+
+flatbuffers (23.5.26+dfsg-1~exp0) experimental; urgency=medium
+
+  * New upstream version 23.5.26+dfsg.
+
+ -- Nobuhiro Iwamatsu <iwamatsu at debian.org>  Sun, 06 Aug 2023 12:52:16 +0900
+
+flatbuffers (2.0.8+dfsg1-5) unstable; urgency=medium
+
+  * Change the package to install pkg-config file to libflatbuffers-dev.
+  * d/control: Add libflatbuffers2 (<< 2.0.8+dfsg1-4) to Breaks and Replaces.
+
+ -- Nobuhiro Iwamatsu <iwamatsu at debian.org>  Sun, 06 Aug 2023 09:48:20 +0900
+
+flatbuffers (2.0.8+dfsg1-4) unstable; urgency=medium
+
+  * Fix invalid version number for pkg_resources.
+    Thanks to Julian Gilbey <jdg at debian.org> for the patch. (Closes: #1004743)
+  * Refresh symbols to fix FTBFS on amd64 (Closes: #1041257)
+  * Give up tracking symbols for C++ library. (Closes: #1041257, #1015403)
+
+ -- Mo Zhou <lumin at debian.org>  Mon, 17 Jul 2023 22:05:19 -0700
+
+flatbuffers (2.0.8+dfsg1-3) unstable; urgency=medium
+
+  * Add patch for missing header to fix FTBFS (Closes: #1037658)
+  * Refresh symbols control file.
+  * Fix/override lintian warnings/errors.
+  * Remove unused lintian overrides.
+
+ -- Mo Zhou <lumin at debian.org>  Thu, 13 Jul 2023 21:26:56 -0700
+
+flatbuffers (2.0.8+dfsg1-2) unstable; urgency=medium
+
+  * Refresh symbols control file for amd64.
+
+ -- Mo Zhou <lumin at debian.org>  Thu, 15 Dec 2022 16:49:15 -0500
+
+flatbuffers (2.0.8+dfsg1-1) unstable; urgency=medium
+
+  [ Debian Janitor ]
+  * Use secure URI in Homepage field.
+  * Set field Upstream-Contact in debian/copyright.
+  * Set upstream metadata fields: Bug-Database, Bug-Submit, Security-Contact.
+  * Remove obsolete field Contact from debian/upstream/metadata
+    (already present in machine-readable debian/copyright).
+  * Update standards version to 4.6.1, no changes needed.
+  * Remove constraints unnecessary since buster (oldstable)
+
+  [ Mo Zhou ]
+  * New upstream version 2.0.8+dfsg1 (Aug 2022)
+  * Refresh remaining patches.
+  * Update install control files.
+
+ -- Mo Zhou <lumin at debian.org>  Wed, 14 Dec 2022 10:33:53 -0500
+
+flatbuffers (2.0.6+dfsg1-3) unstable; urgency=medium
+
+  * Add -Wno-error=stringop-overflow to fix s390x FTBFS.
+
+ -- Mo Zhou <lumin at debian.org>  Fri, 30 Sep 2022 19:32:34 -0400
+
+flatbuffers (2.0.6+dfsg1-2) unstable; urgency=medium
+
+  * Specify -Wno-error=maybe-uninitialized for GCC-12 (Closes: #1012928)
+  * Refresh symbols control file.
+
+ -- Mo Zhou <lumin at debian.org>  Sat, 03 Sep 2022 14:23:09 -0400
+
+flatbuffers (2.0.6+dfsg1-1) unstable; urgency=medium
+
+  * Upload to unstable.
+
+ -- Mo Zhou <lumin at debian.org>  Fri, 08 Jul 2022 08:03:50 -0700
+
+flatbuffers (2.0.6+dfsg1-1~exp3) experimental; urgency=medium
+
+  * Patch to fix s390x FTBFS.
+
+ -- Mo Zhou <lumin at debian.org>  Sun, 19 Jun 2022 21:15:24 -0700
+
+flatbuffers (2.0.6+dfsg1-1~exp2) experimental; urgency=medium
+
+  * Only track symbols for amd64 architecture. Manually crafting C++ symbol
+    file for a hundred architectures sounds like nothing but a burden to me.
+
+ -- Mo Zhou <lumin at debian.org>  Sat, 18 Jun 2022 13:40:39 -0700
+
+flatbuffers (2.0.6+dfsg1-1~exp1) experimental; urgency=medium
+
+  * New upstream version 2.0.6+dfsg1
+  * Append myself to Uploaders.
+  * Update Files-Excluded list.
+  * Change build directory to $(CURDIR) to prevent test failure.
+  * Bump SOVERSION from 1 to 2; rename packages.
+  * Remove upstream-merged patches.
+  * Install the generated pkgconfig file.
+  * Refresh symbols control file.
+  * Overhaul d/copyright due to massive codebase change.
+  * Upload to experimental.
+
+ -- Mo Zhou <lumin at debian.org>  Mon, 30 May 2022 17:07:31 -0700
+
+flatbuffers (1.12.1~git20200711.33e2d80+dfsg1-0.6) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Mark three more symbols as optional, to fix s390x and ppc64el in Ubuntu.
+
+ -- Mattia Rizzolo <mattia at debian.org>  Fri, 08 Jan 2021 16:29:01 +0100
+
+flatbuffers (1.12.1~git20200711.33e2d80+dfsg1-0.5) unstable; urgency=medium
+
+  * Non-maintainer upload.
+
+  [ Vasyl Gello ]
+  * Mark a few other symbols as optional to fix FTBFS on sid/s390x.
+
+  [ Mattia Rizzolo ]
+  * Match all the Std:: symbols out there.
+  * Manually handle symbols arch subst without pkgkde-tools.
+
+ -- Mattia Rizzolo <mattia at debian.org>  Sat, 02 Jan 2021 14:45:07 +0100
+
+flatbuffers (1.12.1~git20200711.33e2d80+dfsg1-0.4) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Make C++ template symbols optional and refresh them (Closes: #976921)
+  * Bump standards version to 4.5.1 (no changes required)
+  * Install python3-flatbuffers as indep (Closes: #976069)
+
+ -- Vasyl Gello <vasek.gello at gmail.com>  Thu, 24 Dec 2020 13:19:42 +0000
+
+flatbuffers (1.12.1~git20200711.33e2d80+dfsg1-0.3) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Drop useless symbols disappearing with -O3 optimization level
+
+ -- Gianfranco Costamagna <locutusofborg at debian.org>  Mon, 20 Jul 2020 13:15:52 +0200
+
+flatbuffers (1.12.1~git20200711.33e2d80+dfsg1-0.2) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * debian: Adjust symbols from buildlogs.
+  * debian: Fix failing tests on hppa/mipsel/mips64el.
+
+ -- Vasyl Gello <vasek.gello at gmail.com>  Fri, 17 Jul 2020 18:15:18 +0200
+
+flatbuffers (1.12.1~git20200711.33e2d80+dfsg1-0.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+
+  [ Vasyl Gello ]
+  * New upstream version 1.12.1~git20200711.33e2d80+dfsg1.
+    + Fixed build with GCC-10.  Closes: #957212
+  * debian: Remove obsoleted patch
+  * debian: Update symbols file.
+
+  [ Mattia Rizzolo ]
+  * Mark python3-flatbuffers as M-A:foreign, from the M-A hinter.
+
+ -- Vasyl Gello <vasek.gello at gmail.com>  Wed, 15 Jul 2020 16:30:01 +0200
+
+flatbuffers (1.11.0+dfsg1-3) unstable; urgency=medium
+
+  * Team upload
+  * Refresh symbols for non-amd64 archs
+
+ -- Gianfranco Costamagna <locutusofborg at debian.org>  Sat, 04 Jul 2020 23:41:07 +0200
+
+flatbuffers (1.11.0+dfsg1-2) unstable; urgency=medium
+
+  [ Gianfranco Costamagna ]
+  * Team upload
+
+  [ Vasyl Gello ]
+  * debian: Adjust symbols for libflatbuffers1/alpha
+  * debian: Add gbp.conf
+  * debian: fix Lintian warnings
+  * debian: fix FTBFS on hurd/i386
+
+  [ Alexander Gerasiov ]
+  * d/control, d/rules: Add python3-flatbuffers.
+
+ -- Gianfranco Costamagna <locutusofborg at debian.org>  Wed, 01 Jul 2020 18:04:01 +0200
+
+flatbuffers (1.11.0+dfsg1-1.4) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix symbol files on {stable,unstable}/amd64
+
+ -- Vasyl Gello <vasek.gello at gmail.com>  Mon, 25 May 2020 17:13:26 +0300
+
+flatbuffers (1.11.0+dfsg1-1.3) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Fixup again symbol files
+
+ -- Gianfranco Costamagna <locutusofborg at debian.org>  Sun, 22 Mar 2020 17:17:26 +0100
+
+flatbuffers (1.11.0+dfsg1-1.2) unstable; urgency=medium
+
+  * Non-maintainer upload
+  * Refresh symbols from unstable build logs.
+    This fixes FTBFS on mips64el.
+
+ -- Balint Reczey <rbalint at ubuntu.com>  Sat, 21 Mar 2020 17:35:47 +0100
+
+flatbuffers (1.11.0+dfsg1-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload
+  * Fix odd version number that I uploaded with accidentally (I'm sorry)
+
+ -- Balint Reczey <rbalint at ubuntu.com>  Mon, 20 Jan 2020 12:14:42 +0100
+
+flatbuffers (1.11.0+dfsg1-1.1~rbalint1) unstable; urgency=medium
+
+  * Non-maintainer upload (Closes: #949329)
+  * Update symbols from sid build logs and local build to fix FTBFS
+
+ -- Balint Reczey <rbalint at ubuntu.com>  Sun, 19 Jan 2020 22:22:01 +0100
+
+flatbuffers (1.11.0+dfsg1-1) unstable; urgency=medium
+
+  [ Maximiliano Curia ]
+  * Initial release. (Closes: #823037)
+  * New upstream release (1.10.0).
+  * Bump debhelper build-dep and compat to 12
+  * Bump to Standards-Version 4.3.0
+  * Use the hardening=+all deb build option
+  * Add missing package sections
+  * Add symbols to be managed with pkgkde symbolshelper
+  * New upstream release (1.11.0).
+  * Update symbols files
+  * Release to unstable
+
+  [ Balint Reczey ]
+  * Add Salsa CI configuration
+  * debian/control: Fix typo libsdevel -> libdevel
+  * debian/control: Make unique short descriptions
+  * Override false positive source-contains-prebuilt-doxygen-documentation
+    Lintian warning
+  * Add packaging TODO
+  * Exclude prebuilt jars from original upstream tarball
+  * debian/watch: Support repacked source
+  * New import of upstream version 1.10.0 as 1.10.0+dfsg1 excluding the jars
+  * debian/gitlab-ci.yml: Disable reprotest until cmake is fixed
+
+ -- Maximiliano Curia <maxy at debian.org>  Tue, 30 Jul 2019 10:40:36 -0300
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..d77881e
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,93 @@
+Source: flatbuffers
+Priority: optional
+Section: devel
+Maintainer: Maximiliano Curia <maxy at debian.org>
+Uploaders: Nobuhiro Iwamatsu <iwamatsu at debian.org>,
+           Mo Zhou <lumin at debian.org>
+Build-Depends: cmake, debhelper-compat (= 13), dh-python, python3-all, python3-setuptools
+Standards-Version: 4.6.1
+Rules-Requires-Root: no
+Homepage: https://google.github.io/flatbuffers/
+Vcs-Browser: https://salsa.debian.org/debian/flatbuffers
+Vcs-Git: https://salsa.debian.org/debian/flatbuffers.git
+
+Package: flatbuffers-compiler
+Architecture: any
+Multi-Arch: foreign
+Depends:
+ libflatbuffers23.5.26 (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends},
+Description: efficient cross platform serialization library - compiler
+ FlatBuffers is an efficient cross platform serialization library for C++, C#,
+ C, Go, Java, JavaScript, TypeScript, PHP, and Python. It was originally
+ created at Google for game development and other performance-critical
+ applications.
+ .
+ This package contains the flat buffer compiler that is used for translating
+ from .proto files (containing the definitions) to the language binding for the
+ supported languages.
+
+Package: flatbuffers-compiler-dev
+Architecture: any
+Multi-Arch: same
+Depends:
+ flatbuffers-compiler (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends},
+Description: efficient cross platform serialization library - cmake files
+ FlatBuffers is an efficient cross platform serialization library for C++, C#,
+ C, Go, Java, JavaScript, TypeScript, PHP, and Python. It was originally
+ created at Google for game development and other performance-critical
+ applications.
+ .
+ This package contains the development cmake files needed to use
+ flatbuffer-compiler in a cross compiling environment.
+
+Package: libflatbuffers-dev
+Section: libdevel
+Architecture: any
+Multi-Arch: same
+Depends:
+ flatbuffers-compiler-dev (= ${binary:Version}),
+ libflatbuffers23.5.26 (= ${binary:Version}),
+ ${misc:Depends},
+ ${shlibs:Depends},
+Breaks: libflatbuffers2 (<< 2.0.8+dfsg1-7)
+Replaces: libflatbuffers2 (<< 2.0.8+dfsg1-7)
+Description: efficient cross platform serialization library - development files
+ FlatBuffers is an efficient cross platform serialization library for C++, C#,
+ C, Go, Java, JavaScript, TypeScript, PHP, and Python. It was originally
+ created at Google for game development and other performance-critical
+ applications.
+ .
+ This package contains the development headers and static libraries needed for
+ writing C++ applications.
+
+Package: libflatbuffers23.5.26
+Section: libs
+Architecture: any
+Multi-Arch: same
+Depends: ${misc:Depends}, ${shlibs:Depends}
+Breaks: libflatbuffers-dev (<< 2.0.8+dfsg1-5)
+Replaces: libflatbuffers-dev (<< 2.0.8+dfsg1-5)
+Description: efficient cross platform serialization library - shared library
+ FlatBuffers is an efficient cross platform serialization library for C++, C#,
+ C, Go, Java, JavaScript, TypeScript, PHP, and Python. It was originally
+ created at Google for game development and other performance-critical
+ applications.
+ .
+ This package contains the runtime library needed for C++ applications.
+
+Package: python3-flatbuffers
+Section: python
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}, ${shlibs:Depends}, ${python3:Depends}
+Description: efficient cross platform serialization library - Python bindings
+ FlatBuffers is an efficient cross platform serialization library for C++, C#,
+ C, Go, Java, JavaScript, TypeScript, PHP, and Python. It was originally
+ created at Google for game development and other performance-critical
+ applications.
+ .
+ This package contains python3 flatbuffers API.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..8a5b37e
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,321 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: Flatbuffers
+Source: https://github.com/google/flatbuffers
+Files-Excluded: android/gradle/wrapper/gradle-wrapper.jar
+                kotlin/gradle/wrapper/gradle-wrapper.jar
+Upstream-Contact: https://groups.google.com/forum/#!forum/flatbuffers
+
+Files: *
+       android/*
+       bazel/*
+       benchmarks/*
+       conan/*
+       docs/*
+       go/*
+       include/*
+       java/*
+       lua/*
+       net/*
+       php/*
+       python/*
+       rust/*
+       scripts/*
+       src/*
+       swift/*
+       ts/*
+Copyright: 2014-2021, Google Inc
+           2019 Google LLC
+License: Apache-2.0
+
+Files: CMake/*
+Copyright: 2014 Stefan.Eilemann at epfl.ch
+           2014-2021, Google Inc
+License: Apache-2.0
+
+Files: dart/*
+Copyright: 2014-2018, Google Inc
+           2018 Dan Field
+           2016, the Dart project authors
+License: Apache-2.0
+
+Files: grpc/*
+Copyright: 2014-2021, Google Inc
+           2015 gRPC authors
+License: Apache-2.0
+
+Files: kotlin/*
+Copyright: 2015 the original author or authors
+           2014-2021, Google Inc
+License: Apache-2.0
+Comment: "2015 the original author or authors" looks bad but it is what's
+         written in the code file.
+
+Files: kotlin/flatbuffers-kotlin/src/jvmTest/resources/utf8_sample.txt
+Copyright: 2015-08-28 Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>
+License: CC-BY-4.0
+
+Files: samples/*
+Copyright: 2018 Dan Field
+           2014-2021, Google Inc
+License: Apache-2.0
+
+Files: tests/*
+Copyright: 2015 The Chromium Authors
+           2014-2021, Google Inc
+           2019 Google LLC
+License: Apache-2.0
+
+Files: tests/fuzzer/flatbuffers_parser_fuzzer.cc
+       tests/fuzzer/flatbuffers_verifier_fuzzer.cc
+       tests/fuzzer/flexbuffers_verifier_fuzzer.cc
+Copyright: 2015, The Chromium Authors
+License: BSD-3-clause
+Comment:
+ The verbatim text for the license assignment used is:
+ """
+ Use of this source code is governed by a BSD-style license that can be
+ found in the LICENSE file.
+ """
+ The LICENSE file is not present, I'm assuming this refers to the BSD-3-clause
+ used in the grpc parts (which is embedded in the files).
+
+Files: debian/*
+Copyright: 2018, Maximiliano Curia <maxy at debian.org>
+License: Apache-2.0
+
+License: Apache-2.0
+ The full text of the Apache License Version 2.0 is distributed in
+ /usr/share/common-licenses/Apache-2.0.
+
+License: BSD-3-clause
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ .
+     * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+     * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following disclaimer
+ in the documentation and/or other materials provided with the
+ distribution.
+     * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+ .
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License: CC-BY-4.0
+ Creative Commons Attribution 4.0 International Public License
+ .
+ By exercising the Licensed Rights (defined below), You accept and agree to be
+ bound by the terms and conditions of this Creative Commons Attribution 4.0
+ International Public License ("Public License"). To the extent this Public
+ License may be interpreted as a contract, You are granted the Licensed Rights
+ in consideration of Your acceptance of these terms and conditions, and the
+ Licensor grants You such rights in consideration of benefits the Licensor
+ receives from making the Licensed Material available under these terms and
+ conditions.
+ .
+ Section 1 – Definitions.
+ .
+ Adapted Material means material subject to Copyright and Similar Rights that is
+ derived from or based upon the Licensed Material and in which the Licensed
+ Material is translated, altered, arranged, transformed, or otherwise modified
+ in a manner requiring permission under the Copyright and Similar Rights held by
+ the Licensor. For purposes of this Public License, where the Licensed Material
+ is a musical work, performance, or sound recording, Adapted Material is always
+ produced where the Licensed Material is synched in timed relation with a moving
+ image.  Adapter's License means the license You apply to Your Copyright and
+ Similar Rights in Your contributions to Adapted Material in accordance with the
+ terms and conditions of this Public License.  Copyright and Similar Rights
+ means copyright and/or similar rights closely related to copyright including,
+ without limitation, performance, broadcast, sound recording, and Sui Generis
+ Database Rights, without regard to how the rights are labeled or categorized.
+ For purposes of this Public License, the rights specified in Section
+ 2(b)(1)-(2) are not Copyright and Similar Rights.  Effective Technological
+ Measures means those measures that, in the absence of proper authority, may not
+ be circumvented under laws fulfilling obligations under Article 11 of the WIPO
+ Copyright Treaty adopted on December 20, 1996, and/or similar international
+ agreements.  Exceptions and Limitations means fair use, fair dealing, and/or
+ any other exception or limitation to Copyright and Similar Rights that applies
+ to Your use of the Licensed Material.  Licensed Material means the artistic or
+ literary work, database, or other material to which the Licensor applied this
+ Public License.  Licensed Rights means the rights granted to You subject to the
+ terms and conditions of this Public License, which are limited to all Copyright
+ and Similar Rights that apply to Your use of the Licensed Material and that the
+ Licensor has authority to license.  Licensor means the individual(s) or
+ entity(ies) granting rights under this Public License.  Share means to provide
+ material to the public by any means or process that requires permission under
+ the Licensed Rights, such as reproduction, public display, public performance,
+ distribution, dissemination, communication, or importation, and to make
+ material available to the public including in ways that members of the public
+ may access the material from a place and at a time individually chosen by them.
+ Sui Generis Database Rights means rights other than copyright resulting from
+ Directive 96/9/EC of the European Parliament and of the Council of 11 March
+ 1996 on the legal protection of databases, as amended and/or succeeded, as well
+ as other essentially equivalent rights anywhere in the world.  You means the
+ individual or entity exercising the Licensed Rights under this Public License.
+ Your has a corresponding meaning. 
+ .
+ Section 2 – Scope.
+ .
+ License grant.
+ .
+ Subject to the terms and conditions of this Public License, the Licensor hereby
+ grants You a worldwide, royalty-free, non-sublicensable, non-exclusive,
+ irrevocable license to exercise the Licensed Rights in the Licensed Material
+ to: reproduce and Share the Licensed Material, in whole or in part; and
+ produce, reproduce, and Share Adapted Material.  Exceptions and Limitations.
+ For the avoidance of doubt, where Exceptions and Limitations apply to Your use,
+ this Public License does not apply, and You do not need to comply with its
+ terms and conditions.  Term. The term of this Public License is specified in
+ Section 6(a).  Media and formats; technical modifications allowed. The Licensor
+ authorizes You to exercise the Licensed Rights in all media and formats whether
+ now known or hereafter created, and to make technical modifications necessary
+ to do so. The Licensor waives and/or agrees not to assert any right or
+ authority to forbid You from making technical modifications necessary to
+ exercise the Licensed Rights, including technical modifications necessary to
+ circumvent Effective Technological Measures. For purposes of this Public
+ License, simply making modifications authorized by this Section 2(a)(4) never
+ produces Adapted Material.  Downstream recipients.  Offer from the Licensor –
+ Licensed Material. Every recipient of the Licensed Material automatically
+ receives an offer from the Licensor to exercise the Licensed Rights under the
+ terms and conditions of this Public License.  No downstream restrictions. You
+ may not offer or impose any additional or different terms or conditions on, or
+ apply any Effective Technological Measures to, the Licensed Material if doing
+ so restricts exercise of the Licensed Rights by any recipient of the Licensed
+ Material.  No endorsement. Nothing in this Public License constitutes or may be
+ construed as permission to assert or imply that You are, or that Your use of
+ the Licensed Material is, connected with, or sponsored, endorsed, or granted
+ official status by, the Licensor or others designated to receive attribution as
+ provided in Section 3(a)(1)(A)(i).  Other rights.
+ .
+ Moral rights, such as the right of integrity, are not licensed under this
+ Public License, nor are publicity, privacy, and/or other similar personality
+ rights; however, to the extent possible, the Licensor waives and/or agrees not
+ to assert any such rights held by the Licensor to the limited extent necessary
+ to allow You to exercise the Licensed Rights, but not otherwise.  Patent and
+ trademark rights are not licensed under this Public License.  To the extent
+ possible, the Licensor waives any right to collect royalties from You for the
+ exercise of the Licensed Rights, whether directly or through a collecting
+ society under any voluntary or waivable statutory or compulsory licensing
+ scheme. In all other cases the Licensor expressly reserves any right to collect
+ such royalties. 
+ .
+ Section 3 – License Conditions.
+ .
+ Your exercise of the Licensed Rights is expressly made subject to the following
+ conditions.
+ .
+ Attribution.
+ .
+ If You Share the Licensed Material (including in modified form), You must:
+ .
+ retain the following if it is supplied by the Licensor with the Licensed
+ Material: identification of the creator(s) of the Licensed Material and any
+ others designated to receive attribution, in any reasonable manner requested by
+ the Licensor (including by pseudonym if designated); a copyright notice; a
+ notice that refers to this Public License; a notice that refers to the
+ disclaimer of warranties; a URI or hyperlink to the Licensed Material to the
+ extent reasonably practicable; indicate if You modified the Licensed Material
+ and retain an indication of any previous modifications; and indicate the
+ Licensed Material is licensed under this Public License, and include the text
+ of, or the URI or hyperlink to, this Public License.  You may satisfy the
+ conditions in Section 3(a)(1) in any reasonable manner based on the medium,
+ means, and context in which You Share the Licensed Material. For example, it
+ may be reasonable to satisfy the conditions by providing a URI or hyperlink to
+ a resource that includes the required information.  If requested by the
+ Licensor, You must remove any of the information required by Section 3(a)(1)(A)
+ to the extent reasonably practicable.  If You Share Adapted Material You
+ produce, the Adapter's License You apply must not prevent recipients of the
+ Adapted Material from complying with this Public License.
+ .
+ Section 4 – Sui Generis Database Rights.
+ .
+ Where the Licensed Rights include Sui Generis Database Rights that apply to
+ Your use of the Licensed Material:
+ .
+ for the avoidance of doubt, Section 2(a)(1) grants You the right to extract,
+ reuse, reproduce, and Share all or a substantial portion of the contents of
+ the database; if You include all or a substantial portion of the database
+ contents in a database in which You have Sui Generis Database Rights, then
+ the database in which You have Sui Generis Database Rights (but not its
+ individual contents) is Adapted Material; and You must comply with the
+ conditions in Section 3(a) if You Share all or a substantial portion of the
+ contents of the database.  For the avoidance of doubt, this Section 4
+ supplements and does not replace Your obligations under this Public License
+ where the Licensed Rights include other Copyright and Similar Rights.
+ .
+ Section 5 – Disclaimer of Warranties and Limitation of Liability.
+ .
+ Unless otherwise separately undertaken by the Licensor, to the extent possible,
+ the Licensor offers the Licensed Material as-is and as-available, and makes no
+ representations or warranties of any kind concerning the Licensed Material,
+ whether express, implied, statutory, or other. This includes, without
+ limitation, warranties of title, merchantability, fitness for a particular
+ purpose, non-infringement, absence of latent or other defects, accuracy, or the
+ presence or absence of errors, whether or not known or discoverable. Where
+ disclaimers of warranties are not allowed in full or in part, this disclaimer
+ may not apply to You.  To the extent possible, in no event will the Licensor be
+ liable to You on any legal theory (including, without limitation, negligence)
+ or otherwise for any direct, special, indirect, incidental, consequential,
+ punitive, exemplary, or other losses, costs, expenses, or damages arising out
+ of this Public License or use of the Licensed Material, even if the Licensor
+ has been advised of the possibility of such losses, costs, expenses, or
+ damages. Where a limitation of liability is not allowed in full or in part,
+ this limitation may not apply to You.  The disclaimer of warranties and
+ limitation of liability provided above shall be interpreted in a manner that,
+ to the extent possible, most closely approximates an absolute disclaimer and
+ waiver of all liability.
+ .
+ Section 6 – Term and Termination.
+ .
+ This Public License applies for the term of the Copyright and Similar Rights
+ licensed here. However, if You fail to comply with this Public License, then
+ Your rights under this Public License terminate automatically.  Where Your
+ right to use the Licensed Material has terminated under Section 6(a), it
+ reinstates:
+ .
+ automatically as of the date the violation is cured, provided it is cured
+ within 30 days of Your discovery of the violation; or upon express
+ reinstatement by the Licensor.  For the avoidance of doubt, this Section 6(b)
+ does not affect any right the Licensor may have to seek remedies for Your
+ violations of this Public License.  For the avoidance of doubt, the Licensor
+ may also offer the Licensed Material under separate terms or conditions or stop
+ distributing the Licensed Material at any time; however, doing so will not
+ terminate this Public License.  Sections 1, 5, 6, 7, and 8 survive termination
+ of this Public License.
+ .
+ Section 7 – Other Terms and Conditions.
+ .
+ The Licensor shall not be bound by any additional or different terms or
+ conditions communicated by You unless expressly agreed.  Any arrangements,
+ understandings, or agreements regarding the Licensed Material not stated herein
+ are separate from and independent of the terms and conditions of this Public
+ License.
+ .
+ Section 8 – Interpretation.
+ .
+ For the avoidance of doubt, this Public License does not, and shall not be
+ interpreted to, reduce, limit, restrict, or impose conditions on any use of the
+ Licensed Material that could lawfully be made without permission under this
+ Public License.  To the extent possible, if any provision of this Public
+ License is deemed unenforceable, it shall be automatically reformed to the
+ minimum extent necessary to make it enforceable. If the provision cannot be
+ reformed, it shall be severed from this Public License without affecting the
+ enforceability of the remaining terms and conditions.  No term or condition of
+ this Public License will be waived and no failure to comply consented to unless
+ expressly agreed to by the Licensor.  Nothing in this Public License
+ constitutes or may be interpreted as a limitation upon, or waiver of, any
+ privileges and immunities that apply to the Licensor or You, including from the
+ legal processes of any jurisdiction or authority.
diff --git a/debian/flatbuffers-compiler-dev.install b/debian/flatbuffers-compiler-dev.install
new file mode 100644
index 0000000..a728bcd
--- /dev/null
+++ b/debian/flatbuffers-compiler-dev.install
@@ -0,0 +1 @@
+usr/lib/*/cmake/flatbuffers/Flatc*
diff --git a/debian/flatbuffers-compiler.install b/debian/flatbuffers-compiler.install
new file mode 100644
index 0000000..4a33870
--- /dev/null
+++ b/debian/flatbuffers-compiler.install
@@ -0,0 +1 @@
+usr/bin/flatc
diff --git a/debian/flatbuffers-compiler.lintian-overrides b/debian/flatbuffers-compiler.lintian-overrides
new file mode 100644
index 0000000..d8b0e88
--- /dev/null
+++ b/debian/flatbuffers-compiler.lintian-overrides
@@ -0,0 +1 @@
+no-manual-page [usr/bin/flatc]
diff --git a/debian/gbp.conf b/debian/gbp.conf
new file mode 100644
index 0000000..2799d18
--- /dev/null
+++ b/debian/gbp.conf
@@ -0,0 +1,4 @@
+[DEFAULT]
+
+debian-branch = debian/master
+pristine-tar = false
diff --git a/debian/gitlab-ci.yml b/debian/gitlab-ci.yml
new file mode 100644
index 0000000..0aee5b4
--- /dev/null
+++ b/debian/gitlab-ci.yml
@@ -0,0 +1,8 @@
+include:
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
+
+variables:
+  SALSA_CI_DISABLE_MISSING_BREAKS: 0
+  SALSA_CI_DISABLE_RC_BUGS: 0
+  SALSA_CI_DISABLE_REPROTEST: 1
diff --git a/debian/libflatbuffers-dev.install b/debian/libflatbuffers-dev.install
new file mode 100644
index 0000000..78fcdf2
--- /dev/null
+++ b/debian/libflatbuffers-dev.install
@@ -0,0 +1,8 @@
+usr/include/flatbuffers/
+usr/lib/*/cmake/flatbuffers/FlatBuffers*
+usr/lib/*/cmake/flatbuffers/BuildFlatBuffers.cmake
+usr/lib/*/cmake/flatbuffers/flatbuffers-config-version.cmake
+usr/lib/*/cmake/flatbuffers/flatbuffers-config.cmake
+usr/lib/*/libflatbuffers.a
+usr/lib/*/libflatbuffers.so
+usr/lib/*/pkgconfig
diff --git a/debian/libflatbuffers23.5.26.install b/debian/libflatbuffers23.5.26.install
new file mode 100644
index 0000000..6b76488
--- /dev/null
+++ b/debian/libflatbuffers23.5.26.install
@@ -0,0 +1,2 @@
+# usr/lib/*/libflatbuffers.so.23
+usr/lib/*/libflatbuffers.so.23.*
diff --git a/debian/missing-sources/tests/ts/my-game/example/monster.js b/debian/missing-sources/tests/ts/my-game/example/monster.js
new file mode 100644
index 0000000..6d71945
--- /dev/null
+++ b/debian/missing-sources/tests/ts/my-game/example/monster.js
@@ -0,0 +1,1269 @@
+// automatically generated by the FlatBuffers compiler, do not modify
+import * as flatbuffers from 'flatbuffers';
+import { Ability } from '../../my-game/example/ability.js';
+import { Any, unionToAny } from '../../my-game/example/any.js';
+import { AnyAmbiguousAliases, unionToAnyAmbiguousAliases } from '../../my-game/example/any-ambiguous-aliases.js';
+import { AnyUniqueAliases, unionToAnyUniqueAliases } from '../../my-game/example/any-unique-aliases.js';
+import { Color } from '../../my-game/example/color.js';
+import { Race } from '../../my-game/example/race.js';
+import { Referrable } from '../../my-game/example/referrable.js';
+import { Stat } from '../../my-game/example/stat.js';
+import { Test } from '../../my-game/example/test.js';
+import { Vec3 } from '../../my-game/example/vec3.js';
+import { InParentNamespace } from '../../my-game/in-parent-namespace.js';
+/**
+ * an example documentation comment: "monster object"
+ */
+export class Monster {
+    constructor() {
+        this.bb = null;
+        this.bb_pos = 0;
+    }
+    __init(i, bb) {
+        this.bb_pos = i;
+        this.bb = bb;
+        return this;
+    }
+    static getRootAsMonster(bb, obj) {
+        return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
+    }
+    static getSizePrefixedRootAsMonster(bb, obj) {
+        bb.setPosition(bb.position() + flatbuffers.SIZE_PREFIX_LENGTH);
+        return (obj || new Monster()).__init(bb.readInt32(bb.position()) + bb.position(), bb);
+    }
+    static bufferHasIdentifier(bb) {
+        return bb.__has_identifier('MONS');
+    }
+    pos(obj) {
+        const offset = this.bb.__offset(this.bb_pos, 4);
+        return offset ? (obj || new Vec3()).__init(this.bb_pos + offset, this.bb) : null;
+    }
+    mana() {
+        const offset = this.bb.__offset(this.bb_pos, 6);
+        return offset ? this.bb.readInt16(this.bb_pos + offset) : 150;
+    }
+    mutate_mana(value) {
+        const offset = this.bb.__offset(this.bb_pos, 6);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeInt16(this.bb_pos + offset, value);
+        return true;
+    }
+    hp() {
+        const offset = this.bb.__offset(this.bb_pos, 8);
+        return offset ? this.bb.readInt16(this.bb_pos + offset) : 100;
+    }
+    mutate_hp(value) {
+        const offset = this.bb.__offset(this.bb_pos, 8);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeInt16(this.bb_pos + offset, value);
+        return true;
+    }
+    name(optionalEncoding) {
+        const offset = this.bb.__offset(this.bb_pos, 10);
+        return offset ? this.bb.__string(this.bb_pos + offset, optionalEncoding) : null;
+    }
+    inventory(index) {
+        const offset = this.bb.__offset(this.bb_pos, 14);
+        return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0;
+    }
+    inventoryLength() {
+        const offset = this.bb.__offset(this.bb_pos, 14);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    inventoryArray() {
+        const offset = this.bb.__offset(this.bb_pos, 14);
+        return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
+    }
+    color() {
+        const offset = this.bb.__offset(this.bb_pos, 16);
+        return offset ? this.bb.readUint8(this.bb_pos + offset) : Color.Blue;
+    }
+    mutate_color(value) {
+        const offset = this.bb.__offset(this.bb_pos, 16);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeUint8(this.bb_pos + offset, value);
+        return true;
+    }
+    testType() {
+        const offset = this.bb.__offset(this.bb_pos, 18);
+        return offset ? this.bb.readUint8(this.bb_pos + offset) : Any.NONE;
+    }
+    test(obj) {
+        const offset = this.bb.__offset(this.bb_pos, 20);
+        return offset ? this.bb.__union(obj, this.bb_pos + offset) : null;
+    }
+    test4(index, obj) {
+        const offset = this.bb.__offset(this.bb_pos, 22);
+        return offset ? (obj || new Test()).__init(this.bb.__vector(this.bb_pos + offset) + index * 4, this.bb) : null;
+    }
+    test4Length() {
+        const offset = this.bb.__offset(this.bb_pos, 22);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    testarrayofstring(index, optionalEncoding) {
+        const offset = this.bb.__offset(this.bb_pos, 24);
+        return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null;
+    }
+    testarrayofstringLength() {
+        const offset = this.bb.__offset(this.bb_pos, 24);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    /**
+     * an example documentation comment: this will end up in the generated code
+     * multiline too
+     */
+    testarrayoftables(index, obj) {
+        const offset = this.bb.__offset(this.bb_pos, 26);
+        return offset ? (obj || new Monster()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
+    }
+    testarrayoftablesLength() {
+        const offset = this.bb.__offset(this.bb_pos, 26);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    enemy(obj) {
+        const offset = this.bb.__offset(this.bb_pos, 28);
+        return offset ? (obj || new Monster()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;
+    }
+    testnestedflatbuffer(index) {
+        const offset = this.bb.__offset(this.bb_pos, 30);
+        return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0;
+    }
+    testnestedflatbufferLength() {
+        const offset = this.bb.__offset(this.bb_pos, 30);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    testnestedflatbufferArray() {
+        const offset = this.bb.__offset(this.bb_pos, 30);
+        return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
+    }
+    testempty(obj) {
+        const offset = this.bb.__offset(this.bb_pos, 32);
+        return offset ? (obj || new Stat()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;
+    }
+    testbool() {
+        const offset = this.bb.__offset(this.bb_pos, 34);
+        return offset ? !!this.bb.readInt8(this.bb_pos + offset) : false;
+    }
+    mutate_testbool(value) {
+        const offset = this.bb.__offset(this.bb_pos, 34);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeInt8(this.bb_pos + offset, +value);
+        return true;
+    }
+    testhashs32Fnv1() {
+        const offset = this.bb.__offset(this.bb_pos, 36);
+        return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
+    }
+    mutate_testhashs32_fnv1(value) {
+        const offset = this.bb.__offset(this.bb_pos, 36);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeInt32(this.bb_pos + offset, value);
+        return true;
+    }
+    testhashu32Fnv1() {
+        const offset = this.bb.__offset(this.bb_pos, 38);
+        return offset ? this.bb.readUint32(this.bb_pos + offset) : 0;
+    }
+    mutate_testhashu32_fnv1(value) {
+        const offset = this.bb.__offset(this.bb_pos, 38);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeUint32(this.bb_pos + offset, value);
+        return true;
+    }
+    testhashs64Fnv1() {
+        const offset = this.bb.__offset(this.bb_pos, 40);
+        return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('0');
+    }
+    mutate_testhashs64_fnv1(value) {
+        const offset = this.bb.__offset(this.bb_pos, 40);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeInt64(this.bb_pos + offset, value);
+        return true;
+    }
+    testhashu64Fnv1() {
+        const offset = this.bb.__offset(this.bb_pos, 42);
+        return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0');
+    }
+    mutate_testhashu64_fnv1(value) {
+        const offset = this.bb.__offset(this.bb_pos, 42);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeUint64(this.bb_pos + offset, value);
+        return true;
+    }
+    testhashs32Fnv1a() {
+        const offset = this.bb.__offset(this.bb_pos, 44);
+        return offset ? this.bb.readInt32(this.bb_pos + offset) : 0;
+    }
+    mutate_testhashs32_fnv1a(value) {
+        const offset = this.bb.__offset(this.bb_pos, 44);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeInt32(this.bb_pos + offset, value);
+        return true;
+    }
+    testhashu32Fnv1a() {
+        const offset = this.bb.__offset(this.bb_pos, 46);
+        return offset ? this.bb.readUint32(this.bb_pos + offset) : 0;
+    }
+    mutate_testhashu32_fnv1a(value) {
+        const offset = this.bb.__offset(this.bb_pos, 46);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeUint32(this.bb_pos + offset, value);
+        return true;
+    }
+    testhashs64Fnv1a() {
+        const offset = this.bb.__offset(this.bb_pos, 48);
+        return offset ? this.bb.readInt64(this.bb_pos + offset) : BigInt('0');
+    }
+    mutate_testhashs64_fnv1a(value) {
+        const offset = this.bb.__offset(this.bb_pos, 48);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeInt64(this.bb_pos + offset, value);
+        return true;
+    }
+    testhashu64Fnv1a() {
+        const offset = this.bb.__offset(this.bb_pos, 50);
+        return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0');
+    }
+    mutate_testhashu64_fnv1a(value) {
+        const offset = this.bb.__offset(this.bb_pos, 50);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeUint64(this.bb_pos + offset, value);
+        return true;
+    }
+    testarrayofbools(index) {
+        const offset = this.bb.__offset(this.bb_pos, 52);
+        return offset ? !!this.bb.readInt8(this.bb.__vector(this.bb_pos + offset) + index) : false;
+    }
+    testarrayofboolsLength() {
+        const offset = this.bb.__offset(this.bb_pos, 52);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    testarrayofboolsArray() {
+        const offset = this.bb.__offset(this.bb_pos, 52);
+        return offset ? new Int8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
+    }
+    testf() {
+        const offset = this.bb.__offset(this.bb_pos, 54);
+        return offset ? this.bb.readFloat32(this.bb_pos + offset) : 3.14159;
+    }
+    mutate_testf(value) {
+        const offset = this.bb.__offset(this.bb_pos, 54);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeFloat32(this.bb_pos + offset, value);
+        return true;
+    }
+    testf2() {
+        const offset = this.bb.__offset(this.bb_pos, 56);
+        return offset ? this.bb.readFloat32(this.bb_pos + offset) : 3.0;
+    }
+    mutate_testf2(value) {
+        const offset = this.bb.__offset(this.bb_pos, 56);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeFloat32(this.bb_pos + offset, value);
+        return true;
+    }
+    testf3() {
+        const offset = this.bb.__offset(this.bb_pos, 58);
+        return offset ? this.bb.readFloat32(this.bb_pos + offset) : 0.0;
+    }
+    mutate_testf3(value) {
+        const offset = this.bb.__offset(this.bb_pos, 58);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeFloat32(this.bb_pos + offset, value);
+        return true;
+    }
+    testarrayofstring2(index, optionalEncoding) {
+        const offset = this.bb.__offset(this.bb_pos, 60);
+        return offset ? this.bb.__string(this.bb.__vector(this.bb_pos + offset) + index * 4, optionalEncoding) : null;
+    }
+    testarrayofstring2Length() {
+        const offset = this.bb.__offset(this.bb_pos, 60);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    testarrayofsortedstruct(index, obj) {
+        const offset = this.bb.__offset(this.bb_pos, 62);
+        return offset ? (obj || new Ability()).__init(this.bb.__vector(this.bb_pos + offset) + index * 8, this.bb) : null;
+    }
+    testarrayofsortedstructLength() {
+        const offset = this.bb.__offset(this.bb_pos, 62);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    flex(index) {
+        const offset = this.bb.__offset(this.bb_pos, 64);
+        return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0;
+    }
+    flexLength() {
+        const offset = this.bb.__offset(this.bb_pos, 64);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    flexArray() {
+        const offset = this.bb.__offset(this.bb_pos, 64);
+        return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
+    }
+    test5(index, obj) {
+        const offset = this.bb.__offset(this.bb_pos, 66);
+        return offset ? (obj || new Test()).__init(this.bb.__vector(this.bb_pos + offset) + index * 4, this.bb) : null;
+    }
+    test5Length() {
+        const offset = this.bb.__offset(this.bb_pos, 66);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    vectorOfLongs(index) {
+        const offset = this.bb.__offset(this.bb_pos, 68);
+        return offset ? this.bb.readInt64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0);
+    }
+    vectorOfLongsLength() {
+        const offset = this.bb.__offset(this.bb_pos, 68);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    vectorOfDoubles(index) {
+        const offset = this.bb.__offset(this.bb_pos, 70);
+        return offset ? this.bb.readFloat64(this.bb.__vector(this.bb_pos + offset) + index * 8) : 0;
+    }
+    vectorOfDoublesLength() {
+        const offset = this.bb.__offset(this.bb_pos, 70);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    vectorOfDoublesArray() {
+        const offset = this.bb.__offset(this.bb_pos, 70);
+        return offset ? new Float64Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
+    }
+    parentNamespaceTest(obj) {
+        const offset = this.bb.__offset(this.bb_pos, 72);
+        return offset ? (obj || new InParentNamespace()).__init(this.bb.__indirect(this.bb_pos + offset), this.bb) : null;
+    }
+    vectorOfReferrables(index, obj) {
+        const offset = this.bb.__offset(this.bb_pos, 74);
+        return offset ? (obj || new Referrable()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
+    }
+    vectorOfReferrablesLength() {
+        const offset = this.bb.__offset(this.bb_pos, 74);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    singleWeakReference() {
+        const offset = this.bb.__offset(this.bb_pos, 76);
+        return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0');
+    }
+    mutate_single_weak_reference(value) {
+        const offset = this.bb.__offset(this.bb_pos, 76);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeUint64(this.bb_pos + offset, value);
+        return true;
+    }
+    vectorOfWeakReferences(index) {
+        const offset = this.bb.__offset(this.bb_pos, 78);
+        return offset ? this.bb.readUint64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0);
+    }
+    vectorOfWeakReferencesLength() {
+        const offset = this.bb.__offset(this.bb_pos, 78);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    vectorOfStrongReferrables(index, obj) {
+        const offset = this.bb.__offset(this.bb_pos, 80);
+        return offset ? (obj || new Referrable()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
+    }
+    vectorOfStrongReferrablesLength() {
+        const offset = this.bb.__offset(this.bb_pos, 80);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    coOwningReference() {
+        const offset = this.bb.__offset(this.bb_pos, 82);
+        return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0');
+    }
+    mutate_co_owning_reference(value) {
+        const offset = this.bb.__offset(this.bb_pos, 82);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeUint64(this.bb_pos + offset, value);
+        return true;
+    }
+    vectorOfCoOwningReferences(index) {
+        const offset = this.bb.__offset(this.bb_pos, 84);
+        return offset ? this.bb.readUint64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0);
+    }
+    vectorOfCoOwningReferencesLength() {
+        const offset = this.bb.__offset(this.bb_pos, 84);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    nonOwningReference() {
+        const offset = this.bb.__offset(this.bb_pos, 86);
+        return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0');
+    }
+    mutate_non_owning_reference(value) {
+        const offset = this.bb.__offset(this.bb_pos, 86);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeUint64(this.bb_pos + offset, value);
+        return true;
+    }
+    vectorOfNonOwningReferences(index) {
+        const offset = this.bb.__offset(this.bb_pos, 88);
+        return offset ? this.bb.readUint64(this.bb.__vector(this.bb_pos + offset) + index * 8) : BigInt(0);
+    }
+    vectorOfNonOwningReferencesLength() {
+        const offset = this.bb.__offset(this.bb_pos, 88);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    anyUniqueType() {
+        const offset = this.bb.__offset(this.bb_pos, 90);
+        return offset ? this.bb.readUint8(this.bb_pos + offset) : AnyUniqueAliases.NONE;
+    }
+    anyUnique(obj) {
+        const offset = this.bb.__offset(this.bb_pos, 92);
+        return offset ? this.bb.__union(obj, this.bb_pos + offset) : null;
+    }
+    anyAmbiguousType() {
+        const offset = this.bb.__offset(this.bb_pos, 94);
+        return offset ? this.bb.readUint8(this.bb_pos + offset) : AnyAmbiguousAliases.NONE;
+    }
+    anyAmbiguous(obj) {
+        const offset = this.bb.__offset(this.bb_pos, 96);
+        return offset ? this.bb.__union(obj, this.bb_pos + offset) : null;
+    }
+    vectorOfEnums(index) {
+        const offset = this.bb.__offset(this.bb_pos, 98);
+        return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0;
+    }
+    vectorOfEnumsLength() {
+        const offset = this.bb.__offset(this.bb_pos, 98);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    vectorOfEnumsArray() {
+        const offset = this.bb.__offset(this.bb_pos, 98);
+        return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
+    }
+    signedEnum() {
+        const offset = this.bb.__offset(this.bb_pos, 100);
+        return offset ? this.bb.readInt8(this.bb_pos + offset) : Race.None;
+    }
+    mutate_signed_enum(value) {
+        const offset = this.bb.__offset(this.bb_pos, 100);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeInt8(this.bb_pos + offset, value);
+        return true;
+    }
+    testrequirednestedflatbuffer(index) {
+        const offset = this.bb.__offset(this.bb_pos, 102);
+        return offset ? this.bb.readUint8(this.bb.__vector(this.bb_pos + offset) + index) : 0;
+    }
+    testrequirednestedflatbufferLength() {
+        const offset = this.bb.__offset(this.bb_pos, 102);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    testrequirednestedflatbufferArray() {
+        const offset = this.bb.__offset(this.bb_pos, 102);
+        return offset ? new Uint8Array(this.bb.bytes().buffer, this.bb.bytes().byteOffset + this.bb.__vector(this.bb_pos + offset), this.bb.__vector_len(this.bb_pos + offset)) : null;
+    }
+    scalarKeySortedTables(index, obj) {
+        const offset = this.bb.__offset(this.bb_pos, 104);
+        return offset ? (obj || new Stat()).__init(this.bb.__indirect(this.bb.__vector(this.bb_pos + offset) + index * 4), this.bb) : null;
+    }
+    scalarKeySortedTablesLength() {
+        const offset = this.bb.__offset(this.bb_pos, 104);
+        return offset ? this.bb.__vector_len(this.bb_pos + offset) : 0;
+    }
+    nativeInline(obj) {
+        const offset = this.bb.__offset(this.bb_pos, 106);
+        return offset ? (obj || new Test()).__init(this.bb_pos + offset, this.bb) : null;
+    }
+    longEnumNonEnumDefault() {
+        const offset = this.bb.__offset(this.bb_pos, 108);
+        return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('0');
+    }
+    mutate_long_enum_non_enum_default(value) {
+        const offset = this.bb.__offset(this.bb_pos, 108);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeUint64(this.bb_pos + offset, value);
+        return true;
+    }
+    longEnumNormalDefault() {
+        const offset = this.bb.__offset(this.bb_pos, 110);
+        return offset ? this.bb.readUint64(this.bb_pos + offset) : BigInt('2');
+    }
+    mutate_long_enum_normal_default(value) {
+        const offset = this.bb.__offset(this.bb_pos, 110);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeUint64(this.bb_pos + offset, value);
+        return true;
+    }
+    nanDefault() {
+        const offset = this.bb.__offset(this.bb_pos, 112);
+        return offset ? this.bb.readFloat32(this.bb_pos + offset) : NaN;
+    }
+    mutate_nan_default(value) {
+        const offset = this.bb.__offset(this.bb_pos, 112);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeFloat32(this.bb_pos + offset, value);
+        return true;
+    }
+    infDefault() {
+        const offset = this.bb.__offset(this.bb_pos, 114);
+        return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity;
+    }
+    mutate_inf_default(value) {
+        const offset = this.bb.__offset(this.bb_pos, 114);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeFloat32(this.bb_pos + offset, value);
+        return true;
+    }
+    positiveInfDefault() {
+        const offset = this.bb.__offset(this.bb_pos, 116);
+        return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity;
+    }
+    mutate_positive_inf_default(value) {
+        const offset = this.bb.__offset(this.bb_pos, 116);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeFloat32(this.bb_pos + offset, value);
+        return true;
+    }
+    infinityDefault() {
+        const offset = this.bb.__offset(this.bb_pos, 118);
+        return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity;
+    }
+    mutate_infinity_default(value) {
+        const offset = this.bb.__offset(this.bb_pos, 118);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeFloat32(this.bb_pos + offset, value);
+        return true;
+    }
+    positiveInfinityDefault() {
+        const offset = this.bb.__offset(this.bb_pos, 120);
+        return offset ? this.bb.readFloat32(this.bb_pos + offset) : Infinity;
+    }
+    mutate_positive_infinity_default(value) {
+        const offset = this.bb.__offset(this.bb_pos, 120);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeFloat32(this.bb_pos + offset, value);
+        return true;
+    }
+    negativeInfDefault() {
+        const offset = this.bb.__offset(this.bb_pos, 122);
+        return offset ? this.bb.readFloat32(this.bb_pos + offset) : -Infinity;
+    }
+    mutate_negative_inf_default(value) {
+        const offset = this.bb.__offset(this.bb_pos, 122);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeFloat32(this.bb_pos + offset, value);
+        return true;
+    }
+    negativeInfinityDefault() {
+        const offset = this.bb.__offset(this.bb_pos, 124);
+        return offset ? this.bb.readFloat32(this.bb_pos + offset) : -Infinity;
+    }
+    mutate_negative_infinity_default(value) {
+        const offset = this.bb.__offset(this.bb_pos, 124);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeFloat32(this.bb_pos + offset, value);
+        return true;
+    }
+    doubleInfDefault() {
+        const offset = this.bb.__offset(this.bb_pos, 126);
+        return offset ? this.bb.readFloat64(this.bb_pos + offset) : Infinity;
+    }
+    mutate_double_inf_default(value) {
+        const offset = this.bb.__offset(this.bb_pos, 126);
+        if (offset === 0) {
+            return false;
+        }
+        this.bb.writeFloat64(this.bb_pos + offset, value);
+        return true;
+    }
+    static getFullyQualifiedName() {
+        return 'MyGame.Example.Monster';
+    }
+    static startMonster(builder) {
+        builder.startObject(62);
+    }
+    static addPos(builder, posOffset) {
+        builder.addFieldStruct(0, posOffset, 0);
+    }
+    static addMana(builder, mana) {
+        builder.addFieldInt16(1, mana, 150);
+    }
+    static addHp(builder, hp) {
+        builder.addFieldInt16(2, hp, 100);
+    }
+    static addName(builder, nameOffset) {
+        builder.addFieldOffset(3, nameOffset, 0);
+    }
+    static addInventory(builder, inventoryOffset) {
+        builder.addFieldOffset(5, inventoryOffset, 0);
+    }
+    static createInventoryVector(builder, data) {
+        builder.startVector(1, data.length, 1);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addInt8(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startInventoryVector(builder, numElems) {
+        builder.startVector(1, numElems, 1);
+    }
+    static addColor(builder, color) {
+        builder.addFieldInt8(6, color, Color.Blue);
+    }
+    static addTestType(builder, testType) {
+        builder.addFieldInt8(7, testType, Any.NONE);
+    }
+    static addTest(builder, testOffset) {
+        builder.addFieldOffset(8, testOffset, 0);
+    }
+    static addTest4(builder, test4Offset) {
+        builder.addFieldOffset(9, test4Offset, 0);
+    }
+    static startTest4Vector(builder, numElems) {
+        builder.startVector(4, numElems, 2);
+    }
+    static addTestarrayofstring(builder, testarrayofstringOffset) {
+        builder.addFieldOffset(10, testarrayofstringOffset, 0);
+    }
+    static createTestarrayofstringVector(builder, data) {
+        builder.startVector(4, data.length, 4);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addOffset(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startTestarrayofstringVector(builder, numElems) {
+        builder.startVector(4, numElems, 4);
+    }
+    static addTestarrayoftables(builder, testarrayoftablesOffset) {
+        builder.addFieldOffset(11, testarrayoftablesOffset, 0);
+    }
+    static createTestarrayoftablesVector(builder, data) {
+        builder.startVector(4, data.length, 4);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addOffset(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startTestarrayoftablesVector(builder, numElems) {
+        builder.startVector(4, numElems, 4);
+    }
+    static addEnemy(builder, enemyOffset) {
+        builder.addFieldOffset(12, enemyOffset, 0);
+    }
+    static addTestnestedflatbuffer(builder, testnestedflatbufferOffset) {
+        builder.addFieldOffset(13, testnestedflatbufferOffset, 0);
+    }
+    static createTestnestedflatbufferVector(builder, data) {
+        builder.startVector(1, data.length, 1);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addInt8(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startTestnestedflatbufferVector(builder, numElems) {
+        builder.startVector(1, numElems, 1);
+    }
+    static addTestempty(builder, testemptyOffset) {
+        builder.addFieldOffset(14, testemptyOffset, 0);
+    }
+    static addTestbool(builder, testbool) {
+        builder.addFieldInt8(15, +testbool, +false);
+    }
+    static addTesthashs32Fnv1(builder, testhashs32Fnv1) {
+        builder.addFieldInt32(16, testhashs32Fnv1, 0);
+    }
+    static addTesthashu32Fnv1(builder, testhashu32Fnv1) {
+        builder.addFieldInt32(17, testhashu32Fnv1, 0);
+    }
+    static addTesthashs64Fnv1(builder, testhashs64Fnv1) {
+        builder.addFieldInt64(18, testhashs64Fnv1, BigInt('0'));
+    }
+    static addTesthashu64Fnv1(builder, testhashu64Fnv1) {
+        builder.addFieldInt64(19, testhashu64Fnv1, BigInt('0'));
+    }
+    static addTesthashs32Fnv1a(builder, testhashs32Fnv1a) {
+        builder.addFieldInt32(20, testhashs32Fnv1a, 0);
+    }
+    static addTesthashu32Fnv1a(builder, testhashu32Fnv1a) {
+        builder.addFieldInt32(21, testhashu32Fnv1a, 0);
+    }
+    static addTesthashs64Fnv1a(builder, testhashs64Fnv1a) {
+        builder.addFieldInt64(22, testhashs64Fnv1a, BigInt('0'));
+    }
+    static addTesthashu64Fnv1a(builder, testhashu64Fnv1a) {
+        builder.addFieldInt64(23, testhashu64Fnv1a, BigInt('0'));
+    }
+    static addTestarrayofbools(builder, testarrayofboolsOffset) {
+        builder.addFieldOffset(24, testarrayofboolsOffset, 0);
+    }
+    static createTestarrayofboolsVector(builder, data) {
+        builder.startVector(1, data.length, 1);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addInt8(+data[i]);
+        }
+        return builder.endVector();
+    }
+    static startTestarrayofboolsVector(builder, numElems) {
+        builder.startVector(1, numElems, 1);
+    }
+    static addTestf(builder, testf) {
+        builder.addFieldFloat32(25, testf, 3.14159);
+    }
+    static addTestf2(builder, testf2) {
+        builder.addFieldFloat32(26, testf2, 3.0);
+    }
+    static addTestf3(builder, testf3) {
+        builder.addFieldFloat32(27, testf3, 0.0);
+    }
+    static addTestarrayofstring2(builder, testarrayofstring2Offset) {
+        builder.addFieldOffset(28, testarrayofstring2Offset, 0);
+    }
+    static createTestarrayofstring2Vector(builder, data) {
+        builder.startVector(4, data.length, 4);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addOffset(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startTestarrayofstring2Vector(builder, numElems) {
+        builder.startVector(4, numElems, 4);
+    }
+    static addTestarrayofsortedstruct(builder, testarrayofsortedstructOffset) {
+        builder.addFieldOffset(29, testarrayofsortedstructOffset, 0);
+    }
+    static startTestarrayofsortedstructVector(builder, numElems) {
+        builder.startVector(8, numElems, 4);
+    }
+    static addFlex(builder, flexOffset) {
+        builder.addFieldOffset(30, flexOffset, 0);
+    }
+    static createFlexVector(builder, data) {
+        builder.startVector(1, data.length, 1);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addInt8(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startFlexVector(builder, numElems) {
+        builder.startVector(1, numElems, 1);
+    }
+    static addTest5(builder, test5Offset) {
+        builder.addFieldOffset(31, test5Offset, 0);
+    }
+    static startTest5Vector(builder, numElems) {
+        builder.startVector(4, numElems, 2);
+    }
+    static addVectorOfLongs(builder, vectorOfLongsOffset) {
+        builder.addFieldOffset(32, vectorOfLongsOffset, 0);
+    }
+    static createVectorOfLongsVector(builder, data) {
+        builder.startVector(8, data.length, 8);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addInt64(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startVectorOfLongsVector(builder, numElems) {
+        builder.startVector(8, numElems, 8);
+    }
+    static addVectorOfDoubles(builder, vectorOfDoublesOffset) {
+        builder.addFieldOffset(33, vectorOfDoublesOffset, 0);
+    }
+    static createVectorOfDoublesVector(builder, data) {
+        builder.startVector(8, data.length, 8);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addFloat64(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startVectorOfDoublesVector(builder, numElems) {
+        builder.startVector(8, numElems, 8);
+    }
+    static addParentNamespaceTest(builder, parentNamespaceTestOffset) {
+        builder.addFieldOffset(34, parentNamespaceTestOffset, 0);
+    }
+    static addVectorOfReferrables(builder, vectorOfReferrablesOffset) {
+        builder.addFieldOffset(35, vectorOfReferrablesOffset, 0);
+    }
+    static createVectorOfReferrablesVector(builder, data) {
+        builder.startVector(4, data.length, 4);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addOffset(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startVectorOfReferrablesVector(builder, numElems) {
+        builder.startVector(4, numElems, 4);
+    }
+    static addSingleWeakReference(builder, singleWeakReference) {
+        builder.addFieldInt64(36, singleWeakReference, BigInt('0'));
+    }
+    static addVectorOfWeakReferences(builder, vectorOfWeakReferencesOffset) {
+        builder.addFieldOffset(37, vectorOfWeakReferencesOffset, 0);
+    }
+    static createVectorOfWeakReferencesVector(builder, data) {
+        builder.startVector(8, data.length, 8);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addInt64(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startVectorOfWeakReferencesVector(builder, numElems) {
+        builder.startVector(8, numElems, 8);
+    }
+    static addVectorOfStrongReferrables(builder, vectorOfStrongReferrablesOffset) {
+        builder.addFieldOffset(38, vectorOfStrongReferrablesOffset, 0);
+    }
+    static createVectorOfStrongReferrablesVector(builder, data) {
+        builder.startVector(4, data.length, 4);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addOffset(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startVectorOfStrongReferrablesVector(builder, numElems) {
+        builder.startVector(4, numElems, 4);
+    }
+    static addCoOwningReference(builder, coOwningReference) {
+        builder.addFieldInt64(39, coOwningReference, BigInt('0'));
+    }
+    static addVectorOfCoOwningReferences(builder, vectorOfCoOwningReferencesOffset) {
+        builder.addFieldOffset(40, vectorOfCoOwningReferencesOffset, 0);
+    }
+    static createVectorOfCoOwningReferencesVector(builder, data) {
+        builder.startVector(8, data.length, 8);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addInt64(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startVectorOfCoOwningReferencesVector(builder, numElems) {
+        builder.startVector(8, numElems, 8);
+    }
+    static addNonOwningReference(builder, nonOwningReference) {
+        builder.addFieldInt64(41, nonOwningReference, BigInt('0'));
+    }
+    static addVectorOfNonOwningReferences(builder, vectorOfNonOwningReferencesOffset) {
+        builder.addFieldOffset(42, vectorOfNonOwningReferencesOffset, 0);
+    }
+    static createVectorOfNonOwningReferencesVector(builder, data) {
+        builder.startVector(8, data.length, 8);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addInt64(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startVectorOfNonOwningReferencesVector(builder, numElems) {
+        builder.startVector(8, numElems, 8);
+    }
+    static addAnyUniqueType(builder, anyUniqueType) {
+        builder.addFieldInt8(43, anyUniqueType, AnyUniqueAliases.NONE);
+    }
+    static addAnyUnique(builder, anyUniqueOffset) {
+        builder.addFieldOffset(44, anyUniqueOffset, 0);
+    }
+    static addAnyAmbiguousType(builder, anyAmbiguousType) {
+        builder.addFieldInt8(45, anyAmbiguousType, AnyAmbiguousAliases.NONE);
+    }
+    static addAnyAmbiguous(builder, anyAmbiguousOffset) {
+        builder.addFieldOffset(46, anyAmbiguousOffset, 0);
+    }
+    static addVectorOfEnums(builder, vectorOfEnumsOffset) {
+        builder.addFieldOffset(47, vectorOfEnumsOffset, 0);
+    }
+    static createVectorOfEnumsVector(builder, data) {
+        builder.startVector(1, data.length, 1);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addInt8(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startVectorOfEnumsVector(builder, numElems) {
+        builder.startVector(1, numElems, 1);
+    }
+    static addSignedEnum(builder, signedEnum) {
+        builder.addFieldInt8(48, signedEnum, Race.None);
+    }
+    static addTestrequirednestedflatbuffer(builder, testrequirednestedflatbufferOffset) {
+        builder.addFieldOffset(49, testrequirednestedflatbufferOffset, 0);
+    }
+    static createTestrequirednestedflatbufferVector(builder, data) {
+        builder.startVector(1, data.length, 1);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addInt8(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startTestrequirednestedflatbufferVector(builder, numElems) {
+        builder.startVector(1, numElems, 1);
+    }
+    static addScalarKeySortedTables(builder, scalarKeySortedTablesOffset) {
+        builder.addFieldOffset(50, scalarKeySortedTablesOffset, 0);
+    }
+    static createScalarKeySortedTablesVector(builder, data) {
+        builder.startVector(4, data.length, 4);
+        for (let i = data.length - 1; i >= 0; i--) {
+            builder.addOffset(data[i]);
+        }
+        return builder.endVector();
+    }
+    static startScalarKeySortedTablesVector(builder, numElems) {
+        builder.startVector(4, numElems, 4);
+    }
+    static addNativeInline(builder, nativeInlineOffset) {
+        builder.addFieldStruct(51, nativeInlineOffset, 0);
+    }
+    static addLongEnumNonEnumDefault(builder, longEnumNonEnumDefault) {
+        builder.addFieldInt64(52, longEnumNonEnumDefault, BigInt('0'));
+    }
+    static addLongEnumNormalDefault(builder, longEnumNormalDefault) {
+        builder.addFieldInt64(53, longEnumNormalDefault, BigInt('2'));
+    }
+    static addNanDefault(builder, nanDefault) {
+        builder.addFieldFloat32(54, nanDefault, NaN);
+    }
+    static addInfDefault(builder, infDefault) {
+        builder.addFieldFloat32(55, infDefault, Infinity);
+    }
+    static addPositiveInfDefault(builder, positiveInfDefault) {
+        builder.addFieldFloat32(56, positiveInfDefault, Infinity);
+    }
+    static addInfinityDefault(builder, infinityDefault) {
+        builder.addFieldFloat32(57, infinityDefault, Infinity);
+    }
+    static addPositiveInfinityDefault(builder, positiveInfinityDefault) {
+        builder.addFieldFloat32(58, positiveInfinityDefault, Infinity);
+    }
+    static addNegativeInfDefault(builder, negativeInfDefault) {
+        builder.addFieldFloat32(59, negativeInfDefault, -Infinity);
+    }
+    static addNegativeInfinityDefault(builder, negativeInfinityDefault) {
+        builder.addFieldFloat32(60, negativeInfinityDefault, -Infinity);
+    }
+    static addDoubleInfDefault(builder, doubleInfDefault) {
+        builder.addFieldFloat64(61, doubleInfDefault, Infinity);
+    }
+    static endMonster(builder) {
+        const offset = builder.endObject();
+        builder.requiredField(offset, 10); // name
+        return offset;
+    }
+    static finishMonsterBuffer(builder, offset) {
+        builder.finish(offset, 'MONS');
+    }
+    static finishSizePrefixedMonsterBuffer(builder, offset) {
+        builder.finish(offset, 'MONS', true);
+    }
+    serialize() {
+        return this.bb.bytes();
+    }
+    static deserialize(buffer) {
+        return Monster.getRootAsMonster(new flatbuffers.ByteBuffer(buffer));
+    }
+    unpack() {
+        return new MonsterT((this.pos() !== null ? this.pos().unpack() : null), this.mana(), this.hp(), this.name(), this.bb.createScalarList(this.inventory.bind(this), this.inventoryLength()), this.color(), this.testType(), (() => {
+            const temp = unionToAny(this.testType(), this.test.bind(this));
+            if (temp === null) {
+                return null;
+            }
+            return temp.unpack();
[suppressed due to size limit]
+            const temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this));
+            if (temp === null) {
+                return null;
+            }
+            return temp.unpack();
+        })(), this.anyAmbiguousType(), (() => {
+            const temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this));
+            if (temp === null) {
+                return null;
+            }
+            return temp.unpack();
[suppressed due to size limit]
+    }
+    unpackTo(_o) {
+        _o.pos = (this.pos() !== null ? this.pos().unpack() : null);
+        _o.mana = this.mana();
+        _o.hp = this.hp();
+        _o.name = this.name();
+        _o.inventory = this.bb.createScalarList(this.inventory.bind(this), this.inventoryLength());
+        _o.color = this.color();
+        _o.testType = this.testType();
+        _o.test = (() => {
+            const temp = unionToAny(this.testType(), this.test.bind(this));
+            if (temp === null) {
+                return null;
+            }
+            return temp.unpack();
+        })();
+        _o.test4 = this.bb.createObjList(this.test4.bind(this), this.test4Length());
+        _o.testarrayofstring = this.bb.createScalarList(this.testarrayofstring.bind(this), this.testarrayofstringLength());
+        _o.testarrayoftables = this.bb.createObjList(this.testarrayoftables.bind(this), this.testarrayoftablesLength());
+        _o.enemy = (this.enemy() !== null ? this.enemy().unpack() : null);
+        _o.testnestedflatbuffer = this.bb.createScalarList(this.testnestedflatbuffer.bind(this), this.testnestedflatbufferLength());
+        _o.testempty = (this.testempty() !== null ? this.testempty().unpack() : null);
+        _o.testbool = this.testbool();
+        _o.testhashs32Fnv1 = this.testhashs32Fnv1();
+        _o.testhashu32Fnv1 = this.testhashu32Fnv1();
+        _o.testhashs64Fnv1 = this.testhashs64Fnv1();
+        _o.testhashu64Fnv1 = this.testhashu64Fnv1();
+        _o.testhashs32Fnv1a = this.testhashs32Fnv1a();
+        _o.testhashu32Fnv1a = this.testhashu32Fnv1a();
+        _o.testhashs64Fnv1a = this.testhashs64Fnv1a();
+        _o.testhashu64Fnv1a = this.testhashu64Fnv1a();
+        _o.testarrayofbools = this.bb.createScalarList(this.testarrayofbools.bind(this), this.testarrayofboolsLength());
+        _o.testf = this.testf();
+        _o.testf2 = this.testf2();
+        _o.testf3 = this.testf3();
+        _o.testarrayofstring2 = this.bb.createScalarList(this.testarrayofstring2.bind(this), this.testarrayofstring2Length());
+        _o.testarrayofsortedstruct = this.bb.createObjList(this.testarrayofsortedstruct.bind(this), this.testarrayofsortedstructLength());
+        _o.flex = this.bb.createScalarList(this.flex.bind(this), this.flexLength());
+        _o.test5 = this.bb.createObjList(this.test5.bind(this), this.test5Length());
+        _o.vectorOfLongs = this.bb.createScalarList(this.vectorOfLongs.bind(this), this.vectorOfLongsLength());
+        _o.vectorOfDoubles = this.bb.createScalarList(this.vectorOfDoubles.bind(this), this.vectorOfDoublesLength());
+        _o.parentNamespaceTest = (this.parentNamespaceTest() !== null ? this.parentNamespaceTest().unpack() : null);
+        _o.vectorOfReferrables = this.bb.createObjList(this.vectorOfReferrables.bind(this), this.vectorOfReferrablesLength());
+        _o.singleWeakReference = this.singleWeakReference();
+        _o.vectorOfWeakReferences = this.bb.createScalarList(this.vectorOfWeakReferences.bind(this), this.vectorOfWeakReferencesLength());
+        _o.vectorOfStrongReferrables = this.bb.createObjList(this.vectorOfStrongReferrables.bind(this), this.vectorOfStrongReferrablesLength());
+        _o.coOwningReference = this.coOwningReference();
+        _o.vectorOfCoOwningReferences = this.bb.createScalarList(this.vectorOfCoOwningReferences.bind(this), this.vectorOfCoOwningReferencesLength());
+        _o.nonOwningReference = this.nonOwningReference();
+        _o.vectorOfNonOwningReferences = this.bb.createScalarList(this.vectorOfNonOwningReferences.bind(this), this.vectorOfNonOwningReferencesLength());
+        _o.anyUniqueType = this.anyUniqueType();
+        _o.anyUnique = (() => {
+            const temp = unionToAnyUniqueAliases(this.anyUniqueType(), this.anyUnique.bind(this));
+            if (temp === null) {
+                return null;
+            }
+            return temp.unpack();
+        })();
+        _o.anyAmbiguousType = this.anyAmbiguousType();
+        _o.anyAmbiguous = (() => {
+            const temp = unionToAnyAmbiguousAliases(this.anyAmbiguousType(), this.anyAmbiguous.bind(this));
+            if (temp === null) {
+                return null;
+            }
+            return temp.unpack();
+        })();
+        _o.vectorOfEnums = this.bb.createScalarList(this.vectorOfEnums.bind(this), this.vectorOfEnumsLength());
+        _o.signedEnum = this.signedEnum();
+        _o.testrequirednestedflatbuffer = this.bb.createScalarList(this.testrequirednestedflatbuffer.bind(this), this.testrequirednestedflatbufferLength());
+        _o.scalarKeySortedTables = this.bb.createObjList(this.scalarKeySortedTables.bind(this), this.scalarKeySortedTablesLength());
+        _o.nativeInline = (this.nativeInline() !== null ? this.nativeInline().unpack() : null);
+        _o.longEnumNonEnumDefault = this.longEnumNonEnumDefault();
+        _o.longEnumNormalDefault = this.longEnumNormalDefault();
+        _o.nanDefault = this.nanDefault();
+        _o.infDefault = this.infDefault();
+        _o.positiveInfDefault = this.positiveInfDefault();
+        _o.infinityDefault = this.infinityDefault();
+        _o.positiveInfinityDefault = this.positiveInfinityDefault();
+        _o.negativeInfDefault = this.negativeInfDefault();
+        _o.negativeInfinityDefault = this.negativeInfinityDefault();
+        _o.doubleInfDefault = this.doubleInfDefault();
+    }
+}
+export class MonsterT {
[suppressed due to size limit]
+        this.pos = pos;
+        this.mana = mana;
+        this.hp = hp;
+        this.name = name;
+        this.inventory = inventory;
+        this.color = color;
+        this.testType = testType;
+        this.test = test;
+        this.test4 = test4;
+        this.testarrayofstring = testarrayofstring;
+        this.testarrayoftables = testarrayoftables;
+        this.enemy = enemy;
+        this.testnestedflatbuffer = testnestedflatbuffer;
+        this.testempty = testempty;
+        this.testbool = testbool;
+        this.testhashs32Fnv1 = testhashs32Fnv1;
+        this.testhashu32Fnv1 = testhashu32Fnv1;
+        this.testhashs64Fnv1 = testhashs64Fnv1;
+        this.testhashu64Fnv1 = testhashu64Fnv1;
+        this.testhashs32Fnv1a = testhashs32Fnv1a;
+        this.testhashu32Fnv1a = testhashu32Fnv1a;
+        this.testhashs64Fnv1a = testhashs64Fnv1a;
+        this.testhashu64Fnv1a = testhashu64Fnv1a;
+        this.testarrayofbools = testarrayofbools;
+        this.testf = testf;
+        this.testf2 = testf2;
+        this.testf3 = testf3;
+        this.testarrayofstring2 = testarrayofstring2;
+        this.testarrayofsortedstruct = testarrayofsortedstruct;
+        this.flex = flex;
+        this.test5 = test5;
+        this.vectorOfLongs = vectorOfLongs;
+        this.vectorOfDoubles = vectorOfDoubles;
+        this.parentNamespaceTest = parentNamespaceTest;
+        this.vectorOfReferrables = vectorOfReferrables;
+        this.singleWeakReference = singleWeakReference;
+        this.vectorOfWeakReferences = vectorOfWeakReferences;
+        this.vectorOfStrongReferrables = vectorOfStrongReferrables;
+        this.coOwningReference = coOwningReference;
+        this.vectorOfCoOwningReferences = vectorOfCoOwningReferences;
+        this.nonOwningReference = nonOwningReference;
+        this.vectorOfNonOwningReferences = vectorOfNonOwningReferences;
+        this.anyUniqueType = anyUniqueType;
+        this.anyUnique = anyUnique;
+        this.anyAmbiguousType = anyAmbiguousType;
+        this.anyAmbiguous = anyAmbiguous;
+        this.vectorOfEnums = vectorOfEnums;
+        this.signedEnum = signedEnum;
+        this.testrequirednestedflatbuffer = testrequirednestedflatbuffer;
+        this.scalarKeySortedTables = scalarKeySortedTables;
+        this.nativeInline = nativeInline;
+        this.longEnumNonEnumDefault = longEnumNonEnumDefault;
+        this.longEnumNormalDefault = longEnumNormalDefault;
+        this.nanDefault = nanDefault;
+        this.infDefault = infDefault;
+        this.positiveInfDefault = positiveInfDefault;
+        this.infinityDefault = infinityDefault;
+        this.positiveInfinityDefault = positiveInfinityDefault;
+        this.negativeInfDefault = negativeInfDefault;
+        this.negativeInfinityDefault = negativeInfinityDefault;
+        this.doubleInfDefault = doubleInfDefault;
+    }
+    pack(builder) {
+        const name = (this.name !== null ? builder.createString(this.name) : 0);
+        const inventory = Monster.createInventoryVector(builder, this.inventory);
+        const test = builder.createObjectOffset(this.test);
+        const test4 = builder.createStructOffsetList(this.test4, Monster.startTest4Vector);
+        const testarrayofstring = Monster.createTestarrayofstringVector(builder, builder.createObjectOffsetList(this.testarrayofstring));
+        const testarrayoftables = Monster.createTestarrayoftablesVector(builder, builder.createObjectOffsetList(this.testarrayoftables));
+        const enemy = (this.enemy !== null ? this.enemy.pack(builder) : 0);
+        const testnestedflatbuffer = Monster.createTestnestedflatbufferVector(builder, this.testnestedflatbuffer);
+        const testempty = (this.testempty !== null ? this.testempty.pack(builder) : 0);
+        const testarrayofbools = Monster.createTestarrayofboolsVector(builder, this.testarrayofbools);
+        const testarrayofstring2 = Monster.createTestarrayofstring2Vector(builder, builder.createObjectOffsetList(this.testarrayofstring2));
+        const testarrayofsortedstruct = builder.createStructOffsetList(this.testarrayofsortedstruct, Monster.startTestarrayofsortedstructVector);
+        const flex = Monster.createFlexVector(builder, this.flex);
+        const test5 = builder.createStructOffsetList(this.test5, Monster.startTest5Vector);
+        const vectorOfLongs = Monster.createVectorOfLongsVector(builder, this.vectorOfLongs);
+        const vectorOfDoubles = Monster.createVectorOfDoublesVector(builder, this.vectorOfDoubles);
+        const parentNamespaceTest = (this.parentNamespaceTest !== null ? this.parentNamespaceTest.pack(builder) : 0);
+        const vectorOfReferrables = Monster.createVectorOfReferrablesVector(builder, builder.createObjectOffsetList(this.vectorOfReferrables));
+        const vectorOfWeakReferences = Monster.createVectorOfWeakReferencesVector(builder, this.vectorOfWeakReferences);
+        const vectorOfStrongReferrables = Monster.createVectorOfStrongReferrablesVector(builder, builder.createObjectOffsetList(this.vectorOfStrongReferrables));
+        const vectorOfCoOwningReferences = Monster.createVectorOfCoOwningReferencesVector(builder, this.vectorOfCoOwningReferences);
+        const vectorOfNonOwningReferences = Monster.createVectorOfNonOwningReferencesVector(builder, this.vectorOfNonOwningReferences);
+        const anyUnique = builder.createObjectOffset(this.anyUnique);
+        const anyAmbiguous = builder.createObjectOffset(this.anyAmbiguous);
+        const vectorOfEnums = Monster.createVectorOfEnumsVector(builder, this.vectorOfEnums);
+        const testrequirednestedflatbuffer = Monster.createTestrequirednestedflatbufferVector(builder, this.testrequirednestedflatbuffer);
+        const scalarKeySortedTables = Monster.createScalarKeySortedTablesVector(builder, builder.createObjectOffsetList(this.scalarKeySortedTables));
+        Monster.startMonster(builder);
+        Monster.addPos(builder, (this.pos !== null ? this.pos.pack(builder) : 0));
+        Monster.addMana(builder, this.mana);
+        Monster.addHp(builder, this.hp);
+        Monster.addName(builder, name);
+        Monster.addInventory(builder, inventory);
+        Monster.addColor(builder, this.color);
+        Monster.addTestType(builder, this.testType);
+        Monster.addTest(builder, test);
+        Monster.addTest4(builder, test4);
+        Monster.addTestarrayofstring(builder, testarrayofstring);
+        Monster.addTestarrayoftables(builder, testarrayoftables);
+        Monster.addEnemy(builder, enemy);
+        Monster.addTestnestedflatbuffer(builder, testnestedflatbuffer);
+        Monster.addTestempty(builder, testempty);
+        Monster.addTestbool(builder, this.testbool);
+        Monster.addTesthashs32Fnv1(builder, this.testhashs32Fnv1);
+        Monster.addTesthashu32Fnv1(builder, this.testhashu32Fnv1);
+        Monster.addTesthashs64Fnv1(builder, this.testhashs64Fnv1);
+        Monster.addTesthashu64Fnv1(builder, this.testhashu64Fnv1);
+        Monster.addTesthashs32Fnv1a(builder, this.testhashs32Fnv1a);
+        Monster.addTesthashu32Fnv1a(builder, this.testhashu32Fnv1a);
+        Monster.addTesthashs64Fnv1a(builder, this.testhashs64Fnv1a);
+        Monster.addTesthashu64Fnv1a(builder, this.testhashu64Fnv1a);
+        Monster.addTestarrayofbools(builder, testarrayofbools);
+        Monster.addTestf(builder, this.testf);
+        Monster.addTestf2(builder, this.testf2);
+        Monster.addTestf3(builder, this.testf3);
+        Monster.addTestarrayofstring2(builder, testarrayofstring2);
+        Monster.addTestarrayofsortedstruct(builder, testarrayofsortedstruct);
+        Monster.addFlex(builder, flex);
+        Monster.addTest5(builder, test5);
+        Monster.addVectorOfLongs(builder, vectorOfLongs);
+        Monster.addVectorOfDoubles(builder, vectorOfDoubles);
+        Monster.addParentNamespaceTest(builder, parentNamespaceTest);
+        Monster.addVectorOfReferrables(builder, vectorOfReferrables);
+        Monster.addSingleWeakReference(builder, this.singleWeakReference);
+        Monster.addVectorOfWeakReferences(builder, vectorOfWeakReferences);
+        Monster.addVectorOfStrongReferrables(builder, vectorOfStrongReferrables);
+        Monster.addCoOwningReference(builder, this.coOwningReference);
+        Monster.addVectorOfCoOwningReferences(builder, vectorOfCoOwningReferences);
+        Monster.addNonOwningReference(builder, this.nonOwningReference);
+        Monster.addVectorOfNonOwningReferences(builder, vectorOfNonOwningReferences);
+        Monster.addAnyUniqueType(builder, this.anyUniqueType);
+        Monster.addAnyUnique(builder, anyUnique);
+        Monster.addAnyAmbiguousType(builder, this.anyAmbiguousType);
+        Monster.addAnyAmbiguous(builder, anyAmbiguous);
+        Monster.addVectorOfEnums(builder, vectorOfEnums);
+        Monster.addSignedEnum(builder, this.signedEnum);
+        Monster.addTestrequirednestedflatbuffer(builder, testrequirednestedflatbuffer);
+        Monster.addScalarKeySortedTables(builder, scalarKeySortedTables);
+        Monster.addNativeInline(builder, (this.nativeInline !== null ? this.nativeInline.pack(builder) : 0));
+        Monster.addLongEnumNonEnumDefault(builder, this.longEnumNonEnumDefault);
+        Monster.addLongEnumNormalDefault(builder, this.longEnumNormalDefault);
+        Monster.addNanDefault(builder, this.nanDefault);
+        Monster.addInfDefault(builder, this.infDefault);
+        Monster.addPositiveInfDefault(builder, this.positiveInfDefault);
+        Monster.addInfinityDefault(builder, this.infinityDefault);
+        Monster.addPositiveInfinityDefault(builder, this.positiveInfinityDefault);
+        Monster.addNegativeInfDefault(builder, this.negativeInfDefault);
+        Monster.addNegativeInfinityDefault(builder, this.negativeInfinityDefault);
+        Monster.addDoubleInfDefault(builder, this.doubleInfDefault);
+        return Monster.endMonster(builder);
+    }
+}
diff --git a/debian/patches/8201.patch b/debian/patches/8201.patch
new file mode 100644
index 0000000..0b16f1c
--- /dev/null
+++ b/debian/patches/8201.patch
@@ -0,0 +1,39 @@
+From 2be7a56af0cee12f49fe382e3a5485759aa89d58 Mon Sep 17 00:00:00 2001
+From: Mo Zhou <cdluminate at gmail.com>
+Date: Fri, 29 Dec 2023 16:00:44 -0500
+Subject: [PATCH] tests: Fix the expected bin dump of NaN for mips and hppa
+ architectures.
+
+The build fails on mips64el and hppa due to the decimal dump of the
+`testnestedflatbuffer` does not match with the hard coded expectation.
+See the build log as follows:
+
+https://buildd.debian.org/status/fetch.php?pkg=flatbuffers&arch=mips64el&ver=23.5.26%2Bdfsg-1%7Eexp0&stamp=1696723928&raw=0
+
+According to tests/is_quiet_nan.h, the binary value for mips and hppa
+architectures is `0x7FBFFFFFu`, instead of `0x7FC00000u` like amd64.
+Thus, the expected decimal dump should be
+`255 (FF), 255 (FF), 191 (BF), 127 (7F)`
+instead of
+`0 (00), 0 (00), 192 (C0), 127 (7F)`
+in little endian format.
+---
+ tests/reflection_test.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/tests/reflection_test.cpp b/tests/reflection_test.cpp
+index 880f137e1bb..4d07abcc1bb 100644
+--- a/tests/reflection_test.cpp
++++ b/tests/reflection_test.cpp
+@@ -274,7 +274,11 @@ void MiniReflectFlatBuffersTest(uint8_t *flatbuf) {
+       "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "
+       "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "
+       "0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 114, 0, 0, 0, 0, 0, 0, 0, "
++#if defined(__mips__) || defined(__hppa__)
++      "8, 0, 0, 0, 255, 255, 191, 127, 13, 0, 0, 0, 78, 101, 115, 116, 101, 100, "
++#else
+       "8, 0, 0, 0, 0, 0, 192, 127, 13, 0, 0, 0, 78, 101, 115, 116, 101, 100, "
++#endif
+       "77, 111, 110, 115, 116, 101, 114, 0, 0, 0 ], "
+       "testarrayofstring2: [ \"jane\", \"mary\" ], "
+       "testarrayofsortedstruct: [ { id: 0, distance: 0 }, "
diff --git a/debian/patches/s390x.patch b/debian/patches/s390x.patch
new file mode 100644
index 0000000..8d65809
--- /dev/null
+++ b/debian/patches/s390x.patch
@@ -0,0 +1,13 @@
+Index: flatbuffers/include/flatbuffers/base.h
+===================================================================
+--- flatbuffers.orig/include/flatbuffers/base.h
++++ flatbuffers/include/flatbuffers/base.h
+@@ -420,7 +420,7 @@ T ReadScalar(const void *p) {
+ 
+ // See https://github.com/google/flatbuffers/issues/5950
+ 
+-#if (FLATBUFFERS_GCC >= 100000) && (FLATBUFFERS_GCC < 110000)
++#if (FLATBUFFERS_GCC >= 100000) && (FLATBUFFERS_GCC < 120000)
+   #pragma GCC diagnostic push
+   #pragma GCC diagnostic ignored "-Wstringop-overflow"
+ #endif
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..90ba46d
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,2 @@
+s390x.patch
+8201.patch
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..c4acd1b
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,42 @@
+#!/usr/bin/make -f
+
+include /usr/share/dpkg/pkg-info.mk
+
+# SOURCE_DATE_EPOCH set by dh
+export DEB_CPPFLAGS_MAINT_APPEND = -Wno-error=date-time -Wno-error=maybe-uninitialized -Wno-error=stringop-overflow
+
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+%:
+	dh $@ --with python3
+
+override_dh_auto_configure:
+	dh_auto_configure -- -DFLATBUFFERS_BUILD_SHAREDLIB=ON
+
+override_dh_auto_build-arch:
+	dh_auto_build --arch
+
+# Python3 build
+override_dh_auto_build-indep:
+	dh_auto_build --indep
+	set -e; cd python && for pv in $(shell py3versions -vr); do \
+		VERSION=$(DEB_VERSION_UPSTREAM) python$$pv setup.py build; \
+	done
+
+override_dh_auto_install-arch:
+	dh_auto_install --arch
+
+# Python3 install.
+override_dh_auto_install-indep:
+	dh_auto_install --indep
+	set -e; \
+	cd python && for pv in $(shell py3versions -vr); do \
+		VERSION=$(DEB_VERSION_UPSTREAM) python$$pv setup.py install \
+			--install-layout=deb --no-compile \
+			--root=$(CURDIR)/debian/python3-flatbuffers; \
+	done
+	find $(CURDIR)/debian/python3-flatbuffers -name 'flatbuffers-*-nspkg.pth' -delete
+
+execute_after_dh_auto_clean:
+	-$(RM) -rf python/build/ python/flatbuffers.egg-info/
+
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/source/lintian-overrides b/debian/source/lintian-overrides
new file mode 100644
index 0000000..b18bd18
--- /dev/null
+++ b/debian/source/lintian-overrides
@@ -0,0 +1,4 @@
+# this is generated by the flatbuffers itself
+source: source-is-missing [tests/my-game/example/monster.js]
+# this is generated by the flatbuffers itself
+source: source-is-missing [tests/my-game/example/struct-of-structs.js]
diff --git a/debian/upstream/metadata b/debian/upstream/metadata
new file mode 100644
index 0000000..0405d67
--- /dev/null
+++ b/debian/upstream/metadata
@@ -0,0 +1,6 @@
+Bug-Database: https://github.com/google/flatbuffers/issues
+Bug-Submit: https://github.com/google/flatbuffers/issues/new
+FAQ: https://github.com/google/flatbuffers/wiki
+Repository: https://github.com/google/flatbuffers.git
+Repository-Browse: https://github.com/google/flatbuffers
+Security-Contact: https://github.com/google/flatbuffers/tree/HEAD/SECURITY.md
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..76e4b1e
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,4 @@
+version=4
+opts="dversionmangle=s/.dfsg[0-9]*//,repacksuffix=+dfsg,filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%flatbuffers-$1.tar.gz%" \
+      https://github.com/google/flatbuffers/tags \
+      (?:.*?/)?v?(\d[\d.]*)\.tar\.gz


More information about the Neon-commits mailing list