From d13ecde7b6583d5ef43b914a9922e719d674ed6c Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 26 Jun 2024 01:48:08 +1000 Subject: [PATCH 01/15] update Windows docs --- docs/windows.mdx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/windows.mdx b/docs/windows.mdx index c2644256..12d1bc7c 100644 --- a/docs/windows.mdx +++ b/docs/windows.mdx @@ -1,5 +1,18 @@ ## Windows +## CMakeLists + +You will need to disable the `/WX` compiler flag. + +In your project, open the `windows/CMakeList.txt` file and find the following line: + +`target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100")` + +Delete the `/WX`: + +`target_compile_options(${TARGET} PRIVATE /W4 /wd"4100")` + + ## pubspec.yaml On Windows, you will need to add a custom version of `native_toolchain_c` to your `dependency_overrides`. This is currently needed to link static libraries when building a DLL. From e8e168469435eb7b6d93779b227dc035152d245d Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 26 Jun 2024 01:49:37 +1000 Subject: [PATCH 02/15] fix: on Windows, pass static libs via -l rather than custom linkWith property so build.dart stays compatible between published & custom versions --- thermion_dart/hook/build.dart | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/thermion_dart/hook/build.dart b/thermion_dart/hook/build.dart index da71bf8b..25a1bad1 100644 --- a/thermion_dart/hook/build.dart +++ b/thermion_dart/hook/build.dart @@ -62,7 +62,7 @@ void main(List args) async { "${config.packageRoot.toFilePath()}/native/include/material/image.c", ]); - final libs = [ + var libs = [ "filament", "backend", "filameshio", @@ -91,12 +91,12 @@ void main(List args) async { "basis_transcoder" ]; - final linkWith = []; if (platform == "windows") { - linkWith.addAll(libs.map((lib) => "$libDir/$lib.lib")); - linkWith.addAll(["$libDir/bluevk.lib", "$libDir/bluegl.lib"]); - linkWith.addAll([ + libDir = Directory(libDir).uri.toFilePath(); + libs = libs.map((lib) => "${libDir}${lib}.lib").toList(); + libs.addAll(["${libDir}bluevk.lib", "${libDir}bluegl.lib"]); + libs.addAll([ "gdi32.lib", "user32.lib", "shell32.lib", @@ -151,14 +151,12 @@ void main(List args) async { sources: sources, includes: ['native/include', 'native/include/filament'], defines: defines, - // UNCOMMENT THIS IF YOU ARE BUILDING WITH THE CUSTOM native_toolchain_c FORK FOR WINDOWS - // linkWith: linkWith, flags: [ if (platform == "macos") '-mmacosx-version-min=13.0', if (platform == "ios") '-mios-version-min=13.0', ...flags, ...frameworks, - if (platform != "windows") ...libs.map((lib) => "-l$lib"), + ...libs.map((lib) => "-l$lib"), "-L$libDir", ], dartBuildFiles: ['hook/build.dart'], From 81be5e25f7c93651473be0b3a79c9e8841f88c75 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 26 Jun 2024 01:50:22 +1000 Subject: [PATCH 03/15] fix: revert to std::thread (pthreads not easily available on Windows) --- .../native/src/ThermionDartFFIApi.cpp | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/thermion_dart/native/src/ThermionDartFFIApi.cpp b/thermion_dart/native/src/ThermionDartFFIApi.cpp index f763830d..35d8d2e9 100644 --- a/thermion_dart/native/src/ThermionDartFFIApi.cpp +++ b/thermion_dart/native/src/ThermionDartFFIApi.cpp @@ -13,8 +13,6 @@ extern "C" { extern EMSCRIPTEN_KEEPALIVE EMSCRIPTEN_WEBGL_CONTEXT_HANDLE thermion_dart_web_create_gl_context(); } -#include - #endif #include "ThermionDartFFIApi.h" @@ -38,19 +36,26 @@ public: explicit RenderLoop() { srand(time(NULL)); - + #ifdef __EMSCRIPTEN__ pthread_attr_t attr; pthread_attr_init(&attr); - #ifdef __EMSCRIPTEN__ emscripten_pthread_attr_settransferredcanvases(&attr, "canvas"); - #endif pthread_create(&t, &attr, &RenderLoop::startHelper, this); + #else + t = new std::thread([this]() { + start(); + }); + #endif } ~RenderLoop() { _stop = true; + #ifdef __EMSCRIPTEN__ pthread_join(t, NULL); + #else + t->join(); + #endif Log("Render loop killed"); } @@ -209,13 +214,17 @@ public: std::mutex _access; void (*_renderCallback)(void *const) = nullptr; void *_renderCallbackOwner = nullptr; - pthread_t t; + + std::condition_variable _cond; std::deque> _tasks; FilamentViewer* _viewer = nullptr; #ifdef __EMSCRIPTEN__ + pthread_t t; EMSCRIPTEN_WEBGL_CONTEXT_HANDLE _context; int _frameNum = 0; + #else + std::thread *t = nullptr; #endif }; From 683b79c9a02a67c5dce20dd26351ebe6316630de Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 26 Jun 2024 01:50:53 +1000 Subject: [PATCH 04/15] fix: add ResourceBuffer header directly to Windows build so I don't have to fiddle around getting the CMake path right --- .../windows/include/ResourceBuffer.h | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 thermion_flutter/thermion_flutter/windows/include/ResourceBuffer.h diff --git a/thermion_flutter/thermion_flutter/windows/include/ResourceBuffer.h b/thermion_flutter/thermion_flutter/windows/include/ResourceBuffer.h new file mode 100644 index 00000000..eab0ee0d --- /dev/null +++ b/thermion_flutter/thermion_flutter/windows/include/ResourceBuffer.h @@ -0,0 +1,44 @@ +#ifndef RESOURCE_BUFFER_H +#define RESOURCE_BUFFER_H + +#include +#include + +// +// A ResourceBuffer is a unified interface for working with +// binary assets across various platforms. +// This is simply: +// 1) a pointer to some data +// 2) the length of the data +// 3) an ID that can be passed back to the native platform to release the underlying asset when needed. +// +typedef struct ResourceBuffer +{ + const void *const data; + const int32_t size; + const int32_t id; + +#if defined(__cplusplus) + ResourceBuffer(void *const data, int32_t size, int32_t id) : data(data), size(size), id(id) {} +#endif +} ResourceBuffer; + +typedef void (*LoadFilamentResourceIntoOutPointer)(const char *uri, ResourceBuffer *out); +typedef ResourceBuffer (*LoadFilamentResource)(const char *uri); +typedef ResourceBuffer (*LoadFilamentResourceFromOwner)(const char *const, void *const owner); +typedef void (*FreeFilamentResource)(ResourceBuffer); +typedef void (*FreeFilamentResourceFromOwner)(ResourceBuffer, void *const owner); + +typedef struct ResourceLoaderWrapper +{ + LoadFilamentResource loadResource; + FreeFilamentResource freeResource; + LoadFilamentResourceFromOwner loadFromOwner; + FreeFilamentResourceFromOwner freeFromOwner; + void *owner; + LoadFilamentResourceIntoOutPointer loadToOut; +} ResourceLoaderWrapper; + +void *make_resource_loader(LoadFilamentResourceFromOwner loadFn, FreeFilamentResourceFromOwner freeFn, void *const owner); + +#endif From 368ce83380e9affc443aae2157d8cbb2463f1141 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 26 Jun 2024 01:51:31 +1000 Subject: [PATCH 05/15] rename thermion_filament namespace to thermion_flutter for Windows --- .../thermion_flutter/windows/backing_window.cpp | 4 ++-- thermion_flutter/thermion_flutter/windows/backing_window.h | 2 +- thermion_flutter/thermion_flutter/windows/egl_context.cpp | 2 +- thermion_flutter/thermion_flutter/windows/egl_context.h | 2 +- .../thermion_flutter/windows/flutter_angle_texture.cpp | 4 ++-- .../thermion_flutter/windows/flutter_angle_texture.h | 2 +- .../thermion_flutter/windows/flutter_render_context.h | 2 +- .../thermion_flutter/windows/flutter_texture_buffer.h | 2 +- .../thermion_flutter/windows/opengl_texture_buffer.cpp | 4 ++-- .../thermion_flutter/windows/opengl_texture_buffer.h | 2 +- .../windows/test/thermion_flutter_plugin_test.cpp | 4 ++-- .../thermion_flutter/windows/thermion_flutter_plugin.cpp | 5 ++--- .../thermion_flutter/windows/thermion_flutter_plugin.h | 6 +++--- thermion_flutter/thermion_flutter/windows/wgl_context.cpp | 4 ++-- thermion_flutter/thermion_flutter/windows/wgl_context.h | 2 +- 15 files changed, 23 insertions(+), 24 deletions(-) diff --git a/thermion_flutter/thermion_flutter/windows/backing_window.cpp b/thermion_flutter/thermion_flutter/windows/backing_window.cpp index b7b2f989..b98daed9 100644 --- a/thermion_flutter/thermion_flutter/windows/backing_window.cpp +++ b/thermion_flutter/thermion_flutter/windows/backing_window.cpp @@ -12,7 +12,7 @@ #pragma comment(lib, "dwmapi.lib") #pragma comment(lib, "comctl32.lib") -namespace thermion_filament { +namespace thermion_flutter { static constexpr auto kClassName = L"FLUTTER_FILAMENT_WINDOW"; static constexpr auto kWindowName = L"thermion_flutter_window"; @@ -354,4 +354,4 @@ void BackingWindow::Resize(int width, int height, int left, int top) { } HWND BackingWindow::GetHandle() { return _windowHandle; } -} // namespace thermion_filament +} // namespace thermion_flutter diff --git a/thermion_flutter/thermion_flutter/windows/backing_window.h b/thermion_flutter/thermion_flutter/windows/backing_window.h index e58a9d07..bf2cf0e7 100644 --- a/thermion_flutter/thermion_flutter/windows/backing_window.h +++ b/thermion_flutter/thermion_flutter/windows/backing_window.h @@ -5,7 +5,7 @@ #include #include -namespace thermion_filament { +namespace thermion_flutter { class BackingWindow { public: diff --git a/thermion_flutter/thermion_flutter/windows/egl_context.cpp b/thermion_flutter/thermion_flutter/windows/egl_context.cpp index 3933f543..a766fa36 100644 --- a/thermion_flutter/thermion_flutter/windows/egl_context.cpp +++ b/thermion_flutter/thermion_flutter/windows/egl_context.cpp @@ -7,7 +7,7 @@ #pragma comment(lib, "dwmapi.lib") #pragma comment(lib, "comctl32.lib") -namespace thermion_filament { +namespace thermion_flutter { FlutterEGLContext::FlutterEGLContext( flutter::PluginRegistrarWindows* pluginRegistrar, diff --git a/thermion_flutter/thermion_flutter/windows/egl_context.h b/thermion_flutter/thermion_flutter/windows/egl_context.h index 59cf0a24..b6b056bc 100644 --- a/thermion_flutter/thermion_flutter/windows/egl_context.h +++ b/thermion_flutter/thermion_flutter/windows/egl_context.h @@ -12,7 +12,7 @@ #include "backend/platforms/PlatformEGL.h" #include "flutter_render_context.h" -namespace thermion_filament { +namespace thermion_flutter { class FlutterEGLContext : public FlutterRenderContext { public: diff --git a/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.cpp b/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.cpp index e443c1b2..75465f55 100644 --- a/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.cpp +++ b/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.cpp @@ -7,7 +7,7 @@ #include -namespace thermion_filament { +namespace thermion_flutter { static void logEglError(const char *name) noexcept { const char *err; @@ -240,4 +240,4 @@ FlutterAngleTexture::FlutterAngleTexture( result->Success(resultList); } -} // namespace thermion_filament \ No newline at end of file +} // namespace thermion_flutter \ No newline at end of file diff --git a/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.h b/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.h index ea449f69..0612c516 100644 --- a/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.h +++ b/thermion_flutter/thermion_flutter/windows/flutter_angle_texture.h @@ -26,7 +26,7 @@ typedef uint32_t GLuint; -namespace thermion_filament { +namespace thermion_flutter { class FlutterAngleTexture : public FlutterTextureBuffer { public: diff --git a/thermion_flutter/thermion_flutter/windows/flutter_render_context.h b/thermion_flutter/thermion_flutter/windows/flutter_render_context.h index 88157ae1..c582d349 100644 --- a/thermion_flutter/thermion_flutter/windows/flutter_render_context.h +++ b/thermion_flutter/thermion_flutter/windows/flutter_render_context.h @@ -8,7 +8,7 @@ #include "flutter_texture_buffer.h" -namespace thermion_filament { +namespace thermion_flutter { class FlutterRenderContext { public: diff --git a/thermion_flutter/thermion_flutter/windows/flutter_texture_buffer.h b/thermion_flutter/thermion_flutter/windows/flutter_texture_buffer.h index f12c8541..40ee244f 100644 --- a/thermion_flutter/thermion_flutter/windows/flutter_texture_buffer.h +++ b/thermion_flutter/thermion_flutter/windows/flutter_texture_buffer.h @@ -7,7 +7,7 @@ #include -namespace thermion_filament { +namespace thermion_flutter { class FlutterTextureBuffer { public: diff --git a/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.cpp b/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.cpp index dbaca0ab..7142846e 100644 --- a/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.cpp +++ b/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.cpp @@ -7,7 +7,7 @@ #include -namespace thermion_filament { +namespace thermion_flutter { void _release_callback(void *releaseContext) { // ((OpenGLTextureBuffer*)releaseContext)->unlock(); @@ -141,4 +141,4 @@ OpenGLTextureBuffer::~OpenGLTextureBuffer() { wglMakeCurrent(NULL, NULL); } -} // namespace thermion_filament \ No newline at end of file +} // namespace thermion_flutter \ No newline at end of file diff --git a/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.h b/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.h index df17c02c..16f59e4f 100644 --- a/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.h +++ b/thermion_flutter/thermion_flutter/windows/opengl_texture_buffer.h @@ -20,7 +20,7 @@ typedef uint32_t GLuint; -namespace thermion_filament { +namespace thermion_flutter { class OpenGLTextureBuffer : public FlutterTextureBuffer { public: diff --git a/thermion_flutter/thermion_flutter/windows/test/thermion_flutter_plugin_test.cpp b/thermion_flutter/thermion_flutter/windows/test/thermion_flutter_plugin_test.cpp index 38f05c58..3ebaf4da 100644 --- a/thermion_flutter/thermion_flutter/windows/test/thermion_flutter_plugin_test.cpp +++ b/thermion_flutter/thermion_flutter/windows/test/thermion_flutter_plugin_test.cpp @@ -10,7 +10,7 @@ #include "thermion_flutter_plugin.h" -namespace thermion_filament { +namespace thermion_flutter { namespace test { namespace { @@ -40,4 +40,4 @@ TEST(ThermionFlutterPlugin, GetPlatformVersion) { } } // namespace test -} // namespace thermion_filament +} // namespace thermion_flutter diff --git a/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.cpp b/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.cpp index b5c0f261..f02c3e9b 100644 --- a/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.cpp +++ b/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.cpp @@ -35,7 +35,7 @@ #include "wgl_context.h" #endif -namespace thermion_filament { +namespace thermion_flutter { using namespace std::chrono_literals; @@ -61,7 +61,6 @@ ThermionFlutterPlugin::ThermionFlutterPlugin( // attach the method call handler for incoming messages _channel->SetMethodCallHandler([=](const auto &call, auto result) { - std::cout << call.method_name() << std::endl; this->HandleMethodCall(call, std::move(result)); }); } @@ -275,4 +274,4 @@ void ThermionFlutterPlugin::HandleMethodCall( } } -} // namespace thermion_filament +} // namespace thermion_flutter diff --git a/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.h b/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.h index 712e2182..74bf9839 100644 --- a/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.h +++ b/thermion_flutter/thermion_flutter/windows/thermion_flutter_plugin.h @@ -14,7 +14,7 @@ #include "GL/GL.h" #include "GL/GLu.h" -#include "ResourceBuffer.hpp" +#include "ResourceBuffer.h" #if USE_ANGLE #include "egl_context.h" @@ -22,7 +22,7 @@ #include "wgl_context.h" #endif -namespace thermion_filament { +namespace thermion_flutter { class ThermionFlutterPlugin : public flutter::Plugin { public: @@ -66,6 +66,6 @@ public: #endif }; -} // namespace thermion_filament +} // namespace thermion_flutter #endif // FLUTTER_PLUGIN_FLUTTER_FILAMENT_PLUGIN_H_ diff --git a/thermion_flutter/thermion_flutter/windows/wgl_context.cpp b/thermion_flutter/thermion_flutter/windows/wgl_context.cpp index cb5485a3..68bbaebd 100644 --- a/thermion_flutter/thermion_flutter/windows/wgl_context.cpp +++ b/thermion_flutter/thermion_flutter/windows/wgl_context.cpp @@ -6,7 +6,7 @@ #include "flutter_texture_buffer.h" -namespace thermion_filament { +namespace thermion_flutter { WGLContext::WGLContext(flutter::PluginRegistrarWindows *pluginRegistrar, flutter::TextureRegistrar *textureRegistrar) @@ -143,4 +143,4 @@ void WGLContext::CreateRenderingSurface( void *WGLContext::GetSharedContext() { return (void *)_context; } -} // namespace thermion_filament +} // namespace thermion_flutter diff --git a/thermion_flutter/thermion_flutter/windows/wgl_context.h b/thermion_flutter/thermion_flutter/windows/wgl_context.h index 46b8bc77..0968bf41 100644 --- a/thermion_flutter/thermion_flutter/windows/wgl_context.h +++ b/thermion_flutter/thermion_flutter/windows/wgl_context.h @@ -7,7 +7,7 @@ #if WGL_USE_BACKING_WINDOW #include "backing_window.h" #endif -namespace thermion_filament { +namespace thermion_flutter { class WGLContext : public FlutterRenderContext { public: From 5cc41a9115b75723680176b5a6560f67e54526f8 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 26 Jun 2024 01:58:35 +1000 Subject: [PATCH 06/15] docs: update --- docs/quickstart.mdx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index ad685fed..40e90624 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -204,6 +204,8 @@ The cube still won't be visible until we add a light to the scene and tell Therm $ flutter run -d macos ``` +> You may experience a noticeable delay the very first time you run the project. Don't panic, it's not frozen! This is due to the build system downloading the prebuilt Filament binaries from Cloudflare, which can take some time (particularly on Windows). These binaries will be cached after first download, so subsequent runs will be much faster (though every time you run flutter clean, the binaries will be re-downloaded). + ![Screenshot of Thermion Quickstart project](images/thermion_sample_project.png) Your first Thermion project is complete! \ No newline at end of file From 368a341b7648222f7abeeb233afba006ee691851 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 26 Jun 2024 01:59:06 +1000 Subject: [PATCH 07/15] docs: update custom native_toolchain ref for Windows --- docs/windows.mdx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/windows.mdx b/docs/windows.mdx index 12d1bc7c..86637bf2 100644 --- a/docs/windows.mdx +++ b/docs/windows.mdx @@ -18,11 +18,12 @@ Delete the `/WX`: On Windows, you will need to add a custom version of `native_toolchain_c` to your `dependency_overrides`. This is currently needed to link static libraries when building a DLL. ``` -native_toolchain_c: +dependency_overrides: + native_toolchain_c: git: - url: git@github.com:nmfisher/native.git + url: https://github.com/nmfisher/native.git path: pkgs/native_toolchain_c - ref: 99020084c4687be4c58c7115a167088c0441d1de + ref: windows_dll_fix ``` This will eventually be fixed upstream in the `native_toolchain_c` package, so this should be a short-term/temporary issue only. From 0e9cf765927c3b1a773e0d8af2487d33ae3f2b03 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 26 Jun 2024 00:10:56 +0800 Subject: [PATCH 08/15] chore(release): publish packages - thermion_dart@0.1.1-dev.0+2 - thermion_flutter@0.1.1-dev.0+7 - thermion_flutter_platform_interface@0.1.0-dev.0+6 - thermion_flutter_web@0.0.1-dev.0+6 - thermion_flutter_ffi@0.1.0-dev.0+6 --- CHANGELOG.md | 38 +++++++++++++++++++ thermion_dart/CHANGELOG.md | 5 +++ thermion_dart/pubspec.yaml | 2 +- .../thermion_flutter/CHANGELOG.md | 4 ++ .../thermion_flutter/pubspec.yaml | 10 ++--- .../thermion_flutter_ffi/CHANGELOG.md | 4 ++ .../thermion_flutter_ffi/pubspec.yaml | 6 +-- .../CHANGELOG.md | 4 ++ .../pubspec.yaml | 4 +- .../thermion_flutter_web/CHANGELOG.md | 4 ++ .../thermion_flutter_web/pubspec.yaml | 6 +-- 11 files changed, 73 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d0395fe9..570beda4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,44 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## 2024-06-26 + +### Changes + +--- + +Packages with breaking changes: + + - There are no breaking changes in this release. + +Packages with other changes: + + - [`thermion_dart` - `v0.1.1-dev.0+2`](#thermion_dart---v011-dev02) + - [`thermion_flutter` - `v0.1.1-dev.0+7`](#thermion_flutter---v011-dev07) + - [`thermion_flutter_platform_interface` - `v0.1.0-dev.0+6`](#thermion_flutter_platform_interface---v010-dev06) + - [`thermion_flutter_web` - `v0.0.1-dev.0+6`](#thermion_flutter_web---v001-dev06) + - [`thermion_flutter_ffi` - `v0.1.0-dev.0+6`](#thermion_flutter_ffi---v010-dev06) + +Packages with dependency updates only: + +> Packages listed below depend on other packages in this workspace that have had changes. Their versions have been incremented to bump the minimum dependency versions of the packages they depend upon in this project. + + - `thermion_flutter_platform_interface` - `v0.1.0-dev.0+6` + - `thermion_flutter_web` - `v0.0.1-dev.0+6` + - `thermion_flutter_ffi` - `v0.1.0-dev.0+6` + +--- + +#### `thermion_dart` - `v0.1.1-dev.0+2` + + - **FIX**: revert to std::thread (pthreads not easily available on Windows). + - **FIX**: on Windows, pass static libs via -l rather than custom linkWith property so build.dart stays compatible between published & custom versions. + +#### `thermion_flutter` - `v0.1.1-dev.0+7` + + - **FIX**: add ResourceBuffer header directly to Windows build so I don't have to fiddle around getting the CMake path right. + + ## 2024-06-22 ### Changes diff --git a/thermion_dart/CHANGELOG.md b/thermion_dart/CHANGELOG.md index 0e468c1b..418213f8 100644 --- a/thermion_dart/CHANGELOG.md +++ b/thermion_dart/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.1.1-dev.0+2 + + - **FIX**: revert to std::thread (pthreads not easily available on Windows). + - **FIX**: on Windows, pass static libs via -l rather than custom linkWith property so build.dart stays compatible between published & custom versions. + ## 0.1.1+1 - **DOCS**: update with links to playground. diff --git a/thermion_dart/pubspec.yaml b/thermion_dart/pubspec.yaml index 1e2a9b72..af3365e3 100644 --- a/thermion_dart/pubspec.yaml +++ b/thermion_dart/pubspec.yaml @@ -1,6 +1,6 @@ name: thermion_dart description: 3D rendering toolkit for Dart. -version: 0.1.1+1 +version: 0.1.1-dev.0+2 homepage: https://docs.page/nmfisher/thermion repository: https://github.com/nmfisher/thermion diff --git a/thermion_flutter/thermion_flutter/CHANGELOG.md b/thermion_flutter/thermion_flutter/CHANGELOG.md index 924bceb3..6fb01e24 100644 --- a/thermion_flutter/thermion_flutter/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.1-dev.0+7 + + - **FIX**: add ResourceBuffer header directly to Windows build so I don't have to fiddle around getting the CMake path right. + ## 0.1.1+6 - **DOCS**: update with links to playground. diff --git a/thermion_flutter/thermion_flutter/pubspec.yaml b/thermion_flutter/thermion_flutter/pubspec.yaml index 1145a139..ea1b294a 100644 --- a/thermion_flutter/thermion_flutter/pubspec.yaml +++ b/thermion_flutter/thermion_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: thermion_flutter description: Flutter plugin for 3D rendering with the Thermion toolkit. -version: 0.1.1+6 +version: 0.1.1-dev.0+7 homepage: https://docs.page/nmfisher/thermion repository: https://github.com/nmfisher/thermion @@ -17,10 +17,10 @@ dependencies: plugin_platform_interface: ^2.0.0 ffi: ^2.1.2 animation_tools_dart: ^0.0.4 - thermion_dart: ^0.1.1+1 - thermion_flutter_platform_interface: ^0.1.0+5 - thermion_flutter_ffi: ^0.1.0+5 - thermion_flutter_web: ^0.0.1+5 + thermion_dart: ^0.1.1-dev.0+2 + thermion_flutter_platform_interface: ^0.1.0-dev.0+6 + thermion_flutter_ffi: ^0.1.0-dev.0+6 + thermion_flutter_web: ^0.0.1-dev.0+6 logging: ^1.2.0 dev_dependencies: diff --git a/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md b/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md index 95d3d6e1..0a5d5aef 100644 --- a/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.0-dev.0+6 + + - Update a dependency to the latest release. + ## 0.1.0+5 - Update a dependency to the latest release. diff --git a/thermion_flutter/thermion_flutter_ffi/pubspec.yaml b/thermion_flutter/thermion_flutter_ffi/pubspec.yaml index 01b42d78..b35232d3 100644 --- a/thermion_flutter/thermion_flutter_ffi/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_ffi/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_ffi description: An FFI interface for the thermion_flutter plugin (all platforms except web). repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.1.0+5 +version: 0.1.0-dev.0+6 environment: sdk: ">=3.3.0 <4.0.0" @@ -22,8 +22,8 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.1.0 - thermion_flutter_platform_interface: ^0.1.0+5 - thermion_dart: ^0.1.1+1 + thermion_flutter_platform_interface: ^0.1.0-dev.0+6 + thermion_dart: ^0.1.1-dev.0+2 dev_dependencies: flutter_test: diff --git a/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md b/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md index 554835f0..2905699b 100644 --- a/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.0-dev.0+6 + + - Update a dependency to the latest release. + ## 0.1.0+5 - Update a dependency to the latest release. diff --git a/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml b/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml index c9f48b4b..84bb4821 100644 --- a/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_platform_interface description: A common platform interface for the thermion_flutter plugin. repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.1.0+5 +version: 0.1.0-dev.0+6 environment: sdk: ">=3.3.0 <4.0.0" @@ -11,7 +11,7 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.1.0 - thermion_dart: ^0.1.1+1 + thermion_dart: ^0.1.1-dev.0+2 dev_dependencies: flutter_test: diff --git a/thermion_flutter/thermion_flutter_web/CHANGELOG.md b/thermion_flutter/thermion_flutter_web/CHANGELOG.md index 6d161ca4..5eff0f67 100644 --- a/thermion_flutter/thermion_flutter_web/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_web/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.1-dev.0+6 + + - Update a dependency to the latest release. + ## 0.0.1+5 - Update a dependency to the latest release. diff --git a/thermion_flutter/thermion_flutter_web/pubspec.yaml b/thermion_flutter/thermion_flutter_web/pubspec.yaml index 4e0ea4f1..68b04676 100644 --- a/thermion_flutter/thermion_flutter_web/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_web/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_web description: A web platform interface for the thermion_flutter plugin. repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.0.1+5 +version: 0.0.1-dev.0+6 environment: sdk: ">=3.3.0 <4.0.0" @@ -20,8 +20,8 @@ dependencies: sdk: flutter plugin_platform_interface: ^2.1.0 web: ^0.5.1 - thermion_dart: ^0.1.1+1 - thermion_flutter_platform_interface: ^0.1.0+5 + thermion_dart: ^0.1.1-dev.0+2 + thermion_flutter_platform_interface: ^0.1.0-dev.0+6 flutter_web_plugins: sdk: flutter From 4955837518770d14eb8bc8284e3e040d21ffc3b1 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 26 Jun 2024 00:12:32 +0800 Subject: [PATCH 09/15] chore(release): publish packages - thermion_dart@0.1.1+2 - thermion_flutter@0.1.1+7 - thermion_flutter_ffi@0.1.0+6 - thermion_flutter_platform_interface@0.1.0+6 - thermion_flutter_web@0.0.1+6 --- CHANGELOG.md | 38 +++++++++++++++++++ thermion_dart/CHANGELOG.md | 4 ++ thermion_dart/pubspec.yaml | 2 +- .../thermion_flutter/CHANGELOG.md | 4 ++ .../thermion_flutter/pubspec.yaml | 10 ++--- .../thermion_flutter_ffi/CHANGELOG.md | 4 ++ .../thermion_flutter_ffi/pubspec.yaml | 6 +-- .../CHANGELOG.md | 4 ++ .../pubspec.yaml | 4 +- .../thermion_flutter_web/CHANGELOG.md | 4 ++ .../thermion_flutter_web/pubspec.yaml | 6 +-- 11 files changed, 72 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 570beda4..aabf6140 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,44 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## 2024-06-26 + +### Changes + +--- + +Packages with breaking changes: + + - [`thermion_dart` - `v0.1.1+2`](#thermion_dart---v0112) + - [`thermion_flutter` - `v0.1.1+7`](#thermion_flutter---v0117) + +Packages with other changes: + + - [`thermion_flutter_ffi` - `v0.1.0+6`](#thermion_flutter_ffi---v0106) + - [`thermion_flutter_platform_interface` - `v0.1.0+6`](#thermion_flutter_platform_interface---v0106) + - [`thermion_flutter_web` - `v0.0.1+6`](#thermion_flutter_web---v0016) + +Packages graduated to a stable release (see pre-releases prior to the stable version for changelog entries): + + - `thermion_dart` - `v0.1.1+2` + - `thermion_flutter` - `v0.1.1+7` + - `thermion_flutter_ffi` - `v0.1.0+6` + - `thermion_flutter_platform_interface` - `v0.1.0+6` + - `thermion_flutter_web` - `v0.0.1+6` + +--- + +#### `thermion_dart` - `v0.1.1+2` + +#### `thermion_flutter` - `v0.1.1+7` + +#### `thermion_flutter_ffi` - `v0.1.0+6` + +#### `thermion_flutter_platform_interface` - `v0.1.0+6` + +#### `thermion_flutter_web` - `v0.0.1+6` + + ## 2024-06-26 ### Changes diff --git a/thermion_dart/CHANGELOG.md b/thermion_dart/CHANGELOG.md index 418213f8..fe29873b 100644 --- a/thermion_dart/CHANGELOG.md +++ b/thermion_dart/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.1+2 + + - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. + ## 0.1.1-dev.0+2 - **FIX**: revert to std::thread (pthreads not easily available on Windows). diff --git a/thermion_dart/pubspec.yaml b/thermion_dart/pubspec.yaml index af3365e3..974f46f3 100644 --- a/thermion_dart/pubspec.yaml +++ b/thermion_dart/pubspec.yaml @@ -1,6 +1,6 @@ name: thermion_dart description: 3D rendering toolkit for Dart. -version: 0.1.1-dev.0+2 +version: 0.1.1+2 homepage: https://docs.page/nmfisher/thermion repository: https://github.com/nmfisher/thermion diff --git a/thermion_flutter/thermion_flutter/CHANGELOG.md b/thermion_flutter/thermion_flutter/CHANGELOG.md index 6fb01e24..f885f791 100644 --- a/thermion_flutter/thermion_flutter/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.1+7 + + - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. + ## 0.1.1-dev.0+7 - **FIX**: add ResourceBuffer header directly to Windows build so I don't have to fiddle around getting the CMake path right. diff --git a/thermion_flutter/thermion_flutter/pubspec.yaml b/thermion_flutter/thermion_flutter/pubspec.yaml index ea1b294a..c9758a35 100644 --- a/thermion_flutter/thermion_flutter/pubspec.yaml +++ b/thermion_flutter/thermion_flutter/pubspec.yaml @@ -1,6 +1,6 @@ name: thermion_flutter description: Flutter plugin for 3D rendering with the Thermion toolkit. -version: 0.1.1-dev.0+7 +version: 0.1.1+7 homepage: https://docs.page/nmfisher/thermion repository: https://github.com/nmfisher/thermion @@ -17,10 +17,10 @@ dependencies: plugin_platform_interface: ^2.0.0 ffi: ^2.1.2 animation_tools_dart: ^0.0.4 - thermion_dart: ^0.1.1-dev.0+2 - thermion_flutter_platform_interface: ^0.1.0-dev.0+6 - thermion_flutter_ffi: ^0.1.0-dev.0+6 - thermion_flutter_web: ^0.0.1-dev.0+6 + thermion_dart: ^0.1.1+2 + thermion_flutter_platform_interface: ^0.1.0+6 + thermion_flutter_ffi: ^0.1.0+6 + thermion_flutter_web: ^0.0.1+6 logging: ^1.2.0 dev_dependencies: diff --git a/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md b/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md index 0a5d5aef..c7111897 100644 --- a/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_ffi/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.0+6 + + - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. + ## 0.1.0-dev.0+6 - Update a dependency to the latest release. diff --git a/thermion_flutter/thermion_flutter_ffi/pubspec.yaml b/thermion_flutter/thermion_flutter_ffi/pubspec.yaml index b35232d3..c5bb04fd 100644 --- a/thermion_flutter/thermion_flutter_ffi/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_ffi/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_ffi description: An FFI interface for the thermion_flutter plugin (all platforms except web). repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.1.0-dev.0+6 +version: 0.1.0+6 environment: sdk: ">=3.3.0 <4.0.0" @@ -22,8 +22,8 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.1.0 - thermion_flutter_platform_interface: ^0.1.0-dev.0+6 - thermion_dart: ^0.1.1-dev.0+2 + thermion_flutter_platform_interface: ^0.1.0+6 + thermion_dart: ^0.1.1+2 dev_dependencies: flutter_test: diff --git a/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md b/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md index 2905699b..ff0c0965 100644 --- a/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_platform_interface/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.0+6 + + - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. + ## 0.1.0-dev.0+6 - Update a dependency to the latest release. diff --git a/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml b/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml index 84bb4821..8dc666e6 100644 --- a/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_platform_interface/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_platform_interface description: A common platform interface for the thermion_flutter plugin. repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.1.0-dev.0+6 +version: 0.1.0+6 environment: sdk: ">=3.3.0 <4.0.0" @@ -11,7 +11,7 @@ dependencies: flutter: sdk: flutter plugin_platform_interface: ^2.1.0 - thermion_dart: ^0.1.1-dev.0+2 + thermion_dart: ^0.1.1+2 dev_dependencies: flutter_test: diff --git a/thermion_flutter/thermion_flutter_web/CHANGELOG.md b/thermion_flutter/thermion_flutter_web/CHANGELOG.md index 5eff0f67..79f1dee7 100644 --- a/thermion_flutter/thermion_flutter_web/CHANGELOG.md +++ b/thermion_flutter/thermion_flutter_web/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.1+6 + + - Graduate package to a stable release. See pre-releases prior to this version for changelog entries. + ## 0.0.1-dev.0+6 - Update a dependency to the latest release. diff --git a/thermion_flutter/thermion_flutter_web/pubspec.yaml b/thermion_flutter/thermion_flutter_web/pubspec.yaml index 68b04676..a0b6ac52 100644 --- a/thermion_flutter/thermion_flutter_web/pubspec.yaml +++ b/thermion_flutter/thermion_flutter_web/pubspec.yaml @@ -1,7 +1,7 @@ name: thermion_flutter_web description: A web platform interface for the thermion_flutter plugin. repository: https://github.com/nmfisher/thermion_flutter/thermion_flutter -version: 0.0.1-dev.0+6 +version: 0.0.1+6 environment: sdk: ">=3.3.0 <4.0.0" @@ -20,8 +20,8 @@ dependencies: sdk: flutter plugin_platform_interface: ^2.1.0 web: ^0.5.1 - thermion_dart: ^0.1.1-dev.0+2 - thermion_flutter_platform_interface: ^0.1.0-dev.0+6 + thermion_dart: ^0.1.1+2 + thermion_flutter_platform_interface: ^0.1.0+6 flutter_web_plugins: sdk: flutter From b117a4a19caae7254d890b29acc1671bbbff3276 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 26 Jun 2024 12:41:58 +0800 Subject: [PATCH 10/15] chore: move examples to separate repository --- examples/assets/1.glb | 3 - examples/assets/2.glb | 3 - examples/assets/3.glb | 3 - examples/assets/BusterDrone/scene.bin | 3 - examples/assets/BusterDrone/scene.gltf | 3 - .../BusterDrone/textures/Boden_baseColor.jpg | 3 - .../textures/Boden_metallicRoughness.jpg | 3 - .../BusterDrone/textures/Boden_normal.jpg | 3 - .../BusterDrone/textures/body_baseColor.jpg | 3 - .../BusterDrone/textures/body_emissive.jpg | 3 - .../textures/body_metallicRoughness.jpg | 3 - .../BusterDrone/textures/body_normal.jpg | 3 - .../textures/material_baseColor.jpg | 3 - .../textures/material_metallicRoughness.jpg | 3 - .../BusterDrone/textures/material_normal.jpg | 3 - examples/assets/FlightHelmet/FlightHelmet.bin | 3 - .../assets/FlightHelmet/FlightHelmet.gltf | 3 - .../FlightHelmet/FlightHelmet_baseColor.png | 3 - .../FlightHelmet/FlightHelmet_baseColor1.png | 3 - .../FlightHelmet/FlightHelmet_baseColor2.png | 3 - .../FlightHelmet/FlightHelmet_baseColor3.png | 3 - .../FlightHelmet/FlightHelmet_baseColor4.png | 3 - .../FlightHelmet/FlightHelmet_normal.png | 3 - .../FlightHelmet/FlightHelmet_normal1.png | 3 - .../FlightHelmet/FlightHelmet_normal2.png | 3 - .../FlightHelmet/FlightHelmet_normal3.png | 3 - .../FlightHelmet/FlightHelmet_normal4.png | 3 - ...lightHelmet_occlusionRoughnessMetallic.png | 3 - ...ightHelmet_occlusionRoughnessMetallic1.png | 3 - ...ightHelmet_occlusionRoughnessMetallic2.png | 3 - ...ightHelmet_occlusionRoughnessMetallic3.png | 3 - ...ightHelmet_occlusionRoughnessMetallic4.png | 3 - examples/assets/FlightHelmet/README.md | 3 - examples/assets/background.ktx | 3 - examples/assets/background.png | 3 - .../assets/default_env/default_env_ibl.ktx | 3 - .../assets/default_env/default_env_skybox.ktx | 3 - examples/assets/shapes/shapes.bin | 3 - examples/assets/shapes/shapes.blend | 3 - examples/assets/shapes/shapes.blend1 | 3 - examples/assets/shapes/shapes.glb | 3 - examples/assets/shapes/shapes.gltf | 3 - examples/assets/shapes/texture_test.png | 3 - examples/assets/solidcolor.filamat | 3 - examples/assets/solidcolor.mat | 3 - examples/dart/cli_macos/.gitignore | 3 - examples/dart/cli_macos/CHANGELOG.md | 3 - examples/dart/cli_macos/README.md | 2 - examples/dart/cli_macos/analysis_options.yaml | 30 - examples/dart/cli_macos/bin/assets | 1 - examples/dart/cli_macos/bin/example_cli.dart | 46 - .../cli_macos/bin/libthermion_swift.dylib | 1 - .../cli_macos/bin/output/output_000007.png | Bin 47139 -> 0 bytes examples/dart/cli_macos/pubspec.yaml | 18 - .../dart/cli_macos/test/example_cli_test.dart | 8 - examples/dart/cli_wasm/.gitignore | 3 - examples/dart/cli_wasm/CHANGELOG.md | 3 - examples/dart/cli_wasm/README.md | 2 - examples/dart/cli_wasm/analysis_options.yaml | 30 - examples/dart/cli_wasm/bin/.gitignore | 4 - examples/dart/cli_wasm/bin/build.log | 98 -- examples/dart/cli_wasm/bin/example_cli.dart | 33 - examples/dart/cli_wasm/bin/main.js | 123 -- examples/dart/cli_wasm/bin/package-lock.json | 1559 ----------------- examples/dart/cli_wasm/bin/package.json | 5 - examples/dart/cli_wasm/bin/thermion_dart.js | 1 - examples/dart/cli_wasm/bin/thermion_dart.wasm | 1 - .../dart/cli_wasm/bin/thermion_dart.worker.js | 1 - examples/dart/cli_wasm/pubspec.yaml | 18 - .../dart/cli_wasm/test/example_cli_test.dart | 8 - examples/dart/web_wasm/.gitignore | 3 - examples/dart/web_wasm/CHANGELOG.md | 3 - examples/dart/web_wasm/README.md | 2 - examples/dart/web_wasm/analysis_options.yaml | 30 - examples/dart/web_wasm/bin/README.md | 16 - examples/dart/web_wasm/bin/assets | 1 - examples/dart/web_wasm/bin/example_web.dart | 57 - examples/dart/web_wasm/bin/example_web.mjs | 249 --- .../dart/web_wasm/bin/example_web.unopt.wasm | Bin 238521 -> 0 bytes examples/dart/web_wasm/bin/example_web.wasm | Bin 112770 -> 0 bytes examples/dart/web_wasm/bin/index.html | 127 -- examples/dart/web_wasm/bin/thermion_dart.js | 1 - examples/dart/web_wasm/bin/thermion_dart.wasm | 1 - .../dart/web_wasm/bin/thermion_dart.worker.js | 1 - examples/dart/web_wasm/pubspec.yaml | 17 - .../dart/web_wasm/test/example_web_test.dart | 8 - examples/flutter/example/.fvm/fvm_config.json | 4 - examples/flutter/example/.gitattributes | 30 - examples/flutter/example/.gitignore | 50 - examples/flutter/example/.metadata | 30 - examples/flutter/example/README.md | 21 - .../flutter/example/analysis_options.yaml | 29 - examples/flutter/example/android/.gitignore | 13 - .../flutter/example/android/app/build.gradle | 51 - .../android/app/src/debug/AndroidManifest.xml | 7 - .../android/app/src/main/AndroidManifest.xml | 45 - .../app/polyvox/example/MainActivity.kt | 5 - .../res/drawable-v21/launch_background.xml | 12 - .../main/res/drawable/launch_background.xml | 12 - .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 0 bytes .../app/src/main/res/values-night/styles.xml | 18 - .../app/src/main/res/values/styles.xml | 18 - .../app/src/profile/AndroidManifest.xml | 7 - examples/flutter/example/android/build.gradle | 18 - .../flutter/example/android/gradle.properties | 3 - .../gradle/wrapper/gradle-wrapper.properties | 5 - .../flutter/example/android/settings.gradle | 25 - examples/flutter/example/assets | 1 - .../integration_test/goldens/ios/0_fresh.png | 3 - .../goldens/ios/10_setshapespositionto.png | 3 - .../goldens/ios/11_Disablefrustumculling.png | 3 - .../goldens/ios/12_Settonemappingtolinear.png | 3 - .../goldens/ios/13_Movecameratoasset.png | 3 - .../goldens/ios/14_movecamerato.png | 3 - .../15_setcameratofirstcamerainshapesGLB.png | 3 - .../goldens/ios/16_resize.png | 3 - .../goldens/ios/17_resize.png | 3 - .../goldens/ios/18_resize.png | 3 - .../goldens/ios/19_resize.png | 3 - .../ios/1_createviewerdefaultubershader.png | 3 - .../goldens/ios/2_Renderingfalse.png | 3 - .../goldens/ios/3_loadskybox.png | 3 - .../goldens/ios/4_loadIBL.png | 3 - .../goldens/ios/5_loadshapesGLB.png | 3 - .../integration_test/goldens/ios/6_zoomin.png | 3 - .../integration_test/goldens/ios/7_rotate.png | 3 - .../integration_test/goldens/ios/8_pan.png | 3 - .../goldens/ios/9_transformtounitcube.png | 3 - .../plugin_integration_test.dart | 190 -- examples/flutter/example/ios/.gitignore | 34 - .../ios/Flutter/AppFrameworkInfo.plist | 26 - .../example/ios/Flutter/Debug.xcconfig | 2 - .../example/ios/Flutter/Release.xcconfig | 2 - examples/flutter/example/ios/Podfile | 44 - examples/flutter/example/ios/Podfile.lock | 35 - .../ios/Runner.xcodeproj/project.pbxproj | 730 -------- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/WorkspaceSettings.xcsettings | 8 - .../xcshareddata/xcschemes/Runner.xcscheme | 98 -- .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/WorkspaceSettings.xcsettings | 8 - .../example/ios/Runner/AppDelegate.swift | 13 - .../AppIcon.appiconset/Contents.json | 122 -- .../Icon-App-1024x1024@1x.png | Bin 10932 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 295 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 406 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 450 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 282 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 462 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 704 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 406 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 586 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 862 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 862 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 1674 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 762 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 1226 -> 0 bytes .../Icon-App-83.5x83.5@2x.png | Bin 1418 -> 0 bytes .../LaunchImage.imageset/Contents.json | 23 - .../LaunchImage.imageset/LaunchImage.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/README.md | 5 - .../Runner/Base.lproj/LaunchScreen.storyboard | 37 - .../ios/Runner/Base.lproj/Main.storyboard | 26 - .../flutter/example/ios/Runner/Info.plist | 49 - .../ios/Runner/Runner-Bridging-Header.h | 1 - .../example/ios/RunnerTests/RunnerTests.swift | 12 - .../example/lib/camera_matrix_overlay.dart | 139 -- .../flutter/example/lib/example_viewport.dart | 35 - examples/flutter/example/lib/main.dart | 196 --- .../example/lib/menus/asset_submenu.dart | 263 --- .../example/lib/menus/camera_submenu.dart | 224 --- .../example/lib/menus/controller_menu.dart | 107 -- .../example/lib/menus/rendering_submenu.dart | 95 - .../flutter/example/lib/menus/scene_menu.dart | 62 - .../example/lib/picker_result_widget.dart | 20 - examples/flutter/example/linux/.gitignore | 1 - examples/flutter/example/linux/CMakeLists.txt | 141 -- .../example/linux/flutter/CMakeLists.txt | 88 - .../flutter/generated_plugin_registrant.cc | 15 - .../flutter/generated_plugin_registrant.h | 15 - .../linux/flutter/generated_plugins.cmake | 24 - examples/flutter/example/linux/main.cc | 6 - .../flutter/example/linux/my_application.cc | 104 -- .../flutter/example/linux/my_application.h | 18 - examples/flutter/example/macos/.gitignore | 7 - .../macos/Flutter/Flutter-Debug.xcconfig | 2 - .../macos/Flutter/Flutter-Release.xcconfig | 2 - .../Flutter/GeneratedPluginRegistrant.swift | 14 - examples/flutter/example/macos/Podfile | 43 - .../macos/Runner.xcodeproj/project.pbxproj | 803 --------- .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/xcschemes/Runner.xcscheme | 98 -- .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../example/macos/Runner/AppDelegate.swift | 9 - .../AppIcon.appiconset/Contents.json | 68 - .../AppIcon.appiconset/app_icon_1024.png | Bin 102994 -> 0 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 5680 -> 0 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 520 -> 0 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 14142 -> 0 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 1066 -> 0 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 36406 -> 0 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 2218 -> 0 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 343 ---- .../macos/Runner/Configs/AppInfo.xcconfig | 14 - .../macos/Runner/Configs/Debug.xcconfig | 2 - .../macos/Runner/Configs/Release.xcconfig | 2 - .../macos/Runner/Configs/Warnings.xcconfig | 13 - .../macos/Runner/DebugProfile.entitlements | 12 - .../flutter/example/macos/Runner/Info.plist | 32 - .../macos/Runner/MainFlutterWindow.swift | 15 - .../example/macos/Runner/Release.entitlements | 8 - .../macos/RunnerTests/RunnerTests.swift | 12 - examples/flutter/example/pubspec.yaml | 51 - .../flutter/example/test/widget_test.dart | 27 - .../example/test_driver/compare_goldens.sh | 9 - .../example/test_driver/integration_test.dart | 58 - .../integration_test_update_goldens.dart | 22 - .../example/test_driver/regenerate_goldens.sh | 8 - examples/flutter/example/web/favicon.png | Bin 917 -> 0 bytes .../flutter/example/web/icons/Icon-192.png | Bin 5292 -> 0 bytes .../flutter/example/web/icons/Icon-512.png | Bin 8252 -> 0 bytes .../example/web/icons/Icon-maskable-192.png | Bin 5594 -> 0 bytes .../example/web/icons/Icon-maskable-512.png | Bin 20998 -> 0 bytes examples/flutter/example/web/index.html | 146 -- examples/flutter/example/web/main.dart | 53 - examples/flutter/example/web/main.mjs | 358 ---- examples/flutter/example/web/main.unopt.wasm | Bin 529519 -> 0 bytes examples/flutter/example/web/main.wasm | Bin 225312 -> 0 bytes examples/flutter/example/web/manifest.json | 35 - examples/flutter/example/web/thermion_dart.js | 1 - .../flutter/example/web/thermion_dart.wasm | 1 - .../example/web/thermion_dart.worker.js | 1 - examples/flutter/example/windows/.gitignore | 17 - .../flutter/example/windows/CMakeLists.txt | 95 - .../example/windows/flutter/CMakeLists.txt | 108 -- .../flutter/generated_plugin_registrant.cc | 14 - .../flutter/generated_plugin_registrant.h | 15 - .../windows/flutter/generated_plugins.cmake | 24 - .../example/windows/runner/CMakeLists.txt | 17 - .../flutter/example/windows/runner/Runner.rc | 121 -- .../example/windows/runner/flutter_window.cpp | 61 - .../example/windows/runner/flutter_window.h | 33 - .../flutter/example/windows/runner/main.cpp | 43 - .../flutter/example/windows/runner/resource.h | 16 - .../windows/runner/resources/app_icon.ico | Bin 33772 -> 0 bytes .../windows/runner/runner.exe.manifest | 20 - .../flutter/example/windows/runner/utils.cpp | 64 - .../flutter/example/windows/runner/utils.h | 19 - .../example/windows/runner/win32_window.cpp | 245 --- .../example/windows/runner/win32_window.h | 98 -- examples/flutter/quickstart/.gitignore | 43 - examples/flutter/quickstart/.metadata | 45 - examples/flutter/quickstart/README.md | 16 - .../flutter/quickstart/analysis_options.yaml | 28 - .../flutter/quickstart/android/.gitignore | 13 - .../quickstart/android/app/build.gradle | 44 - .../android/app/src/debug/AndroidManifest.xml | 7 - .../android/app/src/main/AndroidManifest.xml | 45 - .../com/example/quickstart/MainActivity.kt | 5 - .../res/drawable-v21/launch_background.xml | 12 - .../main/res/drawable/launch_background.xml | 12 - .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 544 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 442 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 721 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 1031 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 1443 -> 0 bytes .../app/src/main/res/values-night/styles.xml | 18 - .../app/src/main/res/values/styles.xml | 18 - .../app/src/profile/AndroidManifest.xml | 7 - .../flutter/quickstart/android/build.gradle | 18 - .../quickstart/android/gradle.properties | 3 - .../gradle/wrapper/gradle-wrapper.properties | 5 - .../quickstart/android/settings.gradle | 25 - examples/flutter/quickstart/assets/cube.glb | Bin 1936 -> 0 bytes .../quickstart/assets/default_env_ibl.ktx | Bin 2095464 -> 0 bytes .../quickstart/assets/default_env_skybox.ktx | Bin 1572932 -> 0 bytes examples/flutter/quickstart/ios/.gitignore | 34 - .../ios/Flutter/AppFrameworkInfo.plist | 26 - .../quickstart/ios/Flutter/Debug.xcconfig | 2 - .../quickstart/ios/Flutter/Release.xcconfig | 2 - examples/flutter/quickstart/ios/Podfile | 44 - examples/flutter/quickstart/ios/Podfile.lock | 22 - .../ios/Runner.xcodeproj/project.pbxproj | 716 -------- .../contents.xcworkspacedata | 7 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/WorkspaceSettings.xcsettings | 8 - .../xcshareddata/xcschemes/Runner.xcscheme | 98 -- .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/WorkspaceSettings.xcsettings | 8 - .../quickstart/ios/Runner/AppDelegate.swift | 13 - .../AppIcon.appiconset/Contents.json | 122 -- .../Icon-App-1024x1024@1x.png | Bin 10932 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 295 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 406 -> 0 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 450 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 282 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 462 -> 0 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 704 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 406 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 586 -> 0 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 862 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 862 -> 0 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 1674 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 762 -> 0 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 1226 -> 0 bytes .../Icon-App-83.5x83.5@2x.png | Bin 1418 -> 0 bytes .../LaunchImage.imageset/Contents.json | 23 - .../LaunchImage.imageset/LaunchImage.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 68 -> 0 bytes .../LaunchImage.imageset/README.md | 5 - .../Runner/Base.lproj/LaunchScreen.storyboard | 37 - .../ios/Runner/Base.lproj/Main.storyboard | 26 - .../flutter/quickstart/ios/Runner/Info.plist | 49 - .../ios/Runner/Runner-Bridging-Header.h | 1 - .../ios/RunnerTests/RunnerTests.swift | 12 - examples/flutter/quickstart/lib/main.dart | 92 - examples/flutter/quickstart/linux/.gitignore | 1 - .../flutter/quickstart/linux/CMakeLists.txt | 145 -- .../quickstart/linux/flutter/CMakeLists.txt | 88 - .../flutter/generated_plugin_registrant.cc | 15 - .../flutter/generated_plugin_registrant.h | 15 - .../linux/flutter/generated_plugins.cmake | 24 - examples/flutter/quickstart/linux/main.cc | 6 - .../quickstart/linux/my_application.cc | 124 -- .../flutter/quickstart/linux/my_application.h | 18 - examples/flutter/quickstart/macos/.gitignore | 7 - .../macos/Flutter/Flutter-Debug.xcconfig | 2 - .../macos/Flutter/Flutter-Release.xcconfig | 2 - .../Flutter/GeneratedPluginRegistrant.swift | 12 - examples/flutter/quickstart/macos/Podfile | 43 - .../flutter/quickstart/macos/Podfile.lock | 22 - .../macos/Runner.xcodeproj/project.pbxproj | 803 --------- .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/xcschemes/Runner.xcscheme | 98 -- .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../quickstart/macos/Runner/AppDelegate.swift | 9 - .../AppIcon.appiconset/Contents.json | 68 - .../AppIcon.appiconset/app_icon_1024.png | Bin 102994 -> 0 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 5680 -> 0 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 520 -> 0 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 14142 -> 0 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 1066 -> 0 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 36406 -> 0 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 2218 -> 0 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 343 ---- .../macos/Runner/Configs/AppInfo.xcconfig | 14 - .../macos/Runner/Configs/Debug.xcconfig | 2 - .../macos/Runner/Configs/Release.xcconfig | 2 - .../macos/Runner/Configs/Warnings.xcconfig | 13 - .../macos/Runner/DebugProfile.entitlements | 12 - .../quickstart/macos/Runner/Info.plist | 32 - .../macos/Runner/MainFlutterWindow.swift | 15 - .../macos/Runner/Release.entitlements | 8 - .../macos/RunnerTests/RunnerTests.swift | 12 - examples/flutter/quickstart/pubspec.yaml | 45 - .../flutter/quickstart/test/widget_test.dart | 30 - examples/flutter/quickstart/web/favicon.png | Bin 917 -> 0 bytes .../flutter/quickstart/web/icons/Icon-192.png | Bin 5292 -> 0 bytes .../flutter/quickstart/web/icons/Icon-512.png | Bin 8252 -> 0 bytes .../web/icons/Icon-maskable-192.png | Bin 5594 -> 0 bytes .../web/icons/Icon-maskable-512.png | Bin 20998 -> 0 bytes examples/flutter/quickstart/web/index.html | 38 - examples/flutter/quickstart/web/manifest.json | 35 - .../flutter/quickstart/windows/.gitignore | 17 - .../flutter/quickstart/windows/CMakeLists.txt | 108 -- .../quickstart/windows/flutter/CMakeLists.txt | 109 -- .../flutter/generated_plugin_registrant.cc | 14 - .../flutter/generated_plugin_registrant.h | 15 - .../windows/flutter/generated_plugins.cmake | 24 - .../quickstart/windows/runner/CMakeLists.txt | 40 - .../quickstart/windows/runner/Runner.rc | 121 -- .../windows/runner/flutter_window.cpp | 71 - .../windows/runner/flutter_window.h | 33 - .../quickstart/windows/runner/main.cpp | 43 - .../quickstart/windows/runner/resource.h | 16 - .../windows/runner/resources/app_icon.ico | Bin 33772 -> 0 bytes .../windows/runner/runner.exe.manifest | 14 - .../quickstart/windows/runner/utils.cpp | 65 - .../flutter/quickstart/windows/runner/utils.h | 19 - .../windows/runner/win32_window.cpp | 288 --- .../quickstart/windows/runner/win32_window.h | 102 -- 393 files changed, 14437 deletions(-) delete mode 100644 examples/assets/1.glb delete mode 100644 examples/assets/2.glb delete mode 100644 examples/assets/3.glb delete mode 100644 examples/assets/BusterDrone/scene.bin delete mode 100644 examples/assets/BusterDrone/scene.gltf delete mode 100644 examples/assets/BusterDrone/textures/Boden_baseColor.jpg delete mode 100644 examples/assets/BusterDrone/textures/Boden_metallicRoughness.jpg delete mode 100644 examples/assets/BusterDrone/textures/Boden_normal.jpg delete mode 100644 examples/assets/BusterDrone/textures/body_baseColor.jpg delete mode 100644 examples/assets/BusterDrone/textures/body_emissive.jpg delete mode 100644 examples/assets/BusterDrone/textures/body_metallicRoughness.jpg delete mode 100644 examples/assets/BusterDrone/textures/body_normal.jpg delete mode 100644 examples/assets/BusterDrone/textures/material_baseColor.jpg delete mode 100644 examples/assets/BusterDrone/textures/material_metallicRoughness.jpg delete mode 100644 examples/assets/BusterDrone/textures/material_normal.jpg delete mode 100644 examples/assets/FlightHelmet/FlightHelmet.bin delete mode 100644 examples/assets/FlightHelmet/FlightHelmet.gltf delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_baseColor.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_baseColor1.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_baseColor2.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_baseColor3.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_baseColor4.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_normal.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_normal1.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_normal2.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_normal3.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_normal4.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic1.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic2.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic3.png delete mode 100644 examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic4.png delete mode 100644 examples/assets/FlightHelmet/README.md delete mode 100644 examples/assets/background.ktx delete mode 100644 examples/assets/background.png delete mode 100644 examples/assets/default_env/default_env_ibl.ktx delete mode 100644 examples/assets/default_env/default_env_skybox.ktx delete mode 100644 examples/assets/shapes/shapes.bin delete mode 100644 examples/assets/shapes/shapes.blend delete mode 100644 examples/assets/shapes/shapes.blend1 delete mode 100644 examples/assets/shapes/shapes.glb delete mode 100644 examples/assets/shapes/shapes.gltf delete mode 100644 examples/assets/shapes/texture_test.png delete mode 100644 examples/assets/solidcolor.filamat delete mode 100644 examples/assets/solidcolor.mat delete mode 100644 examples/dart/cli_macos/.gitignore delete mode 100644 examples/dart/cli_macos/CHANGELOG.md delete mode 100644 examples/dart/cli_macos/README.md delete mode 100644 examples/dart/cli_macos/analysis_options.yaml delete mode 120000 examples/dart/cli_macos/bin/assets delete mode 100644 examples/dart/cli_macos/bin/example_cli.dart delete mode 120000 examples/dart/cli_macos/bin/libthermion_swift.dylib delete mode 100644 examples/dart/cli_macos/bin/output/output_000007.png delete mode 100644 examples/dart/cli_macos/pubspec.yaml delete mode 100644 examples/dart/cli_macos/test/example_cli_test.dart delete mode 100644 examples/dart/cli_wasm/.gitignore delete mode 100644 examples/dart/cli_wasm/CHANGELOG.md delete mode 100644 examples/dart/cli_wasm/README.md delete mode 100644 examples/dart/cli_wasm/analysis_options.yaml delete mode 100644 examples/dart/cli_wasm/bin/.gitignore delete mode 100644 examples/dart/cli_wasm/bin/build.log delete mode 100644 examples/dart/cli_wasm/bin/example_cli.dart delete mode 100644 examples/dart/cli_wasm/bin/main.js delete mode 100644 examples/dart/cli_wasm/bin/package-lock.json delete mode 100644 examples/dart/cli_wasm/bin/package.json delete mode 120000 examples/dart/cli_wasm/bin/thermion_dart.js delete mode 120000 examples/dart/cli_wasm/bin/thermion_dart.wasm delete mode 120000 examples/dart/cli_wasm/bin/thermion_dart.worker.js delete mode 100644 examples/dart/cli_wasm/pubspec.yaml delete mode 100644 examples/dart/cli_wasm/test/example_cli_test.dart delete mode 100644 examples/dart/web_wasm/.gitignore delete mode 100644 examples/dart/web_wasm/CHANGELOG.md delete mode 100644 examples/dart/web_wasm/README.md delete mode 100644 examples/dart/web_wasm/analysis_options.yaml delete mode 100644 examples/dart/web_wasm/bin/README.md delete mode 120000 examples/dart/web_wasm/bin/assets delete mode 100644 examples/dart/web_wasm/bin/example_web.dart delete mode 100644 examples/dart/web_wasm/bin/example_web.mjs delete mode 100644 examples/dart/web_wasm/bin/example_web.unopt.wasm delete mode 100644 examples/dart/web_wasm/bin/example_web.wasm delete mode 100644 examples/dart/web_wasm/bin/index.html delete mode 120000 examples/dart/web_wasm/bin/thermion_dart.js delete mode 120000 examples/dart/web_wasm/bin/thermion_dart.wasm delete mode 120000 examples/dart/web_wasm/bin/thermion_dart.worker.js delete mode 100644 examples/dart/web_wasm/pubspec.yaml delete mode 100644 examples/dart/web_wasm/test/example_web_test.dart delete mode 100644 examples/flutter/example/.fvm/fvm_config.json delete mode 100644 examples/flutter/example/.gitattributes delete mode 100644 examples/flutter/example/.gitignore delete mode 100644 examples/flutter/example/.metadata delete mode 100644 examples/flutter/example/README.md delete mode 100644 examples/flutter/example/analysis_options.yaml delete mode 100644 examples/flutter/example/android/.gitignore delete mode 100644 examples/flutter/example/android/app/build.gradle delete mode 100644 examples/flutter/example/android/app/src/debug/AndroidManifest.xml delete mode 100644 examples/flutter/example/android/app/src/main/AndroidManifest.xml delete mode 100644 examples/flutter/example/android/app/src/main/kotlin/app/polyvox/example/MainActivity.kt delete mode 100644 examples/flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml delete mode 100644 examples/flutter/example/android/app/src/main/res/drawable/launch_background.xml delete mode 100644 examples/flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 examples/flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 examples/flutter/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 examples/flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 examples/flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 examples/flutter/example/android/app/src/main/res/values-night/styles.xml delete mode 100644 examples/flutter/example/android/app/src/main/res/values/styles.xml delete mode 100644 examples/flutter/example/android/app/src/profile/AndroidManifest.xml delete mode 100644 examples/flutter/example/android/build.gradle delete mode 100644 examples/flutter/example/android/gradle.properties delete mode 100644 examples/flutter/example/android/gradle/wrapper/gradle-wrapper.properties delete mode 100644 examples/flutter/example/android/settings.gradle delete mode 120000 examples/flutter/example/assets delete mode 100644 examples/flutter/example/integration_test/goldens/ios/0_fresh.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/10_setshapespositionto.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/11_Disablefrustumculling.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/12_Settonemappingtolinear.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/13_Movecameratoasset.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/14_movecamerato.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/15_setcameratofirstcamerainshapesGLB.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/16_resize.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/17_resize.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/18_resize.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/19_resize.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/1_createviewerdefaultubershader.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/2_Renderingfalse.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/3_loadskybox.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/4_loadIBL.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/5_loadshapesGLB.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/6_zoomin.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/7_rotate.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/8_pan.png delete mode 100644 examples/flutter/example/integration_test/goldens/ios/9_transformtounitcube.png delete mode 100644 examples/flutter/example/integration_test/plugin_integration_test.dart delete mode 100644 examples/flutter/example/ios/.gitignore delete mode 100644 examples/flutter/example/ios/Flutter/AppFrameworkInfo.plist delete mode 100644 examples/flutter/example/ios/Flutter/Debug.xcconfig delete mode 100644 examples/flutter/example/ios/Flutter/Release.xcconfig delete mode 100644 examples/flutter/example/ios/Podfile delete mode 100644 examples/flutter/example/ios/Podfile.lock delete mode 100644 examples/flutter/example/ios/Runner.xcodeproj/project.pbxproj delete mode 100644 examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100644 examples/flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme delete mode 100644 examples/flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata delete mode 100644 examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100644 examples/flutter/example/ios/Runner/AppDelegate.swift delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png delete mode 100644 examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md delete mode 100644 examples/flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard delete mode 100644 examples/flutter/example/ios/Runner/Base.lproj/Main.storyboard delete mode 100644 examples/flutter/example/ios/Runner/Info.plist delete mode 100644 examples/flutter/example/ios/Runner/Runner-Bridging-Header.h delete mode 100644 examples/flutter/example/ios/RunnerTests/RunnerTests.swift delete mode 100644 examples/flutter/example/lib/camera_matrix_overlay.dart delete mode 100644 examples/flutter/example/lib/example_viewport.dart delete mode 100644 examples/flutter/example/lib/main.dart delete mode 100644 examples/flutter/example/lib/menus/asset_submenu.dart delete mode 100644 examples/flutter/example/lib/menus/camera_submenu.dart delete mode 100644 examples/flutter/example/lib/menus/controller_menu.dart delete mode 100644 examples/flutter/example/lib/menus/rendering_submenu.dart delete mode 100644 examples/flutter/example/lib/menus/scene_menu.dart delete mode 100644 examples/flutter/example/lib/picker_result_widget.dart delete mode 100644 examples/flutter/example/linux/.gitignore delete mode 100644 examples/flutter/example/linux/CMakeLists.txt delete mode 100644 examples/flutter/example/linux/flutter/CMakeLists.txt delete mode 100644 examples/flutter/example/linux/flutter/generated_plugin_registrant.cc delete mode 100644 examples/flutter/example/linux/flutter/generated_plugin_registrant.h delete mode 100644 examples/flutter/example/linux/flutter/generated_plugins.cmake delete mode 100644 examples/flutter/example/linux/main.cc delete mode 100644 examples/flutter/example/linux/my_application.cc delete mode 100644 examples/flutter/example/linux/my_application.h delete mode 100644 examples/flutter/example/macos/.gitignore delete mode 100644 examples/flutter/example/macos/Flutter/Flutter-Debug.xcconfig delete mode 100644 examples/flutter/example/macos/Flutter/Flutter-Release.xcconfig delete mode 100644 examples/flutter/example/macos/Flutter/GeneratedPluginRegistrant.swift delete mode 100644 examples/flutter/example/macos/Podfile delete mode 100644 examples/flutter/example/macos/Runner.xcodeproj/project.pbxproj delete mode 100644 examples/flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples/flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme delete mode 100644 examples/flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata delete mode 100644 examples/flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples/flutter/example/macos/Runner/AppDelegate.swift delete mode 100644 examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png delete mode 100644 examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png delete mode 100644 examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png delete mode 100644 examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png delete mode 100644 examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png delete mode 100644 examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png delete mode 100644 examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png delete mode 100644 examples/flutter/example/macos/Runner/Base.lproj/MainMenu.xib delete mode 100644 examples/flutter/example/macos/Runner/Configs/AppInfo.xcconfig delete mode 100644 examples/flutter/example/macos/Runner/Configs/Debug.xcconfig delete mode 100644 examples/flutter/example/macos/Runner/Configs/Release.xcconfig delete mode 100644 examples/flutter/example/macos/Runner/Configs/Warnings.xcconfig delete mode 100644 examples/flutter/example/macos/Runner/DebugProfile.entitlements delete mode 100644 examples/flutter/example/macos/Runner/Info.plist delete mode 100644 examples/flutter/example/macos/Runner/MainFlutterWindow.swift delete mode 100644 examples/flutter/example/macos/Runner/Release.entitlements delete mode 100644 examples/flutter/example/macos/RunnerTests/RunnerTests.swift delete mode 100644 examples/flutter/example/pubspec.yaml delete mode 100644 examples/flutter/example/test/widget_test.dart delete mode 100644 examples/flutter/example/test_driver/compare_goldens.sh delete mode 100644 examples/flutter/example/test_driver/integration_test.dart delete mode 100644 examples/flutter/example/test_driver/integration_test_update_goldens.dart delete mode 100644 examples/flutter/example/test_driver/regenerate_goldens.sh delete mode 100644 examples/flutter/example/web/favicon.png delete mode 100644 examples/flutter/example/web/icons/Icon-192.png delete mode 100644 examples/flutter/example/web/icons/Icon-512.png delete mode 100644 examples/flutter/example/web/icons/Icon-maskable-192.png delete mode 100644 examples/flutter/example/web/icons/Icon-maskable-512.png delete mode 100644 examples/flutter/example/web/index.html delete mode 100644 examples/flutter/example/web/main.dart delete mode 100644 examples/flutter/example/web/main.mjs delete mode 100644 examples/flutter/example/web/main.unopt.wasm delete mode 100644 examples/flutter/example/web/main.wasm delete mode 100644 examples/flutter/example/web/manifest.json delete mode 120000 examples/flutter/example/web/thermion_dart.js delete mode 120000 examples/flutter/example/web/thermion_dart.wasm delete mode 120000 examples/flutter/example/web/thermion_dart.worker.js delete mode 100644 examples/flutter/example/windows/.gitignore delete mode 100644 examples/flutter/example/windows/CMakeLists.txt delete mode 100644 examples/flutter/example/windows/flutter/CMakeLists.txt delete mode 100644 examples/flutter/example/windows/flutter/generated_plugin_registrant.cc delete mode 100644 examples/flutter/example/windows/flutter/generated_plugin_registrant.h delete mode 100644 examples/flutter/example/windows/flutter/generated_plugins.cmake delete mode 100644 examples/flutter/example/windows/runner/CMakeLists.txt delete mode 100644 examples/flutter/example/windows/runner/Runner.rc delete mode 100644 examples/flutter/example/windows/runner/flutter_window.cpp delete mode 100644 examples/flutter/example/windows/runner/flutter_window.h delete mode 100644 examples/flutter/example/windows/runner/main.cpp delete mode 100644 examples/flutter/example/windows/runner/resource.h delete mode 100644 examples/flutter/example/windows/runner/resources/app_icon.ico delete mode 100644 examples/flutter/example/windows/runner/runner.exe.manifest delete mode 100644 examples/flutter/example/windows/runner/utils.cpp delete mode 100644 examples/flutter/example/windows/runner/utils.h delete mode 100644 examples/flutter/example/windows/runner/win32_window.cpp delete mode 100644 examples/flutter/example/windows/runner/win32_window.h delete mode 100644 examples/flutter/quickstart/.gitignore delete mode 100644 examples/flutter/quickstart/.metadata delete mode 100644 examples/flutter/quickstart/README.md delete mode 100644 examples/flutter/quickstart/analysis_options.yaml delete mode 100644 examples/flutter/quickstart/android/.gitignore delete mode 100644 examples/flutter/quickstart/android/app/build.gradle delete mode 100644 examples/flutter/quickstart/android/app/src/debug/AndroidManifest.xml delete mode 100644 examples/flutter/quickstart/android/app/src/main/AndroidManifest.xml delete mode 100644 examples/flutter/quickstart/android/app/src/main/kotlin/com/example/quickstart/MainActivity.kt delete mode 100644 examples/flutter/quickstart/android/app/src/main/res/drawable-v21/launch_background.xml delete mode 100644 examples/flutter/quickstart/android/app/src/main/res/drawable/launch_background.xml delete mode 100644 examples/flutter/quickstart/android/app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 examples/flutter/quickstart/android/app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 examples/flutter/quickstart/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 examples/flutter/quickstart/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 examples/flutter/quickstart/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 examples/flutter/quickstart/android/app/src/main/res/values-night/styles.xml delete mode 100644 examples/flutter/quickstart/android/app/src/main/res/values/styles.xml delete mode 100644 examples/flutter/quickstart/android/app/src/profile/AndroidManifest.xml delete mode 100644 examples/flutter/quickstart/android/build.gradle delete mode 100644 examples/flutter/quickstart/android/gradle.properties delete mode 100644 examples/flutter/quickstart/android/gradle/wrapper/gradle-wrapper.properties delete mode 100644 examples/flutter/quickstart/android/settings.gradle delete mode 100644 examples/flutter/quickstart/assets/cube.glb delete mode 100644 examples/flutter/quickstart/assets/default_env_ibl.ktx delete mode 100644 examples/flutter/quickstart/assets/default_env_skybox.ktx delete mode 100644 examples/flutter/quickstart/ios/.gitignore delete mode 100644 examples/flutter/quickstart/ios/Flutter/AppFrameworkInfo.plist delete mode 100644 examples/flutter/quickstart/ios/Flutter/Debug.xcconfig delete mode 100644 examples/flutter/quickstart/ios/Flutter/Release.xcconfig delete mode 100644 examples/flutter/quickstart/ios/Podfile delete mode 100644 examples/flutter/quickstart/ios/Podfile.lock delete mode 100644 examples/flutter/quickstart/ios/Runner.xcodeproj/project.pbxproj delete mode 100644 examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples/flutter/quickstart/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100644 examples/flutter/quickstart/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme delete mode 100644 examples/flutter/quickstart/ios/Runner.xcworkspace/contents.xcworkspacedata delete mode 100644 examples/flutter/quickstart/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples/flutter/quickstart/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100644 examples/flutter/quickstart/ios/Runner/AppDelegate.swift delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png delete mode 100644 examples/flutter/quickstart/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md delete mode 100644 examples/flutter/quickstart/ios/Runner/Base.lproj/LaunchScreen.storyboard delete mode 100644 examples/flutter/quickstart/ios/Runner/Base.lproj/Main.storyboard delete mode 100644 examples/flutter/quickstart/ios/Runner/Info.plist delete mode 100644 examples/flutter/quickstart/ios/Runner/Runner-Bridging-Header.h delete mode 100644 examples/flutter/quickstart/ios/RunnerTests/RunnerTests.swift delete mode 100644 examples/flutter/quickstart/lib/main.dart delete mode 100644 examples/flutter/quickstart/linux/.gitignore delete mode 100644 examples/flutter/quickstart/linux/CMakeLists.txt delete mode 100644 examples/flutter/quickstart/linux/flutter/CMakeLists.txt delete mode 100644 examples/flutter/quickstart/linux/flutter/generated_plugin_registrant.cc delete mode 100644 examples/flutter/quickstart/linux/flutter/generated_plugin_registrant.h delete mode 100644 examples/flutter/quickstart/linux/flutter/generated_plugins.cmake delete mode 100644 examples/flutter/quickstart/linux/main.cc delete mode 100644 examples/flutter/quickstart/linux/my_application.cc delete mode 100644 examples/flutter/quickstart/linux/my_application.h delete mode 100644 examples/flutter/quickstart/macos/.gitignore delete mode 100644 examples/flutter/quickstart/macos/Flutter/Flutter-Debug.xcconfig delete mode 100644 examples/flutter/quickstart/macos/Flutter/Flutter-Release.xcconfig delete mode 100644 examples/flutter/quickstart/macos/Flutter/GeneratedPluginRegistrant.swift delete mode 100644 examples/flutter/quickstart/macos/Podfile delete mode 100644 examples/flutter/quickstart/macos/Podfile.lock delete mode 100644 examples/flutter/quickstart/macos/Runner.xcodeproj/project.pbxproj delete mode 100644 examples/flutter/quickstart/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples/flutter/quickstart/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme delete mode 100644 examples/flutter/quickstart/macos/Runner.xcworkspace/contents.xcworkspacedata delete mode 100644 examples/flutter/quickstart/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 examples/flutter/quickstart/macos/Runner/AppDelegate.swift delete mode 100644 examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png delete mode 100644 examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png delete mode 100644 examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png delete mode 100644 examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png delete mode 100644 examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png delete mode 100644 examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png delete mode 100644 examples/flutter/quickstart/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png delete mode 100644 examples/flutter/quickstart/macos/Runner/Base.lproj/MainMenu.xib delete mode 100644 examples/flutter/quickstart/macos/Runner/Configs/AppInfo.xcconfig delete mode 100644 examples/flutter/quickstart/macos/Runner/Configs/Debug.xcconfig delete mode 100644 examples/flutter/quickstart/macos/Runner/Configs/Release.xcconfig delete mode 100644 examples/flutter/quickstart/macos/Runner/Configs/Warnings.xcconfig delete mode 100644 examples/flutter/quickstart/macos/Runner/DebugProfile.entitlements delete mode 100644 examples/flutter/quickstart/macos/Runner/Info.plist delete mode 100644 examples/flutter/quickstart/macos/Runner/MainFlutterWindow.swift delete mode 100644 examples/flutter/quickstart/macos/Runner/Release.entitlements delete mode 100644 examples/flutter/quickstart/macos/RunnerTests/RunnerTests.swift delete mode 100644 examples/flutter/quickstart/pubspec.yaml delete mode 100644 examples/flutter/quickstart/test/widget_test.dart delete mode 100644 examples/flutter/quickstart/web/favicon.png delete mode 100644 examples/flutter/quickstart/web/icons/Icon-192.png delete mode 100644 examples/flutter/quickstart/web/icons/Icon-512.png delete mode 100644 examples/flutter/quickstart/web/icons/Icon-maskable-192.png delete mode 100644 examples/flutter/quickstart/web/icons/Icon-maskable-512.png delete mode 100644 examples/flutter/quickstart/web/index.html delete mode 100644 examples/flutter/quickstart/web/manifest.json delete mode 100644 examples/flutter/quickstart/windows/.gitignore delete mode 100644 examples/flutter/quickstart/windows/CMakeLists.txt delete mode 100644 examples/flutter/quickstart/windows/flutter/CMakeLists.txt delete mode 100644 examples/flutter/quickstart/windows/flutter/generated_plugin_registrant.cc delete mode 100644 examples/flutter/quickstart/windows/flutter/generated_plugin_registrant.h delete mode 100644 examples/flutter/quickstart/windows/flutter/generated_plugins.cmake delete mode 100644 examples/flutter/quickstart/windows/runner/CMakeLists.txt delete mode 100644 examples/flutter/quickstart/windows/runner/Runner.rc delete mode 100644 examples/flutter/quickstart/windows/runner/flutter_window.cpp delete mode 100644 examples/flutter/quickstart/windows/runner/flutter_window.h delete mode 100644 examples/flutter/quickstart/windows/runner/main.cpp delete mode 100644 examples/flutter/quickstart/windows/runner/resource.h delete mode 100644 examples/flutter/quickstart/windows/runner/resources/app_icon.ico delete mode 100644 examples/flutter/quickstart/windows/runner/runner.exe.manifest delete mode 100644 examples/flutter/quickstart/windows/runner/utils.cpp delete mode 100644 examples/flutter/quickstart/windows/runner/utils.h delete mode 100644 examples/flutter/quickstart/windows/runner/win32_window.cpp delete mode 100644 examples/flutter/quickstart/windows/runner/win32_window.h diff --git a/examples/assets/1.glb b/examples/assets/1.glb deleted file mode 100644 index f6e5c4cf..00000000 --- a/examples/assets/1.glb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4a1d72d69da8b933bde5453ef2000612b561f8ddfa536a7ad89288ef11eb876d -size 1624 diff --git a/examples/assets/2.glb b/examples/assets/2.glb deleted file mode 100644 index a5bd07f7..00000000 --- a/examples/assets/2.glb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fe0151ced8fd8609f9692f3d62dbd30890dada97cb6995572e37c7e7b4440d86 -size 21304 diff --git a/examples/assets/3.glb b/examples/assets/3.glb deleted file mode 100644 index de666f7c..00000000 --- a/examples/assets/3.glb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0f8b793f6513cf83f80ce9c63c7b51d329908b1991f17ca642911634b15b32de -size 34172 diff --git a/examples/assets/BusterDrone/scene.bin b/examples/assets/BusterDrone/scene.bin deleted file mode 100644 index a3590eae..00000000 --- a/examples/assets/BusterDrone/scene.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2aafaedba913b3c5642907e4fc57f5fcd2f4f4deb0a5a6c9ad17ef2b0ae2ed1f -size 1810780 diff --git a/examples/assets/BusterDrone/scene.gltf b/examples/assets/BusterDrone/scene.gltf deleted file mode 100644 index 2d63a2cc..00000000 --- a/examples/assets/BusterDrone/scene.gltf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea5425c972afb40de5b0c5caa1ae121c51592143245c4e8a39273ac26ca19d01 -size 232514 diff --git a/examples/assets/BusterDrone/textures/Boden_baseColor.jpg b/examples/assets/BusterDrone/textures/Boden_baseColor.jpg deleted file mode 100644 index 9e5419f0..00000000 --- a/examples/assets/BusterDrone/textures/Boden_baseColor.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f6d208315a0b37935face8f9b159ee3bdf44d3b95bcfdf441d1725f6c81d0faa -size 543635 diff --git a/examples/assets/BusterDrone/textures/Boden_metallicRoughness.jpg b/examples/assets/BusterDrone/textures/Boden_metallicRoughness.jpg deleted file mode 100644 index 46b9968b..00000000 --- a/examples/assets/BusterDrone/textures/Boden_metallicRoughness.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e5f3a5f2deb2abd7382905a2fb483071f610152f1433eecc527dc8d8ded1c98b -size 1680 diff --git a/examples/assets/BusterDrone/textures/Boden_normal.jpg b/examples/assets/BusterDrone/textures/Boden_normal.jpg deleted file mode 100644 index 86535ac3..00000000 --- a/examples/assets/BusterDrone/textures/Boden_normal.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1c9fe38941e09e853ab8410a84a0336d0fc1e2733a4a2b8571e5b5e47b5fd30c -size 876491 diff --git a/examples/assets/BusterDrone/textures/body_baseColor.jpg b/examples/assets/BusterDrone/textures/body_baseColor.jpg deleted file mode 100644 index 6976673e..00000000 --- a/examples/assets/BusterDrone/textures/body_baseColor.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e57477f5e57d6e3381051367dd05425327643c7bd19a972a1172275ecc675106 -size 1501226 diff --git a/examples/assets/BusterDrone/textures/body_emissive.jpg b/examples/assets/BusterDrone/textures/body_emissive.jpg deleted file mode 100644 index dc52448a..00000000 --- a/examples/assets/BusterDrone/textures/body_emissive.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:999903752cd80ca12b074117942a7128c1c84d27edc8cc773bb15a7f7ddcdcb9 -size 197691 diff --git a/examples/assets/BusterDrone/textures/body_metallicRoughness.jpg b/examples/assets/BusterDrone/textures/body_metallicRoughness.jpg deleted file mode 100644 index 8126ce4b..00000000 --- a/examples/assets/BusterDrone/textures/body_metallicRoughness.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d88568b3463f21a96400cd265286fbb26accdef3a11dbeb65e9faf824a441e4e -size 3868939 diff --git a/examples/assets/BusterDrone/textures/body_normal.jpg b/examples/assets/BusterDrone/textures/body_normal.jpg deleted file mode 100644 index 72a1d807..00000000 --- a/examples/assets/BusterDrone/textures/body_normal.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a34c5fdd0696d1679f5f0464f8fdfc5f012dc2be435046218158bed1bed0f7cb -size 1369811 diff --git a/examples/assets/BusterDrone/textures/material_baseColor.jpg b/examples/assets/BusterDrone/textures/material_baseColor.jpg deleted file mode 100644 index 1438a607..00000000 --- a/examples/assets/BusterDrone/textures/material_baseColor.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8de472e97570c33f0945bb38e97fea2af779e972e21d0226145060ab3ec83fd2 -size 512354 diff --git a/examples/assets/BusterDrone/textures/material_metallicRoughness.jpg b/examples/assets/BusterDrone/textures/material_metallicRoughness.jpg deleted file mode 100644 index 13c3d7e4..00000000 --- a/examples/assets/BusterDrone/textures/material_metallicRoughness.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:df391e772b5ff04540d5187cdf01d5cb04adf661931b2ccbe8744909b0954100 -size 628316 diff --git a/examples/assets/BusterDrone/textures/material_normal.jpg b/examples/assets/BusterDrone/textures/material_normal.jpg deleted file mode 100644 index bb9a61ee..00000000 --- a/examples/assets/BusterDrone/textures/material_normal.jpg +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:20dec60f67ea38b14ac45ae2490ddd4bbf5c108f842e244a5fe3f90c7010cc7f -size 468148 diff --git a/examples/assets/FlightHelmet/FlightHelmet.bin b/examples/assets/FlightHelmet/FlightHelmet.bin deleted file mode 100644 index a56edd8c..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a8b61da658f891a244ffba8a293b0b4dcf384893f99c6bcaa4ab653f981de853 -size 501824 diff --git a/examples/assets/FlightHelmet/FlightHelmet.gltf b/examples/assets/FlightHelmet/FlightHelmet.gltf deleted file mode 100644 index 680f64dd..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet.gltf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7b05a4cf63ea1c614a9385cdb902c62bad324eccbb87a6c9e3370da2b6f36f2d -size 14565 diff --git a/examples/assets/FlightHelmet/FlightHelmet_baseColor.png b/examples/assets/FlightHelmet/FlightHelmet_baseColor.png deleted file mode 100644 index 121fa21d..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_baseColor.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8e5567daf7a3ac83f6ebc04605f3605ac17c19a153b6b8aadd2596690209c34c -size 2778518 diff --git a/examples/assets/FlightHelmet/FlightHelmet_baseColor1.png b/examples/assets/FlightHelmet/FlightHelmet_baseColor1.png deleted file mode 100644 index 4fad1b98..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_baseColor1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fd1207967131afbe2fa523c9f4bae1f6dbce1a8fdd0ebfad5ec0cf7ba6a66dc1 -size 5348302 diff --git a/examples/assets/FlightHelmet/FlightHelmet_baseColor2.png b/examples/assets/FlightHelmet/FlightHelmet_baseColor2.png deleted file mode 100644 index d85c68c6..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_baseColor2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7729882e59bc227554d1b26ffd6494bbd37357ee37ac959fad2932b16d586f79 -size 825327 diff --git a/examples/assets/FlightHelmet/FlightHelmet_baseColor3.png b/examples/assets/FlightHelmet/FlightHelmet_baseColor3.png deleted file mode 100644 index 3c8eaed2..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_baseColor3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3c8bd17cfddecede5a3fa9e1933ac6f309ce4cc6bc85d4122b9ae39b0ba2b0d8 -size 2990685 diff --git a/examples/assets/FlightHelmet/FlightHelmet_baseColor4.png b/examples/assets/FlightHelmet/FlightHelmet_baseColor4.png deleted file mode 100644 index 368de825..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_baseColor4.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7987620b2a90887fa1a0521bf72f84933a2eadca88965f47599204dd55dae62a -size 3974850 diff --git a/examples/assets/FlightHelmet/FlightHelmet_normal.png b/examples/assets/FlightHelmet/FlightHelmet_normal.png deleted file mode 100644 index b94892ea..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_normal.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7acaed3775bb6246c266c8e3dcd803391a08a528b727781bf11559f016752f61 -size 3185146 diff --git a/examples/assets/FlightHelmet/FlightHelmet_normal1.png b/examples/assets/FlightHelmet/FlightHelmet_normal1.png deleted file mode 100644 index afa3ce9b..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_normal1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:573a3d39db8a109352d16a421aff316d37faeb52f6abf01d0ca72db279bde7d9 -size 5708074 diff --git a/examples/assets/FlightHelmet/FlightHelmet_normal2.png b/examples/assets/FlightHelmet/FlightHelmet_normal2.png deleted file mode 100644 index 00b58e74..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_normal2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:13e867927da090fe696248e0d884087a7d4e310dca8315cd8d4d686b95db7aef -size 17805 diff --git a/examples/assets/FlightHelmet/FlightHelmet_normal3.png b/examples/assets/FlightHelmet/FlightHelmet_normal3.png deleted file mode 100644 index bef510ce..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_normal3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3506c43687bf4bd441eef301b157761574c2edecab6c8af6b8e6a85b772abe15 -size 3713769 diff --git a/examples/assets/FlightHelmet/FlightHelmet_normal4.png b/examples/assets/FlightHelmet/FlightHelmet_normal4.png deleted file mode 100644 index 074d5538..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_normal4.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c34919581290d71a541697454ef9200d3f693236e8e9ddac89b49fa83c3befd9 -size 3702691 diff --git a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic.png b/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic.png deleted file mode 100644 index 3421ab6c..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7fe00edcc79fb3266f7fe61ddb3fbf08f425b731985af7543bc5b677414cbf19 -size 4591738 diff --git a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic1.png b/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic1.png deleted file mode 100644 index f0edcd24..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c6f75cb920285d4b0eb1f087bc79e70d31b1801c3df4edba294351516fa98953 -size 5304637 diff --git a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic2.png b/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic2.png deleted file mode 100644 index b1f50b08..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:32afd5ae0da2f2880fc85753b993a6945da1993f4087e562f2f75e107ecbf2f3 -size 755081 diff --git a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic3.png b/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic3.png deleted file mode 100644 index f32a6371..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c15354b40ef4f79b83d16d6aaa37cfd7654a8e281ef5e5dc5a25934d55f16f7a -size 3748216 diff --git a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic4.png b/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic4.png deleted file mode 100644 index 73fd570e..00000000 --- a/examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic4.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c821ef0709398d8bc3cccfa311572fb45d4d9198514155f940936019ad0f32fd -size 4489618 diff --git a/examples/assets/FlightHelmet/README.md b/examples/assets/FlightHelmet/README.md deleted file mode 100644 index 2a99b3a0..00000000 --- a/examples/assets/FlightHelmet/README.md +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0bc81c711f74fdfd2ef56e34d747383444a3ab6a1ee52fe62cb5838e59b0be56 -size 545 diff --git a/examples/assets/background.ktx b/examples/assets/background.ktx deleted file mode 100644 index 4f13ac3a..00000000 --- a/examples/assets/background.ktx +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:620bfa644724e9914df19949346ad0f441357fbb176879421d66b4377705836b -size 1048644 diff --git a/examples/assets/background.png b/examples/assets/background.png deleted file mode 100644 index 2ca89ebb..00000000 --- a/examples/assets/background.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bedb625eca04a9abba66d1521efda591819212e44cef0ab2438631596902140c -size 585493 diff --git a/examples/assets/default_env/default_env_ibl.ktx b/examples/assets/default_env/default_env_ibl.ktx deleted file mode 100644 index 4ba3a2cc..00000000 --- a/examples/assets/default_env/default_env_ibl.ktx +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0245800fa846c2a3c15cb1d2aa6ded86fcf8355e568907dcd50e073c589f85d6 -size 2095464 diff --git a/examples/assets/default_env/default_env_skybox.ktx b/examples/assets/default_env/default_env_skybox.ktx deleted file mode 100644 index 33f4d477..00000000 --- a/examples/assets/default_env/default_env_skybox.ktx +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:40379fcd881ca3729b0fa057f66b8fedbd8ab92b8e407bc3a4fd17c1a2b6e75e -size 1572932 diff --git a/examples/assets/shapes/shapes.bin b/examples/assets/shapes/shapes.bin deleted file mode 100644 index 661d051b..00000000 --- a/examples/assets/shapes/shapes.bin +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5821c53850d84c5b2d0b39ad28e6cde94d8fc7e1bbb97d5d898c40733e2d4e99 -size 107424 diff --git a/examples/assets/shapes/shapes.blend b/examples/assets/shapes/shapes.blend deleted file mode 100644 index 1f15f926..00000000 --- a/examples/assets/shapes/shapes.blend +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d9134594e40a4bad7601d0396bb5f2a7600656bda5d815b3cb2e855ba6c6c5e4 -size 1263808 diff --git a/examples/assets/shapes/shapes.blend1 b/examples/assets/shapes/shapes.blend1 deleted file mode 100644 index 27743c63..00000000 --- a/examples/assets/shapes/shapes.blend1 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ab0cada556723be0d138d7b1cadb5e315a273524db0468e0c4255d8d2b0c1c2d -size 1222992 diff --git a/examples/assets/shapes/shapes.glb b/examples/assets/shapes/shapes.glb deleted file mode 100644 index 9d154306..00000000 --- a/examples/assets/shapes/shapes.glb +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6c58d82602dc9b4dabb63f378fecd7ecb9eaf6f5da5746552ec42dde4ec211d7 -size 121104 diff --git a/examples/assets/shapes/shapes.gltf b/examples/assets/shapes/shapes.gltf deleted file mode 100644 index f06ccefc..00000000 --- a/examples/assets/shapes/shapes.gltf +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0c1d3eac0151a58c3f36bea0f636691559612fd2d5ce21bb3551d43e86043e26 -size 36741 diff --git a/examples/assets/shapes/texture_test.png b/examples/assets/shapes/texture_test.png deleted file mode 100644 index 078faa47..00000000 --- a/examples/assets/shapes/texture_test.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b58c687c2687f5b3b576e4f5672981fde5657519f51dd331e6e671634c77640f -size 29920 diff --git a/examples/assets/solidcolor.filamat b/examples/assets/solidcolor.filamat deleted file mode 100644 index 4b3536e9..00000000 --- a/examples/assets/solidcolor.filamat +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c07d5f3b06fb763d74e4d6afa2ff933d8953e8f73828320d0c34c2105e346d97 -size 38119 diff --git a/examples/assets/solidcolor.mat b/examples/assets/solidcolor.mat deleted file mode 100644 index d416afd8..00000000 --- a/examples/assets/solidcolor.mat +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2033d3f7f8e0af983d8ab237737b45db2ed476b9283c6b0fda6a6954e1a72dea -size 294 diff --git a/examples/dart/cli_macos/.gitignore b/examples/dart/cli_macos/.gitignore deleted file mode 100644 index 3a857904..00000000 --- a/examples/dart/cli_macos/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ diff --git a/examples/dart/cli_macos/CHANGELOG.md b/examples/dart/cli_macos/CHANGELOG.md deleted file mode 100644 index effe43c8..00000000 --- a/examples/dart/cli_macos/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/examples/dart/cli_macos/README.md b/examples/dart/cli_macos/README.md deleted file mode 100644 index 3816eca3..00000000 --- a/examples/dart/cli_macos/README.md +++ /dev/null @@ -1,2 +0,0 @@ -A sample command-line application with an entrypoint in `bin/`, library code -in `lib/`, and example unit test in `test/`. diff --git a/examples/dart/cli_macos/analysis_options.yaml b/examples/dart/cli_macos/analysis_options.yaml deleted file mode 100644 index dee8927a..00000000 --- a/examples/dart/cli_macos/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/examples/dart/cli_macos/bin/assets b/examples/dart/cli_macos/bin/assets deleted file mode 120000 index 2978ef39..00000000 --- a/examples/dart/cli_macos/bin/assets +++ /dev/null @@ -1 +0,0 @@ -../../../assets \ No newline at end of file diff --git a/examples/dart/cli_macos/bin/example_cli.dart b/examples/dart/cli_macos/bin/example_cli.dart deleted file mode 100644 index e56c3400..00000000 --- a/examples/dart/cli_macos/bin/example_cli.dart +++ /dev/null @@ -1,46 +0,0 @@ -import 'dart:io'; -import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart'; -import 'package:thermion_dart/thermion_dart/swift/swift_bindings.g.dart'; -import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart'; -import 'package:thermion_dart/thermion_dart/utils/dart_resources.dart'; -import 'package:ffi/ffi.dart'; -import 'package:thermion_dart/thermion_dart.dart'; - -void main() async { - var scriptDir = File(Platform.script.toFilePath()).parent.path; - final lib = ThermionDartTexture1( - DynamicLibrary.open("$scriptDir/libthermion_swift.dylib")); - final object = ThermionDartTexture.new1(lib); - object.initWithWidth_height_(500, 500); - - final resourceLoader = calloc(1); - var loadToOut = NativeCallable< - Void Function(Pointer, - Pointer)>.listener(DartResourceLoader.loadResource); - - resourceLoader.ref.loadToOut = loadToOut.nativeFunction; - var freeResource = NativeCallable.listener( - DartResourceLoader.freeResource); - resourceLoader.ref.freeResource = freeResource.nativeFunction; - - var viewer = ThermionViewerFFI(resourceLoader: resourceLoader.cast()); - - await viewer.initialized; - await viewer.createSwapChain(500, 500); - await viewer.createRenderTarget(500, 500, object.metalTextureAddress); - await viewer.updateViewportAndCameraProjection(500, 500); - - var outDir = Directory("$scriptDir/output"); - if (outDir.existsSync()) { - outDir.deleteSync(recursive: true); - } - outDir.createSync(); - - await viewer.setRecordingOutputDirectory(outDir.path); - await viewer.setRecording(true); - await viewer.loadSkybox( - "file:///$scriptDir/assets/default_env/default_env_skybox.ktx"); - await Future.delayed(Duration(milliseconds: 16)); - await viewer.render(); - await viewer.dispose(); -} diff --git a/examples/dart/cli_macos/bin/libthermion_swift.dylib b/examples/dart/cli_macos/bin/libthermion_swift.dylib deleted file mode 120000 index c9146a01..00000000 --- a/examples/dart/cli_macos/bin/libthermion_swift.dylib +++ /dev/null @@ -1 +0,0 @@ -../../../../thermion_dart/native/lib/macos/swift/libthermion_swift.dylib \ No newline at end of file diff --git a/examples/dart/cli_macos/bin/output/output_000007.png b/examples/dart/cli_macos/bin/output/output_000007.png deleted file mode 100644 index 656ea930073f4538adb6cce27621e9111dc6c760..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47139 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

Wi`~7AB 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Ȅ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 diff --git a/examples/dart/cli_macos/pubspec.yaml b/examples/dart/cli_macos/pubspec.yaml deleted file mode 100644 index e2672c8a..00000000 --- a/examples/dart/cli_macos/pubspec.yaml +++ /dev/null @@ -1,18 +0,0 @@ -name: example_cli -description: A sample command-line application. -version: 1.0.0 -# repository: https://github.com/my_org/my_repo - -environment: - sdk: ^3.3.0 - -# Add regular dependencies here. -dependencies: - thermion_dart: - path: ../../../thermion_dart - ffi: - -dev_dependencies: - ffigen: ^11.0.0 - lints: ^3.0.0 - test: ^1.24.0 diff --git a/examples/dart/cli_macos/test/example_cli_test.dart b/examples/dart/cli_macos/test/example_cli_test.dart deleted file mode 100644 index 900e362a..00000000 --- a/examples/dart/cli_macos/test/example_cli_test.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:example_cli/example_cli.dart'; -import 'package:test/test.dart'; - -void main() { - test('calculate', () { - expect(calculate(), 42); - }); -} diff --git a/examples/dart/cli_wasm/.gitignore b/examples/dart/cli_wasm/.gitignore deleted file mode 100644 index 3a857904..00000000 --- a/examples/dart/cli_wasm/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ diff --git a/examples/dart/cli_wasm/CHANGELOG.md b/examples/dart/cli_wasm/CHANGELOG.md deleted file mode 100644 index effe43c8..00000000 --- a/examples/dart/cli_wasm/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/examples/dart/cli_wasm/README.md b/examples/dart/cli_wasm/README.md deleted file mode 100644 index 3816eca3..00000000 --- a/examples/dart/cli_wasm/README.md +++ /dev/null @@ -1,2 +0,0 @@ -A sample command-line application with an entrypoint in `bin/`, library code -in `lib/`, and example unit test in `test/`. diff --git a/examples/dart/cli_wasm/analysis_options.yaml b/examples/dart/cli_wasm/analysis_options.yaml deleted file mode 100644 index dee8927a..00000000 --- a/examples/dart/cli_wasm/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/examples/dart/cli_wasm/bin/.gitignore b/examples/dart/cli_wasm/bin/.gitignore deleted file mode 100644 index 768bac72..00000000 --- a/examples/dart/cli_wasm/bin/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -example_cli.mjs -example_cli.wasm -example_cli.unopt.wasm -node_modules/**/* diff --git a/examples/dart/cli_wasm/bin/build.log b/examples/dart/cli_wasm/bin/build.log deleted file mode 100644 index 2f3f8079..00000000 --- a/examples/dart/cli_wasm/bin/build.log +++ /dev/null @@ -1,98 +0,0 @@ -MAIN -initializing -gto uberarchive ptr -create void ptr callback -resolve -try -done, returning -created -got promise [object Promise] -got fn ptr address 2720 -Calling create_filament_viewer_ffi -Call complete -Created viewer, waiting for initialization -Creating WebGL context. -Created WebGL context 2.0 -Made WebGL context current -FEngine (32 bits) created at 0x1937d0 (threading is disabled) - -[stack-gl], [ANGLE], [OpenGL ES 3.0 (WebGL 1.0 stack-gl 8.0.2)], [OpenGL ES GLSL ES 1.00 (WebGL GLSL ES 1.0 stack-gl)] - -Feature level: 1 -Active workarounds: - -Backend feature level: 1 - -FEngine feature level: 1 - -Set frame interval to 16.666666 -Setting tone mapping to ACES -Bloom is disabled on WebGL builds as it causes instability with certain drivers. setBloom will be ignored -View created -Camera aperture 16.000000 shutter 0.008000 sensitivity 100.000000 -Created ubershader provider. -Added imageEntity 6 -Got void ptr callback -Set viewer to true -Created viewer 1652064 -Initialied -Loading GLB from buffer of length 116948 -Loaded glb -Entities : [10, 11, 12] -entityName : Cone -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -morph targets : [Key 1, Key 2, Key 3, Key 4, Key 5, Key 6, Key 7, Key 8] -entityName : Cube -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -morph targets : [Key 1, Key 2] -entityName : Cylinder -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -Getting morpht arget names -No insdtance -Using asset instance -morph targets : [Key 1, Key 2, Key 3, Key 4] diff --git a/examples/dart/cli_wasm/bin/example_cli.dart b/examples/dart/cli_wasm/bin/example_cli.dart deleted file mode 100644 index 7e5f0a1f..00000000 --- a/examples/dart/cli_wasm/bin/example_cli.dart +++ /dev/null @@ -1,33 +0,0 @@ -import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart'; -import 'package:thermion_dart/thermion_dart.dart'; -import 'package:animation_tools_dart/animation_tools_dart.dart'; - -void main(List args) async { - final resourceLoader = thermion_dart_web_get_resource_loader_wrapper(); - var viewer = ThermionViewerFFI(resourceLoader: resourceLoader.cast()); - viewer.initialized.then((_) async { - var entity = await viewer.loadGlb( - "/Users/nickfisher/Documents/polyvox/apps/packages/thermion_flutter/thermion_flutter_federated/thermion_flutter/example/assets/shapes/shapes.glb"); - var entities = await viewer.getChildEntities(entity, true); - for (final childEntity in entities) { - final childName = await viewer.getNameForEntity(childEntity); - var morphTargetNames = - await viewer.getMorphTargetNames(entity, childEntity!); - if (morphTargetNames.isNotEmpty) { - await viewer.setMorphTargetWeights( - childEntity, List.filled(morphTargetNames.length, 1.0)); - } - var animationData = MorphAnimationData( - List.generate( - 10, (_) => List.filled(morphTargetNames.length, 1.0)), - morphTargetNames); - - await viewer.setMorphAnimationData(entity, animationData, - targetMeshNames: [childName!]); - } - }); - - while (true) { - await Future.delayed(Duration(seconds: 1)); - } -} diff --git a/examples/dart/cli_wasm/bin/main.js b/examples/dart/cli_wasm/bin/main.js deleted file mode 100644 index 9a2a5033..00000000 --- a/examples/dart/cli_wasm/bin/main.js +++ /dev/null @@ -1,123 +0,0 @@ -const fs = require('node:fs'); -const thermion_dart = require("./thermion_dart.js") -const GLctx = require('gl')(100, 100, { preserveDrawingBuffer: true }) - -// queueMicrotask = (func) => { -// func(); -// } -// read('thermion_dart.wasm', 'binary') -// const exports = {}; -// const module = {}; - -const wasmBuffer = fs.readFileSync('thermion_dart.wasm'); - -var dartFilamentModulePromise = WebAssembly.compile(wasmBuffer); -let globalDf; -thermion_dart({ - dartFilamentResolveCallback: (cb, data) => { - const fn = globalDf.wasmTable.get(cb); - if(data) { - fn(data); - } else { - fn(); - } - }, - ctx:GLctx}).then((df) => { - globalDf = df; - createVoidCallback = () => { - let res; //placeholder for resolver callback, outside of promise - const promise = new Promise((resolve, reject) => { - res = resolve; - }); - try { - const callback = () => { - try { - res({}); - } catch(err) { - console.log(err); - } - } - const fnPtr = df.addFunction(callback, 'v'); - return [promise, fnPtr]; - } catch(err) { - console.log(err); - return null; - } - } - createIntCallback = () => { - let res; - const promise = new Promise((resolve, reject) => { - res = resolve; - }); - try { - const callback = (val) => { - try { - res(val); - } catch(err) { - console.log(err); - } - } - const fnPtr = df.addFunction(callback, 'vi'); - return [promise, fnPtr]; - } catch(err) { - console.log(err); - return null; - } - } - createVoidPointerCallback = () => { - console.log("create void ptr callback"); - let res; //placeholder for resolver callback, outside of promise - const promise = new Promise((resolve, reject) => { - console.log("resolve"); - res = resolve; - }); - try { - console.log("try"); - const callback = (voidPtr) => { - try { - res(voidPtr); - } catch(err) { - console.log(err); - } - } - const fnPtr = df.addFunction(callback, 'vi'); - console.log("done, returning"); - return [promise, fnPtr]; - } catch(err) { - console.log(err); - return null; - } - } - - createBoolCallback = () => { - let res; //placeholder for resolver callback, outside of promise - - const promise = new Promise((resolve, reject) => { - res = resolve; - }); - try { - const callback = (val) => { - try { - res(val); - } catch(err) { - console.log(err); - } - } - const fnPtr = df.addFunction(callback, 'vi'); - return [promise, fnPtr]; - } catch(err) { - console.log(err); - return null; - } - } - - import('./example_cli.mjs').then((dart2wasm_runtime) => { - var dartModulePromise = WebAssembly.compile(fs.readFileSync('./example_cli.wasm')); - const imports = {"thermion_dart": df, "ctx": GLctx}; - dart2wasm_runtime.instantiate(dartModulePromise, imports).then((moduleInstance) => { - dart2wasm_runtime.invoke(moduleInstance); - }); - }); -}); - -// // dartModulePromise.then((dartModule) => { console.log(dartModule.exports); dart2wasm_runtime.invoke(dartModule, imports);}); }); \ No newline at end of file diff --git a/examples/dart/cli_wasm/bin/package-lock.json b/examples/dart/cli_wasm/bin/package-lock.json deleted file mode 100644 index 69892e83..00000000 --- a/examples/dart/cli_wasm/bin/package-lock.json +++ /dev/null @@ -1,1559 +0,0 @@ -{ - "name": "bin", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "gl": "^8.0.2" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@npmcli/agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", - "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", - "dependencies": { - "agent-base": "^7.1.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.1", - "lru-cache": "^10.0.1", - "socks-proxy-agent": "^8.0.3" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bit-twiddle": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz", - "integrity": "sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==" - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/cacache": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz", - "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" - }, - "node_modules/gl": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/gl/-/gl-8.0.2.tgz", - "integrity": "sha512-bAQg+aXnz/uBDwWEld/6Fifj0KBN3H3XElQgoz/F9hmBhIYKRohZP/41y43tHBQ6+LqVt1JKM1vts7t+Nzc6oA==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "bit-twiddle": "^1.0.2", - "glsl-tokenizer": "^2.1.5", - "nan": "^2.18.0", - "node-abi": "^3.56.0", - "node-gyp": "^10.0.1", - "prebuild-install": "^7.1.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.11.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glsl-tokenizer": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/glsl-tokenizer/-/glsl-tokenizer-2.1.5.tgz", - "integrity": "sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==", - "dependencies": { - "through2": "^0.6.3" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "engines": { - "node": ">=16" - } - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" - }, - "node_modules/lru-cache": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", - "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", - "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", - "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-pipeline/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/nan": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", - "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==" - }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-abi": { - "version": "3.62.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.62.0.tgz", - "integrity": "sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", - "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "optional": true - }, - "node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", - "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", - "dependencies": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.7.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" - }, - "node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tar": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/through2": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", - "integrity": "sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==", - "dependencies": { - "readable-stream": ">=1.0.33-1 <1.1.0-0", - "xtend": ">=4.0.0 <4.1.0-0" - } - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dependencies": { - "unique-slug": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/which": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } - }, - "node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/wrap-ansi-cjs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } -} diff --git a/examples/dart/cli_wasm/bin/package.json b/examples/dart/cli_wasm/bin/package.json deleted file mode 100644 index c6382089..00000000 --- a/examples/dart/cli_wasm/bin/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "gl": "^8.0.2" - } -} diff --git a/examples/dart/cli_wasm/bin/thermion_dart.js b/examples/dart/cli_wasm/bin/thermion_dart.js deleted file mode 120000 index 6710a76f..00000000 --- a/examples/dart/cli_wasm/bin/thermion_dart.js +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.js \ No newline at end of file diff --git a/examples/dart/cli_wasm/bin/thermion_dart.wasm b/examples/dart/cli_wasm/bin/thermion_dart.wasm deleted file mode 120000 index a1439c39..00000000 --- a/examples/dart/cli_wasm/bin/thermion_dart.wasm +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.wasm \ No newline at end of file diff --git a/examples/dart/cli_wasm/bin/thermion_dart.worker.js b/examples/dart/cli_wasm/bin/thermion_dart.worker.js deleted file mode 120000 index 54392ba9..00000000 --- a/examples/dart/cli_wasm/bin/thermion_dart.worker.js +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.worker.js \ No newline at end of file diff --git a/examples/dart/cli_wasm/pubspec.yaml b/examples/dart/cli_wasm/pubspec.yaml deleted file mode 100644 index e02af0c1..00000000 --- a/examples/dart/cli_wasm/pubspec.yaml +++ /dev/null @@ -1,18 +0,0 @@ -name: example_cli -description: A sample command-line application. -version: 1.0.0 -# repository: https://github.com/my_org/my_repo - -environment: - sdk: ^3.3.0 - -# Add regular dependencies here. -dependencies: - thermion_dart: - path: ../../ - ffi: - -dev_dependencies: - ffigen: ^11.0.0 - lints: ^3.0.0 - test: ^1.24.0 diff --git a/examples/dart/cli_wasm/test/example_cli_test.dart b/examples/dart/cli_wasm/test/example_cli_test.dart deleted file mode 100644 index 900e362a..00000000 --- a/examples/dart/cli_wasm/test/example_cli_test.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:example_cli/example_cli.dart'; -import 'package:test/test.dart'; - -void main() { - test('calculate', () { - expect(calculate(), 42); - }); -} diff --git a/examples/dart/web_wasm/.gitignore b/examples/dart/web_wasm/.gitignore deleted file mode 100644 index 3a857904..00000000 --- a/examples/dart/web_wasm/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# https://dart.dev/guides/libraries/private-files -# Created by `dart pub` -.dart_tool/ diff --git a/examples/dart/web_wasm/CHANGELOG.md b/examples/dart/web_wasm/CHANGELOG.md deleted file mode 100644 index effe43c8..00000000 --- a/examples/dart/web_wasm/CHANGELOG.md +++ /dev/null @@ -1,3 +0,0 @@ -## 1.0.0 - -- Initial version. diff --git a/examples/dart/web_wasm/README.md b/examples/dart/web_wasm/README.md deleted file mode 100644 index 3816eca3..00000000 --- a/examples/dart/web_wasm/README.md +++ /dev/null @@ -1,2 +0,0 @@ -A sample command-line application with an entrypoint in `bin/`, library code -in `lib/`, and example unit test in `test/`. diff --git a/examples/dart/web_wasm/analysis_options.yaml b/examples/dart/web_wasm/analysis_options.yaml deleted file mode 100644 index dee8927a..00000000 --- a/examples/dart/web_wasm/analysis_options.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# This file configures the static analysis results for your project (errors, -# warnings, and lints). -# -# This enables the 'recommended' set of lints from `package:lints`. -# This set helps identify many issues that may lead to problems when running -# or consuming Dart code, and enforces writing Dart using a single, idiomatic -# style and format. -# -# If you want a smaller set of lints you can change this to specify -# 'package:lints/core.yaml'. These are just the most critical lints -# (the recommended set includes the core lints). -# The core lints are also what is used by pub.dev for scoring packages. - -include: package:lints/recommended.yaml - -# Uncomment the following section to specify additional rules. - -# linter: -# rules: -# - camel_case_types - -# analyzer: -# exclude: -# - path/to/excluded/files/** - -# For more information about the core and recommended set of lints, see -# https://dart.dev/go/core-lints - -# For additional information about configuring this file, see -# https://dart.dev/guides/language/analysis-options diff --git a/examples/dart/web_wasm/bin/README.md b/examples/dart/web_wasm/bin/README.md deleted file mode 100644 index 75aba073..00000000 --- a/examples/dart/web_wasm/bin/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Flight Helmet - -## Screenshot - -![screenshot](screenshot/screenshot.jpg) - -## License Information - -Donated by Microsoft for glTF testing - -[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/) -To the extent possible under law, Microsoft has waived all copyright and related or neighboring rights to this asset. - -Draco compression was done via Cesium tools on 27-03-2020 as follows. - - gltf-pipeline -i FlightHelmet.gltf -o FlightHelmet.gltf -d -s --keep-unused-elements diff --git a/examples/dart/web_wasm/bin/assets b/examples/dart/web_wasm/bin/assets deleted file mode 120000 index 0500631d..00000000 --- a/examples/dart/web_wasm/bin/assets +++ /dev/null @@ -1 +0,0 @@ -../../../../flutter_filament_federated/flutter_filament/example/assets \ No newline at end of file diff --git a/examples/dart/web_wasm/bin/example_web.dart b/examples/dart/web_wasm/bin/example_web.dart deleted file mode 100644 index 37e35c1a..00000000 --- a/examples/dart/web_wasm/bin/example_web.dart +++ /dev/null @@ -1,57 +0,0 @@ -import 'dart:js_interop'; -import 'dart:js_interop_unsafe'; -import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer_ffi.dart'; -import 'package:web/web.dart'; - -void main(List arguments) async { - var fc = FooChar(); - - final canvas = document.getElementById("canvas") as HTMLCanvasElement; - canvas.width = window.innerWidth; - canvas.height = window.innerHeight; - - var resourceLoader = thermion_dart_web_get_resource_loader_wrapper(); - - var viewer = ThermionViewerFFI(resourceLoader: resourceLoader); - - var mousedown = (JSObject event) { - var x = event.getProperty("clientX".toJS) as JSNumber; - var y = event.getProperty("clientY".toJS) as JSNumber; - viewer.rotateStart(x.toDartDouble, y.toDartDouble); - }; - - canvas.addEventListener("mousedown", mousedown.toJS); - - var mousemove = (JSObject event) { - var x = event.getProperty("clientX".toJS) as JSNumber; - var y = event.getProperty("clientY".toJS) as JSNumber; - viewer.rotateUpdate(x.toDartDouble, y.toDartDouble); - }; - - canvas.addEventListener("mousemove", mousemove.toJS); - - var mouseup = (JSObject event) { - viewer.rotateEnd(); - }; - - canvas.addEventListener("mouseup", mousedown.toJS); - - await viewer.initialized; - var width = window.innerWidth; - var height = window.innerHeight; - await viewer.createSwapChain(width.toDouble(), height.toDouble()); - await viewer.setBackgroundColor(0.0, 1.0, 1.0, 1.0); - await viewer.loadSkybox("assets/default_env_skybox.ktx"); - await viewer.loadIbl("assets/default_env_ibl.ktx"); - await viewer.loadGltf("assets/FlightHelmet.gltf", "assets"); - await viewer.updateViewportAndCameraProjection( - width.toDouble(), height.toDouble()); - await viewer.setPostProcessing(true); - await viewer.setRendering(true); - - while (true) { - await Future.delayed(Duration(milliseconds: 16)); - } - print("Finisehd!"); -} diff --git a/examples/dart/web_wasm/bin/example_web.mjs b/examples/dart/web_wasm/bin/example_web.mjs deleted file mode 100644 index 836f37a3..00000000 --- a/examples/dart/web_wasm/bin/example_web.mjs +++ /dev/null @@ -1,249 +0,0 @@ -let buildArgsList; - -// `modulePromise` is a promise to the `WebAssembly.module` object to be -// instantiated. -// `importObjectPromise` is a promise to an object that contains any additional -// imports needed by the module that aren't provided by the standard runtime. -// The fields on this object will be merged into the importObject with which -// the module will be instantiated. -// This function returns a promise to the instantiated module. -export const instantiate = async (modulePromise, importObjectPromise) => { - let dartInstance; - - function stringFromDartString(string) { - const totalLength = dartInstance.exports.$stringLength(string); - let result = ''; - let index = 0; - while (index < totalLength) { - let chunkLength = Math.min(totalLength - index, 0xFFFF); - const array = new Array(chunkLength); - for (let i = 0; i < chunkLength; i++) { - array[i] = dartInstance.exports.$stringRead(string, index++); - } - result += String.fromCharCode(...array); - } - return result; - } - - function stringToDartString(string) { - const length = string.length; - let range = 0; - for (let i = 0; i < length; i++) { - range |= string.codePointAt(i); - } - if (range < 256) { - const dartString = dartInstance.exports.$stringAllocate1(length); - for (let i = 0; i < length; i++) { - dartInstance.exports.$stringWrite1(dartString, i, string.codePointAt(i)); - } - return dartString; - } else { - const dartString = dartInstance.exports.$stringAllocate2(length); - for (let i = 0; i < length; i++) { - dartInstance.exports.$stringWrite2(dartString, i, string.charCodeAt(i)); - } - return dartString; - } - } - - // Prints to the console - function printToConsole(value) { - if (typeof dartPrint == "function") { - dartPrint(value); - return; - } - if (typeof console == "object" && typeof console.log != "undefined") { - console.log(value); - return; - } - if (typeof print == "function") { - print(value); - return; - } - - throw "Unable to print message: " + js; - } - - // Converts a Dart List to a JS array. Any Dart objects will be converted, but - // this will be cheap for JSValues. - function arrayFromDartList(constructor, list) { - const length = dartInstance.exports.$listLength(list); - const array = new constructor(length); - for (let i = 0; i < length; i++) { - array[i] = dartInstance.exports.$listRead(list, i); - } - return array; - } - - buildArgsList = function(list) { - const dartList = dartInstance.exports.$makeStringList(); - for (let i = 0; i < list.length; i++) { - dartInstance.exports.$listAdd(dartList, stringToDartString(list[i])); - } - return dartList; - } - - // A special symbol attached to functions that wrap Dart functions. - const jsWrappedDartFunctionSymbol = Symbol("JSWrappedDartFunction"); - - function finalizeWrapper(dartFunction, wrapped) { - wrapped.dartFunction = dartFunction; - wrapped[jsWrappedDartFunctionSymbol] = true; - return wrapped; - } - - // Imports - const dart2wasm = { - -_18: f => finalizeWrapper(f,x0 => dartInstance.exports._18(f,x0)), -_19: f => finalizeWrapper(f,x0 => dartInstance.exports._19(f,x0)), -_75: (x0,x1) => x0.getElementById(x1), -_76: f => finalizeWrapper(f,x0 => dartInstance.exports._76(f,x0)), -_77: (x0,x1,x2) => x0.addEventListener(x1,x2), -_78: f => finalizeWrapper(f,x0 => dartInstance.exports._78(f,x0)), -_79: f => finalizeWrapper(f,x0 => dartInstance.exports._79(f,x0)), -_1499: (x0,x1) => x0.width = x1, -_1501: (x0,x1) => x0.height = x1, -_1878: () => globalThis.window, -_1920: x0 => x0.innerWidth, -_1921: x0 => x0.innerHeight, -_6854: () => globalThis.document, -_12721: () => globalThis.createBoolCallback(), -_12722: () => globalThis.createVoidPointerCallback(), -_12723: () => globalThis.createVoidCallback(), -_12727: v => stringToDartString(v.toString()), -_12743: () => { - let stackString = new Error().stack.toString(); - let frames = stackString.split('\n'); - let drop = 2; - if (frames[0] === 'Error') { - drop += 1; - } - return frames.slice(drop).join('\n'); - }, -_12762: s => stringToDartString(JSON.stringify(stringFromDartString(s))), -_12763: s => printToConsole(stringFromDartString(s)), -_12777: (ms, c) => - setTimeout(() => dartInstance.exports.$invokeCallback(c),ms), -_12781: (c) => - queueMicrotask(() => dartInstance.exports.$invokeCallback(c)), -_12783: (a, i) => a.push(i), -_12794: a => a.length, -_12796: (a, i) => a[i], -_12797: (a, i, v) => a[i] = v, -_12799: a => a.join(''), -_12809: (s, p, i) => s.indexOf(p, i), -_12812: (o, start, length) => new Uint8Array(o.buffer, o.byteOffset + start, length), -_12813: (o, start, length) => new Int8Array(o.buffer, o.byteOffset + start, length), -_12814: (o, start, length) => new Uint8ClampedArray(o.buffer, o.byteOffset + start, length), -_12815: (o, start, length) => new Uint16Array(o.buffer, o.byteOffset + start, length), -_12816: (o, start, length) => new Int16Array(o.buffer, o.byteOffset + start, length), -_12817: (o, start, length) => new Uint32Array(o.buffer, o.byteOffset + start, length), -_12818: (o, start, length) => new Int32Array(o.buffer, o.byteOffset + start, length), -_12821: (o, start, length) => new Float32Array(o.buffer, o.byteOffset + start, length), -_12822: (o, start, length) => new Float64Array(o.buffer, o.byteOffset + start, length), -_12827: (o) => new DataView(o.buffer, o.byteOffset, o.byteLength), -_12831: Function.prototype.call.bind(Object.getOwnPropertyDescriptor(DataView.prototype, 'byteLength').get), -_12832: (b, o) => new DataView(b, o), -_12834: Function.prototype.call.bind(DataView.prototype.getUint8), -_12836: Function.prototype.call.bind(DataView.prototype.getInt8), -_12838: Function.prototype.call.bind(DataView.prototype.getUint16), -_12840: Function.prototype.call.bind(DataView.prototype.getInt16), -_12842: Function.prototype.call.bind(DataView.prototype.getUint32), -_12844: Function.prototype.call.bind(DataView.prototype.getInt32), -_12850: Function.prototype.call.bind(DataView.prototype.getFloat32), -_12852: Function.prototype.call.bind(DataView.prototype.getFloat64), -_12873: o => o === undefined, -_12874: o => typeof o === 'boolean', -_12875: o => typeof o === 'number', -_12877: o => typeof o === 'string', -_12880: o => o instanceof Int8Array, -_12881: o => o instanceof Uint8Array, -_12882: o => o instanceof Uint8ClampedArray, -_12883: o => o instanceof Int16Array, -_12884: o => o instanceof Uint16Array, -_12885: o => o instanceof Int32Array, -_12886: o => o instanceof Uint32Array, -_12887: o => o instanceof Float32Array, -_12888: o => o instanceof Float64Array, -_12889: o => o instanceof ArrayBuffer, -_12890: o => o instanceof DataView, -_12891: o => o instanceof Array, -_12892: o => typeof o === 'function' && o[jsWrappedDartFunctionSymbol] === true, -_12896: (l, r) => l === r, -_12897: o => o, -_12898: o => o, -_12899: o => o, -_12900: b => !!b, -_12901: o => o.length, -_12904: (o, i) => o[i], -_12905: f => f.dartFunction, -_12906: l => arrayFromDartList(Int8Array, l), -_12907: l => arrayFromDartList(Uint8Array, l), -_12908: l => arrayFromDartList(Uint8ClampedArray, l), -_12909: l => arrayFromDartList(Int16Array, l), -_12910: l => arrayFromDartList(Uint16Array, l), -_12911: l => arrayFromDartList(Int32Array, l), -_12912: l => arrayFromDartList(Uint32Array, l), -_12913: l => arrayFromDartList(Float32Array, l), -_12914: l => arrayFromDartList(Float64Array, l), -_12915: (data, length) => { - const view = new DataView(new ArrayBuffer(length)); - for (let i = 0; i < length; i++) { - view.setUint8(i, dartInstance.exports.$byteDataGetUint8(data, i)); - } - return view; - }, -_12916: l => arrayFromDartList(Array, l), -_12917: stringFromDartString, -_12918: stringToDartString, -_12921: l => new Array(l), -_12925: (o, p) => o[p], -_12929: o => String(o), -_12930: (p, s, f) => p.then(s, f), -_12949: (o, p) => o[p] - }; - - const baseImports = { - dart2wasm: dart2wasm, - - - Math: Math, - Date: Date, - Object: Object, - Array: Array, - Reflect: Reflect, - }; - - const jsStringPolyfill = { - "charCodeAt": (s, i) => s.charCodeAt(i), - "compare": (s1, s2) => { - if (s1 < s2) return -1; - if (s1 > s2) return 1; - return 0; - }, - "concat": (s1, s2) => s1 + s2, - "equals": (s1, s2) => s1 === s2, - "fromCharCode": (i) => String.fromCharCode(i), - "length": (s) => s.length, - "substring": (s, a, b) => s.substring(a, b), - }; - - dartInstance = await WebAssembly.instantiate(await modulePromise, { - ...baseImports, - ...(await importObjectPromise), - "wasm:js-string": jsStringPolyfill, - }); - - return dartInstance; -} - -// Call the main function for the instantiated module -// `moduleInstance` is the instantiated dart2wasm module -// `args` are any arguments that should be passed into the main function. -export const invoke = (moduleInstance, ...args) => { - const dartMain = moduleInstance.exports.$getMain(); - const dartArgs = buildArgsList(args); - moduleInstance.exports.$invokeMain(dartMain, dartArgs); -} - diff --git a/examples/dart/web_wasm/bin/example_web.unopt.wasm b/examples/dart/web_wasm/bin/example_web.unopt.wasm deleted file mode 100644 index 3bda134510c0b4a74e4ad3ade7eeaa5192c7d411..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238521 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 e~AUM&yF+Haj`)5+3|)tJ`Sk+ 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 E2VVs7J^%m! diff --git a/examples/dart/web_wasm/bin/index.html b/examples/dart/web_wasm/bin/index.html deleted file mode 100644 index 7abc5620..00000000 --- a/examples/dart/web_wasm/bin/index.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/examples/dart/web_wasm/bin/thermion_dart.js b/examples/dart/web_wasm/bin/thermion_dart.js deleted file mode 120000 index 6710a76f..00000000 --- a/examples/dart/web_wasm/bin/thermion_dart.js +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.js \ No newline at end of file diff --git a/examples/dart/web_wasm/bin/thermion_dart.wasm b/examples/dart/web_wasm/bin/thermion_dart.wasm deleted file mode 120000 index a1439c39..00000000 --- a/examples/dart/web_wasm/bin/thermion_dart.wasm +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.wasm \ No newline at end of file diff --git a/examples/dart/web_wasm/bin/thermion_dart.worker.js b/examples/dart/web_wasm/bin/thermion_dart.worker.js deleted file mode 120000 index 54392ba9..00000000 --- a/examples/dart/web_wasm/bin/thermion_dart.worker.js +++ /dev/null @@ -1 +0,0 @@ -../../../native/web/build/build/out/dart_filament.worker.js \ No newline at end of file diff --git a/examples/dart/web_wasm/pubspec.yaml b/examples/dart/web_wasm/pubspec.yaml deleted file mode 100644 index e1be14e3..00000000 --- a/examples/dart/web_wasm/pubspec.yaml +++ /dev/null @@ -1,17 +0,0 @@ -name: example_web -description: A sample command-line application. -version: 1.0.0 -# repository: https://github.com/my_org/my_repo - -environment: - sdk: ^3.3.0 - -# Add regular dependencies here. -dependencies: - thermion_dart: - path: ../../ - ffi: - -dev_dependencies: - lints: ^3.0.0 - test: ^1.24.0 diff --git a/examples/dart/web_wasm/test/example_web_test.dart b/examples/dart/web_wasm/test/example_web_test.dart deleted file mode 100644 index 4c50d967..00000000 --- a/examples/dart/web_wasm/test/example_web_test.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:example_web/example_web.dart'; -import 'package:test/test.dart'; - -void main() { - test('calculate', () { - expect(calculate(), 42); - }); -} diff --git a/examples/flutter/example/.fvm/fvm_config.json b/examples/flutter/example/.fvm/fvm_config.json deleted file mode 100644 index 8fd7d3ea..00000000 --- a/examples/flutter/example/.fvm/fvm_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "flutterSdkVersion": "3.16.0-0.2.pre", - "flavors": {} -} \ No newline at end of file diff --git a/examples/flutter/example/.gitattributes b/examples/flutter/example/.gitattributes deleted file mode 100644 index 588e746e..00000000 --- a/examples/flutter/example/.gitattributes +++ /dev/null @@ -1,30 +0,0 @@ -assets/lit_opaque_43.uberz filter=lfs diff=lfs merge=lfs -text -assets/BusterDrone filter=lfs diff=lfs merge=lfs -text -assets/FlightHelmet filter=lfs diff=lfs merge=lfs -text -assets/lit_opaque_32.uberz filter=lfs diff=lfs merge=lfs -text -windows/lib/**/*.* filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/12_Settonemappingtolinear.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/3_loadIBL.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/6_zoomin.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/13_Movecameratoasset.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/14_movecamerato.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/7_rotate.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/9_transformtounitcube.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/0_fresh.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/10_setshapespositionto.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/2_loadskybox.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/4_Renderingfalse.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/8_pan.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/11_Disablefrustumculling.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/15_setcameratofirstcamerainshapesGLB.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/1_createviewerdefaultubershader.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/5_loadshapesGLB.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/16_resize.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/3_loadskybox.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/4_loadIBL.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/19_resize.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/17_resize.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/2_Renderingfalse.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/18_resize.png filter=lfs diff=lfs merge=lfs -text -integration_test/goldens/ios/diffs filter=lfs diff=lfs merge=lfs -text diff --git a/examples/flutter/example/.gitignore b/examples/flutter/example/.gitignore deleted file mode 100644 index 76cbb205..00000000 --- a/examples/flutter/example/.gitignore +++ /dev/null @@ -1,50 +0,0 @@ -# Miscellaneous -*.class -*.log -*.pyc -*.swp -.DS_Store -.atom/ -.buildlog/ -.history -.svn/ - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ - -# The .vscode folder contains launch configuration and tasks you configure in -# VS Code which you may wish to be included in version control, so this line -# is commented out by default. -#.vscode/ - -# Flutter/Dart/Pub related -**/doc/api/ -**/ios/Flutter/.last_build_id -.dart_tool/ -.flutter-plugins -.flutter-plugins-dependencies -.packages -.pub-cache/ -.pub/ -/build/ - -# Web related - -# Symbolication related -app.*.symbols - -# Obfuscation related -app.*.map.json - -# Android Studio will place build artifacts here -/android/app/debug -/android/app/profile -/android/app/release - -/android/.cxx/**/* - -# fvm -.fvm/flutter_sdk diff --git a/examples/flutter/example/.metadata b/examples/flutter/example/.metadata deleted file mode 100644 index de6eb858..00000000 --- a/examples/flutter/example/.metadata +++ /dev/null @@ -1,30 +0,0 @@ -# This file tracks properties of this Flutter project. -# Used by Flutter tool to assess capabilities and perform upgrades etc. -# -# This file should be version controlled and should not be manually edited. - -version: - revision: "12d54de962782853206992fedce29723fcb4a95b" - channel: "master" - -project_type: app - -# Tracks metadata for the flutter migrate command -migration: - platforms: - - platform: root - create_revision: 12d54de962782853206992fedce29723fcb4a95b - base_revision: 12d54de962782853206992fedce29723fcb4a95b - - platform: macos - create_revision: 12d54de962782853206992fedce29723fcb4a95b - base_revision: 12d54de962782853206992fedce29723fcb4a95b - - # User provided section - - # List of Local paths (relative to this file) that should be - # ignored by the migrate tool. - # - # Files that are not part of the templates will be ignored by default. - unmanaged_files: - - 'lib/main.dart' - - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/examples/flutter/example/README.md b/examples/flutter/example/README.md deleted file mode 100644 index a1e9374f..00000000 --- a/examples/flutter/example/README.md +++ /dev/null @@ -1,21 +0,0 @@ -# thermion_flutter_example - -Demonstrates how to use the thermion_flutter plugin. - -## Linux - -export PKG_CONFIG_PATH=/usr/lib/pkgconfig/:/usr/lib64/pkgconfig/ -export CPLUS_INCLUDE_PATH=/usr/include/gtk-3.0/:/usr/include/pango-1.0/:/usr/include/harfbuzz:/usr/include/cairo/:/usr/include/gdk-pixbuf-2.0/:/usr/include/atk-1.0/ - -## Getting Started - -This project is a starting point for a Flutter application. - -A few resources to get you started if this is your first Flutter project: - -- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) -- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) - -For help getting started with Flutter, view our -[online documentation](https://flutter.dev/docs), which offers tutorials, -samples, guidance on mobile development, and a full API reference. diff --git a/examples/flutter/example/analysis_options.yaml b/examples/flutter/example/analysis_options.yaml deleted file mode 100644 index 61b6c4de..00000000 --- a/examples/flutter/example/analysis_options.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# This file configures the analyzer, which statically analyzes Dart code to -# check for errors, warnings, and lints. -# -# The issues identified by the analyzer are surfaced in the UI of Dart-enabled -# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be -# invoked from the command line by running `flutter analyze`. - -# The following line activates a set of recommended lints for Flutter apps, -# packages, and plugins designed to encourage good coding practices. -include: package:flutter_lints/flutter.yaml - -linter: - # The lint rules applied to this project can be customized in the - # section below to disable rules from the `package:flutter_lints/flutter.yaml` - # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. - # - # Instead of disabling a lint rule for the entire project in the - # section below, it can also be suppressed for a single line of code - # or a specific dart file by using the `// ignore: name_of_lint` and - # `// ignore_for_file: name_of_lint` syntax on the line or in the file - # producing the lint. - rules: - # avoid_print: false # Uncomment to disable the `avoid_print` rule - # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options diff --git a/examples/flutter/example/android/.gitignore b/examples/flutter/example/android/.gitignore deleted file mode 100644 index 6f568019..00000000 --- a/examples/flutter/example/android/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -gradle-wrapper.jar -/.gradle -/captures/ -/gradlew -/gradlew.bat -/local.properties -GeneratedPluginRegistrant.java - -# Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app -key.properties -**/*.keystore -**/*.jks diff --git a/examples/flutter/example/android/app/build.gradle b/examples/flutter/example/android/app/build.gradle deleted file mode 100644 index 2641214e..00000000 --- a/examples/flutter/example/android/app/build.gradle +++ /dev/null @@ -1,51 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. - id "dev.flutter.flutter-gradle-plugin" -} - -android { - namespace = "app.polyvox.example" - compileSdkVersion 34 - ndkVersion "25.2.9519653" - - compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 - } - - defaultConfig { - // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId = "app.polyvox.example" - // You can update the following values to match your application needs. - // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. - minSdk = 30 - targetSdk = 31 - versionCode = flutter.versionCode - versionName = flutter.versionName - } - - buildTypes { - release { - signingConfig = signingConfigs.debug - shrinkResources false - minifyEnabled false - } - debug { - - } - } -} - -dependencies { - implementation 'net.java.dev.jna:jna:5.10.0@aar' -} - -flutter { - source = "../.." -} diff --git a/examples/flutter/example/android/app/src/debug/AndroidManifest.xml b/examples/flutter/example/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 399f6981..00000000 --- a/examples/flutter/example/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/examples/flutter/example/android/app/src/main/AndroidManifest.xml b/examples/flutter/example/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 74a78b93..00000000 --- a/examples/flutter/example/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/android/app/src/main/kotlin/app/polyvox/example/MainActivity.kt b/examples/flutter/example/android/app/src/main/kotlin/app/polyvox/example/MainActivity.kt deleted file mode 100644 index c546a613..00000000 --- a/examples/flutter/example/android/app/src/main/kotlin/app/polyvox/example/MainActivity.kt +++ /dev/null @@ -1,5 +0,0 @@ -package app.polyvox.example - -import io.flutter.embedding.android.FlutterActivity - -class MainActivity: FlutterActivity() diff --git a/examples/flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml b/examples/flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml deleted file mode 100644 index f74085f3..00000000 --- a/examples/flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/examples/flutter/example/android/app/src/main/res/drawable/launch_background.xml b/examples/flutter/example/android/app/src/main/res/drawable/launch_background.xml deleted file mode 100644 index 304732f8..00000000 --- a/examples/flutter/example/android/app/src/main/res/drawable/launch_background.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - diff --git a/examples/flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/examples/flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index db77bb4b7b0906d62b1847e87f15cdcacf6a4f29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ diff --git a/examples/flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/examples/flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 17987b79bb8a35cc66c3c1fd44f5a5526c1b78be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ diff --git a/examples/flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/examples/flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index d5f1c8d34e7a88e3f88bea192c3a370d44689c3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof diff --git a/examples/flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/examples/flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 4d6372eebdb28e45604e46eeda8dd24651419bc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` diff --git a/examples/flutter/example/android/app/src/main/res/values-night/styles.xml b/examples/flutter/example/android/app/src/main/res/values-night/styles.xml deleted file mode 100644 index 06952be7..00000000 --- a/examples/flutter/example/android/app/src/main/res/values-night/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/examples/flutter/example/android/app/src/main/res/values/styles.xml b/examples/flutter/example/android/app/src/main/res/values/styles.xml deleted file mode 100644 index cb1ef880..00000000 --- a/examples/flutter/example/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/examples/flutter/example/android/app/src/profile/AndroidManifest.xml b/examples/flutter/example/android/app/src/profile/AndroidManifest.xml deleted file mode 100644 index 399f6981..00000000 --- a/examples/flutter/example/android/app/src/profile/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/examples/flutter/example/android/build.gradle b/examples/flutter/example/android/build.gradle deleted file mode 100644 index d2ffbffa..00000000 --- a/examples/flutter/example/android/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = "../build" -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" -} -subprojects { - project.evaluationDependsOn(":app") -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/examples/flutter/example/android/gradle.properties b/examples/flutter/example/android/gradle.properties deleted file mode 100644 index 25971708..00000000 --- a/examples/flutter/example/android/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError -android.useAndroidX=true -android.enableJetifier=true diff --git a/examples/flutter/example/android/gradle/wrapper/gradle-wrapper.properties b/examples/flutter/example/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index e1ca574e..00000000 --- a/examples/flutter/example/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip diff --git a/examples/flutter/example/android/settings.gradle b/examples/flutter/example/android/settings.gradle deleted file mode 100644 index 536165d3..00000000 --- a/examples/flutter/example/android/settings.gradle +++ /dev/null @@ -1,25 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "7.3.0" apply false - id "org.jetbrains.kotlin.android" version "1.7.10" apply false -} - -include ":app" diff --git a/examples/flutter/example/assets b/examples/flutter/example/assets deleted file mode 120000 index 41aef43f..00000000 --- a/examples/flutter/example/assets +++ /dev/null @@ -1 +0,0 @@ -../../assets \ No newline at end of file diff --git a/examples/flutter/example/integration_test/goldens/ios/0_fresh.png b/examples/flutter/example/integration_test/goldens/ios/0_fresh.png deleted file mode 100644 index 7e09a470..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/0_fresh.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ec2a9627f23ffe07750323c25afa78c6c7fcb7d26b5ed36d119363ced0b60f29 -size 258304 diff --git a/examples/flutter/example/integration_test/goldens/ios/10_setshapespositionto.png b/examples/flutter/example/integration_test/goldens/ios/10_setshapespositionto.png deleted file mode 100644 index 654bce23..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/10_setshapespositionto.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:53256c9443c6d36edfb8c1234711173c847126e888d714151ae026c57495fe6b -size 1875814 diff --git a/examples/flutter/example/integration_test/goldens/ios/11_Disablefrustumculling.png b/examples/flutter/example/integration_test/goldens/ios/11_Disablefrustumculling.png deleted file mode 100644 index 938197ea..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/11_Disablefrustumculling.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b0c715cadbf84c2161099e8373a404c7d6dbb093faf4157aa0e0aa3825c28217 -size 1868778 diff --git a/examples/flutter/example/integration_test/goldens/ios/12_Settonemappingtolinear.png b/examples/flutter/example/integration_test/goldens/ios/12_Settonemappingtolinear.png deleted file mode 100644 index a3f358a9..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/12_Settonemappingtolinear.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:56a431b561db7038ad7fe92d025fc2fe2806dfa2cf68c29a0380c3cbd2b66fb5 -size 1742539 diff --git a/examples/flutter/example/integration_test/goldens/ios/13_Movecameratoasset.png b/examples/flutter/example/integration_test/goldens/ios/13_Movecameratoasset.png deleted file mode 100644 index 88cb252a..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/13_Movecameratoasset.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:14193a392baf348f77895ca7bfb8cee160407c762d03c01bf1f7b5b771a9b1ab -size 2282401 diff --git a/examples/flutter/example/integration_test/goldens/ios/14_movecamerato.png b/examples/flutter/example/integration_test/goldens/ios/14_movecamerato.png deleted file mode 100644 index 3208625c..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/14_movecamerato.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:77badd0b2a59122949e497297052064c403006272daa4488db43e492d60093e2 -size 1959141 diff --git a/examples/flutter/example/integration_test/goldens/ios/15_setcameratofirstcamerainshapesGLB.png b/examples/flutter/example/integration_test/goldens/ios/15_setcameratofirstcamerainshapesGLB.png deleted file mode 100644 index 8bd59ae0..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/15_setcameratofirstcamerainshapesGLB.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:bdf63e19e5a992f2c848cf71b55ceddf8930d6a9368c9b3adcc13e7c478c7146 -size 1889777 diff --git a/examples/flutter/example/integration_test/goldens/ios/16_resize.png b/examples/flutter/example/integration_test/goldens/ios/16_resize.png deleted file mode 100644 index 601b3963..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/16_resize.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:651c19434ae3753488eb840695955b98db9d66a20b79bee1e21b3384c2358025 -size 1609541 diff --git a/examples/flutter/example/integration_test/goldens/ios/17_resize.png b/examples/flutter/example/integration_test/goldens/ios/17_resize.png deleted file mode 100644 index de3b79c8..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/17_resize.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f11462c0fdf30d101b6ed6c430734adcf6451818f3c7824126c8423014836773 -size 2060944 diff --git a/examples/flutter/example/integration_test/goldens/ios/18_resize.png b/examples/flutter/example/integration_test/goldens/ios/18_resize.png deleted file mode 100644 index d193c61c..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/18_resize.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:beb941d33777ad2e1d6ef3704ba6a63b3a5608ca885a516a1c9e807a31b533fc -size 1608407 diff --git a/examples/flutter/example/integration_test/goldens/ios/19_resize.png b/examples/flutter/example/integration_test/goldens/ios/19_resize.png deleted file mode 100644 index 18f22392..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/19_resize.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2bcae11fd2eb593c419a62731e1799f7340408b28ad56575fab5f79db608ae17 -size 2062339 diff --git a/examples/flutter/example/integration_test/goldens/ios/1_createviewerdefaultubershader.png b/examples/flutter/example/integration_test/goldens/ios/1_createviewerdefaultubershader.png deleted file mode 100644 index a33704b3..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/1_createviewerdefaultubershader.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dc3b3c5e0678a5b71728cea8961925e6c0fb44a59340aa2d77d4ea92a24cc7d6 -size 316763 diff --git a/examples/flutter/example/integration_test/goldens/ios/2_Renderingfalse.png b/examples/flutter/example/integration_test/goldens/ios/2_Renderingfalse.png deleted file mode 100644 index 8b21177b..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/2_Renderingfalse.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6dbbb518a86c546f188134c1d369762664f188dd6b9a38ec13963b6187cb4b25 -size 1456648 diff --git a/examples/flutter/example/integration_test/goldens/ios/3_loadskybox.png b/examples/flutter/example/integration_test/goldens/ios/3_loadskybox.png deleted file mode 100644 index 5fe8dd9c..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/3_loadskybox.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2d7951418e5875da7c7ed8dea482dbf1cbe81a42b47d255db7f1b6e11c16a193 -size 1876507 diff --git a/examples/flutter/example/integration_test/goldens/ios/4_loadIBL.png b/examples/flutter/example/integration_test/goldens/ios/4_loadIBL.png deleted file mode 100644 index 1d4d7fd9..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/4_loadIBL.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:80cd11f5be75012cfdf953569e409a355826ca23af35feba41aac78f0e3d35d8 -size 1874857 diff --git a/examples/flutter/example/integration_test/goldens/ios/5_loadshapesGLB.png b/examples/flutter/example/integration_test/goldens/ios/5_loadshapesGLB.png deleted file mode 100644 index f6d86acb..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/5_loadshapesGLB.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e605bb18426ea657b9352ecca51f0b55daac904b15dba3afdcffc412a445548a -size 1941423 diff --git a/examples/flutter/example/integration_test/goldens/ios/6_zoomin.png b/examples/flutter/example/integration_test/goldens/ios/6_zoomin.png deleted file mode 100644 index 6406f7a2..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/6_zoomin.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c026e8723922a6c56ab8e28f99a29805c53627ff5a659971590c95d89d7ac6bd -size 1940845 diff --git a/examples/flutter/example/integration_test/goldens/ios/7_rotate.png b/examples/flutter/example/integration_test/goldens/ios/7_rotate.png deleted file mode 100644 index 85cdf565..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/7_rotate.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fffa285edd2c5474e16475cafc67d2519e000b74178ce1a0f8d88229827cfabf -size 1937116 diff --git a/examples/flutter/example/integration_test/goldens/ios/8_pan.png b/examples/flutter/example/integration_test/goldens/ios/8_pan.png deleted file mode 100644 index b26c2c78..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/8_pan.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1db7a2f831d83e75e42dfe4f0547e9ed1f171152f45103e8f250d2b52ee3a8e1 -size 1937776 diff --git a/examples/flutter/example/integration_test/goldens/ios/9_transformtounitcube.png b/examples/flutter/example/integration_test/goldens/ios/9_transformtounitcube.png deleted file mode 100644 index 4db03efd..00000000 --- a/examples/flutter/example/integration_test/goldens/ios/9_transformtounitcube.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:00c70e7e77b98e4e72d0dde82482066096ebd502d25cccfada9cb87de332ecac -size 1941844 diff --git a/examples/flutter/example/integration_test/plugin_integration_test.dart b/examples/flutter/example/integration_test/plugin_integration_test.dart deleted file mode 100644 index d1a921f0..00000000 --- a/examples/flutter/example/integration_test/plugin_integration_test.dart +++ /dev/null @@ -1,190 +0,0 @@ -import 'dart:async'; -import 'dart:io'; -import 'dart:ui'; - -import 'package:flutter/gestures.dart'; -import 'package:flutter/widgets.dart'; -import 'package:thermion_flutter/filament/widgets/filament_widget.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:integration_test/integration_test.dart'; -import '../lib/main.dart' as app; - -void main() { - final binding = IntegrationTestWidgetsFlutterBinding.ensureInitialized() - as IntegrationTestWidgetsFlutterBinding; - - late String platformIdentifier; - if (Platform.isIOS) { - platformIdentifier = "ios"; - } else if (Platform.isAndroid) { - platformIdentifier = "android"; - } else if (Platform.isMacOS) { - platformIdentifier = "macos"; - } else if (Platform.isWindows) { - platformIdentifier = "windows"; - } else if (Platform.isLinux) { - platformIdentifier = "linux"; - } else { - throw Exception("Unexpected platform"); - } - - int _counter = 0; - - Future _snapshot(WidgetTester tester, String label, [int seconds = 0]) async { - await tester.pumpAndSettle(Duration(milliseconds: 16)); - for (int i = 0; i < seconds; i++) { - await Future.delayed(Duration(seconds: 1)); - await tester.pumpAndSettle(Duration(milliseconds: 16)); - } - await tester.pumpAndSettle(Duration(milliseconds: 16)); - var screenshotPath = '$platformIdentifier/${_counter}_$label'; - if (Platform.isIOS) { - // this is currently hanging on Android - // see https://github.com/flutter/flutter/issues/127306 - // it is also not yet implemented on Windows or MacOS - await binding.convertFlutterSurfaceToImage(); - final bytes = await binding.takeScreenshot(screenshotPath); - } - _counter++; - } - - Future tap(WidgetTester tester, String label, [int seconds = 0]) async { - var target = find.text(label, skipOffstage: false); - - if (!target.hasFound) { - print("Couldn't find target, waiting 100ms"); - await tester.pump(const Duration(milliseconds: 100)); - target = find.text(label); - } - - await tester.tap(target.first); - await _snapshot(tester, label.replaceAll(RegExp("[ -:]"), ""), seconds); - } - - Future pumpUntilFound( - WidgetTester tester, - Finder finder, { - Duration timeout = const Duration(seconds: 30), - }) async { - bool timerDone = false; - final timer = Timer( - timeout, () => throw TimeoutException("Pump until has timed out")); - while (timerDone != true) { - await tester.pump(); - - final found = tester.any(finder); - if (found) { - timerDone = true; - } - } - timer.cancel(); - } - - testWidgets('test', (WidgetTester tester) async { - app.main(); - await pumpUntilFound(tester, find.byType(app.ExampleWidget)); - - await tester.pumpAndSettle(); - - await _snapshot(tester, "fresh"); - - await tap(tester, "Controller / Viewer"); - await tap(tester, "Create ThermionFlutterPlugin (default ubershader)"); - await tap(tester, "Controller / Viewer"); - await tap(tester, "Create ThermionViewerFFI", - 4); // on older devices this may take a while, so let's insert a length delay - - await tap(tester, "Scene"); - await tap(tester, "Rendering"); - await tap(tester, "Set continuous rendering to true"); - - await tap(tester, "Scene"); - await tap(tester, "Assets"); - await tap(tester, "Shapes"); - await tap(tester, "Load GLB"); - - await tester.pump(); - - await tap(tester, "Scene"); - await tap(tester, "Assets"); - await tap(tester, "Load skybox", 1); - - await tap(tester, "Scene"); - await tap(tester, "Assets"); - await tap(tester, "Load IBL", 1); - - final Offset pointerLocation = - tester.getCenter(find.byType(ThermionWidget)); - TestPointer testPointer = TestPointer(1, PointerDeviceKind.mouse); - - // scroll/zoom - testPointer.hover(pointerLocation); - await tester.sendEventToBinding(testPointer.scroll(const Offset(0.0, 1.0))); - await tester.pumpAndSettle(); - await tester.sendEventToBinding(testPointer.scroll(const Offset(0.0, 1.0))); - await tester.pumpAndSettle(); - await _snapshot(tester, "zoomin"); - - // rotate - testPointer = - TestPointer(1, PointerDeviceKind.mouse, null, kTertiaryButton); - testPointer.hover(pointerLocation); - await tester.sendEventToBinding(testPointer.down(pointerLocation)); - await tester.pumpAndSettle(); - await tester.sendEventToBinding( - testPointer.move(pointerLocation + Offset(10.0, 10.0))); - await tester.pumpAndSettle(); - await tester.sendEventToBinding( - testPointer.move(pointerLocation + Offset(20.0, 20.0))); - await tester.pumpAndSettle(); - await tester.sendEventToBinding(testPointer.up()); - - await _snapshot(tester, "rotate", 2); - - // pan - testPointer = TestPointer(1, PointerDeviceKind.mouse, null, kPrimaryButton); - testPointer.hover(pointerLocation); - await tester.sendEventToBinding(testPointer.down(pointerLocation)); - await tester - .sendEventToBinding(testPointer.move(pointerLocation + Offset(0, 1.0))); - - for (int i = 0; i < 60; i++) { - await tester.sendEventToBinding(testPointer - .move(pointerLocation + Offset(i.toDouble() * 2, i.toDouble() * 2))); - await tester.pumpAndSettle(); - } - await tester.sendEventToBinding(testPointer.up()); - await tester.pumpAndSettle(); - - await _snapshot(tester, "pan"); - - await tap(tester, "Scene"); - await tap(tester, "Assets"); - await tap(tester, "Shapes"); - await tap(tester, "Transform to unit cube"); - - await tap(tester, "Scene"); - await tap(tester, "Assets"); - await tap(tester, "Shapes"); - await tap(tester, "Set position to 1, 1, -1"); - - await tap(tester, "Scene"); - await tap(tester, "Camera"); - await tap(tester, "Disable frustum culling"); - - await tap(tester, "Scene"); - await tap(tester, "Rendering"); - await tap(tester, "Set tone mapping to linear"); - - await tap(tester, "Scene"); - await tap(tester, "Camera"); - await tap(tester, 'Set to first camera in last added asset'); - - await tap(tester, "Move to last added asset"); - await tap(tester, "Move to 1, 1, -1"); - - await tap(tester, 'Toggle viewport size', 1); - await tap(tester, 'Toggle viewport size', 1); - await tap(tester, 'Toggle viewport size', 1); - }); -} diff --git a/examples/flutter/example/ios/.gitignore b/examples/flutter/example/ios/.gitignore deleted file mode 100644 index 7a7f9873..00000000 --- a/examples/flutter/example/ios/.gitignore +++ /dev/null @@ -1,34 +0,0 @@ -**/dgph -*.mode1v3 -*.mode2v3 -*.moved-aside -*.pbxuser -*.perspectivev3 -**/*sync/ -.sconsign.dblite -.tags* -**/.vagrant/ -**/DerivedData/ -Icon? -**/Pods/ -**/.symlinks/ -profile -xcuserdata -**/.generated/ -Flutter/App.framework -Flutter/Flutter.framework -Flutter/Flutter.podspec -Flutter/Generated.xcconfig -Flutter/ephemeral/ -Flutter/app.flx -Flutter/app.zip -Flutter/flutter_assets/ -Flutter/flutter_export_environment.sh -ServiceDefinitions.json -Runner/GeneratedPluginRegistrant.* - -# Exceptions to above rules. -!default.mode1v3 -!default.mode2v3 -!default.pbxuser -!default.perspectivev3 diff --git a/examples/flutter/example/ios/Flutter/AppFrameworkInfo.plist b/examples/flutter/example/ios/Flutter/AppFrameworkInfo.plist deleted file mode 100644 index 7c569640..00000000 --- a/examples/flutter/example/ios/Flutter/AppFrameworkInfo.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - App - CFBundleIdentifier - io.flutter.flutter.app - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - App - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - MinimumOSVersion - 12.0 - - diff --git a/examples/flutter/example/ios/Flutter/Debug.xcconfig b/examples/flutter/example/ios/Flutter/Debug.xcconfig deleted file mode 100644 index ec97fc6f..00000000 --- a/examples/flutter/example/ios/Flutter/Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" -#include "Generated.xcconfig" diff --git a/examples/flutter/example/ios/Flutter/Release.xcconfig b/examples/flutter/example/ios/Flutter/Release.xcconfig deleted file mode 100644 index c4855bfe..00000000 --- a/examples/flutter/example/ios/Flutter/Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" -#include "Generated.xcconfig" diff --git a/examples/flutter/example/ios/Podfile b/examples/flutter/example/ios/Podfile deleted file mode 100644 index 3e44f9c6..00000000 --- a/examples/flutter/example/ios/Podfile +++ /dev/null @@ -1,44 +0,0 @@ -# Uncomment this line to define a global platform for your project -platform :ios, '13.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_ios_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_ios_build_settings(target) - end -end diff --git a/examples/flutter/example/ios/Podfile.lock b/examples/flutter/example/ios/Podfile.lock deleted file mode 100644 index a4335a9c..00000000 --- a/examples/flutter/example/ios/Podfile.lock +++ /dev/null @@ -1,35 +0,0 @@ -PODS: - - Flutter (1.0.0) - - integration_test (0.0.1): - - Flutter - - path_provider_foundation (0.0.1): - - Flutter - - FlutterMacOS - - thermion_flutter (0.0.1): - - Flutter - -DEPENDENCIES: - - Flutter (from `Flutter`) - - integration_test (from `.symlinks/plugins/integration_test/ios`) - - path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`) - - thermion_flutter (from `.symlinks/plugins/thermion_flutter/ios`) - -EXTERNAL SOURCES: - Flutter: - :path: Flutter - integration_test: - :path: ".symlinks/plugins/integration_test/ios" - path_provider_foundation: - :path: ".symlinks/plugins/path_provider_foundation/darwin" - thermion_flutter: - :path: ".symlinks/plugins/thermion_flutter/ios" - -SPEC CHECKSUMS: - Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573 - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - thermion_flutter: dd8d01cb3b3e6e9a612f5a1061a96be1e1c2f659 - -PODFILE CHECKSUM: a57f30d18f102dd3ce366b1d62a55ecbef2158e5 - -COCOAPODS: 1.15.2 diff --git a/examples/flutter/example/ios/Runner.xcodeproj/project.pbxproj b/examples/flutter/example/ios/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index 0b85a8de..00000000 --- a/examples/flutter/example/ios/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,730 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXBuildFile section */ - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 18BA9BAB0A3151C581637BC5 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 913673949B5C862688BEB411 /* Pods_Runner.framework */; }; - 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - 44B597F813CB15F7F7362D7F /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E559449EFA9688E4362535A /* Pods_RunnerTests.framework */; }; - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 97C146E61CF9000F007C117D /* Project object */; - proxyType = 1; - remoteGlobalIDString = 97C146ED1CF9000F007C117D; - remoteInfo = Runner; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 9705A1C41CF9048500538489 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; - 24862DEBD358E9187AF1957F /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 28E01474E257DCB9E5A9F16D /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; - 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 34F6152C42E578942239D66E /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 3E559449EFA9688E4362535A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 71B8727E9D9717E2EC7D0632 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; - 913673949B5C862688BEB411 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; - 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; - 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C4E435CCE2B189B896F861F8 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; - FA604CE866685A80B2F7D1EA /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 97C146EB1CF9000F007C117D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 18BA9BAB0A3151C581637BC5 /* Pods_Runner.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E5F93109740F1CF8EAB7C740 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 44B597F813CB15F7F7362D7F /* Pods_RunnerTests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 331C8082294A63A400263BE5 /* RunnerTests */ = { - isa = PBXGroup; - children = ( - 331C807B294A618700263BE5 /* RunnerTests.swift */, - ); - path = RunnerTests; - sourceTree = ""; - }; - 3762816736B339B0521FA963 /* Pods */ = { - isa = PBXGroup; - children = ( - FA604CE866685A80B2F7D1EA /* Pods-Runner.debug.xcconfig */, - C4E435CCE2B189B896F861F8 /* Pods-Runner.release.xcconfig */, - 24862DEBD358E9187AF1957F /* Pods-Runner.profile.xcconfig */, - 34F6152C42E578942239D66E /* Pods-RunnerTests.debug.xcconfig */, - 28E01474E257DCB9E5A9F16D /* Pods-RunnerTests.release.xcconfig */, - 71B8727E9D9717E2EC7D0632 /* Pods-RunnerTests.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - 9740EEB11CF90186004384FC /* Flutter */ = { - isa = PBXGroup; - children = ( - 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 9740EEB31CF90195004384FC /* Generated.xcconfig */, - ); - name = Flutter; - sourceTree = ""; - }; - 97C146E51CF9000F007C117D = { - isa = PBXGroup; - children = ( - 9740EEB11CF90186004384FC /* Flutter */, - 97C146F01CF9000F007C117D /* Runner */, - 97C146EF1CF9000F007C117D /* Products */, - 331C8082294A63A400263BE5 /* RunnerTests */, - 3762816736B339B0521FA963 /* Pods */, - F604EC48BBC88B9D456C52C9 /* Frameworks */, - ); - sourceTree = ""; - }; - 97C146EF1CF9000F007C117D /* Products */ = { - isa = PBXGroup; - children = ( - 97C146EE1CF9000F007C117D /* Runner.app */, - 331C8081294A63A400263BE5 /* RunnerTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 97C146F01CF9000F007C117D /* Runner */ = { - isa = PBXGroup; - children = ( - 97C146FA1CF9000F007C117D /* Main.storyboard */, - 97C146FD1CF9000F007C117D /* Assets.xcassets */, - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, - 97C147021CF9000F007C117D /* Info.plist */, - 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, - 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, - 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, - 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, - ); - path = Runner; - sourceTree = ""; - }; - F604EC48BBC88B9D456C52C9 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 913673949B5C862688BEB411 /* Pods_Runner.framework */, - 3E559449EFA9688E4362535A /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 331C8080294A63A400263BE5 /* RunnerTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; - buildPhases = ( - 966EE0BC7D8B7994F46B60D0 /* [CP] Check Pods Manifest.lock */, - 331C807D294A63A400263BE5 /* Sources */, - 331C807F294A63A400263BE5 /* Resources */, - E5F93109740F1CF8EAB7C740 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 331C8086294A63A400263BE5 /* PBXTargetDependency */, - ); - name = RunnerTests; - productName = RunnerTests; - productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 97C146ED1CF9000F007C117D /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - F7EDF8FA795C5CA2175B4CDF /* [CP] Check Pods Manifest.lock */, - 9740EEB61CF901F6004384FC /* Run Script */, - 97C146EA1CF9000F007C117D /* Sources */, - 97C146EB1CF9000F007C117D /* Frameworks */, - 97C146EC1CF9000F007C117D /* Resources */, - 9705A1C41CF9048500538489 /* Embed Frameworks */, - 3B06AD1E1E4923F5004D2608 /* Thin Binary */, - ED098149A1804FAFC41C252E /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Runner; - productName = Runner; - productReference = 97C146EE1CF9000F007C117D /* Runner.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 97C146E61CF9000F007C117D /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1510; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 331C8080294A63A400263BE5 = { - CreatedOnToolsVersion = 14.0; - TestTargetID = 97C146ED1CF9000F007C117D; - }; - 97C146ED1CF9000F007C117D = { - CreatedOnToolsVersion = 7.3.1; - LastSwiftMigration = 1100; - }; - }; - }; - buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 97C146E51CF9000F007C117D; - productRefGroup = 97C146EF1CF9000F007C117D /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 97C146ED1CF9000F007C117D /* Runner */, - 331C8080294A63A400263BE5 /* RunnerTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 331C807F294A63A400263BE5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97C146EC1CF9000F007C117D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, - 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, - 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, - 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", - ); - name = "Thin Binary"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; - }; - 966EE0BC7D8B7994F46B60D0 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 9740EEB61CF901F6004384FC /* Run Script */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Run Script"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; - }; - ED098149A1804FAFC41C252E /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - F7EDF8FA795C5CA2175B4CDF /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 331C807D294A63A400263BE5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 97C146EA1CF9000F007C117D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, - 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 97C146ED1CF9000F007C117D /* Runner */; - targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 97C146FA1CF9000F007C117D /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C146FB1CF9000F007C117D /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 97C147001CF9000F007C117D /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 249021D3217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Profile; - }; - 249021D4217E4FDB00AE95B9 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = TM2B4SJXNJ; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "app.flutter-filament.example"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Profile; - }; - 331C8088294A63A400263BE5 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 34F6152C42E578942239D66E /* Pods-RunnerTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Debug; - }; - 331C8089294A63A400263BE5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 28E01474E257DCB9E5A9F16D /* Pods-RunnerTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Release; - }; - 331C808A294A63A400263BE5 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 71B8727E9D9717E2EC7D0632 /* Pods-RunnerTests.profile.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; - }; - name = Profile; - }; - 97C147031CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 97C147041CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 97C147061CF9000F007C117D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = TM2B4SJXNJ; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "app.flutter-filament.example"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 97C147071CF9000F007C117D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; - DEVELOPMENT_TEAM = TM2B4SJXNJ; - ENABLE_BITCODE = NO; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - PRODUCT_BUNDLE_IDENTIFIER = "app.flutter-filament.example"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 331C8088294A63A400263BE5 /* Debug */, - 331C8089294A63A400263BE5 /* Release */, - 331C808A294A63A400263BE5 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147031CF9000F007C117D /* Debug */, - 97C147041CF9000F007C117D /* Release */, - 249021D3217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 97C147061CF9000F007C117D /* Debug */, - 97C147071CF9000F007C117D /* Release */, - 249021D4217E4FDB00AE95B9 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 97C146E61CF9000F007C117D /* Project object */; -} diff --git a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a6..00000000 --- a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c5..00000000 --- a/examples/flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - PreviewsEnabled - - - diff --git a/examples/flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index 8e3ca5df..00000000 --- a/examples/flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/examples/flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 21a3cc14..00000000 --- a/examples/flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index f9b0d7c5..00000000 --- a/examples/flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - PreviewsEnabled - - - diff --git a/examples/flutter/example/ios/Runner/AppDelegate.swift b/examples/flutter/example/ios/Runner/AppDelegate.swift deleted file mode 100644 index 62666446..00000000 --- a/examples/flutter/example/ios/Runner/AppDelegate.swift +++ /dev/null @@ -1,13 +0,0 @@ -import Flutter -import UIKit - -@main -@objc class AppDelegate: FlutterAppDelegate { - override func application( - _ application: UIApplication, - didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? - ) -> Bool { - GeneratedPluginRegistrant.register(with: self) - return super.application(application, didFinishLaunchingWithOptions: launchOptions) - } -} diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d36b1fab..00000000 --- a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@1x.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Icon-App-1024x1024@1x.png", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png deleted file mode 100644 index dc9ada4725e9b0ddb1deab583e5b5102493aa332..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10932 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 diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png deleted file mode 100644 index 797d452e458972bab9d994556c8305db4c827017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 406 zcmV;H0crk;P))>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png deleted file mode 100644 index 6ed2d933e1120817fe9182483a228007b18ab6ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 450 zcmV;z0X_bSP)iGWQ_5NJQ_~rNh*z)}eT%KUb z`7gNk0#AwF^#0T0?hIa^`~Ck;!}#m+_uT050aTR(J!bU#|IzRL%^UsMS#KsYnTF*!YeDOytlP4VhV?b} z%rz_<=#CPc)tU1MZTq~*2=8~iZ!lSa<{9b@2Jl;?IEV8)=fG217*|@)CCYgFze-x? zIFODUIA>nWKpE+bn~n7;-89sa>#DR>TSlqWk*!2hSN6D~Qb#VqbP~4Fk&m`@1$JGr zXPIdeRE&b2Thd#{MtDK$px*d3-Wx``>!oimf%|A-&-q*6KAH)e$3|6JV%HX{Hig)k suLT-RhftRq8b9;(V=235Wa|I=027H2wCDra;{X5v07*qoM6N<$f;9x^2LJ#7 diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png deleted file mode 100644 index 4cd7b0099ca80c806f8fe495613e8d6c69460d76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmV+#0p(^bcu7P-R4C8Q z&e;xxFbF_Vrezo%_kH*OKhshZ6BFpG-Y1e10`QXJKbND7AMQ&cMj60B5TNObaZxYybcN07*qoM6N<$g3m;S%K!iX diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png deleted file mode 100644 index fe730945a01f64a61e2235dbe3f45b08f7729182..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 462 zcmV;<0WtoGP)-}iV`2<;=$?g5M=KQbZ{F&YRNy7Nn@%_*5{gvDM0aKI4?ESmw z{NnZg)A0R`+4?NF_RZexyVB&^^ZvN!{I28tr{Vje;QNTz`dG&Jz0~Ek&f2;*Z7>B|cg}xYpxEFY+0YrKLF;^Q+-HreN0P{&i zK~zY`?b7ECf-n?@;d<&orQ*Q7KoR%4|C>{W^h6@&01>0SKS`dn{Q}GT%Qj_{PLZ_& zs`MFI#j-(>?bvdZ!8^xTwlY{qA)T4QLbY@j(!YJ7aXJervHy6HaG_2SB`6CC{He}f zHVw(fJWApwPq!6VY7r1w-Fs)@ox~N+q|w~e;JI~C4Vf^@d>Wvj=fl`^u9x9wd9 zR%3*Q+)t%S!MU_`id^@&Y{y7-r98lZX0?YrHlfmwb?#}^1b{8g&KzmkE(L>Z&)179 zp<)v6Y}pRl100G2FL_t(o!|l{-Q-VMg#&MKg7c{O0 z2wJImOS3Gy*Z2Qifdv~JYOp;v+U)a|nLoc7hNH;I$;lzDt$}rkaFw1mYK5_0Q(Sut zvbEloxON7$+HSOgC9Z8ltuC&0OSF!-mXv5caV>#bc3@hBPX@I$58-z}(ZZE!t-aOG zpjNkbau@>yEzH(5Yj4kZiMH32XI!4~gVXNnjAvRx;Sdg^`>2DpUEwoMhTs_st8pKG z(%SHyHdU&v%f36~uERh!bd`!T2dw;z6PrOTQ7Vt*#9F2uHlUVnb#ev_o^fh}Dzmq} zWtlk35}k=?xj28uO|5>>$yXadTUE@@IPpgH`gJ~Ro4>jd1IF|(+IX>8M4Ps{PNvmI zNj4D+XgN83gPt_Gm}`Ybv{;+&yu-C(Grdiahmo~BjG-l&mWM+{e5M1sm&=xduwgM9 z`8OEh`=F3r`^E{n_;%9weN{cf2%7=VzC@cYj+lg>+3|D|_1C@{hcU(DyQG_BvBWe? zvTv``=%b1zrol#=R`JB)>cdjpWt&rLJgVp-t?DREyuq1A%0Z4)6_WsQ7{nzjN zo!X zGXV)2i3kcZIL~_j>uIKPK_zib+3T+Nt3Mb&Br)s)UIaA}@p{wDda>7=Q|mGRp7pqY zkJ!7E{MNz$9nOwoVqpFb)}$IP24Wn2JJ=Cw(!`OXJBr45rP>>AQr$6c7slJWvbpNW z@KTwna6d?PP>hvXCcp=4F;=GR@R4E7{4VU^0p4F>v^#A|>07*qoM6N<$f*5nx ACIA2c diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png deleted file mode 100644 index 502f463a9bc882b461c96aadf492d1729e49e725..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmV-Q0=4~#P)+}#`wDE{8-2Mebf5<{{PqV{TgVcv*r8?UZ3{-|G?_}T*&y;@cqf{ z{Q*~+qr%%p!1pS*_Uicl#q9lc(D`!D`LN62sNwq{oYw(Wmhk)k<@f$!$@ng~_5)Ru z0Z)trIA5^j{DIW^c+vT2%lW+2<(RtE2wR;4O@)Tm`Xr*?A(qYoM}7i5Yxw>D(&6ou zxz!_Xr~yNF+waPe00049Nkl*;a!v6h%{rlvIH#gW3s8p;bFr=l}mRqpW2h zw=OA%hdyL~z+UHOzl0eKhEr$YYOL-c-%Y<)=j?(bzDweB7{b+%_ypvm_cG{SvM=DK zhv{K@m>#Bw>2W$eUI#iU)Wdgs8Y3U+A$Gd&{+j)d)BmGKx+43U_!tik_YlN)>$7G! zhkE!s;%oku3;IwG3U^2kw?z+HM)jB{@zFhK8P#KMSytSthr+4!c(5c%+^UBn`0X*2 zy3(k600_CSZj?O$Qu%&$;|TGUJrptR(HzyIx>5E(2r{eA(<6t3e3I0B)7d6s7?Z5J zZ!rtKvA{MiEBm&KFtoifx>5P^Z=vl)95XJn()aS5%ad(s?4-=Tkis9IGu{`Fy8r+H07*qoM6N<$f20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index 0ec303439225b78712f49115768196d8d76f6790..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 862 zcmV-k1EKthP)20Z)wqMt%V?S?~D#06};F zA3KcL`Wb+>5ObvgQIG&ig8(;V04hz?@cqy3{mSh8o!|U|)cI!1_+!fWH@o*8vh^CU z^ws0;(c$gI+2~q^tO#GDHf@=;DncUw00J^eL_t(&-tE|HQ`%4vfZ;WsBqu-$0nu1R zq^Vj;p$clf^?twn|KHO+IGt^q#a3X?w9dXC@*yxhv&l}F322(8Y1&=P&I}~G@#h6; z1CV9ecD9ZEe87{{NtI*)_aJ<`kJa z?5=RBtFF50s;jQLFil-`)m2wrb=6h(&brpj%nG_U&ut~$?8Rokzxi8zJoWr#2dto5 zOX_URcc<1`Iky+jc;A%Vzx}1QU{2$|cKPom2Vf1{8m`vja4{F>HS?^Nc^rp}xo+Nh zxd}eOm`fm3@MQC1< zIk&aCjb~Yh%5+Yq0`)D;q{#-Uqlv*o+Oor zE!I71Z@ASH3grl8&P^L0WpavHoP|UX4e?!igT`4?AZk$hu*@%6WJ;zDOGlw7kj@ zY5!B-0ft0f?Lgb>C;$Ke07*qoM6N<$f~t1N9smFU diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index e9f5fea27c705180eb716271f41b582e76dcbd90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1674 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 diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png deleted file mode 100644 index 0467bf12aa4d28f374bb26596605a46dcbb3e7c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1418 zcmV;51$Fv~P)q zKfU)WzW*n(@|xWGCA9ScMt*e9`2kdxPQ&&>|-UCa7_51w+ zLUsW@ZzZSW0y$)Hp~e9%PvP|a03ks1`~K?q{u;6NC8*{AOqIUq{CL&;p56Lf$oQGq z^={4hPQv)y=I|4n+?>7Fim=dxt1 z2H+Dm+1+fh+IF>G0SjJMkQQre1x4|G*Z==(Ot&kCnUrL4I(rf(ucITwmuHf^hXiJT zkdTm&kdTm&kdTm&kdP`esgWG0BcWCVkVZ&2dUwN`cgM8QJb`Z7Z~e<&Yj2(}>Tmf` zm1{eLgw!b{bXkjWbF%dTkTZEJWyWOb##Lfw4EK2}<0d6%>AGS{po>WCOy&f$Tay_> z?NBlkpo@s-O;0V%Y_Xa-G#_O08q5LR*~F%&)}{}r&L%Sbs8AS4t7Y0NEx*{soY=0MZExqA5XHQkqi#4gW3 zqODM^iyZl;dvf)-bOXtOru(s)Uc7~BFx{w-FK;2{`VA?(g&@3z&bfLFyctOH!cVsF z7IL=fo-qBndRUm;kAdXR4e6>k-z|21AaN%ubeVrHl*<|s&Ax@W-t?LR(P-24A5=>a z*R9#QvjzF8n%@1Nw@?CG@6(%>+-0ASK~jEmCV|&a*7-GKT72W<(TbSjf)&Eme6nGE z>Gkj4Sq&2e+-G%|+NM8OOm5zVl9{Z8Dd8A5z3y8mZ=4Bv4%>as_{9cN#bm~;h>62( zdqY93Zy}v&c4n($Vv!UybR8ocs7#zbfX1IY-*w~)p}XyZ-SFC~4w>BvMVr`dFbelV{lLL0bx7@*ZZdebr3`sP;? zVImji)kG)(6Juv0lz@q`F!k1FE;CQ(D0iG$wchPbKZQELlsZ#~rt8#90Y_Xh&3U-< z{s<&cCV_1`^TD^ia9!*mQDq& zn2{r`j};V|uV%_wsP!zB?m%;FeaRe+X47K0e+KE!8C{gAWF8)lCd1u1%~|M!XNRvw zvtqy3iz0WSpWdhn6$hP8PaRBmp)q`#PCA`Vd#Tc$@f1tAcM>f_I@bC)hkI9|o(Iqv zo}Piadq!j76}004RBio<`)70k^`K1NK)q>w?p^C6J2ZC!+UppiK6&y3Kmbv&O!oYF z34$0Z;QO!JOY#!`qyGH<3Pd}Pt@q*A0V=3SVtWKRR8d8Z&@)3qLPA19LPA19LPEUC YUoZo%k(ykuW&i*H07*qoM6N<$f+CH{y8r+H diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json deleted file mode 100644 index 0bedcf2f..00000000 --- a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "LaunchImage.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "LaunchImage@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "LaunchImage@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png deleted file mode 100644 index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png deleted file mode 100644 index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png deleted file mode 100644 index 9da19eacad3b03bb08bbddbbf4ac48dd78b3d838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v diff --git a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md deleted file mode 100644 index 89c2725b..00000000 --- a/examples/flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Launch Screen Assets - -You can customize the launch screen with your own desired assets by replacing the image files in this directory. - -You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/examples/flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/examples/flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index f2e259c7..00000000 --- a/examples/flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/ios/Runner/Base.lproj/Main.storyboard b/examples/flutter/example/ios/Runner/Base.lproj/Main.storyboard deleted file mode 100644 index f3c28516..00000000 --- a/examples/flutter/example/ios/Runner/Base.lproj/Main.storyboard +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/ios/Runner/Info.plist b/examples/flutter/example/ios/Runner/Info.plist deleted file mode 100644 index f15383a8..00000000 --- a/examples/flutter/example/ios/Runner/Info.plist +++ /dev/null @@ -1,49 +0,0 @@ - - - - - CADisableMinimumFrameDurationOnPhone - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - Example - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - example - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleSignature - ???? - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSRequiresIPhoneOS - - UIApplicationSupportsIndirectInputEvents - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/examples/flutter/example/ios/Runner/Runner-Bridging-Header.h b/examples/flutter/example/ios/Runner/Runner-Bridging-Header.h deleted file mode 100644 index 308a2a56..00000000 --- a/examples/flutter/example/ios/Runner/Runner-Bridging-Header.h +++ /dev/null @@ -1 +0,0 @@ -#import "GeneratedPluginRegistrant.h" diff --git a/examples/flutter/example/ios/RunnerTests/RunnerTests.swift b/examples/flutter/example/ios/RunnerTests/RunnerTests.swift deleted file mode 100644 index 86a7c3b1..00000000 --- a/examples/flutter/example/ios/RunnerTests/RunnerTests.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Flutter -import UIKit -import XCTest - -class RunnerTests: XCTestCase { - - func testExample() { - // If you add code to the Runner application, consider adding tests here. - // See https://developer.apple.com/documentation/xctest for more information about using XCTest. - } - -} diff --git a/examples/flutter/example/lib/camera_matrix_overlay.dart b/examples/flutter/example/lib/camera_matrix_overlay.dart deleted file mode 100644 index a2c4c17d..00000000 --- a/examples/flutter/example/lib/camera_matrix_overlay.dart +++ /dev/null @@ -1,139 +0,0 @@ -import 'dart:async'; - -import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:vector_math/vector_math_64.dart' as v; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; - -class CameraMatrixOverlay extends StatefulWidget { - final ThermionViewer controller; - final bool showProjectionMatrices; - - const CameraMatrixOverlay( - {super.key, - required this.controller, - required this.showProjectionMatrices}); - - @override - State createState() => _CameraMatrixOverlayState(); -} - -class _CameraMatrixOverlayState extends State { - Timer? _cameraTimer; - String? _cameraPosition; - String? _cameraRotation; - - String? _cameraProjectionMatrix; - String? _cameraCullingProjectionMatrix; - - void _tick(Timer timer) async { - var cameraPosition = await widget.controller.getCameraPosition(); - var cameraRotation = await widget.controller.getCameraRotation(); - - _cameraPosition = - "${cameraPosition.storage.map((v) => v.toStringAsFixed(2))}"; - _cameraRotation = - "${cameraRotation.storage.map((v) => v.toStringAsFixed(2))}"; - - if (widget.showProjectionMatrices) { - var projMatrix = await widget.controller.getCameraProjectionMatrix(); - var cullingMatrix = - await widget.controller.getCameraCullingProjectionMatrix(); - - _cameraProjectionMatrix = - projMatrix.storage.map((v) => v.toStringAsFixed(2)).join(","); - _cameraCullingProjectionMatrix = - cullingMatrix.storage.map((v) => v.toStringAsFixed(2)).join(","); - _getFrustum(); - } - - setState(() {}); - } - - void _updateTimer() async { - _cameraTimer?.cancel(); - await widget.controller.initialized; - } - - v.Frustum? _frustum; - - void _getFrustum() async { - _frustum = await widget.controller.getCameraFrustum(); - } - - @override - void initState() { - super.initState(); - _updateTimer(); - } - - @override - void didUpdateWidget(CameraMatrixOverlay oldWidget) { - super.didUpdateWidget(oldWidget); - setState(() {}); - } - - @override - void dispose() { - super.dispose(); - _cameraTimer?.cancel(); - } - - @override - Widget build(BuildContext context) { - return Container( - decoration: BoxDecoration( - color: Colors.black.withOpacity(0.5), - borderRadius: BorderRadius.circular(29)), - padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 5), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - Text("Camera : $_cameraPosition $_cameraRotation", - style: - const TextStyle(color: Colors.white, fontSize: 10)), - // widget.showProjectionMatrices - // ? Text("Projection matrix : $_cameraProjectionMatrix", - // style: const TextStyle(color: Colors.white, fontSize: 12)) - // : Container(), - // widget.showProjectionMatrices - // ? Text("Culling matrix : $_cameraCullingProjectionMatrix", - // style: const TextStyle(color: Colors.white, fontSize: 12)) - // : Container(), - widget.showProjectionMatrices - ? const Text("Frustum matrix", - style: TextStyle(color: Colors.white, fontSize: 10)) - : Container() - ] + - (_frustum == null - ? [] - : [ - _frustum!.plane0, - _frustum!.plane1, - _frustum!.plane2, - _frustum!.plane3, - _frustum!.plane4, - _frustum!.plane5 - ] - .map((plane) => Row( - children: [ - plane.normal.x, - plane.normal.y, - plane.normal.z, - plane.constant - ] - .map((v) => Text( - v.toStringAsFixed(2) + " ", - style: const TextStyle( - color: Colors.white, - fontSize: 10), - textAlign: TextAlign.center, - )) - .cast() - .toList())) - .cast() - .toList()))); - } -} diff --git a/examples/flutter/example/lib/example_viewport.dart b/examples/flutter/example/lib/example_viewport.dart deleted file mode 100644 index 4be74ea2..00000000 --- a/examples/flutter/example/lib/example_viewport.dart +++ /dev/null @@ -1,35 +0,0 @@ -import 'package:flutter/widgets.dart'; -import 'package:thermion_flutter/thermion/widgets/camera/entity_controller_mouse_widget.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:thermion_dart/thermion_dart/entities/entity_transform_controller.dart'; - - -class ExampleViewport extends StatelessWidget { - final ThermionViewer? viewer; - final EntityTransformController? entityTransformController; - final EdgeInsets padding; - final FocusNode keyboardFocusNode; - - const ExampleViewport( - {super.key, - required this.viewer, - required this.padding, - required this.keyboardFocusNode, - this.entityTransformController}); - - @override - Widget build(BuildContext context) { - return viewer != null - ? Padding( - padding: padding, - child: EntityTransformMouseControllerWidget( - transformController: entityTransformController, - child: ThermionGestureDetector( - showControlOverlay: true, - controller: viewer!, - child: ThermionWidget( - viewer: viewer!, - )))) - : Container(); - } -} diff --git a/examples/flutter/example/lib/main.dart b/examples/flutter/example/lib/main.dart deleted file mode 100644 index 4ab80781..00000000 --- a/examples/flutter/example/lib/main.dart +++ /dev/null @@ -1,196 +0,0 @@ -import 'dart:async'; -import 'package:flutter/material.dart'; -import 'package:thermion_flutter/thermion/widgets/debug/entity_list_widget.dart'; -import 'package:thermion_flutter_example/menus/controller_menu.dart'; -import 'package:thermion_flutter_example/example_viewport.dart'; -import 'package:thermion_flutter_example/menus/scene_menu.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; - -const loadDefaultScene = bool.hasEnvironment('--load-default-scene'); - -void main() async { - runApp(const MyApp()); -} - -class MyApp extends StatefulWidget { - const MyApp({Key? key}) : super(key: key); - - @override - State createState() => _MyAppState(); -} - -class _MyAppState extends State with SingleTickerProviderStateMixin { - @override - Widget build(BuildContext context) { - return MaterialApp( - theme: ThemeData( - useMaterial3: true, - textTheme: const TextTheme( - labelLarge: TextStyle(fontSize: 12), - displayMedium: TextStyle(fontSize: 12), - headlineMedium: const TextStyle(fontSize: 12), - titleMedium: TextStyle(fontSize: 12), - bodyLarge: TextStyle(fontSize: 14), - bodyMedium: TextStyle(fontSize: 12))), - // showPerformanceOverlay: true, - home: const Scaffold( - backgroundColor: Color(0x00000000), body: ExampleWidget())); - } -} - -class ExampleWidget extends StatefulWidget { - const ExampleWidget({super.key}); - - @override - State createState() { - return ExampleWidgetState(); - } -} - -enum MenuType { controller, assets, camera, misc } - -class ExampleWidgetState extends State { - ThermionViewer? _viewer; - - EdgeInsets _viewportMargin = EdgeInsets.zero; - - // these are all the options that can be set via the menu - // we store them here - static bool rendering = false; - static bool recording = false; - static int framerate = 60; - static bool postProcessing = false; - static bool antiAliasingMsaa = false; - static bool antiAliasingTaa = false; - static bool antiAliasingFxaa = false; - static bool frustumCulling = true; - - static double zoomSpeed = 0.01; - static double orbitSpeedX = 0.01; - static double orbitSpeedY = 0.01; - - static bool hasSkybox = false; - static bool coneHidden = false; - - static bool loop = false; - static final showProjectionMatrices = ValueNotifier(false); - - late StreamSubscription _listener; - - @override - void initState() { - super.initState(); - } - - @override - void dispose() { - super.dispose(); - _listener.cancel(); - } - - EntityTransformController? _transformController; - - final _sharedFocusNode = FocusNode(); - - @override - Widget build(BuildContext context) { - return Stack(fit: StackFit.expand, children: [ - if (_viewer != null) - Positioned.fill( - child: ExampleViewport( - viewer: _viewer!, - entityTransformController: _transformController, - padding: _viewportMargin, - keyboardFocusNode: _sharedFocusNode), - ), - Positioned( - bottom: 30, - left: 0, - right: 10, - height: 30, - child: Container( - height: 30, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(30), - color: Colors.white.withOpacity(0.25), - ), - padding: const EdgeInsets.symmetric(horizontal: 10), - child: - Row(crossAxisAlignment: CrossAxisAlignment.center, children: [ - ViewerMenu( - sharedFocusNode: _sharedFocusNode, - viewer: _viewer, - onToggleViewport: () { - setState(() { - _viewportMargin = (_viewportMargin == EdgeInsets.zero) - ? const EdgeInsets.all(30) - : EdgeInsets.zero; - }); - }, - onViewerDestroyed: () { - setState(() { - _viewer = null; - }); - }, - onViewerCreated: (v) { - setState(() { - _viewer = v; - }); - }), - SceneMenu( - sharedFocusNode: _sharedFocusNode, - controller: _viewer, - ), - GestureDetector( - onTap: () async { - await _viewer! - .loadGlb('assets/shapes/shapes.glb', numInstances: 1); - }, - child: Container( - color: Colors.transparent, - child: const Text("shapes.glb"))), - const SizedBox(width: 5), - GestureDetector( - onTap: () async { - await _viewer!.loadGlb('assets/1.glb'); - }, - child: Container( - color: Colors.transparent, child: const Text("1.glb"))), - const SizedBox(width: 5), - GestureDetector( - onTap: () async { - await _viewer!.loadGlb('assets/2.glb'); - }, - child: Container( - color: Colors.transparent, child: const Text("2.glb"))), - const SizedBox(width: 5), - GestureDetector( - onTap: () async { - await _viewer!.loadGlb('assets/3.glb'); - }, - child: Container( - color: Colors.transparent, child: const Text("3.glb"))), - Expanded(child: Container()), - ]))), - if (_viewer != null) ...[ - Positioned( - top: 10, - left: 10, - width: 200, - height: 200, - child: Container(child: EntityListWidget(controller: _viewer!))), - // Padding( - // padding: const EdgeInsets.only(top: 10, left: 20, right: 20), - // child: ValueListenableBuilder( - // valueListenable: showProjectionMatrices, - // builder: (ctx, value, child) => CameraMatrixOverlay( - // controller: _viewer!, showProjectionMatrices: value)), - // ), - // Align( - // alignment: Alignment.topRight, - // child: PickerResultWidget(controller: _viewer!), - // ) - ] - ]); - } -} diff --git a/examples/flutter/example/lib/menus/asset_submenu.dart b/examples/flutter/example/lib/menus/asset_submenu.dart deleted file mode 100644 index 78705f9c..00000000 --- a/examples/flutter/example/lib/menus/asset_submenu.dart +++ /dev/null @@ -1,263 +0,0 @@ -import 'dart:math'; - -import 'package:flutter/material.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:animation_tools_dart/animation_tools_dart.dart'; -import 'package:thermion_flutter_example/main.dart'; -import 'package:vector_math/vector_math_64.dart' as v; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; - -class AssetSubmenu extends StatefulWidget { - final ThermionViewer viewer; - const AssetSubmenu({super.key, required this.viewer}); - - @override - State createState() => _AssetSubmenuState(); -} - -class _AssetSubmenuState extends State { - @override - void initState() { - super.initState(); - } - - Widget _shapesSubmenu() { - var children = [ - MenuItemButton( - closeOnActivate: false, - onPressed: () async { - var entity = await widget.viewer.getChildEntity( - widget.viewer.scene.listEntities().last, "Cylinder"); - await showDialog( - context: context, - builder: (BuildContext context) { - return Center( - child: Container( - color: Colors.white, child: Text(entity.toString()))); - }); - }, - child: const Text('Find Cylinder entity by name')), - MenuItemButton( - onPressed: () async { - widget.viewer.setPosition( - widget.viewer.scene.listEntities().last, - 1.0, - 1.0, - -1.0); - }, - child: const Text('Set position to 1, 1, -1'), - ), - MenuItemButton( - onPressed: () async { - final color = Colors.purple; - widget.viewer.setMaterialColor( - widget.viewer.scene.listEntities().last, - "Cone", - 0, - color.red / 255.0, - color.green / 255.0, - color.blue / 255.0, - 1.0); - }, - child: const Text("Set cone material color to purple")), - ]; - - return SubmenuButton(menuChildren: children, child: const Text("Shapes")); - } - - Widget _geometrySubmenu() { - return SubmenuButton( - menuChildren: [ - MenuItemButton( - onPressed: () async { - var verts = [ - -1.0, - 0.0, - -1.0, - -1.0, - 0.0, - 1.0, - 1.0, - 0.0, - 1.0, - 1.0, - 0.0, - -1.0, - ]; - var indices = [0, 1, 2, 2, 3, 0]; - var geom = await widget.viewer.createGeometry( - verts, indices, - materialPath: "asset://assets/solidcolor.filamat"); - }, - child: const Text("Quad")), - MenuItemButton( - onPressed: () async { - await widget.viewer.createGeometry([ - 0, - 0, - 0, - 1, - 0, - 0, - ], [ - 0, - 1 - ], primitiveType: PrimitiveType.LINES); - }, - child: const Text("Line")) - ], - child: const Text("Custom Geometry"), - ); - } - - @override - Widget build(BuildContext context) { - return SubmenuButton( - menuChildren: [ - _shapesSubmenu(), - _geometrySubmenu(), - MenuItemButton( - onPressed: () async { - await widget.viewer.addLight( - LightType.DIRECTIONAL, 6500, 100000, 0, 1, 0, 0, -1, 0); - }, - child: const Text("Add directional light"), - ), - MenuItemButton( - onPressed: () async { - await widget.viewer.addLight( - LightType.POINT, 6500, 100000, 0, 1, 0, 0, -1, 0, - falloffRadius: 1.0); - }, - child: const Text("Add point light"), - ), - MenuItemButton( - onPressed: () async { - await widget.viewer.addLight( - LightType.SPOT, 6500, 1000000, 0, 0, 0, 0, 1, 0, - spotLightConeInner: 0.1, - spotLightConeOuter: 0.4, - falloffRadius: 100.0); - }, - child: const Text("Add spot light"), - ), - MenuItemButton( - onPressed: () async { - await widget.viewer.clearLights(); - }, - child: const Text("Clear lights"), - ), - MenuItemButton( - onPressed: () { - final color = const Color(0xAA73C9FA); - widget.viewer.setBackgroundColor(color.red / 255.0, - color.green / 255.0, color.blue / 255.0, 1.0); - }, - child: const Text("Set background color")), - MenuItemButton( - onPressed: () { - widget.viewer - .setBackgroundImage('assets/background.ktx'); - }, - child: const Text("Load background image")), - MenuItemButton( - onPressed: () { - widget.viewer.setBackgroundImage( - 'assets/background.ktx', - fillHeight: true); - }, - child: const Text("Load background image (fill height)")), - MenuItemButton( - onPressed: () { - if (ExampleWidgetState.hasSkybox) { - widget.viewer.removeSkybox(); - } else { - widget.viewer - .loadSkybox('assets/default_env/default_env_skybox.ktx'); - } - ExampleWidgetState.hasSkybox = !ExampleWidgetState.hasSkybox; - }, - child: Text(ExampleWidgetState.hasSkybox - ? 'Remove skybox' - : 'Load skybox')), - MenuItemButton( - onPressed: () { - widget.viewer - .loadIbl('assets/default_env/default_env_ibl.ktx'); - }, - child: const Text('Load IBL')), - MenuItemButton( - onPressed: () { - widget.viewer.removeIbl(); - }, - child: const Text('Remove IBL')), - MenuItemButton( - onPressed: () async { - await widget.viewer.clearEntities(); - }, - child: const Text('Clear assets')), - ], - child: const Text("Assets"), - ); - } -} - -// _item(() async { -// var frameData = Float32List.fromList( -// List.generate(120, (i) => i / 120).expand((x) { -// var vals = List.filled(7, x); -// vals[3] = 1.0; -// // vals[4] = 0; -// vals[5] = 0; -// vals[6] = 0; -// return vals; -// }).toList()); - -// widget.controller!.setBoneAnimation( -// _shapes!, -// BoneAnimationData( -// "Bone.001", ["Cube.001"], frameData, 1000.0 / 60.0)); -// // , -// // "Bone.001", -// // "Cube.001", -// // BoneTransform([Vec3(x: 0, y: 0.0, z: 0.0)], -// // [Quaternion(x: 1, y: 1, z: 1, w: 1)])); -// }, 'construct bone animation'), - -// _item(() async { -// var morphs = await widget.controller! -// .getMorphTargetNames(_shapes!, "Cylinder"); -// final animation = AnimationBuilder( -// availableMorphs: morphs, -// framerate: 30, -// meshName: "Cylinder") -// .setDuration(4) -// .setMorphTargets(["Key 1", "Key 2"]) -// .interpolateMorphWeights(0, 4, 0, 1) -// .build(); -// widget.controller!.setMorphAnimationData(_shapes!, animation); -// }, "animate cylinder morph weights #1 and #2"), -// _item(() async { -// var morphs = await widget.controller! -// .getMorphTargetNames(_shapes!, "Cylinder"); -// final animation = AnimationBuilder( -// availableMorphs: morphs, -// framerate: 30, -// meshName: "Cylinder") -// .setDuration(4) -// .setMorphTargets(["Key 3", "Key 4"]) -// .interpolateMorphWeights(0, 4, 0, 1) -// .build(); -// widget.controller!.setMorphAnimationData(_shapes!, animation); -// }, "animate cylinder morph weights #3 and #4"), -// _item(() async { -// var morphs = await widget.controller! -// .getMorphTargetNames(_shapes!, "Cube"); -// final animation = AnimationBuilder( -// availableMorphs: morphs, framerate: 30, meshName: "Cube") -// .setDuration(4) -// .setMorphTargets(["Key 1", "Key 2"]) -// .interpolateMorphWeights(0, 4, 0, 1) -// .build(); -// widget.controller!.setMorphAnimationData(_shapes!, animation); -// }, "animate shapes morph weights #1 and #2"), diff --git a/examples/flutter/example/lib/menus/camera_submenu.dart b/examples/flutter/example/lib/menus/camera_submenu.dart deleted file mode 100644 index 30033684..00000000 --- a/examples/flutter/example/lib/menus/camera_submenu.dart +++ /dev/null @@ -1,224 +0,0 @@ -import 'dart:async'; -import 'dart:math'; - -import 'package:flutter/material.dart'; -import 'package:vector_math/vector_math_64.dart' as v; -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; -import 'package:thermion_flutter_example/main.dart'; - -class CameraSubmenu extends StatefulWidget { - final ThermionViewer viewer; - const CameraSubmenu({super.key, required this.viewer}); - - @override - State createState() => _CameraSubmenuState(); -} - -class _CameraSubmenuState extends State { - double? _near; - double? _far; - - @override - void initState() { - super.initState(); - widget.viewer.initialized.then((_) { - widget.viewer.getCameraCullingNear().then((v) { - _near = v; - widget.viewer.getCameraCullingFar().then((v) { - _far = v; - setState(() {}); - }); - }); - }); - } - - final _menuController = MenuController(); - - List _cameraMenu() { - return [ - MenuItemButton( - closeOnActivate: false, - onPressed: () async { - ExampleWidgetState.showProjectionMatrices.value = - !ExampleWidgetState.showProjectionMatrices.value; - print("Set to ${ExampleWidgetState.showProjectionMatrices}"); - }, - child: Text( - '${ExampleWidgetState.showProjectionMatrices.value ? "Hide" : "Display"} camera frustum', - style: TextStyle( - fontWeight: ExampleWidgetState.showProjectionMatrices.value - ? FontWeight.bold - : FontWeight.normal), - ), - ), - SubmenuButton( - menuChildren: [1.0, 7.0, 14.0, 28.0, 56.0] - .map((v) => MenuItemButton( - onPressed: () { - widget.viewer.setCameraFocalLength(v); - }, - child: Text( - v.toStringAsFixed(2), - ), - )) - .toList(), - child: const Text("Set camera focal length")), - SubmenuButton( - menuChildren: [0.05, 0.1, 1.0, 10.0, 100.0] - .map((v) => MenuItemButton( - onPressed: () { - _near = v; - print("Setting camera culling to $_near $_far!"); - - widget.viewer.setCameraCulling(_near!, _far!); - }, - child: Text( - v.toStringAsFixed(2), - ), - )) - .toList(), - child: const Text("Set near")), - SubmenuButton( - menuChildren: [5.0, 50.0, 500.0, 1000.0, 100000.0] - .map((v) => MenuItemButton( - onPressed: () { - _far = v; - print("Setting camera culling to $_near! $_far"); - widget.viewer.setCameraCulling(_near!, _far!); - }, - child: Text( - v.toStringAsFixed(2), - ), - )) - .toList(), - child: const Text("Set far")), - MenuItemButton( - onPressed: () async { - widget.viewer.setCameraPosition(1.0, 1.0, -1.0); - }, - child: const Text('Set position to 1, 1, -1 (leave rotation as-is)'), - ), - MenuItemButton( - onPressed: () async { - widget.viewer.setCameraPosition(0.0, 0.0, 0.0); - widget.viewer.setCameraRotation( - v.Quaternion.axisAngle(v.Vector3(0, 0.0, 1.0), 0.0)); - }, - child: const Text('Move to 0,0,0, facing towards 0,0,-1'), - ), - MenuItemButton( - onPressed: () { - widget.viewer.setCameraRotation( - v.Quaternion.axisAngle(v.Vector3(0, 1, 0), pi / 4)); - }, - child: const Text("Rotate camera 45 degrees around y axis"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.frustumCulling = - !ExampleWidgetState.frustumCulling; - widget.viewer - .setViewFrustumCulling(ExampleWidgetState.frustumCulling); - }, - child: Text( - "${ExampleWidgetState.frustumCulling ? "Disable" : "Enable"} frustum culling"), - ), - MenuItemButton( - closeOnActivate: false, - onPressed: () async { - var projMatrix = - await widget.viewer.getCameraProjectionMatrix(); - await showDialog( - context: context, - builder: (ctx) { - return Center( - child: Container( - height: 100, - width: 300, - color: Colors.white, - child: Text(projMatrix.storage - .map((v) => v.toStringAsFixed(2)) - .join(",")))); - }); - }, - child: const Text("Get projection matrix")), - SubmenuButton( - menuChildren: ManipulatorMode.values.map((mm) { - return MenuItemButton( - onPressed: () { - widget.viewer.setCameraManipulatorOptions( - mode: mm, - orbitSpeedX: ExampleWidgetState.orbitSpeedX, - orbitSpeedY: ExampleWidgetState.orbitSpeedY, - zoomSpeed: ExampleWidgetState.zoomSpeed); - }, - child: Text( - mm.name, - style: TextStyle( - // fontWeight: ExampleWidgetState.cameraManipulatorMode == mm - // ? FontWeight.bold - // : FontWeight.normal - ), - ), - ); - }).toList(), - child: const Text("Manipulator mode")), - SubmenuButton( - menuChildren: [0.01, 0.1, 1.0, 10.0, 100.0].map((speed) { - return MenuItemButton( - onPressed: () { - ExampleWidgetState.zoomSpeed = speed; - widget.viewer.setCameraManipulatorOptions( - orbitSpeedX: ExampleWidgetState.orbitSpeedX, - orbitSpeedY: ExampleWidgetState.orbitSpeedY, - zoomSpeed: ExampleWidgetState.zoomSpeed); - }, - child: Text( - speed.toString(), - style: TextStyle( - fontWeight: - (speed - ExampleWidgetState.zoomSpeed).abs() < 0.0001 - ? FontWeight.bold - : FontWeight.normal), - ), - ); - }).toList(), - child: const Text("Zoom speed")), - SubmenuButton( - menuChildren: [0.001, 0.01, 0.1, 1.0].map((speed) { - return MenuItemButton( - onPressed: () { - ExampleWidgetState.orbitSpeedX = speed; - ExampleWidgetState.orbitSpeedY = speed; - widget.viewer.setCameraManipulatorOptions( - orbitSpeedX: ExampleWidgetState.orbitSpeedX, - orbitSpeedY: ExampleWidgetState.orbitSpeedY, - zoomSpeed: ExampleWidgetState.zoomSpeed); - }, - child: Text( - speed.toString(), - style: TextStyle( - fontWeight: - (speed - ExampleWidgetState.orbitSpeedX).abs() < 0.0001 - ? FontWeight.bold - : FontWeight.normal), - ), - ); - }).toList(), - child: const Text("Orbit speed (X & Y)")) - ]; - } - - @override - Widget build(BuildContext context) { - // if (_near == null || _far == null) { - // return Container(); - // } - return SubmenuButton( - controller: _menuController, - menuChildren: _cameraMenu(), - child: const Text("Camera"), - ); - } -} diff --git a/examples/flutter/example/lib/menus/controller_menu.dart b/examples/flutter/example/lib/menus/controller_menu.dart deleted file mode 100644 index 08bd89d4..00000000 --- a/examples/flutter/example/lib/menus/controller_menu.dart +++ /dev/null @@ -1,107 +0,0 @@ -import 'dart:io'; - -import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; - -import 'package:thermion_flutter/thermion_flutter.dart'; - -class ViewerMenu extends StatefulWidget { - final ThermionViewer? viewer; - final void Function() onToggleViewport; - final void Function(ThermionViewer viewer) onViewerCreated; - final void Function() onViewerDestroyed; - final FocusNode sharedFocusNode; - - ViewerMenu( - { - required this.viewer, - required this.onViewerCreated, - required this.onViewerDestroyed, - required this.sharedFocusNode, - required this.onToggleViewport}); - - @override - State createState() => _ViewerMenuState(); -} - -class _ViewerMenuState extends State { - void _createViewer({String? uberArchivePath}) async { - var viewer = await ThermionFlutterPlugin.createViewer( - uberArchivePath: uberArchivePath); - await viewer.initialized; - widget.onViewerCreated(viewer); - } - - @override - void initState() { - super.initState(); - } - - @override - void didUpdateWidget(ViewerMenu oldWidget) { - super.didUpdateWidget(oldWidget); - } - - bool _initialized = false; - @override - Widget build(BuildContext context) { - var items = []; - if (!_initialized) { - items.addAll([ - MenuItemButton( - child: - const Text("Create ThermionFlutterPlugin (default ubershader)"), - onPressed: () { - _createViewer(); - }, - ), - MenuItemButton( - child: const Text( - "Create ThermionFlutterPlugin (custom ubershader - lit opaque only)"), - onPressed: () { - _createViewer( - uberArchivePath: Platform.isWindows - ? "assets/lit_opaque_32.uberz" - : Platform.isMacOS - ? "assets/lit_opaque_43.uberz" - : Platform.isIOS - ? "assets/lit_opaque_43.uberz" - : "assets/lit_opaque_43_gles.uberz"); - }, - ) - ]); - } else { - items.addAll([ - MenuItemButton( - child: const Text("Destroy viewer"), - onPressed: () async { - widget.viewer!.dispose(); - widget.onViewerDestroyed(); - setState(() {}); - }, - ) - ]); - } - return MenuAnchor( - childFocusNode: widget.sharedFocusNode, - menuChildren: items + - [ - TextButton( - child: const Text("Toggle viewport size"), - onPressed: widget.onToggleViewport, - ) - ], - builder: (BuildContext context, MenuController controller, Widget? child) { - return TextButton( - onPressed: () { - if (controller.isOpen) { - controller.close(); - } else { - controller.open(); - } - }, - child: const Text("Viewer / Viewer"), - ); - }); - } -} diff --git a/examples/flutter/example/lib/menus/rendering_submenu.dart b/examples/flutter/example/lib/menus/rendering_submenu.dart deleted file mode 100644 index c075c0ad..00000000 --- a/examples/flutter/example/lib/menus/rendering_submenu.dart +++ /dev/null @@ -1,95 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:thermion_flutter_example/main.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; - -class RenderingSubmenu extends StatefulWidget { - final ThermionViewer viewer; - - const RenderingSubmenu({super.key, required this.viewer}); - - @override - State createState() => _RenderingSubmenuState(); -} - -class _RenderingSubmenuState extends State { - @override - Widget build(BuildContext context) { - return SubmenuButton( - menuChildren: [ - MenuItemButton( - onPressed: () { - widget.viewer.render(); - }, - child: const Text("Render single frame"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.rendering = !ExampleWidgetState.rendering; - widget.viewer.setRendering(ExampleWidgetState.rendering); - }, - child: Text( - "Set continuous rendering to ${!ExampleWidgetState.rendering}"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.framerate = - ExampleWidgetState.framerate == 60 ? 30 : 60; - widget.viewer.setFrameRate(ExampleWidgetState.framerate); - }, - child: Text( - "Toggle framerate (currently ${ExampleWidgetState.framerate}) "), - ), - MenuItemButton( - onPressed: () { - widget.viewer.setToneMapping(ToneMapper.LINEAR); - }, - child: const Text("Set tone mapping to linear"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.postProcessing = - !ExampleWidgetState.postProcessing; - widget.viewer - .setPostProcessing(ExampleWidgetState.postProcessing); - }, - child: Text( - "${ExampleWidgetState.postProcessing ? "Disable" : "Enable"} postprocessing"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.antiAliasingMsaa = - !ExampleWidgetState.antiAliasingMsaa; - widget.viewer.setAntiAliasing( - ExampleWidgetState.antiAliasingMsaa, - ExampleWidgetState.antiAliasingFxaa, - ExampleWidgetState.antiAliasingTaa); - }, - child: Text( - "${ExampleWidgetState.antiAliasingMsaa ? "Disable" : "Enable"} MSAA antialiasing"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.antiAliasingFxaa = - !ExampleWidgetState.antiAliasingFxaa; - widget.viewer.setAntiAliasing( - ExampleWidgetState.antiAliasingMsaa, - ExampleWidgetState.antiAliasingFxaa, - ExampleWidgetState.antiAliasingTaa); - }, - child: Text( - "${ExampleWidgetState.antiAliasingFxaa ? "Disable" : "Enable"} FXAA antialiasing"), - ), - MenuItemButton( - onPressed: () { - ExampleWidgetState.recording = !ExampleWidgetState.recording; - widget.viewer.setRecording(ExampleWidgetState.recording); - }, - child: Text( - "Turn recording ${ExampleWidgetState.recording ? "OFF" : "ON"}) "), - ), - ], - child: const Text("Rendering"), - ); - } -} diff --git a/examples/flutter/example/lib/menus/scene_menu.dart b/examples/flutter/example/lib/menus/scene_menu.dart deleted file mode 100644 index 3a5e1d9b..00000000 --- a/examples/flutter/example/lib/menus/scene_menu.dart +++ /dev/null @@ -1,62 +0,0 @@ -import 'package:flutter/material.dart'; - -import 'package:thermion_flutter/thermion_flutter.dart'; -import 'package:thermion_flutter_example/menus/asset_submenu.dart'; -import 'package:thermion_flutter_example/menus/camera_submenu.dart'; -import 'package:thermion_flutter_example/menus/rendering_submenu.dart'; - -class SceneMenu extends StatefulWidget { - final ThermionViewer? controller; - final FocusNode sharedFocusNode; - - const SceneMenu( - {super.key, required this.controller, required this.sharedFocusNode}); - - @override - State createState() { - return _SceneMenuState(); - } -} - -class _SceneMenuState extends State { - @override - void didUpdateWidget(SceneMenu oldWidget) { - super.didUpdateWidget(oldWidget); - if (widget.controller != null && - (widget.controller != oldWidget.controller)) { - setState(() {}); - } - } - - @override - Widget build(BuildContext context) { - return MenuAnchor( - onClose: () {}, - childFocusNode: widget.sharedFocusNode, - menuChildren: widget.controller == null - ? [] - : [ - RenderingSubmenu( - viewer: widget.controller!, - ), - AssetSubmenu(viewer: widget.controller!), - CameraSubmenu( - viewer: widget.controller!, - ), - ], - builder: - (BuildContext context, MenuController controller, Widget? child) { - return TextButton( - onPressed: () { - if (controller.isOpen) { - controller.close(); - } else { - controller.open(); - } - }, - child: const Text("Scene"), - ); - }, - ); - } -} diff --git a/examples/flutter/example/lib/picker_result_widget.dart b/examples/flutter/example/lib/picker_result_widget.dart deleted file mode 100644 index 692c4fc6..00000000 --- a/examples/flutter/example/lib/picker_result_widget.dart +++ /dev/null @@ -1,20 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; - -class PickerResultWidget extends StatelessWidget { - final ThermionViewer controller; - - const PickerResultWidget({required this.controller, super.key}); - - @override - Widget build(BuildContext context) { - return StreamBuilder( - stream: controller.pickResult.map((result) { - return controller.getNameForEntity(result.entity); - }), - builder: (ctx, snapshot) => snapshot.data == null - ? Container() - : Text(snapshot.data!, - style: const TextStyle(color: Colors.green, fontSize: 24))); - } -} diff --git a/examples/flutter/example/linux/.gitignore b/examples/flutter/example/linux/.gitignore deleted file mode 100644 index d3896c98..00000000 --- a/examples/flutter/example/linux/.gitignore +++ /dev/null @@ -1 +0,0 @@ -flutter/ephemeral diff --git a/examples/flutter/example/linux/CMakeLists.txt b/examples/flutter/example/linux/CMakeLists.txt deleted file mode 100644 index 8e014c4d..00000000 --- a/examples/flutter/example/linux/CMakeLists.txt +++ /dev/null @@ -1,141 +0,0 @@ -# Project-level configuration. -cmake_minimum_required(VERSION 3.10) -project(runner LANGUAGES CXX) - -# The name of the executable created for the application. Change this to change -# the on-disk name of your application. -set(BINARY_NAME "thermion_flutter_example") -# The unique GTK application identifier for this application. See: -# https://wiki.gnome.org/HowDoI/ChooseApplicationID -set(APPLICATION_ID "app.polyvox.thermion_flutter") - -# Explicitly opt in to modern CMake behaviors to avoid warnings with recent -# versions of CMake. -cmake_policy(SET CMP0063 NEW) - -# Load bundled libraries from the lib/ directory relative to the binary. -set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") - -# Root filesystem for cross-building. -if(FLUTTER_TARGET_PLATFORM_SYSROOT) - set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) -endif() - -# Define build configuration options. -if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - set(CMAKE_BUILD_TYPE "Debug" CACHE - STRING "Flutter build mode" FORCE) - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS - "Debug" "Profile" "Release") -endif() - -# Compilation settings that should be applied to most targets. -# -# Be cautious about adding new options here, as plugins use this function by -# default. In most cases, you should add new options to specific targets instead -# of modifying this function. -function(APPLY_STANDARD_SETTINGS TARGET) - target_compile_features(${TARGET} PUBLIC cxx_std_14) - target_compile_options(${TARGET} PRIVATE -Wall -Werror -Wno-unused-function -Wno-unused-variable) - target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") - target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") -endfunction() - -# Flutter library and tool build rules. -set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") -add_subdirectory(${FLUTTER_MANAGED_DIR}) - -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) - -add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") - -# Define the application target. To change its name, change BINARY_NAME above, -# not the value here, or `flutter run` will no longer work. -# -# Any new source files that you add to the application should be added here. -add_executable(${BINARY_NAME} - "main.cc" - "my_application.cc" - "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" -) - -# Apply the standard set of build settings. This can be removed for applications -# that need different build settings. -apply_standard_settings(${BINARY_NAME}) - -# Add dependency libraries. Add any application-specific dependencies here. -target_link_libraries(${BINARY_NAME} PRIVATE flutter) -target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) - -# Run the Flutter tool portions of the build. This must not be removed. -add_dependencies(${BINARY_NAME} flutter_assemble) - -# Only the install-generated bundle's copy of the executable will launch -# correctly, since the resources must in the right relative locations. To avoid -# people trying to run the unbundled copy, put it in a subdirectory instead of -# the default top-level location. -set_target_properties(${BINARY_NAME} - PROPERTIES - RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" -) - -# Generated plugin build rules, which manage building the plugins and adding -# them to the application. -include(flutter/generated_plugins.cmake) - -include_directories(../../ios/include) - - - -# === Installation === -# By default, "installing" just makes a relocatable bundle in the build -# directory. -set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") -if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) -endif() - -# Start with a clean build bundle directory every time. -install(CODE " - file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") - " COMPONENT Runtime) - -set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") -set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") - -install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" - COMPONENT Runtime) - -install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) - -foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) - install(FILES "${bundled_library}" - DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endforeach(bundled_library) - -# Fully re-copy the assets directory on each build to avoid having stale files -# from a previous install. -set(FLUTTER_ASSET_DIR_NAME "flutter_assets") -install(CODE " - file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") - " COMPONENT Runtime) -install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" - DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) - -# Install the AOT library on non-Debug builds only. -if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") - install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" - COMPONENT Runtime) -endif() diff --git a/examples/flutter/example/linux/flutter/CMakeLists.txt b/examples/flutter/example/linux/flutter/CMakeLists.txt deleted file mode 100644 index d5bd0164..00000000 --- a/examples/flutter/example/linux/flutter/CMakeLists.txt +++ /dev/null @@ -1,88 +0,0 @@ -# This file controls Flutter-level build steps. It should not be edited. -cmake_minimum_required(VERSION 3.10) - -set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") - -# Configuration provided via flutter tool. -include(${EPHEMERAL_DIR}/generated_config.cmake) - -# TODO: Move the rest of this into files in ephemeral. See -# https://github.com/flutter/flutter/issues/57146. - -# Serves the same purpose as list(TRANSFORM ... PREPEND ...), -# which isn't available in 3.10. -function(list_prepend LIST_NAME PREFIX) - set(NEW_LIST "") - foreach(element ${${LIST_NAME}}) - list(APPEND NEW_LIST "${PREFIX}${element}") - endforeach(element) - set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) -endfunction() - -# === Flutter Library === -# System-level dependencies. -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) -pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) -pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) - -set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") - -# Published to parent scope for install step. -set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) -set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) -set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) -set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) - -list(APPEND FLUTTER_LIBRARY_HEADERS - "fl_basic_message_channel.h" - "fl_binary_codec.h" - "fl_binary_messenger.h" - "fl_dart_project.h" - "fl_engine.h" - "fl_json_message_codec.h" - "fl_json_method_codec.h" - "fl_message_codec.h" - "fl_method_call.h" - "fl_method_channel.h" - "fl_method_codec.h" - "fl_method_response.h" - "fl_plugin_registrar.h" - "fl_plugin_registry.h" - "fl_standard_message_codec.h" - "fl_standard_method_codec.h" - "fl_string_codec.h" - "fl_value.h" - "fl_view.h" - "flutter_linux.h" -) -list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") -add_library(flutter INTERFACE) -target_include_directories(flutter INTERFACE - "${EPHEMERAL_DIR}" -) -target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") -target_link_libraries(flutter INTERFACE - PkgConfig::GTK - PkgConfig::GLIB - PkgConfig::GIO -) -add_dependencies(flutter flutter_assemble) - -# === Flutter tool backend === -# _phony_ is a non-existent file to force this command to run every time, -# since currently there's no way to get a full input/output list from the -# flutter tool. -add_custom_command( - OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} - ${CMAKE_CURRENT_BINARY_DIR}/_phony_ - COMMAND ${CMAKE_COMMAND} -E env - ${FLUTTER_TOOL_ENVIRONMENT} - "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" - ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} - VERBATIM -) -add_custom_target(flutter_assemble DEPENDS - "${FLUTTER_LIBRARY}" - ${FLUTTER_LIBRARY_HEADERS} -) diff --git a/examples/flutter/example/linux/flutter/generated_plugin_registrant.cc b/examples/flutter/example/linux/flutter/generated_plugin_registrant.cc deleted file mode 100644 index 01193c10..00000000 --- a/examples/flutter/example/linux/flutter/generated_plugin_registrant.cc +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#include "generated_plugin_registrant.h" - -#include - -void fl_register_plugins(FlPluginRegistry* registry) { - g_autoptr(FlPluginRegistrar) thermion_flutter_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "ThermionFlutterPlugin"); - thermion_flutter_plugin_register_with_registrar(thermion_flutter_registrar); -} diff --git a/examples/flutter/example/linux/flutter/generated_plugin_registrant.h b/examples/flutter/example/linux/flutter/generated_plugin_registrant.h deleted file mode 100644 index e0f0a47b..00000000 --- a/examples/flutter/example/linux/flutter/generated_plugin_registrant.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// Generated file. Do not edit. -// - -// clang-format off - -#ifndef GENERATED_PLUGIN_REGISTRANT_ -#define GENERATED_PLUGIN_REGISTRANT_ - -#include - -// Registers Flutter plugins. -void fl_register_plugins(FlPluginRegistry* registry); - -#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/examples/flutter/example/linux/flutter/generated_plugins.cmake b/examples/flutter/example/linux/flutter/generated_plugins.cmake deleted file mode 100644 index 274b5f60..00000000 --- a/examples/flutter/example/linux/flutter/generated_plugins.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Generated file, do not edit. -# - -list(APPEND FLUTTER_PLUGIN_LIST - thermion_flutter -) - -list(APPEND FLUTTER_FFI_PLUGIN_LIST -) - -set(PLUGIN_BUNDLED_LIBRARIES) - -foreach(plugin ${FLUTTER_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) - target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) - list(APPEND PLUGIN_BUNDLED_LIBRARIES $) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) -endforeach(plugin) - -foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) - add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) - list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) -endforeach(ffi_plugin) diff --git a/examples/flutter/example/linux/main.cc b/examples/flutter/example/linux/main.cc deleted file mode 100644 index e7c5c543..00000000 --- a/examples/flutter/example/linux/main.cc +++ /dev/null @@ -1,6 +0,0 @@ -#include "my_application.h" - -int main(int argc, char** argv) { - g_autoptr(MyApplication) app = my_application_new(); - return g_application_run(G_APPLICATION(app), argc, argv); -} diff --git a/examples/flutter/example/linux/my_application.cc b/examples/flutter/example/linux/my_application.cc deleted file mode 100644 index 75722485..00000000 --- a/examples/flutter/example/linux/my_application.cc +++ /dev/null @@ -1,104 +0,0 @@ -#include "my_application.h" - -#include -#ifdef GDK_WINDOWING_X11 -#include -#endif - -#include "flutter/generated_plugin_registrant.h" - -struct _MyApplication { - GtkApplication parent_instance; - char** dart_entrypoint_arguments; -}; - -G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) - -// Implements GApplication::activate. -static void my_application_activate(GApplication* application) { - MyApplication* self = MY_APPLICATION(application); - GtkWindow* window = - GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); - - // Use a header bar when running in GNOME as this is the common style used - // by applications and is the setup most users will be using (e.g. Ubuntu - // desktop). - // If running on X and not using GNOME then just use a traditional title bar - // in case the window manager does more exotic layout, e.g. tiling. - // If running on Wayland assume the header bar will work (may need changing - // if future cases occur). - gboolean use_header_bar = TRUE; -#ifdef GDK_WINDOWING_X11 - GdkScreen* screen = gtk_window_get_screen(window); - if (GDK_IS_X11_SCREEN(screen)) { - const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); - if (g_strcmp0(wm_name, "GNOME Shell") != 0) { - use_header_bar = FALSE; - } - } -#endif - if (use_header_bar) { - GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); - gtk_widget_show(GTK_WIDGET(header_bar)); - gtk_header_bar_set_title(header_bar, "thermion_flutter_example"); - gtk_header_bar_set_show_close_button(header_bar, TRUE); - gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); - } else { - gtk_window_set_title(window, "thermion_flutter_example"); - } - - gtk_window_set_default_size(window, 1280, 720); - gtk_widget_show(GTK_WIDGET(window)); - - g_autoptr(FlDartProject) project = fl_dart_project_new(); - fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); - - FlView* view = fl_view_new(project); - gtk_widget_show(GTK_WIDGET(view)); - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); - - fl_register_plugins(FL_PLUGIN_REGISTRY(view)); - - gtk_widget_grab_focus(GTK_WIDGET(view)); -} - -// Implements GApplication::local_command_line. -static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { - MyApplication* self = MY_APPLICATION(application); - // Strip out the first argument as it is the binary name. - self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); - - g_autoptr(GError) error = nullptr; - if (!g_application_register(application, nullptr, &error)) { - g_warning("Failed to register: %s", error->message); - *exit_status = 1; - return TRUE; - } - - g_application_activate(application); - *exit_status = 0; - - return TRUE; -} - -// Implements GObject::dispose. -static void my_application_dispose(GObject* object) { - MyApplication* self = MY_APPLICATION(object); - g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); - G_OBJECT_CLASS(my_application_parent_class)->dispose(object); -} - -static void my_application_class_init(MyApplicationClass* klass) { - G_APPLICATION_CLASS(klass)->activate = my_application_activate; - G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; - G_OBJECT_CLASS(klass)->dispose = my_application_dispose; -} - -static void my_application_init(MyApplication* self) {} - -MyApplication* my_application_new() { - return MY_APPLICATION(g_object_new(my_application_get_type(), - "application-id", APPLICATION_ID, - "flags", G_APPLICATION_NON_UNIQUE, - nullptr)); -} diff --git a/examples/flutter/example/linux/my_application.h b/examples/flutter/example/linux/my_application.h deleted file mode 100644 index 72271d5e..00000000 --- a/examples/flutter/example/linux/my_application.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef FLUTTER_MY_APPLICATION_H_ -#define FLUTTER_MY_APPLICATION_H_ - -#include - -G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, - GtkApplication) - -/** - * my_application_new: - * - * Creates a new Flutter-based application. - * - * Returns: a new #MyApplication. - */ -MyApplication* my_application_new(); - -#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/examples/flutter/example/macos/.gitignore b/examples/flutter/example/macos/.gitignore deleted file mode 100644 index 746adbb6..00000000 --- a/examples/flutter/example/macos/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# Flutter-related -**/Flutter/ephemeral/ -**/Pods/ - -# Xcode-related -**/dgph -**/xcuserdata/ diff --git a/examples/flutter/example/macos/Flutter/Flutter-Debug.xcconfig b/examples/flutter/example/macos/Flutter/Flutter-Debug.xcconfig deleted file mode 100644 index 4b81f9b2..00000000 --- a/examples/flutter/example/macos/Flutter/Flutter-Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig" -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/examples/flutter/example/macos/Flutter/Flutter-Release.xcconfig b/examples/flutter/example/macos/Flutter/Flutter-Release.xcconfig deleted file mode 100644 index 5caa9d15..00000000 --- a/examples/flutter/example/macos/Flutter/Flutter-Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig" -#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/examples/flutter/example/macos/Flutter/GeneratedPluginRegistrant.swift b/examples/flutter/example/macos/Flutter/GeneratedPluginRegistrant.swift deleted file mode 100644 index 93683cf5..00000000 --- a/examples/flutter/example/macos/Flutter/GeneratedPluginRegistrant.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// Generated file. Do not edit. -// - -import FlutterMacOS -import Foundation - -import path_provider_foundation -import thermion_flutter - -func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { - PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) - SwiftThermionFlutterPlugin.register(with: registry.registrar(forPlugin: "SwiftThermionFlutterPlugin")) -} diff --git a/examples/flutter/example/macos/Podfile b/examples/flutter/example/macos/Podfile deleted file mode 100644 index 90de47d4..00000000 --- a/examples/flutter/example/macos/Podfile +++ /dev/null @@ -1,43 +0,0 @@ -platform :osx, '13.0' - -# CocoaPods analytics sends network stats synchronously affecting flutter build latency. -ENV['COCOAPODS_DISABLE_STATS'] = 'true' - -project 'Runner', { - 'Debug' => :debug, - 'Profile' => :release, - 'Release' => :release, -} - -def flutter_root - generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__) - unless File.exist?(generated_xcode_build_settings_path) - raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first" - end - - File.foreach(generated_xcode_build_settings_path) do |line| - matches = line.match(/FLUTTER_ROOT\=(.*)/) - return matches[1].strip if matches - end - raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\"" -end - -require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - -flutter_macos_podfile_setup - -target 'Runner' do - use_frameworks! - use_modular_headers! - - flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__)) - target 'RunnerTests' do - inherit! :search_paths - end -end - -post_install do |installer| - installer.pods_project.targets.each do |target| - flutter_additional_macos_build_settings(target) - end -end diff --git a/examples/flutter/example/macos/Runner.xcodeproj/project.pbxproj b/examples/flutter/example/macos/Runner.xcodeproj/project.pbxproj deleted file mode 100644 index 6eba66ee..00000000 --- a/examples/flutter/example/macos/Runner.xcodeproj/project.pbxproj +++ /dev/null @@ -1,803 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 54; - objects = { - -/* Begin PBXAggregateTarget section */ - 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; - buildPhases = ( - 33CC111E2044C6BF0003C045 /* ShellScript */, - ); - dependencies = ( - ); - name = "Flutter Assemble"; - productName = FLX; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; - 73983334E7E3D03A0E12661E /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D8E0CF9C3C7800C07C9845FC /* Pods_RunnerTests.framework */; }; - C522DC3C60A9E9D8A157D709 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A43AAD1E638EA0D1719DBA3 /* Pods_Runner.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33CC10EC2044A3C60003C045; - remoteInfo = Runner; - }; - 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 33CC10E52044A3C60003C045 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 33CC111A2044C6BA0003C045; - remoteInfo = FLX; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 33CC110E2044A8840003C045 /* Bundle Framework */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Bundle Framework"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 07D325EB165BDBD20CA1B50D /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; }; - 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; - 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; - 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; - 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; - 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; - 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; - 5A43AAD1E638EA0D1719DBA3 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 750CFF70D61D26C0BECD5590 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; }; - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - 8A325254C21887E4CBDE8294 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; - 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; - C29827A08E11D88646BFBE93 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; - D8E0CF9C3C7800C07C9845FC /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - DEA954DCA916B6FC51B8D22B /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; }; - F0328BD31CA3A8DD85456972 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 331C80D2294CF70F00263BE5 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 73983334E7E3D03A0E12661E /* Pods_RunnerTests.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10EA2044A3C60003C045 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C522DC3C60A9E9D8A157D709 /* Pods_Runner.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 331C80D6294CF71000263BE5 /* RunnerTests */ = { - isa = PBXGroup; - children = ( - 331C80D7294CF71000263BE5 /* RunnerTests.swift */, - ); - path = RunnerTests; - sourceTree = ""; - }; - 33BA886A226E78AF003329D5 /* Configs */ = { - isa = PBXGroup; - children = ( - 33E5194F232828860026EE4D /* AppInfo.xcconfig */, - 9740EEB21CF90195004384FC /* Debug.xcconfig */, - 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, - 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, - ); - path = Configs; - sourceTree = ""; - }; - 33CC10E42044A3C60003C045 = { - isa = PBXGroup; - children = ( - 33FAB671232836740065AC1E /* Runner */, - 33CEB47122A05771004F2AC0 /* Flutter */, - 331C80D6294CF71000263BE5 /* RunnerTests */, - 33CC10EE2044A3C60003C045 /* Products */, - D73912EC22F37F3D000D13A0 /* Frameworks */, - A1BEA79574E5550EED38B897 /* Pods */, - ); - sourceTree = ""; - }; - 33CC10EE2044A3C60003C045 /* Products */ = { - isa = PBXGroup; - children = ( - 33CC10ED2044A3C60003C045 /* example.app */, - 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 33CC11242044D66E0003C045 /* Resources */ = { - isa = PBXGroup; - children = ( - 33CC10F22044A3C60003C045 /* Assets.xcassets */, - 33CC10F42044A3C60003C045 /* MainMenu.xib */, - 33CC10F72044A3C60003C045 /* Info.plist */, - ); - name = Resources; - path = ..; - sourceTree = ""; - }; - 33CEB47122A05771004F2AC0 /* Flutter */ = { - isa = PBXGroup; - children = ( - 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, - 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, - 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, - 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, - ); - path = Flutter; - sourceTree = ""; - }; - 33FAB671232836740065AC1E /* Runner */ = { - isa = PBXGroup; - children = ( - 33CC10F02044A3C60003C045 /* AppDelegate.swift */, - 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, - 33E51913231747F40026EE4D /* DebugProfile.entitlements */, - 33E51914231749380026EE4D /* Release.entitlements */, - 33CC11242044D66E0003C045 /* Resources */, - 33BA886A226E78AF003329D5 /* Configs */, - ); - path = Runner; - sourceTree = ""; - }; - A1BEA79574E5550EED38B897 /* Pods */ = { - isa = PBXGroup; - children = ( - C29827A08E11D88646BFBE93 /* Pods-Runner.debug.xcconfig */, - F0328BD31CA3A8DD85456972 /* Pods-Runner.release.xcconfig */, - 8A325254C21887E4CBDE8294 /* Pods-Runner.profile.xcconfig */, - DEA954DCA916B6FC51B8D22B /* Pods-RunnerTests.debug.xcconfig */, - 750CFF70D61D26C0BECD5590 /* Pods-RunnerTests.release.xcconfig */, - 07D325EB165BDBD20CA1B50D /* Pods-RunnerTests.profile.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; - D73912EC22F37F3D000D13A0 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 5A43AAD1E638EA0D1719DBA3 /* Pods_Runner.framework */, - D8E0CF9C3C7800C07C9845FC /* Pods_RunnerTests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 331C80D4294CF70F00263BE5 /* RunnerTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; - buildPhases = ( - 210FEE2628F42B7BDFED20C4 /* [CP] Check Pods Manifest.lock */, - 331C80D1294CF70F00263BE5 /* Sources */, - 331C80D2294CF70F00263BE5 /* Frameworks */, - 331C80D3294CF70F00263BE5 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 331C80DA294CF71000263BE5 /* PBXTargetDependency */, - ); - name = RunnerTests; - productName = RunnerTests; - productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 33CC10EC2044A3C60003C045 /* Runner */ = { - isa = PBXNativeTarget; - buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; - buildPhases = ( - B67C6085C13299F59758F7CC /* [CP] Check Pods Manifest.lock */, - 33CC10E92044A3C60003C045 /* Sources */, - 33CC10EA2044A3C60003C045 /* Frameworks */, - 33CC10EB2044A3C60003C045 /* Resources */, - 33CC110E2044A8840003C045 /* Bundle Framework */, - 3399D490228B24CF009A79C7 /* ShellScript */, - D8E4D2DE64C21B53086793F8 /* [CP] Embed Pods Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 33CC11202044C79F0003C045 /* PBXTargetDependency */, - ); - name = Runner; - productName = Runner; - productReference = 33CC10ED2044A3C60003C045 /* example.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 33CC10E52044A3C60003C045 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1510; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 331C80D4294CF70F00263BE5 = { - CreatedOnToolsVersion = 14.0; - TestTargetID = 33CC10EC2044A3C60003C045; - }; - 33CC10EC2044A3C60003C045 = { - CreatedOnToolsVersion = 9.2; - LastSwiftMigration = 1100; - ProvisioningStyle = Automatic; - SystemCapabilities = { - com.apple.Sandbox = { - enabled = 1; - }; - }; - }; - 33CC111A2044C6BA0003C045 = { - CreatedOnToolsVersion = 9.2; - ProvisioningStyle = Manual; - }; - }; - }; - buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 33CC10E42044A3C60003C045; - productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 33CC10EC2044A3C60003C045 /* Runner */, - 331C80D4294CF70F00263BE5 /* RunnerTests */, - 33CC111A2044C6BA0003C045 /* Flutter Assemble */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 331C80D3294CF70F00263BE5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10EB2044A3C60003C045 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, - 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 210FEE2628F42B7BDFED20C4 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - 3399D490228B24CF009A79C7 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - alwaysOutOfDate = 1; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; - }; - 33CC111E2044C6BF0003C045 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - Flutter/ephemeral/FlutterInputs.xcfilelist, - ); - inputPaths = ( - Flutter/ephemeral/tripwire, - ); - outputFileListPaths = ( - Flutter/ephemeral/FlutterOutputs.xcfilelist, - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; - }; - B67C6085C13299F59758F7CC /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - D8E4D2DE64C21B53086793F8 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 331C80D1294CF70F00263BE5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 33CC10E92044A3C60003C045 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, - 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, - 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33CC10EC2044A3C60003C045 /* Runner */; - targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; - }; - 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; - targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 33CC10F52044A3C60003C045 /* Base */, - ); - name = MainMenu.xib; - path = Runner; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 331C80DB294CF71000263BE5 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DEA954DCA916B6FC51B8D22B /* Pods-RunnerTests.debug.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example"; - }; - name = Debug; - }; - 331C80DC294CF71000263BE5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 750CFF70D61D26C0BECD5590 /* Pods-RunnerTests.release.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example"; - }; - name = Release; - }; - 331C80DD294CF71000263BE5 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 07D325EB165BDBD20CA1B50D /* Pods-RunnerTests.profile.xcconfig */; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example.RunnerTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/example.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/example"; - }; - name = Profile; - }; - 338D0CE9231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Profile; - }; - 338D0CEA231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 13.0; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Profile; - }; - 338D0CEB231458BD00FA5F75 /* Profile */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Profile; - }; - 33CC10F92044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 33CC10FA2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CODE_SIGN_IDENTITY = "-"; - COPY_PHASE_STRIP = NO; - DEAD_CODE_STRIPPING = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_USER_SCRIPT_SANDBOXING = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Release; - }; - 33CC10FC2044A3C60003C045 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 13.0; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 33CC10FD2044A3C60003C045 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/../Frameworks", - ); - MACOSX_DEPLOYMENT_TARGET = 13.0; - PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; - 33CC111C2044C6BA0003C045 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Manual; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 33CC111D2044C6BA0003C045 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 331C80DB294CF71000263BE5 /* Debug */, - 331C80DC294CF71000263BE5 /* Release */, - 331C80DD294CF71000263BE5 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10F92044A3C60003C045 /* Debug */, - 33CC10FA2044A3C60003C045 /* Release */, - 338D0CE9231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC10FC2044A3C60003C045 /* Debug */, - 33CC10FD2044A3C60003C045 /* Release */, - 338D0CEA231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 33CC111C2044C6BA0003C045 /* Debug */, - 33CC111D2044C6BA0003C045 /* Release */, - 338D0CEB231458BD00FA5F75 /* Profile */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 33CC10E52044A3C60003C045 /* Project object */; -} diff --git a/examples/flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/examples/flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme deleted file mode 100644 index 15368ecc..00000000 --- a/examples/flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/examples/flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 21a3cc14..00000000 --- a/examples/flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/examples/flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/examples/flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/examples/flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/examples/flutter/example/macos/Runner/AppDelegate.swift b/examples/flutter/example/macos/Runner/AppDelegate.swift deleted file mode 100644 index 8e02df28..00000000 --- a/examples/flutter/example/macos/Runner/AppDelegate.swift +++ /dev/null @@ -1,9 +0,0 @@ -import Cocoa -import FlutterMacOS - -@main -class AppDelegate: FlutterAppDelegate { - override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { - return true - } -} diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index a2ec33f1..00000000 --- a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "images" : [ - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_16.png", - "scale" : "1x" - }, - { - "size" : "16x16", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "2x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_32.png", - "scale" : "1x" - }, - { - "size" : "32x32", - "idiom" : "mac", - "filename" : "app_icon_64.png", - "scale" : "2x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_128.png", - "scale" : "1x" - }, - { - "size" : "128x128", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "2x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_256.png", - "scale" : "1x" - }, - { - "size" : "256x256", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "2x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_512.png", - "scale" : "1x" - }, - { - "size" : "512x512", - "idiom" : "mac", - "filename" : "app_icon_1024.png", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png deleted file mode 100644 index 82b6f9d9a33e198f5747104729e1fcef999772a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102994 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ⅅ8MglG&ER{i5lN315cO?EdHNLrg? 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 z zKpxF`G*X(YOz2^@7i#D+s-~A1E;3&x%%qL5hkiy^JhYjJ74{hvVmAx*6BH`M`!qGC zO9pjEsR)A-n1`6KLACSL%FS_Kcm+?4*z-V?WAZPs?RkzoijIr~I+oh1^~T`q^dCFvG$Gbd8AnTYBjLKYUmayaQz#S1le7Q^Hyr#;X&h*1wDpm+gZC!rSKom zq|+o&UGpeXtlQ1;?@JukKG!8PGS1Io0z6O}ZeL&DsON^I0K+>Mxv#ohK+;ByAZ`Eb z2orY{j0Pa3edA(#-pJA0AaJ6h& z81Gl(pd#j~mrizktoid14K5ig7u8FvZmLLP%l@dl05IprCyqDB?mA2fc*6UB+49lb zZ8`V9epdo=OeZoiY%zw-w`8DNwTORV_>>3T{r)1-YsGSo0E2s>tix9OBqKFBjg#}G z`pgkCblKMYs!Z)r^(qT_c+}gLhR|gnq!1~Qr|~kt&2@_yswx{i$KEn`8J1W8BGljl zr@GEG#W(s#AKKyuqLp+cl1C}7%`m#-!$15XF{M(M*-fD%+i#mFbP35jlgN3{8#A-dmj&OQtG)!031jTwGMal=&YtPfq2AUWekP9J-JT(p099!L`+yen$ zVH1?kRrhV7(mGKkm_jPP_U@Xd;x=ppk}4WY0Rbr> z0MJM_;$GGxL*P68y%KBqHntF{>X&<{aeI4m6+{TQ%~Zp}v%Pujr)zg5mV;cFKqeA- zQm5`#Sd{B6Rc*4PS-rO(vf>YEdXmOK?>K@`L5}|9q}#t_IE%g+U<-1qw3mr5&v;2A zCQ}BEn9_u;;>n5N#dP0RhCF-_UplC+U(i~Zjh>U5+b8%@p3HK(R*IMQwE!uritb}< zF)AK2?+0@-aE3LYkg`B*&N&m~JWB9>(Z>`aqRwgioU)0w{U1K4?>-#i|ZfhNa9hV)2)(%ch zJMH1twoeZWwkE@I!dz$ma+;9GeACv>Ncupl@+gBSeU_uzfj!$+h&@EACkZG_vwLGA z(?^;rcJu1$5H~xI@6lHIYC-$+b&hF1p`AoAOKqw{t0Fu#X`OGt$)7Q!nmJ=&)xjq@ zHoxT4pcYKSPT5(4yzIuQ^S*N2NJpR4v0?rB-^JuaXNLis?E(l>Jo8mUw(gsFLLOy? zEszHWGaCn|lw$LSwoj{G7Uq(zK0W^VVWu#ms8BMRlF2z%-g`fOXmndgC(na8fc)s` zz$GAoxP+l|+T_S4$r1sLwkV77ew1Gug*`|HiE*?FGLm1q; z^p0A0eqqbmk3?|!CB9DBN1Zof6d7+ zJSn!`VD~tVaqy<*Mw^8dM5v3Bvj2VdVFb=)U3L2eDM3@>n(P z?Rr_=I17+r4fE{>1LBQG0&o97nef67n-aNnVP<{dd6*B!Q344 zZbsAof&jw+;CLeK2d87t9s~YZ5?6Qwf&{NPEBN+)LbjOcZRXNcR&h)x`TtdpI+b!>$E~h0o1L*2OddpR9!Gw~-E^Cj(7i69S<66ak$)AYMv|xG+;uR(`;h zGIV3}?+Qxdjz)s;s}jHY{JPmeo@-tN$H@hxaV@)}K?y~ts~E6H(F|SlsN5oH8g7*h zGiC!8c1doE3U|D}Vul1yPmXuCk*hmyU4MG2ml#V0+(G5I+`L_=3cD$%$I=@*8m-LU-!fn&-sZO1%ls63+w}AiAK`Jv z>`q~ztr&&(gCkFpci+*1Ekdv*MhBCzGfPBj9dM|YEjZk(tWBuz4?MGeq+*)t>Q=z6UXF_w z{QDUT4^JQ8J%hW;d2xGB>Fl4Y-bRT!ttP2GE5jYoI1e(eVK0&V5W+>zludt=nf|UN zi1IV;MK$Fy%$yw<oGeW?JIGjmfGLH$Y;l|T0p1V!N*Jvu zHSAG0WpwPip0vm7%VRq8$2O2>P5b!WBfTz*6dZ4Wd6O9Y(8A;nOuG((y?F`ac_u2( z#~17CoTK)1G<~~Z4jXlout{e&nZbDHyHf(=a?OtaJ(2Q(!g#)Ugw-QQ?A?mN#yN%T zBtJ`sA6Lpg`k>Pi8a7GssiY$eG0Be8LCoQL{GDqi-;j0pLmT!Z)szldvbN7GVcu*S zzb1rEq|M)1qa7rM*I8!<#w7FnQ?{v^? z0`MlS3+`#ZB5$DT4+`7e-Hlp_2G0`*F@STbRJ|!tk3cC~1T%NR-p4s=sTT+RqsMjF zyrp-Jv?CD4Y3N&Zb1gr=%`MFR8;|r)uxQ6*X{OpEhQ~+tu}^n8Wijiy`pSMw0uKNi zSNX^Z1y;WirM0o_x%zft0U2GcLm_2BS`b{Z>g|9VOVr%QF*R?pTpiJsEbj4jLVAyd zTA;x15=f~b0^(e*Vo;Tn;WTJSxpI9LmL($Lxob<^S!k7mGhnnVNnAC*g!$ms0#Q|q zs=25I0<>fUw_&+KU`}5P9wlmjRWdMYh%Np6n?AAHQ;JzG?s(Z9UR`pNh79Nzk~DF+ zX~jy>>f-2bl?drlM8 z3NfIQnrT@pLmv+QA6efWPv!sqe;mh3_RcOj5>Ya;4hhN13dtx*_TJ-=kX_kZQDkPz zIw}#e_dK%au@1*L&iUP^cfH?zf1iK)tHv=t|>-9mMT!;;Vg|svSzWkN7q#t$c4N$Q;tl3EYwef_4q>GO<#I89VhY;`X*hz$n*GZ%f+;uViG z?uLlxD1OIeid}0r9%Ssoc7@vJjZIsZlU9zvYpjhYiOrzD5sq3OC zpf-X;Nb!DLpxqX^zDIK%=46-Z3%i-bac`RIBS5*wcw5Pu>G|kF>TQP$dGRYh#1hwD z{|cbbTOKL>Gb1-;X6?vWLC+KJ_^Ij?KzJ7eZ?^8XNgoYU9^z&>d zsIjX*uOK`#Wu!`>L@y!=XpQcW+mBaRjm|XrB@etLdr}Ob57e7EkE;7a*t7=M#XFL6 za;KHHk-rBNTjp-gS^;ehKNv>K>+_jPQ45J%4><1HyKJ?;T9#~k_23?xD}B&@Wp{%H z($hU+nWR?g!9dsJkgVz(J_Yrdns+m~9V_gQ7Sb`&F4wZZ!k}##j$>O{4{?avCbCZfyW zO$)m7LE=P?$CXHDU_RUD+sYwT;nKI7 zSs_XTv!BuxpJ!7(b~uYfsgzt~mj5(vf2r~`LHwpePs!o2A3zEr@#sxo8HEe8>V||d zBiz0@e&6}p*}!6jsm}I0bN9Mc2(c#jg@;Nu6!Kv&4&P8-UcQ-00WJIO%4OuUn;^jU z;I3r=T3KQtiMQ7&x32eVtB`mCe)9ws^7u%2P`B%Xc}=Qc&O^{FmS^{~Rho}^s`B+H z=1_T);9LRK?{$Vx22!5m)Er8aoPOA8&{7fyt`t@~Vw%gtx~+g3qs8LFR%(2Uny28A6dFYnNQgcUa>Sq=%alFh&8#@1o_qgwve* zVFimnUtL{4aHP6s?FB%bu2SP=e*VGqXC8iuZ-JOc{5%Lx0g|VvyWkdh&FD^Gkc!0N zhoolXvp6GC8wj?Y+V;r*EN+<1ac`-+!8Mqb@Nz)=OqV?4gxhR^t7*+^+AfxxVt(n{ z+fkk|-xSGqmkZa@Q%`;;r`-Z|? z0fR6b@l%pTwK*@xY+(MwBUwf^z+F*~piC64BWTrz}-HS1-XF-IA%?Zs_#F8 zcmUuEZ6Of>YIJOe$&{V;3vIBw7|jSGPeS6cvTMdj96Y~pI-z7InGW;(DhFqaiTTO9@KWvQi9__j0btLZ9 zAa~-Po%^sDFfme4@Yiq}r`BgnYK2eTwCjg9_zC4V{{&_GTm-!qHGVR6JXDjw;}GzF z6lXA{xo1+tQM{9vwb1&sRXPdGDHbEMbnwh}t+%tvcw5p4J4r#hEpDl=A{;Mjc%0)T zsG}v<$^HhdcE)5IJ^iBWK{7?Zn)vb%c!5eIj4 zbT}CGO*u)Od@^LuIC@_2{=AP2-O99NglFudj{!T}0e8wtTQcB@F9QW6$J!0Ye`T+U zXDx84b$!hD#4YzSyZLy~!IIZuFa3%eU zG4eg5?}sZ6Yj29P^-PcXG*8%VzLL$0!oL?c(!oQ+G!kORsa+lsf5YER>PX83R4LgF zgPNQJ#Bo#)MXU%J9k?RWD;c>|as5b5p>xAwau=X5XbERX`_ZHB8_XSNDe`s?n(e>) zGF$G%n6o+W{6A-@4hsIK0*J%jpB#Y*G^B48eQD(CDZR5oBl-P=)r7fH^PLf?!aK6V zwkIM35?l*I6p@;^H}JIDNs-fF*IFN?k?kj(M)QKM%%?dSkf1d$Nly2z(>)oq8z}0H zH?Qa{x&36#W@y04!9zx@x7un@ob$&)V8#f~0n1|jF0kFs4aZ{ND1~QjWHToIY5)LY zrgKDCj@dFCx&-w$QMi=CqD*=`$NqC~2k366pPXl#>Y7A=iQD}f`)+B-pS@LIW_M?9 zlBS_)(vGz!L$#P`?<3Hvonw@B1uJ244y)M?0)z0-hq++sJ0GZ+{oiiH;lFi&wy(C! z0Bv9z^M;`4@)USP)7dhg@K5K&U&|7&-@I0Sk>I+ZH75_xEn>qh9qmc%aA@NEKBsVBgUuK zC=b{w-0oU|)~tAVI zyJ3BAB}%rsjz7qZ?x_XCWe6!_u-{e_3u68Asso0IvwKdxq1lN#%4w>J zi>}P;$JZ>58(ZAjsmSJl6BWUTe`0eGEf3f_yS#H6vx;UJWO7CCK!{)4C}`C$j5gNj|k znb$4QRurEE3tPEe!JzG-a0DmvXePO zSD#Q-qOAjTMm|=aBSnvwHoEbgyVIz@J$hT*legak-hhb}e#%cm2$nR2 zV9A{kc)WT$np=5coPQIskbGMO@Fn2NxPv$@SJZdG6}jV;+%(cH+*RFQ(+DjsJlman zy`D(yN?8MCtjWD3w}Q|jQccb$}BDW%M$zZZnri2+5ls)@@(wQD`jt_GpTKL_^CO&SSCcHbfMX#JXYFI^*947 zPh&S-G=l*C@`E5CU1$m7ao(Q&oSmY7)ZZ#5_fEyYzLsFJwJ%GfErFeRN@7lUbUrL| z$6;gQSNsI91LJvT+$Zb0>g<4g8T{B!U05lfKmoSRH^pB^^8sJ3{8PzVq0NeypMF5k zU3qOqksdq{>AUjm3O~dZx^vS6C$ldgCWszl?xd8-sJ;-kPnISB*-f=L*8XggOx$?u zg%B-QovSjBbj}%sShZv~r?`*6PiiQW;nee<-=+y4}S#}q_BgXIJoSOf$YbE7vXt4;Np zrKzZf6Ny0aES8(-cqmnIGMg&ieYWryBZ0VTB=4<*@auP4NdIk&q(Mt(OLPm|Yl za!0OpC9sA#tk>OsaCSx0;!$5r6naw ztzLBo>#LKaxxsO=yWe%yGilL`A|6E#TK! z+1VRQlo*D?(k0-mlRM+`OMT8kVB*-%ZGv}Aj1u^j!wu*~>L<-T+u?6sX!3C}lQte- zk(6_=iwXsQ0JbRvJDwMnk!c99w~s~uD_4vMB=m~-ft-*|z~$*g4g;pgG~Ap1m@@Fx zWS)8IKSN6`^vVQ8hv^Oc+O(Rt7!U%wVsGP+Y6fyS%GG+v+dIdVfCXPzAV~~li+3m5 ztFQmbE)(#2#Oi@k$1#zUS6ijD_yYsa{+BHZAw+^zAEI3bc(h0qm?|pNf?oS}Km#OG zrOfCKn_-CVO;}DXu|5YE#d8I2o>}vUxYlv&>=+I28WY>a1;uI)HUM_IvpF;Ln4ROT zf!=1rpKihNFUo=R@sD-pT!EOm%%ncl43f;aem^;|A#s3`b6vjeAzO!M-gwc`-Kj~{ zBX)tq64*kJl#TrgW4o%hTY3x$P01nD6a6s2#MmwM$vyX5PU|YngU*wXGK*?f?#Eg$~^OWW3I@of-=XVuu-b%A1Z|nqY_2 z;~jD&=QnB#WGU>;RwFq(I< z34K1fCMwf9F}G%k(&?~2EY&)W*-_z0ReS$;7+I1)zz`)M zpAF{5ZHLPMJhYU z;GE*@hM1NM{G{L94dL$!Y-h6A9K9W=I6AYb`Y=v{(tpyLQz^^Aibea(q()R*TU|-m zozpyr!|-BZ_Dn+$*2|vq2Y@ghHo!-`WjVtU-bab(SJp2*2i-}$UP9^qnF_OIFS~-< zYj^VS!)Wu}vn6!LDIt!HJ1SU-@ce>z8f4cT4R9V@O^Xg9)4`VpjsXm*~@%l^Ux;Rf#Zck`BNXu0Y(!C zj%Z}UAmD00nsOS%Uull)dU(fZgJ$bo>3Oa`8h~Wt)EM?v(ndlTS1p0|E9Pg>=&>58 zghD~%R;YpqZAw;F;M(lx5b_wkVbnd+ER+6A-SYj^1XUgNGn0I~ES|f|5emjyPIW)S z0z8i6)BZt&h(qQxih4HbFYa6~jyeKbc_`QEdLD@9SBGButjw|b^l*oQjDk<7Nig08IK zb`ATVGzK%LP+>9aFM0hr8t+m`uNr?h&8o3Rp$T&ql||K}7GgobFhCViaDH~+F#yC- zt>7T3&_PZ*feTKTyd6vlF~JmEA1f+*>CCE4ex}5N^$4o)YuxX&3T$P0(IS!+kan^J z_p>v#1J8bWELml|S02YAQe-&yVew+kipZr~H-I@yc$=8#rZ-8L<_nDx&Qv3dJDwUX z!)@=h1`~R2M{$J8bM^1O&Gy2oxe1T;K?NA{iv_eYuhpLyc3%xu%z`dVc}Z}%cHGHQ<7P!Q|e?dwnSpL!AUf!B^!?#^Q#W!Ry+7ofwPZ1mZq z(Id0{htmX1W?2cAYWZo_lOtT#+Us-nlP$=CGK|Ri4x0Xh>(|iN9y1 z=9y26A4Y}ViRi9Fxzm{>J`YM>GX1D|$4BY9xJrY{oY2~Z&};B{Zq9Pp!pox`8e#0C z-h~@fohA74(#ws!{7kIe4v6XUX<)9bd)g66Bz%^Y4p0~OF+rY;l$v&7T<3~4y!bv> zR$r#LblZcVgy2lq!ff+>yuR4qCcljQa03x|dTcG7`CHcxh#POtGKt6ymNd_0qF7Wf zBj_KC8{jl!zZ>0neDp19n3sD?HC=|WM3!}cK4zCnu6Uoj*hbV1<#F2BD)@A~y%@VXx+u}Hcn=_s-({PxzmMZ^xJ1SV zoZMY*FarYvO_@z8Lr2ep)%HgIL7rhYa~#X&&V8oYSw zA4m{3{hw1Vb~~26K^xro&e7i9eg^SqK0i}kG3z(!_~E?sjJlSWIWXJqKiHAWTG*SpPcCMD`kEc1gx`R^YkYWz zEN4vEIkj@&e4tC!(_~x`-K$w6CU%X7U2Y z)Y}T5stEyoSsB{H{+xfST3tov~6@lO}2gx#N(rHXiOAHT!dp6FiV8V)B4{L_P_% zmX0rPa^-{1xG6|#uEGo+!v)QAOjRe|jg2ICcXU!|Cr+LMbLHlhJ)ErR*P9*z$NLlt zmYjAUbljq004ZyOco?HJovV7M*Wb2nF8vT2D;3kGi%F)6Kr#TVW>}zTHnUQxoGmD0CY9J`|d%8@}n;_co2q zWr98`R_c@PQbMi}x3bWo4XZj{it6qYj+o*XvNoS4>rF;7WNn;vA*|A!3H}Wh-uk@n z*hV0S+XnX;K;BOoz?&*9_{NnM25s4^^QUt|>R!()^Z6#G3OmL{CU^-IG_M7_a~B+& zCrV;ouC1ljbK(K=ygqAE_-}ewnH2&&t0enS7}I4i0wJgNvCf|P$`|DHku`K`HfDa2=n@DCg8MRi_)vpMR2Mxy4PE2Qe! zD||kNXy=0WeU(43v%md9Hg9Zu#CP%d%C67gk_#pfXs8lf>M=betm(}0fdDKq0{26# z_c?J!Cgo-~*=wswLXkR|W8d+rDdV00`22Ouv=_Hod9bmB!=D$I4r@7DZX7e+0tO!9 zR{0d}A6^K#yRx@ykotO4(WUJsmFvN)d-o-wZ(wcDSUS`8jO-JSAMa4y@MK4fDP`(P zzxQ2})ofiauWKj9{Rm$Yw^?g=?`oO(Vf|T^I+-A+o1#F`>tn59d=FtgVJAV=y;G&` z0GMvtEeil5;e$Ln8-41(UeMl2kYLk%vPl?0+Egg_;g)494o5FsvdeZKP;&&fjw7o{ z|B+e%Z|)8Ts?=>@p|hr!nYXgV=ZjI4Cp#$E>+g^6r7Nd3<>-t=G%B5IyZUI{e{49G zqnIXEB=M@5Ndf1J#l5YWcLG=A4ufF8S{z5Kz-uM?Ni{{%mr);=l0=473h#cIc{K3> zZ-VUw_Ng5^HgWQhs5tQU@qv-YBej9`R$a^|lknX<*+sSVXue8M0#EPBJ6_Liwl*8l z_zoD#!l%WIXJZ$jm?|zUu0LdeP&8IW*(|39&QzKGnem$6--u{ZGtHt#Hro*h)?lu zXGKo-4Hv1WP*VLj;uA6UwGSV*6ro%PRbwR{@tXoCOb=OFTB4ru-|Id!rP5Y6LF*-D zy|t0qDSVPo$ffyoj#CIZV?l3VsPRYye$F^xxv~Z78_fwlCWbwW!nYCR2nx0_+@tg3C_UDMVa2Br=X3hfP}^Cp4Yg=#OK}K zKYVY`V9jEKD!UrCbSX6Xym2T-cg}!n;?;o{mM|zWj0P@D|FO-rQ zKt#ApEh#AX%_f%9!G6`I*K=bSnMIhQ%W5&BOMntzVr*eS;WR;FgM)+k`#+Vze*z&V zkU^I-R|!Nwy<~>eeQ~hJqa2|DdpX15kD=6U73Du;T|VarycBP^n#IZeIJ&H3S9#@oec~poZELqX$DAc>XZyuIqd^GK0Jq~0kI=d zA7gMo8%zmkEdnqMh)tkp?V0I;Tm3`>aU3^~dXw zlhdd3=iygnUgYu#GRhxln}4D?Gokczq?T;RjCk0=fUHy18$lt!-q!%sNxee7No^+N$9d?Es*``)0UJ4SC&FNY0pf z_MlbGdUy$|F}YDvJ9GTCkZbsNKj3DL5;=BGBx8xI;n)=A0d0j6MP7Mi6MQdk@Tux2Qy`oI_&*%EQ0bE?|R>P$rDhcFa8O?JIK zPOpFDa?-L*+Q7RrCg#y5z$l0d>n@+OYo3g>-Z*x&`Jj5|=*UOYaJer6;FAbdtt0O? zrFGUE?!XeUG}G8wMgeTs%+r;3uUU;Nq5EuU{h-g&UOBKhdS`;J=m!~xn*ztv_p@dD zR)tR!P=~5kX)FRsx9)uyuu?0dh%Ht7`PTM@e#Cq!z2ts;O;L)tQ1ipDiWqbGz@o_p z^D=UKR#`S7HAt4vQtD(_SeWyj_av~#tJKlb9>-s5Ykuzx_E1ZNl4)~f=zG$*;-y=T z2ozmFva9az<{2&63fQ?(Q8{IPx@t1LuFcxP-LXVctWh3AwazVTt2)w^*Zn-#eB`bD zSHoAusjOBK5(>uQPGj=ijdOH3jqG?(<5#C{*JQ?Lt~@zow=Ii4Al$Vr!#+Cf-gx)A z`_h(>b@7?*6bYM8%628gGW^rwWoG$mK_eCk`}B&llStfwHf12*{5spmTeNH$4{gCY z@Yuwr*k@%m;T<60bw9z6^WpWi@Bu^qe-g;YAzI+VjgsuZaGA=^G*I{KLy@rIjSpWb zFQNsCp2T;S$VaJtZ<(waRu8y7^X;>YhsWp zM)mKgCeE@K;J4vQSV z&-(Gl5AJCp>K*2-`U|4i;u3p8xo6(isu-38>cY zml1Eo&FBBKJpour?}q&nggpFiGM%m+YX`ng8P+uRnJiMyWcv*_AZ8KAB$w;rfmN8C z<-2EB6TqZO>A~P{*<);wYqZgxQS8E*syOXvGkGxF@s(scud0uv?T)fQ z(DGrwM7lvpitUG~6!*}kZUpBn9PuP`5^nMK@($xI^0Q~axP5qU>L~uF{R_<9&m z({}$$WuD1y-QzMVb3jLPk`~bDJNkw(Dv-6cKUb4uzD= z-w?i0NZ2K}AbT}Zi^uOZ32xmSxJw+6(3j%a!~Tdy-@RxVx6YUw2|V6JX+mSJNclfl zF~SD#eo+lnB=ZpHLl{)E+`sI^-V1Vn!6#Ml_W4aH*Pe(++sNI`M=5L3?X1z0;CJeE zJiX5Mp6JH*=R9W0t(1@>>1y=lP^F=yJil6JxU~I}EpTsBx?rJ5LbCbQ zuLBmmX1MO&!E}khx=+#hCesIB53`IWwqyFtR{AUv7vJ{Q^dn1S0@*^UOmRwctFy&> zd={(J@avBzmu$MbyamRMt_$kfHY<*v)%%&nY4hUDH=$k)$8LHlUG0G3Kv#T~-vQjw z)hXbsNIg?~b-jRw)ir5Q(gfwM+Zk+0haf z+4ER%>T8RnKAoJ-(s&tu&-iZ@A?^J|d z6md=9C4am*v2r=aa&a?~37bc($n#wQ<8UGXL+!RtrRXGSj-2INJ#+3J=}e6nOC}G8 zN~lvCS@rxoq7w$CLg-wx!%V%ymw>~xhUw4cADX*$A}D~{21F$!Y61aHwpdL!QcrsN zl~$s5kk%7HWHkZ43%mOcwlk3RcbKGQ*}K(Fxput)rpE0zH0vY(EyY=blQZ`odG#hD z)~{&r6XkSE(^csqsaMm>2c%xsT2&g_Nab1bTY%fIoNHatDY@C@Ei~v@19|F?szU6SWRS)uDXqNY!48RlAb;S*ijqus; zp;bteR835>3BXML2CewOM<^q3M*ubU`}gnI-oS&(vf=GF|JJB-inGOH_dc1xb|iqR zWgrcNy?1*8)vAlAaiBE%K3Q>5Ygy-#Wf$>FqL|Kvgb&6H?iQC*Z|PN)xZJhH#d#=a z@s9O0oea6Lg}submzNZ{iZ*_okZ$6G*h5YO!dE=7c4=YA9g$y%1xjkVl#|1DShEjM zH3(sS?uRfB3mhW5Wrm} zrY>KpBxM&CC;s5Ie_{o}upN{vdb8x<_$5iiQN49`z`+Zz`&E`yLAim;X&}$HAfKmT zkO2Dgdno95mWMH~h2c4);H=MigT8hyzl|4g;dU7F;p^X>w!fa0zf{^rf?>~ z0w{=F_R}ru{g5i@&xwC%R-!-1x|(k6pSb5_)$f`zyErIvSCs{z`iVvU4x_znFKti!!av6BkRX_=+kEc;*`_rla zB`g4ruCJGT3XVTTrlh3Yj>1>PNIy?sV%Yo*=qaBIOY87_?P04yx6TV?_{~K? zOHEo3|2EA2JAMPYZM!H<{|!s-$r>l5{19icxV`Wf-{<0I>{v&H4FZaCy$B6Ludz{v zRH!!HV#JGP?5(L!Zp#}NlOODgWqjO+yo~+LasPYxH+ht2KjdfCFQr(oovP3?vkFK^5FvPJ4^LD=DpYQi4tUXuY1;erJaBQ79 zHcp(>mKvoD+)bq5SX9siR>(%CL??*D>Snn%p}NfGO4(RY^puLI+j$Pw)NZLb5bKo{s|0L~ z-A3R~;QHMg0bHSgESOM&N&@oF4|8gkPF-nVM=sQ;d}wcS{{!iW-)yQ``D6t#xlh(O zRF0Z@O>0uMz9g)u{P))ptV5lH2(gC8I5i(FDRG5Gp1bgBydKgxJy5gBfK(#D7NzZU zatG}S^z#KL*Do5=K*F7hk(`mbdgI1XoM!8*-};#UzNtEG@Nki#`7)GfV;VlfW^)=` zBaAjK5>gx@wf_D!B!2C6xBK^K4%x|+#?P@5N7tlfWo6xWJD~Wz^cnPfFF($Ixt4!j z9%x^1$on56XZB0Irm^kw-*rd1YVO;(*LbB21@7OPJspo%WO676#~oUMws(zP#+shG+$ns0IC3W z_{kYU>N5<_6=j>*0d}r-?8U+--eXfy2M+opoYL|=I932TMp=&k#tzJ^72OtRJ8BVOvTYPh;@EE=LJLeOk`y?d|Dd9%fWlhON^LnB^6x0LyZqz@imyogJ`$C@Lr9Z4o)ZQz>NCavG$$@e2#r3 z4I=}I5KgV>wl)~_Ja7gLQGju0c1{h%cV&6c`doWWv$>q*=ZLc8J{hBiKXNK?zx2Nr zz!pph;BLU2OaZTv>Pzj(VpSp2&OWNCF<~>NgL!nezhxEgj;&2 zl>z@V#>sykFCnFL?|(j)J3SFr|FFa`n@KbhC2pZB7 z#3>qIn&~mG_Vki=p8_x&CFeD4V7MvgJlk^G7H;(apFxr+7Gc0+1KfI6$@aeF+d7DJ~_-A|H=0?Da#&^Cqb=!=fVz>giW5nw=jWQBS%L^t1EZ@ zCm9;qlG{($@0W3T&l17ownc5pWhfM8Mwn-fLtb7H|IYl)8@QikEc_Le+s60x?&B*m z5kObB5{BD}gGr7l84~vP{N)C~3V;xhBWd%=^j0&KBw3T3-HU`;hqWA3OWW~<8nl-M zfYn-BI0_?g`3$_;&Exw<(G{QM|8)Kq28x9NF-F$>r@_BO)t^T*i-U1bX01<)zC_uE zR@8qEQQ#cm$YbXIUPVO?z7KI$pw@r=-V{V@>dC9Hn==1QBVy_b;#*jR+&f*$AwCl?o&G?2Uk4=*Ej zFK^Yvw*HTO9n!XRBWe++o3)4O!OC9PC=_l_<$M(W8(Akk`zv5?nJifb^rH3N?Hhio zo$=nNmSEz_QFHj|XF!vQEcdqPyZz_4|M_GBH)k)KA9XGRlTJD;3*y1c#?ZWkeaQM* z^`Bf04#Z)ARgrE4rMmlk8E5F=NpaW8xKNd3)-orW$m+kh(W12jQbQ7oi z)=#qbmhkplt}u`FC0sV9sdnb5$E!zX_xlA{4wW&j0*DCm`=1;Sh_sB1xiH@C89Z93;8d)EUk=lPNIZ`o3H`Vd+Ig`=CV}#?PAXvzWk{x96fn z0(rYh<>?PJ>Hd8v@c8=*vm+)>P1k@i2>yMaKw2nihLV6Z;wcdc*E2{8=xNh(FkEe3 zq_pc;ISw&}`?lqKx<4vIa67!xu|P}G$c3MDyg?u^InS?uM6Zzys0QM9ChW>g-ypzA zkOUSfvhTTWq{_>TJ{+kpgwX{@>P5ptiJ1NTO5)8 z8BiLUY_!*AJ$V386^TicK@z0qOPWP#Ea5?}!$_&fQ zOcRKuR^tLX*&CM(ahYftiNg!a=uU|He)2nU2(~iX@Yo|foZp906;o=d%aK09YEW7_ z-yX*;XE#z@?zZ&fQ?2fYX!T8@-$(K5Jo+AkyOM+(944x4B%2NR&avFFJY^9_br5UtzSX5@gmYYm@ z@S$jtqFn18bXQr0IYhQ=+2~ZDB_DRW3d=*B+3q`-*1P$i!GVIG(AMp=vBQ#^_mNxp z(;4Iz#_~&9jZ}}7oW?R;_x8&h?b0N326NJq4~>W^TeI^!o4=G5G{|9ff|`NN5+?ns zL@IWva(*@PXPmVGQ#rgIOY*nnoqNDDy$hd2uMT>wBgzg>YT&BV2U{k1ah1(1j_v0` z@o;6~SUGW=!+j!oa9ko_2^G75?VolPmWk=Pb-h{k=phZga( z88Rp7QzbHkpYG!aug9e^DF63Bi|1#CeAW^CpakO9DTT!p$yhuT8Aq10^cl2O@Zl-2RXr`+zCPj#_FqXs}W2{Qvn2Y{BmNsG45? zB{BF_rVgT$u0 zE8o6|@C>uOK1Ba}!V zx!M$9J1B7#_JSs90cKlucib?T&HqQpLE9YV1?v{gh2NWKEt9FX8;3DePnCL5Z=k)Flp=?-i$<5H4zc z`?2ZZ+p~Y8FYr;m3Vn2(u5Z`Av6#S}zkpQpZ|vNP0DY^I-oa$HXzg+ajQC7%wldRN zfOAL!UwFtuphqqR41v|3He4cQF5;UU9M~lti-k<HSTs^#>-Tf|C2&~#m%6WZAy1jz!Q_-IbpZP z8ht8}UG13lz+N-7+01+RlE)6OT^3px7fn@1|_b7^{bhPet}< z_)77(<^>8-qQ2X(n4faVhm@T0@Z{5HFSWs~EDXtV@7IAMbVUP6;v8^%l3PZ#wOZ-* z*Vk4lRj6OYpAZ_$*`t|tYKmLar&&{5{d+5cst)rQTn`n8>Xi+0zXc6YbTPMgzewFg z23F=+`8=FXXF6b*CDVN$v3|6iy;TSFSYh$qrbhKDcT^U9l zj}3g#zty{k*>s8S+>t|cng#3@Rz`z}njy{*?90mV6_Mkvv=iL9pb0ttHf$7;TxkX1 z-klTGb`2~-Mxx6~+{b-KiFd3XG`p?+6-0PMorB#Q@TY_CH5)En#5WrmHqj;@Fvi1A zeGpO@wuYIPOgRY&02e-U+j7!$LZ#5mS72R3MJS^gfheL5`kQV_n{8}KXaj)V%4b~As zFrQ7yZal}~{ELX@8c#V?2LlM@)g(|;VvcBjEuTJ=`WkOem{DL!+7Lr!U;F!mGm_^~ z+V^T?%bz+8noq9{ybcq16Gzd^fS2`skac)@6|;8X8l6Q19epZ@l^3@1ES!x2XLNA4 z_FI8#x5sq7hXVr83D;_5$sU!*Ye}zyx1wMC?Q{DSgrUx#fM?_Fj@{syA2x2yL^J{S zPPLkQ#O+9E9a^H*USdriL6rGHDt$B!vu~t7^)@_e=(<|SVd!MenX48AP(Z$4WoC9_ zeN;I;hEAr{ZvB^gK*1AWfI~5H0a{Y#2UBjn9`7;3JDrI5leeufemoZol*pDlVTSHP z3#8@6kxsJwUFg9(;)>Xm!{nsFC<7}Xwv_?o=eP)$>vvvj>yw z=YS7{pIOg(u@mJ%G0G^TM@L6>l)?_{_e`(yLxmX%h*D zMJS13@e!}HFR{?GNtq;%=4#zUgfFP^$g|Ax1<`vC&qIPbwGNo}3>ZM?=Evk6r|J&S zi$UD-za)A$kcqu)8)1mG z{FI*zS4{wM6S3;RP-!$0&8!6*;>|%T%HJxZt}cmap#~4vD0Pkx22gBbPo~=2iEMFa zSN<~qRz>jf54?e)>3%j;Gc6C1_YO0C|CDQDt7+bE({$0($tizZ)xn2L?@6_ zR3$`yiwH?E%X*^k*^oQ=z!1GA|E&fXHPR=rIEGq4%0=SGvror2Y%k#d`aPmx5@~7a zdkmPa1d-<`6M%& zp9rn|?C(5SRowEcasXoE$)s`=GvJk9wPt|2VX31T2F}6x3#(&IMqZND*a1muBh9?X zX_HSLo?$y$a;qFx^U1W|YAd%)Gaf|AEHqZ*{PW96FF*&nO-@c?c6t5=K_z@2f$8<^ zY}d|9NRviy7sF$61>@bV$B3*VeDg4DX3qScxVTL~5Go^T?}aG+th- z2`EduJx~ZcSssR;yX%oW&ze|$TF?;>HGHp~Eq?$w&SAD?d#s$$|4F@l*T7}X$7>}7 zRvPwxrPaLO5X-qYiQ7{P^4Ui2GDbq&DJ3Yu`)8zfMi1{>HEq`+uR1bJ4x!#n0D6_M8Zs_# z3mc%u30aK|avL-!XI&?{^%v4OXUr4OzaL*|-HV&M5GPx)SUqYMWw@Ex;%DHx^&FOD zncjYHD@AiYbGx1O(rsKW>Eg}cid)6bqA}!r!G{?x#)c?^k+q_uv%Xh3ha^A^{%wnpRPY({1LqK{NQy>!UjUc8f7x2` zgyLiGpsKlFO75ee2#drn3Glyna)PvUP}e(t6P z(8^W6g23+fzT5gZQQ^L-Yg#^P;QK8FTZAe)*|CKS6(I>8a2aoN+XEkYf2jAF!Zi3! zjS($tF@bu(ypeC>`IZtF;jz`F6A-Y7ZUQBuZxp&q4zHb9cc*!1`T3p9xL9`nWhNVr z!2lf=fCA>;1E&E|yfmrHqB#XnUCu28b*4#eZ{lLL(42#`ui?BO&uZj|d_Fh!Bw8g$ zn@2uezsJz@^XM(T{!CEw+EyG*eaF`FuTN%C zOZg)khBpDobCl(3ud$bhr>EdmuQ^l^Cic|y2m>LM+gsZGYKUAeJE5YUX9}j^JDoojv<}Cm&t+agmp?JE0%d#fo}m_cYogpjn5&egilTvDFz-Df}1i zB4)bXfn$dqb!cCa13DdCgMNehaa&${n5Mw&bxeKfNmHq%e{T_H@WB!H3QgFK2gNpB zP<;xkez-y-Lr(0^P^G!YH~WLut`0=mPXbVN64iv6Nd`s=eUQ;?V((+QU0&B4SF3*{Pm$AVrq;v&)c>VLy_UCe45VEsI@ZWM2TaB# zRU6XaLx0^H=0)Z!$rIu`3*s{Z!W7pU@6aHvX*vUuzME+!B5H}k_gFD)3=f;nI zi1|B!@iO%p;L{!JSEI~vyUByf_{HY=;RuAK##-h!06XFwxYi?xl}oWStJ*P{OcVe~ z_v(y8!+BaLQB`(D(XrL0ReKMn$R)8mU2@$q$Pq; zbZq-$IkP4V(`m}e<)cwnZLrjiA-X0@VY~Gi5-PKX20#Eag!JOw1br%7Rr}`(v@d!u zCo@&wE1SwM=zt~$K!eJ**9GAv!}Cogn9(d0X~BwPkU4gaWh?WVRcE3N?C%_R_D)Vw z(YmJTJ_0~fhItqHPqoIFGQYE2!~?aSRa{vjcDWhy5>oT zGOMFTWfL`aLx-!QL(9r?~D6y9Uhq=af8z!rqg#p zXk%gE-;=@G>MUv7p@P#ni@zP*$YQwA0Dlc21`%pV;p!_F@xI(^eA5&SZ{rU?^Wj}! z6Y%C^eMYilc_~MAwqV`h=I0;WA)MqJ^$IvyJ-O0)*RuLYjTL1TWd|(NbhIZ;nOop( z`4bc=fsxaeI@zc!vvYFFetFRKSMjef2_#oIzzPIxZ4oB0sxKOzX4Wltz#G@LD2Qr5 zm9o~xF;EU*_!O`}IigC{sU%1^$$B@>Fa_H0*>*1Amc^7tnKxcPpr8zZTme`6(0@J| zXfBE;0)lcuv%tqq05V8P2B^)Nhq~qdR|1KCfe>(GeuFaNc)T~zvma>o)FZv;sVD@D zynx%jpd8m<{zI zz44BQcmN85TNhy2plu`Nt$b;sKELSBpW)my@*ZnL{lFaD|7-8c-;zw*wh@(1yH+~o zQd6mwOU~P(B4CS|mX=v+F44&NRvMbQpcpDmU!|BhndzGgrsa}~;RGs*v>~aLX|A9$ zxrCyC3y6ZiciVh3@BH@t1LJY%FM8{e94DY4JQ} zYS0fcOC|N!{@iq*a@H$Qe9ONriBWJrhLhC?o5K2)!=~i)0hGh-mMd~RkqdIGCB(fU zy5*IvHssJ&gxudt>g(3w2{)axskJ_#h96qTc~<{c!`n^f zg+SOfdm8=UI!4%}d%RkXd}yWU1H66h)eDTsQr!qkcZE^zbI#F$k(dn7l7z}@YSv1+ zIcEYw{HJjfg()x7R@zQ&o;LdJ2vi6Fkl?OHM-Ga!%w}co(6=I5LZ>n{9pr~6!z|S$ zq_VfE7##n|{H(t$wPI-D`~L#((@V(MZ>p6Eb8k%4{lIGT;hZ9cg%~HhcbDCd%0RbM zs?uZG1wSL{Z0f+NzDiO?w9~XT^dWptKJ@M~0(@5*az*ZgabU465JN9eFY7vD8Wdz_ zlAIonnlivB;uDXov3sIgoKx2>G6a;@?v0qg;r`RnZ{4wMw2%}(e*c8k`R7sNT@>H} zfUU~mHR~8!4rJTHVlT=v3wz2kx&95Nz?@Tj8)s5E}t{|AFA=d_Y zOTqb{ATx>U``k~NJ2hYk3r#Gn1}|1Xj}jq!9%;{k(?9!WZt1z#{OATvapC-}#$LWi zi2R>~v0v6A<|?Eg)Ye#VyRyr7RJ$N4vFEFfmb1jHF(yZN^rc!ULDen>KWu(D9Z5!P ze(qg(G2HmSqyi2B&W`vo@N=3l?+dXbWn-`1LrY1^_mSilpKLLxQp}@s?=Tqw6Do5Pui*IhPZtaT|GAE&MF$;(4s9Bt5f+vbITElRv3( ze&@3GgY%ltiz;PZXq||TeA+sP9bc(#*G<2ck&zF3W?0$Bxit`EwvZb7jke;810>h3 zb}}!oS_xUbJ^$_PWrSlJ-;v4qq!@|L9uM#ALcMu|+|fni+AqPpu+CtjBrs#Y1jKVU zEc6L$d!2l-MgMi5&7?{Dfxj)qn;mIZudn7I6V$88%05A!PtCQTGSxXKMGh;qXa|fE zJBUmhM!}@e#A?s%bajm+=Ka1WxHZWaj;k#XT{T#;bH9c5zA8txVHEz(EeE*PP9eD9 z<2|evdxmVLj_n@`lp>6@ zy_ZTczm54_lGjPwPaq$dF1HdIks&Mp;%bge$QZnnp${}#&Z3)z95ei@b9;c=kJpY- z$G#RZbgyTi3&d4=3%+gXOSp|g^~^%K1id>re4gTka;7m@WA}bFo`GUbT8-n19VVdO}IkuW(H_iil_S}@$xy(Q*fCcNaD60 zxqsWK5lESLWnKgy^ci@da#k9^aW5)oLzbFxlUVBA&UM~79PF7=rW@Ot`>9(Gju3N{A4%EK0dPuz{=J_LUv|Pe^*x3eq_ExMNjB3?{$+xH^_Y z;e5pH)*~Lo@y=;b=P$Iqp9KR|j(>D-kaI4WeI&&HPFRtbZBMiQ^PwE`pF$Z7#(@UF zP2~&InXDTNx3`4)H2mD8yHl{Jk(|C(VA2vwY}3IRqo*qy9HvN7a!$$hlZqjmb6tZy zp1fLd^be5LmcI`_d3@@A`jLDS!b0qXVvP%y>+DfL86Ie=*TZ)PL??Lk^F};4=dwv; zPRBV>*)f&NE0vtjYHw@vs9l(Dk*g-}ARSciwv!f)E361d_9y<;9b7)PBw$3dh`AZi zAY4)BVh3t>;gR=s)nZW3PT_3bOLDK)eTZT^*m%P!HdC!FvK=Z=_iA>Bg!`SsC|P3u zz+oMr^PUcTebccFK>bqp475+?5RUC{Y7klp^p=Q;ZM+c8Zq6wBtH*5c=QHlp7wZS%6AszeebN>>_2^H7uuK@g%1{vF}DT>U{h`}c+u5ubXcFMH)fZ6-l z!y=qVN>jqgj)3T!mALcM;1!8}PDcMCU6<9?l#euNff${zE=b0d%;TcPFfw`y>zjLg#_WgnwatH|t}Y&WrR32m5W_AWNa`OqIc{ zW{_mX(Ck1psRCgMhJ*hXhcAG1ocb_kuY)%9rlYzq8h$K;X}=5m+8CYpJ4Yw6zLi%S zpu}dkAc_hVv>NfWy9eLsQ-6OzoBl{WAkRi|U;anmJ5dFwz(C9~-A(!Vfw z(E!S5ua;@}(q5GrIc6|PAOSPg{il$s$UBI}tk5xuP-VedGyZd}xqXvWvU_`{;Cf0> z5fN79T(#iq-q$RLb(of0ZA0lfepj^!a2-6 zv{v^7r2J*xmj&XVgZ>Wd=RqwGGe1`-Svll~bz(-y7*N1ooU5J*aY@&5ea5ss6n(a? z`N9l?w~=^1g2wLDVRD5ovqLc^Z#YRDFR+QYV4emH*fzOpzer3>Pudh??f``be>dD3 z)xB}1O6bZpnt=j(m92Fxq0dz89n>B05xx10QDL-YDz&e>h_u@9+RG)Pv4{2IYNiMy z8auH}j+fW*;q%Ymtbq+KI_r4gxGUeYJ>hq~vbe!N3%NntH+Dyh7I70!cu(qE_`Vp; z07NvH4Q2s#9;mKj;>umoviK|H+#CbgGq`D+QxI*$r6&D`yf%-M^{H;6gi4*j3?c9c z8$}NK?0I4%b?c`p2;SvL3*xY`0fe_KIZqPm`M%{DCrPUt{bS|zlhbHBNlUe7zcK}E z$L2zIl+z#Z!thJW!}{G&JAC@Pg`H(}GLM_m;uV}C9Yt(vF+F0Dy7{`k zY&v=ZZf?8^qSD>~2iP#{qQK632aMplZye6Q3X>dctS@JHSz2)zJaqXvFEZlr>9$oY z^&9^4pN`1EJcEw_wi@P{zJqQX470?WZTB*5Y7F!3#xJO^z|Gw@)bFoY5#daTP5OgI zcbKI$Ok(|9g_%#If*$3ga=U0_n%|#}eWwyeW~(19Te+!xF*(rd=LU(nM15;<7Z&oA zrqIw#r7}&_qgCdvS7+!|3?8w7JNRtHQ$~8Yyw(xC+n=- z7SQBo3+)tbg2NJn^=lukNOCkiEsgt~4tCrZ{aSnrHRMk@_?1^whFrEn3mT1NSC9B&c-(JrWu@FUhSNf+(>-_%kX#@LYnzq`^M#XX}(*!_LZCY za24(5Y$WH^=;GY^#0c{Y4{_!GPvm_bd#&6ypUpfwu%|+=UEe^Q+oe$7cXnyF@O67L3%SKO#rdayD^4^vH2hG{w%vp|_*jKf4 z=jb?40UP4S+Mi~(Uz(^cvgVB+r+Rt|;wnFRYcz(i=&Q14Ok=V-tTPw4%v&;ZrxI#w z6&rvLjj#yzBr5~N*7o09CkIE=>EWwo`ceL*@Y=504RB*xY#SY{)p3Gvn9zBL_FCN0 zl^axu8p~su8HpiDNi{%5ojAv1{0?t7*mflF9&Y_x4#)X(jyLl~c+s6*I1G7{zBI;tH*_ z94)o##4$cU4ohj~e#C^E><)3E`d;ftdwTQZpDmp)9)n5^+h%BE?)8LI2A`L!zjTBL zPYE&+#0&jDFc&4Tg}VC}E@4ZGyWbiK2dvn6Mpu!cQT_^6!RG!7)fE>V>?PNFm?vc5 z>A8gcW=5Xm2#LEW_;XgMQ$=Y-#lc|zs2}}2ny_4Kb%D@Vrtu6rOmUe!ph7;;L`XHi zXcDHc;OYbIk44?|A9-=Ml{Xap)^{jb5$Kl?v`CIT`bDXV*x{h+UARtzOd}#US>a%X zOdU`5^_P@lkQxB*B<&RQB?FgJOH2-~rMnXf_{5%~s&OlUM^i30FeOM{`XOXs)3_BU zEAyNr%bz8RJ=Cvw8y=)3p z`K|i!j$l~LqQ)kabHK}7WeyB$x*({t#cQWf98qh&X{R*Y--9)~g)?XCL>&z;v9#hY zTFY?DV&1fPE&*z}6Ki`Y5#(-eVYB;OzZjPSDnN%ArA8D>wODpQT4Jt}ah556JE+G_! z_P0uQ!qDhR94VdpAqajIOl4~>oTaQ8H5yXaTZUOb%cRAkWYV?KSNlTqgSM=Wgf)JP zz=?Q5f5zPEVO!NbOCbqEwP^Ff_O_`gdm67#U{Mp^_bKcq2IoO%zcJb(M5z`cjv1Ck z+!awNRhwjj6CQqu+xC#{UWo^3+h?6ymzq3r?3JV}<|u_9x=MWAm`1AqAnOsJ*@)^4 zr|`FkZlg{Cd!#Chmhn=_ZQe;~-DTUOv>)Tbmh0{z_42vWa|vNUO% z_5KA1xNHBgw0zjUH|s5xg$b4k z@Koa#-AFizrr6h2#$k*41tm7_jp$yL4X*DZcklq!u+>9E0WnhcOFPn7Vh^ao@~tno z@RwY)*+8&|Hpdq)`a=L*Teuw;_B@u;o!a!YaOO@bs-?*gqpm?nRkXl~mKFfF z+OVzE%RlC`M5-+KM_GXZ@9b;=2C(sq+R&Ko_RzZ%5P~kDieK3yzV4BN*{$E%KY;4k z)s?*vacHYN~u+?SoI`e@S2!9Co!cdvz;@N@{yj`0-9^8osR(V7PR-O&gM)x3owqs5oJpIwc zgY`#VzjI$V>YYDrIr8D;0JK<10@ycefw z;;oV(!gUR*xBg%xTl-#d>u(5}#jFrLKo}q0b{IuuZhuO7n++ zo@9)d#`(AT$mbW5g;c;&z>1_2Nk%;L?TIhfeK%PYp>5N<5wdihxw4-qvVsN6t@bol zDFgi~t`B&ZU3ek!#fXVE5Ao$7AwI+@amT_m2SclwQE{cLcv3kwhokq+!S%>Fe_*(Z z75)vhq@YqZqa~Hf$0S?T@nr_%mV%*aT${~4)6|(P@Bq_Q!VC4tZa`7?ra`4?oV+wSr2`TVSUmKS_>V@3%0*S#!+L=3f@oF=4k9U9xv0p1;Fx&}V;X2J~h zcz^}G3|;s8JyEFR*LB*fPUm+?f+ofnBQ5uK%NrwA+RV_~h<6-mw_wU?NGRI!zNTh% z&>ty6x8&gW75gdW)?p->&%?{*brS|k@b|(>&<^nyO55Pi_q*eK)=J*Uunw2cw--p%E!VXuDa? ztZ$HPKJ6$Sh7!UrpxVBLFSnpZOw$(ftvg!Nk1LVfL+FL(u zh1Abu(oCSmgqQ2IrE;Zz2f2DAD%T4XO6tU&)2IB}vV3{^xpz1MYFEPy_09RP2QvmA zIqw<(UaCnCs!mFX$+3sjnV*(O5)y`jW!*wzF-l^K`Bxgap+0Ej z@c^nf{Ic`6I5#9bcE7fwiiP8JZ9dr3FsD~SBiW_`8{UgFt*{$@qj#E)90JYra>Zs3 z$sCTuzOye2GdTO;4@;wgJK@!ij-|c--insluCR}{#q=D6Xz#nL6;`rkc*UzLTR%Y{ zN2YK;Zcz4YY=+|(0_?E=#~3U@I1fIyRiBF zIeWj=id+b|L;kSMs>NMfeB^(={IdrC;NYJy_$L+olL`OdOqgH0OpSa?FTRhwb<|%A Pe7HEdAEg|=c=LY&YVNkY diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png deleted file mode 100644 index 13b35eba55c6dabc3aac36f33d859266c18fa0d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5680 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 diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png deleted file mode 100644 index 0a3f5fa40fb3d1e0710331a48de5d256da3f275d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(-uuz(rC1}QWNE&K#jR^;j87-Auq zoUlN^K{r-Q+XN;zI ze|?*NFmgt#V#GwrSWaz^2G&@SBmck6ZcIFMww~vE<1E?M2#KUn1CzsB6D2+0SuRV@ zV2kK5HvIGB{HX-hQzs0*AB%5$9RJ@a;)Ahq#p$GSP91^&hi#6sg*;a~dt}4AclK>h z_3MoPRQ{i;==;*1S-mY<(JFzhAxMI&<61&m$J0NDHdJ3tYx~j0%M-uN6Zl8~_0DOkGXc0001@sz3l12C6Xg{AT~( zm6w64BA|AX`Ve)YY-glyudNN>MAfkXz-T7`_`fEolM;0T0BA)(02-OaW z0*cW7Z~ec94o8&g0D$N>b!COu{=m}^%oXZ4?T8ZyPZuGGBPBA7pbQMoV5HYhiT?%! zcae~`(QAN4&}-=#2f5fkn!SWGWmSeCISBcS=1-U|MEoKq=k?_x3apK>9((R zuu$9X?^8?@(a{qMS%J8SJPq))v}Q-ZyDm6Gbie0m92=`YlwnQPQP1kGSm(N2UJ3P6 z^{p-u)SSCTW~c1rw;cM)-uL2{->wCn2{#%;AtCQ!m%AakVs1K#v@(*-6QavyY&v&*wO_rCJXJuq$c$7ZjsW+pJo-$L^@!7X04CvaOpPyfw|FKvu;e(&Iw>Tbg zL}#8e^?X%TReXTt>gsBByt0kSU20oQx*~P=4`&tcZ7N6t-6LiK{LxX*p6}9c<0Pu^ zLx1w_P4P2V>bX=`F%v$#{sUDdF|;rbI{p#ZW`00Bgh(eB(nOIhy8W9T>3aQ=k8Z9% zB+TusFABF~J?N~fAd}1Rme=@4+1=M{^P`~se7}e3;mY0!%#MJf!XSrUC{0uZqMAd7%q zQY#$A>q}noIB4g54Ue)x>ofVm3DKBbUmS4Z-bm7KdKsUixva)1*&z5rgAG2gxG+_x zqT-KNY4g7eM!?>==;uD9Y4iI(Hu$pl8!LrK_Zb}5nv(XKW{9R144E!cFf36p{i|8pRL~p`_^iNo z{mf7y`#hejw#^#7oKPlN_Td{psNpNnM?{7{R-ICBtYxk>?3}OTH_8WkfaTLw)ZRTfxjW+0>gMe zpKg~`Bc$Y>^VX;ks^J0oKhB#6Ukt{oQhN+o2FKGZx}~j`cQB%vVsMFnm~R_1Y&Ml? zwFfb~d|dW~UktY@?zkau>Owe zRroi(<)c4Ux&wJfY=3I=vg)uh;sL(IYY9r$WK1$F;jYqq1>xT{LCkIMb3t2jN8d`9 z=4(v-z7vHucc_fjkpS}mGC{ND+J-hc_0Ix4kT^~{-2n|;Jmn|Xf9wGudDk7bi*?^+ z7fku8z*mbkGm&xf&lmu#=b5mp{X(AwtLTf!N`7FmOmX=4xwbD=fEo8CaB1d1=$|)+ z+Dlf^GzGOdlqTO8EwO?8;r+b;gkaF^$;+#~2_YYVH!hD6r;PaWdm#V=BJ1gH9ZK_9 zrAiIC-)z)hRq6i5+$JVmR!m4P>3yJ%lH)O&wtCyum3A*})*fHODD2nq!1@M>t@Za+ zH6{(Vf>_7!I-APmpsGLYpl7jww@s5hHOj5LCQXh)YAp+y{gG(0UMm(Ur z3o3n36oFwCkn+H*GZ-c6$Y!5r3z*@z0`NrB2C^q#LkOuooUM8Oek2KBk}o1PU8&2L z4iNkb5CqJWs58aR394iCU^ImDqV;q_Pp?pl=RB2372(Io^GA^+oKguO1(x$0<7w3z z)j{vnqEB679Rz4i4t;8|&Zg77UrklxY9@GDq(ZphH6=sW`;@uIt5B?7Oi?A0-BL}(#1&R;>2aFdq+E{jsvpNHjLx2t{@g1}c~DQcPNmVmy| zNMO@ewD^+T!|!DCOf}s9dLJU}(KZy@Jc&2Nq3^;vHTs}Hgcp`cw&gd7#N}nAFe3cM1TF%vKbKSffd&~FG9y$gLyr{#to)nxz5cCASEzQ}gz8O)phtHuKOW6p z@EQF(R>j%~P63Wfosrz8p(F=D|Mff~chUGn(<=CQbSiZ{t!e zeDU-pPsLgtc#d`3PYr$i*AaT!zF#23htIG&?QfcUk+@k$LZI}v+js|yuGmE!PvAV3 ztzh90rK-0L6P}s?1QH`Ot@ilbgMBzWIs zIs6K<_NL$O4lwR%zH4oJ+}JJp-bL6~%k&p)NGDMNZX7)0kni&%^sH|T?A)`z z=adV?!qnWx^B$|LD3BaA(G=ePL1+}8iu^SnnD;VE1@VLHMVdSN9$d)R(Wk{JEOp(P zm3LtAL$b^*JsQ0W&eLaoYag~=fRRdI>#FaELCO7L>zXe6w*nxN$Iy*Q*ftHUX0+N- zU>{D_;RRVPbQ?U+$^%{lhOMKyE5>$?U1aEPist+r)b47_LehJGTu>TcgZe&J{ z{q&D{^Ps~z7|zj~rpoh2I_{gAYNoCIJmio3B}$!5vTF*h$Q*vFj~qbo%bJCCRy509 zHTdDh_HYH8Zb9`}D5;;J9fkWOQi%Y$B1!b9+ESj+B@dtAztlY2O3NE<6HFiqOF&p_ zW-K`KiY@RPSY-p9Q99}Hcd05DT79_pfb{BV7r~?9pWh=;mcKBLTen%THFPo2NN~Nf zriOtFnqx}rtO|A6k!r6 zf-z?y-UD{dT0kT9FJ`-oWuPHbo+3wBS(}?2ql(+e@VTExmfnB*liCb zmeI+v5*+W_L;&kQN^ChW{jE0Mw#0Tfs}`9bk3&7UjxP^Ke(%eJu2{VnW?tu7Iqecm zB5|=-QdzK$=h50~{X3*w4%o1FS_u(dG2s&427$lJ?6bkLet}yYXCy)u_Io1&g^c#( z-$yYmSpxz{>BL;~c+~sxJIe1$7eZI_9t`eB^Pr0)5CuA}w;;7#RvPq|H6!byRzIJG ziQ7a4y_vhj(AL`8PhIm9edCv|%TX#f50lt8+&V+D4<}IA@S@#f4xId80oH$!_!q?@ zFRGGg2mTv&@76P7aTI{)Hu%>3QS_d)pQ%g8BYi58K~m-Ov^7r8BhX7YC1D3vwz&N8{?H*_U7DI?CI)+et?q|eGu>42NJ?K4SY zD?kc>h@%4IqNYuQ8m10+8xr2HYg2qFNdJl=Tmp&ybF>1>pqVfa%SsV*BY$d6<@iJA ziyvKnZ(~F9xQNokBgMci#pnZ}Igh0@S~cYcU_2Jfuf|d3tuH?ZSSYBfM(Y3-JBsC|S9c;# zyIMkPxgrq};0T09pjj#X?W^TFCMf1-9P{)g88;NDI+S4DXe>7d3Mb~i-h&S|Jy{J< zq3736$bH?@{!amD!1Ys-X)9V=#Z={fzsjVYMX5BG6%}tkzwC#1nQLj1y1f#}8**4Y zAvDZHw8)N)8~oWC88CgzbwOrL9HFbk4}h85^ptuu7A+uc#$f^9`EWv1Vr{5+@~@Uv z#B<;-nt;)!k|fRIg;2DZ(A2M2aC65kOIov|?Mhi1Sl7YOU4c$T(DoRQIGY`ycfkn% zViHzL;E*A{`&L?GP06Foa38+QNGA zw3+Wqs(@q+H{XLJbwZzE(omw%9~LPZfYB|NF5%j%E5kr_xE0u;i?IOIchn~VjeDZ) zAqsqhP0vu2&Tbz3IgJvMpKbThC-@=nk)!|?MIPP>MggZg{cUcKsP8|N#cG5 zUXMXxcXBF9`p>09IR?x$Ry3;q@x*%}G#lnB1}r#!WL88I@uvm}X98cZ8KO&cqT1p> z+gT=IxPsq%n4GWgh-Bk8E4!~`r@t>DaQKsjDqYc&h$p~TCh8_Mck5UB84u6Jl@kUZCU9BA-S!*bf>ZotFX9?a_^y%)yH~rsAz0M5#^Di80_tgoKw(egN z`)#(MqAI&A84J#Z<|4`Co8`iY+Cv&iboMJ^f9ROUK0Lm$;-T*c;TCTED_0|qfhlcS zv;BD*$Zko#nWPL}2K8T-?4}p{u)4xon!v_(yVW8VMpxg4Kh^J6WM{IlD{s?%XRT8P|yCU`R&6gwB~ zg}{At!iWCzOH37!ytcPeC`(({ovP7M5Y@bYYMZ}P2Z3=Y_hT)4DRk}wfeIo%q*M9UvXYJq!-@Ly79m5aLD{hf@BzQB>FdQ4mw z6$@vzSKF^Gnzc9vbccii)==~9H#KW<6)Uy1wb~auBn6s`ct!ZEos`WK8e2%<00b%# zY9Nvnmj@V^K(a_38dw-S*;G-(i(ETuIwyirs?$FFW@|66a38k+a%GLmucL%Wc8qk3 z?h_4!?4Y-xt)ry)>J`SuY**fuq2>u+)VZ+_1Egzctb*xJ6+7q`K$^f~r|!i?(07CD zH!)C_uerf-AHNa?6Y61D_MjGu*|wcO+ZMOo4q2bWpvjEWK9yASk%)QhwZS%N2_F4& z16D18>e%Q1mZb`R;vW{+IUoKE`y3(7p zplg5cBB)dtf^SdLd4n60oWie|(ZjgZa6L*VKq02Aij+?Qfr#1z#fwh92aV-HGd^_w zsucG24j8b|pk>BO7k8dS86>f-jBP^Sa}SF{YNn=^NU9mLOdKcAstv&GV>r zLxKHPkFxpvE8^r@MSF6UA}cG`#yFL8;kA7ccH9D=BGBtW2;H>C`FjnF^P}(G{wU;G z!LXLCbPfsGeLCQ{Ep$^~)@?v`q(uI`CxBY44osPcq@(rR-633!qa zsyb>?v%@X+e|Mg`+kRL*(;X>^BNZz{_kw5+K;w?#pReiw7eU8_Z^hhJ&fj80XQkuU z39?-z)6Fy$I`bEiMheS(iB6uLmiMd1i)cbK*9iPpl+h4x9ch7x- z1h4H;W_G?|)i`z??KNJVwgfuAM=7&Apd3vm#AT8uzQZ!NII}}@!j)eIfn53h{NmN7 zAKG6SnKP%^k&R~m5#@_4B@V?hYyHkm>0SQ@PPiw*@Tp@UhP-?w@jW?nxXuCipMW=L zH*5l*d@+jXm0tIMP_ec6Jcy6$w(gKK@xBX8@%oPaSyG;13qkFb*LuVx3{AgIyy&n3 z@R2_DcEn|75_?-v5_o~%xEt~ONB>M~tpL!nOVBLPN&e5bn5>+7o0?Nm|EGJ5 zmUbF{u|Qn?cu5}n4@9}g(G1JxtzkKv(tqwm_?1`?YSVA2IS4WI+*(2D*wh&6MIEhw z+B+2U<&E&|YA=3>?^i6)@n1&&;WGHF-pqi_sN&^C9xoxME5UgorQ_hh1__zzR#zVC zOQt4q6>ME^iPJ37*(kg4^=EFqyKH@6HEHXy79oLj{vFqZGY?sVjk!BX^h$SFJlJnv z5uw~2jLpA)|0=tp>qG*tuLru?-u`khGG2)o{+iDx&nC}eWj3^zx|T`xn5SuR;Aw8U z`p&>dJw`F17@J8YAuW4=;leBE%qagVTG5SZdh&d)(#ZhowZ|cvWvGMMrfVsbg>_~! z19fRz8CSJdrD|Rl)w!uznBF&2-dg{>y4l+6(L(vzbLA0Bk&`=;oQQ>(M8G=3kto_) zP8HD*n4?MySO2YrG6fwSrVmnesW+D&fxjfEmp=tPd?RKLZJcH&K(-S+x)2~QZ$c(> zru?MND7_HPZJVF%wX(49H)+~!7*!I8w72v&{b={#l9yz+S_aVPc_So%iF8>$XD1q1 zFtucO=rBj0Ctmi0{njN8l@}!LX}@dwl>3yMxZ;7 z0Ff2oh8L)YuaAGOuZ5`-p%Z4H@H$;_XRJQ|&(MhO78E|nyFa158gAxG^SP(vGi^+< zChY}o(_=ci3Wta#|K6MVljNe0T$%Q5ylx-v`R)r8;3+VUpp-)7T`-Y&{Zk z*)1*2MW+_eOJtF5tCMDV`}jg-R(_IzeE9|MBKl;a7&(pCLz}5<Zf+)T7bgNUQ_!gZtMlw=8doE}#W+`Xp~1DlE=d5SPT?ymu!r4z%&#A-@x^=QfvDkfx5-jz+h zoZ1OK)2|}_+UI)i9%8sJ9X<7AA?g&_Wd7g#rttHZE;J*7!e5B^zdb%jBj&dUDg4&B zMMYrJ$Z%t!5z6=pMGuO-VF~2dwjoXY+kvR>`N7UYfIBMZGP|C7*O=tU z2Tg_xi#Q3S=1|=WRfZD;HT<1D?GMR%5kI^KWwGrC@P2@R>mDT^3qsmbBiJc21kip~ zZp<7;^w{R;JqZ)C4z-^wL=&dBYj9WJBh&rd^A^n@07qM$c+kGv^f+~mU5_*|eePF| z3wDo-qaoRjmIw<2DjMTG4$HP{z54_te_{W^gu8$r=q0JgowzgQPct2JNtWPUsjF8R zvit&V8$(;7a_m%%9TqPkCXYUp&k*MRcwr*24>hR! z$4c#E=PVE=P4MLTUBM z7#*RDe0}=B)(3cvNpOmWa*eH#2HR?NVqXdJ=hq);MGD07JIQQ7Y0#iD!$C+mk7x&B zMwkS@H%>|fmSu#+ zI!}Sb(%o29Vkp_Th>&&!k7O>Ba#Om~B_J{pT7BHHd8(Ede(l`7O#`_}19hr_?~JP9 z`q(`<)y>%)x;O7)#-wfCP{?llFMoH!)ZomgsOYFvZ1DxrlYhkWRw#E-#Qf*z@Y-EQ z1~?_=c@M4DO@8AzZ2hKvw8CgitzI9yFd&N1-{|vP#4IqYb*#S0e3hrjsEGlnc4xwk z4o!0rxpUt8j&`mJ8?+P8G{m^jbk)bo_UPM+ifW*y-A*et`#_Ja_3nYyRa9fAG1Xr5 z>#AM_@PY|*u)DGRWJihZvgEh#{*joJN28uN7;i5{kJ*Gb-TERfN{ERe_~$Es~NJCpdKLRvdj4658uYYx{ng7I<6j~w@p%F<7a(Ssib|j z51;=Py(Nu*#hnLx@w&8X%=jrADn3TW>kplnb zYbFIWWVQXN7%Cwn6KnR)kYePEBmvM45I)UJb$)ninpdYg3a5N6pm_7Q+9>!_^xy?k za8@tJ@OOs-pRAAfT>Nc2x=>sZUs2!9Dwa%TTmDggH4fq(x^MW>mcRyJINlAqK$YQCMgR8`>6=Sg$ zFnJZsA8xUBXIN3i70Q%8px@yQPMgVP=>xcPI38jNJK<=6hC={a07+n@R|$bnhB)X$ z(Zc%tadp70vBTnW{OUIjTMe38F}JIH$#A}PB&RosPyFZMD}q}5W%$rh>5#U;m`z2K zc(&WRxx7DQLM-+--^w*EWAIS%bi>h587qkwu|H=hma3T^bGD&Z!`u(RKLeNZ&pI=q$|HOcji(0P1QC!YkAp*u z3%S$kumxR}jU<@6`;*-9=5-&LYRA<~uFrwO3U0k*4|xUTp4ZY7;Zbjx|uw&BWU$zK(w55pWa~#=f$c zNDW0O68N!xCy>G}(CX=;8hJLxAKn@Aj(dbZxO8a$+L$jK8$N-h@4$i8)WqD_%Snh4 zR?{O%k}>lr>w$b$g=VP8mckcCrjnp>uQl5F_6dPM8FWRqs}h`DpfCv20uZhyY~tr8 zkAYW4#yM;*je)n=EAb(q@5BWD8b1_--m$Q-3wbh1hM{8ihq7UUQfg@)l06}y+#=$( z$x>oVYJ47zAC^>HLRE-!HitjUixP6!R98WU+h>zct7g4eD;Mj#FL*a!VW!v-@b(Jv zj@@xM5noCp5%Vk3vY{tyI#oyDV7<$`KG`tktVyC&0DqxA#>V;-3oH%NW|Q&=UQ&zU zXNIT67J4D%5R1k#bW0F}TD`hlW7b)-=-%X4;UxQ*u4bK$mTAp%y&-(?{sXF%e_VH6 zTkt(X)SSN|;8q@8XX6qfR;*$r#HbIrvOj*-5ND8RCrcw4u8D$LXm5zlj@E5<3S0R# z??=E$p{tOk96$SloZ~ARe5`J=dB|Nj?u|zy2r(-*(q^@YwZiTF@QzQyPx_l=IDKa) zqD@0?IHJqSqZ_5`)81?4^~`yiGh6>7?|dKa8!e|}5@&qV!Iu9<@G?E}Vx9EzomB3t zEbMEm$TKGwkHDpirp;FZD#6P5qIlQJ8}rf;lHoz#h4TFFPYmS3+8(13_Mx2`?^=8S z|0)0&dQLJTU6{b%*yrpQe#OKKCrL8}YKw+<#|m`SkgeoN69TzIBQOl_Yg)W*w?NW) z*WxhEp$zQBBazJSE6ygu@O^!@Fr46j=|K`Mmb~xbggw7<)BuC@cT@Bwb^k?o-A zKX^9AyqR?zBtW5UA#siILztgOp?r4qgC`9jYJG_fxlsVSugGprremg-W(K0{O!Nw-DN%=FYCyfYA3&p*K>+|Q}s4rx#CQK zNj^U;sLM#q8}#|PeC$p&jAjqMu(lkp-_50Y&n=qF9`a3`Pr9f;b`-~YZ+Bb0r~c+V z*JJ&|^T{}IHkwjNAaM^V*IQ;rk^hnnA@~?YL}7~^St}XfHf6OMMCd9!vhk#gRA*{L zp?&63axj|Si%^NW05#87zpU_>QpFNb+I00v@cHwvdBn+Un)n2Egdt~LcWOeBW4Okm zD$-e~RD+W|UB;KQ;a7GOU&%p*efGu2$@wR74+&iP8|6#_fmnh^WcJLs)rtz{46);F z4v0OL{ZP9550>2%FE(;SbM*#sqMl*UXOb>ch`fJ|(*bOZ9=EB1+V4fkQ)hjsm3-u^Pk-4ji_uDDHdD>84tER!MvbH`*tG zzvbhBR@}Yd`azQGavooV=<WbvWLlO#x`hyO34mKcxrGv=`{ssnP=0Be5#1B;Co9 zh{TR>tjW2Ny$ZxJpYeg57#0`GP#jxDCU0!H15nL@@G*HLQcRdcsUO3sO9xvtmUcc{F*>FQZcZ5bgwaS^k-j5mmt zI7Z{Xnoml|A(&_{imAjK!kf5>g(oDqDI4C{;Bv162k8sFNr;!qPa2LPh>=1n z=^_9)TsLDvTqK7&*Vfm5k;VXjBW^qN3Tl&}K=X5)oXJs$z3gk0_+7`mJvz{pK|FVs zHw!k&7xVjvY;|(Py<;J{)b#Yjj*LZO7x|~pO4^MJ2LqK3X;Irb%nf}L|gck zE#55_BNsy6m+W{e zo!P59DDo*s@VIi+S|v93PwY6d?CE=S&!JLXwE9{i)DMO*_X90;n2*mPDrL%{iqN!?%-_95J^L z=l<*{em(6|h7DR4+4G3Wr;4*}yrBkbe3}=p7sOW1xj!EZVKSMSd;QPw>uhKK z#>MlS@RB@-`ULv|#zI5GytO{=zp*R__uK~R6&p$q{Y{iNkg61yAgB8C^oy&``{~FK z8hE}H&nIihSozKrOONe5Hu?0Zy04U#0$fB7C6y~?8{or}KNvP)an=QP&W80mj&8WL zEZQF&*FhoMMG6tOjeiCIV;T{I>jhi9hiUwz?bkX3NS-k5eWKy)Mo_orMEg4sV6R6X&i-Q%JG;Esl+kLpn@Bsls9O|i9z`tKB^~1D5)RIBB&J<6T@a4$pUvh$IR$%ubH)joi z!7>ON0DPwx=>0DA>Bb^c?L8N0BBrMl#oDB+GOXJh;Y&6I)#GRy$W5xK%a;KS8BrER zX)M>Rdoc*bqP*L9DDA3lF%U8Yzb6RyIsW@}IKq^i7v&{LeIc=*ZHIbO68x=d=+0T( zev=DT9f|x!IWZNTB#N7}V4;9#V$%Wo0%g>*!MdLOEU>My0^gni9ocID{$g9ytD!gy zKRWT`DVN(lcYjR|(}f0?zgBa3SwunLfAhx><%u0uFkrdyqlh8_g zDKt#R6rA2(Vm2LW_>3lBNYKG_F{TEnnKWGGC15y&OebIRhFL4TeMR*v9i0wPoK#H< zu4){s4K&K)K(9~jgGm;H7lS7y_RYfS;&!Oj5*eqbvEcW^a*i67nevzOZxN6F+K~A%TYEtsAVsR z@J=1hc#Dgs7J2^FL|qV&#WBFQyDtEQ2kPO7m2`)WFhqAob)Y>@{crkil6w9VoA?M6 zADGq*#-hyEVhDG5MQj677XmcWY1_-UO40QEP&+D)rZoYv^1B_^w7zAvWGw&pQyCyx zD|ga$w!ODOxxGf_Qq%V9Z7Q2pFiUOIK818AGeZ-~*R zI1O|SSc=3Z?#61Rd|AXx2)K|F@Z1@x!hBBMhAqiU)J=U|Y)T$h3D?ZPPQgkSosnN! zIqw-t$0fqsOlgw3TlHJF*t$Q@bg$9}A3X=cS@-yU3_vNG_!#9}7=q7!LZ?-%U26W4 z$d>_}*s1>Ac%3uFR;tnl*fNlylJ)}r2^Q3&@+is3BIv<}x>-^_ng;jhdaM}6Sg3?p z0jS|b%QyScy3OQ(V*~l~bK>VC{9@FMuW_JUZO?y(V?LKWD6(MXzh}M3r3{7b4eB(#`(q1m{>Be%_<9jw8HO!x#yF6vez$c#kR+}s zZO-_;25Sxngd(}){zv?ccbLqRAlo;yog>4LH&uZUK1n>x?u49C)Y&2evH5Zgt~666 z_2_z|H5AO5Iqxv_Bn~*y1qzRPcob<+Otod5Xd2&z=C;u+F}zBB@b^UdGdUz|s!H}M zXG%KiLzn3G?FZgdY&3pV$nSeY?ZbU^jhLz9!t0K?ep}EFNqR1@E!f*n>x*!uO*~JF zW9UXWrVgbX1n#76_;&0S7z}(5n-bqnII}_iDsNqfmye@)kRk`w~1 z6j4h4BxcPe6}v)xGm%=z2#tB#^KwbgMTl2I*$9eY|EWAHFc3tO48Xo5rW z5oHD!G4kb?MdrOHV=A+8ThlIqL8Uu+7{G@ zb)cGBm|S^Eh5= z^E^SZ=yeC;6nNCdztw&TdnIz}^Of@Ke*@vjt)0g>Y!4AJvWiL~e7+9#Ibhe)> ziNwh>gWZL@FlWc)wzihocz+%+@*euwXhW%Hb>l7tf8aJe5_ZSH1w-uG|B;9qpcBP0 zM`r1Hu#htOl)4Cl1c7oY^t0e4Jh$-I(}M5kzWqh{F=g&IM#JiC`NDSd@BCKX#y<P@Gwl$3a3w z6<(b|K(X5FIR22M)sy$4jY*F4tT{?wZRI+KkZFb<@j@_C316lu1hq2hA|1wCmR+S@ zRN)YNNE{}i_H`_h&VUT5=Y(lN%m?%QX;6$*1P}K-PcPx>*S55v)qZ@r&Vcic-sjkm z! z=nfW&X`}iAqa_H$H%z3Tyz5&P3%+;93_0b;zxLs)t#B|up}JyV$W4~`8E@+BHQ+!y zuIo-jW!~)MN$2eHwyx-{fyGjAWJ(l8TZtUp?wZWBZ%}krT{f*^fqUh+ywHifw)_F> zp76_kj_B&zFmv$FsPm|L7%x-j!WP>_P6dHnUTv!9ZWrrmAUteBa`rT7$2ixO;ga8U z3!91micm}{!Btk+I%pMgcKs?H4`i+=w0@Ws-CS&n^=2hFTQ#QeOmSz6ttIkzmh^`A zYPq)G1l3h(E$mkyr{mvz*MP`x+PULBn%CDhltKkNo6Uqg!vJ#DA@BIYr9TQ`18Un2 zv$}BYzOQuay9}w(?JV63F$H6WmlYPPpH=R|CPb%C@BCv|&Q|&IcW7*LX?Q%epS z`=CPx{1HnJ9_46^=0VmNb>8JvMw-@&+V8SDLRYsa>hZXEeRbtf5eJ>0@Ds47zIY{N z42EOP9J8G@MXXdeiPx#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91AfN*P1ONa40RR91AOHXW0IY^$^8f$?lu1NER9Fe^SItioK@|V(ZWmgL zZT;XwPgVuWM>O%^|Dc$VK;n&?9!&g5)aVsG8cjs5UbtxVVnQNOV~7Mrg3+jnU;rhE z6fhW6P)R>_eXrXo-RW*y6RQ_qcb^s1wTu$TwriZ`=JUws>vRi}5x}MW1MR#7p|gIWJlaLK;~xaN}b< z<-@=RX-%1mt`^O0o^~2=CD7pJ<<$Rp-oUL-7PuG>do^5W_Mk#unlP}6I@6NPxY`Q} zuXJF}!0l)vwPNAW;@5DjPRj?*rZxl zwn;A(cFV!xe^CUu+6SrN?xe#mz?&%N9QHf~=KyK%DoB8HKC)=w=3E?1Bqj9RMJs3U z5am3Uv`@+{jgqO^f}Lx_Jp~CoP3N4AMZr~4&d)T`R?`(M{W5WWJV^z~2B|-oih@h^ zD#DuzGbl(P5>()u*YGo*Och=oRr~3P1wOlKqI)udc$|)(bacG5>~p(y>?{JD7nQf_ z*`T^YL06-O>T(s$bi5v~_fWMfnE7Vn%2*tqV|?~m;wSJEVGkNMD>+xCu#um(7}0so zSEu7?_=Q64Q5D+fz~T=Rr=G_!L*P|(-iOK*@X8r{-?oBlnxMNNgCVCN9Y~ocu+?XA zjjovJ9F1W$Nf!{AEv%W~8oahwM}4Ruc+SLs>_I_*uBxdcn1gQ^2F8a*vGjgAXYyh? zWCE@c5R=tbD(F4nL9NS?$PN1V_2*WR?gjv3)4MQeizuH`;sqrhgykEzj z593&TGlm3h`sIXy_U<7(dpRXGgp0TB{>s?}D{fwLe>IV~exweOfH!qM@CV5kib!YA z6O0gvJi_0J8IdEvyP#;PtqP*=;$iI2t(xG2YI-e!)~kaUn~b{6(&n zp)?iJ`z2)Xh%sCV@BkU`XL%_|FnCA?cVv@h*-FOZhY5erbGh)%Q!Av#fJM3Csc_g zC2I6x%$)80`Tkz#KRA!h1FzY`?0es3t!rKDT5EjPe6B=BLPr7s0GW!if;Ip^!AmGW zL;$`Vdre+|FA!I4r6)keFvAx3M#1`}ijBHDzy)3t0gwjl|qC2YB`SSxFKHr(oY#H$)x{L$LL zBdLKTlsOrmb>T0wd=&6l3+_Te>1!j0OU8%b%N342^opKmT)gni(wV($s(>V-fUv@0p8!f`=>PxC|9=nu ze{ToBBj8b<{PLfXV$h8YPgA~E!_sF9bl;QOF{o6t&JdsX?}rW!_&d`#wlB6T_h;Xf zl{4Tz5>qjF4kZgjO7ZiLPRz_~U@k5%?=30+nxEh9?s78gZ07YHB`FV`4%hlQlMJe@J`+e(qzy+h(9yY^ckv_* zb_E6o4p)ZaWfraIoB2)U7_@l(J0O%jm+Or>8}zSSTkM$ASG^w3F|I? z$+eHt7T~04(_WfKh27zqS$6* zzyy-ZyqvSIZ0!kkSvHknm_P*{5TKLQs8S6M=ONuKAUJWtpxbL#2(_huvY(v~Y%%#~ zYgsq$JbLLprKkV)32`liIT$KKEqs$iYxjFlHiRNvBhxbDg*3@Qefw4UM$>i${R5uB zhvTgmqQsKA{vrKN;TSJU2$f9q=y{$oH{<)woSeV>fkIz6D8@KB zf4M%v%f5U2?<8B(xn}xV+gWP?t&oiapJhJbfa;agtz-YM7=hrSuxl8lAc3GgFna#7 zNjX7;`d?oD`#AK+fQ=ZXqfIZFEk{ApzjJF0=yO~Yj{7oQfXl+6v!wNnoqwEvrs81a zGC?yXeSD2NV!ejp{LdZGEtd1TJ)3g{P6j#2jLR`cpo;YX}~_gU&Gd<+~SUJVh+$7S%`zLy^QqndN<_9 zrLwnXrLvW+ew9zX2)5qw7)zIYawgMrh`{_|(nx%u-ur1B7YcLp&WFa24gAuw~& zKJD3~^`Vp_SR$WGGBaMnttT)#fCc^+P$@UHIyBu+TRJWbcw4`CYL@SVGh!X&y%!x~ zaO*m-bTadEcEL6V6*{>irB8qT5Tqd54TC4`h`PVcd^AM6^Qf=GS->x%N70SY-u?qr>o2*OV7LQ=j)pQGv%4~z zz?X;qv*l$QSNjOuQZ>&WZs2^@G^Qas`T8iM{b19dS>DaXX~=jd4B2u`P;B}JjRBi# z_a@&Z5ev1-VphmKlZEZZd2-Lsw!+1S60YwW6@>+NQ=E5PZ+OUEXjgUaXL-E0fo(E* zsjQ{s>n33o#VZm0e%H{`KJi@2ghl8g>a~`?mFjw+$zlt|VJhSU@Y%0TWs>cnD&61fW4e0vFSaXZa4-c}U{4QR8U z;GV3^@(?Dk5uc@RT|+5C8-24->1snH6-?(nwXSnPcLn#X_}y3XS)MI_?zQ$ZAuyg+ z-pjqsw}|hg{$~f0FzmmbZzFC0He_*Vx|_uLc!Ffeb8#+@m#Z^AYcWcZF(^Os8&Z4g zG)y{$_pgrv#=_rV^D|Y<_b@ICleUv>c<0HzJDOsgJb#Rd-Vt@+EBDPyq7dUM9O{Yp zuGUrO?ma2wpuJuwl1M=*+tb|qx7Doj?!F-3Z>Dq_ihFP=d@_JO;vF{iu-6MWYn#=2 zRX6W=`Q`q-+q@Db|6_a1#8B|#%hskH82lS|9`im0UOJn?N#S;Y0$%xZw3*jR(1h5s z?-7D1tnIafviko>q6$UyqVDq1o@cwyCb*})l~x<@s$5D6N=-Uo1yc49p)xMzxwnuZ zHt!(hu-Ek;Fv4MyNTgbW%rPF*dB=;@r3YnrlFV{#-*gKS_qA(G-~TAlZ@Ti~Yxw;k za1EYyX_Up|`rpbZ0&Iv#$;eC|c0r4XGaQ-1mw@M_4p3vKIIpKs49a8Ns#ni)G314Z z8$Ei?AhiT5dQGWUYdCS|IC7r z=-8ol>V?u!n%F*J^^PZ(ONT&$Ph;r6X;pj|03HlDY6r~0g~X#zuzVU%a&!fs_f|m?qYvg^Z{y?9Qh7Rn?T*F%7lUtA6U&={HzhYEzA`knx1VH> z{tqv?p@I(&ObD5L4|YJV$QM>Nh-X3cx{I&!$FoPC_2iIEJfPk-$;4wz>adRu@n`_y z_R6aN|MDHdK;+IJmyw(hMoDCFCQ(6?hCAG5&7p{y->0Uckv# zvooVuu04$+pqof777ftk<#42@KQ((5DPcSMQyzGOJ{e9H$a9<2Qi_oHjl{#=FUL9d z+~0^2`tcvmp0hENwfHR`Ce|<1S@p;MNGInXCtHnrDPXCKmMTZQ{HVm_cZ>@?Wa6}O zHsJc7wE)mc@1OR2DWY%ZIPK1J2p6XDO$ar`$RXkbW}=@rFZ(t85AS>>U0!yt9f49^ zA9@pc0P#k;>+o5bJfx0t)Lq#v4`OcQn~av__dZ-RYOYu}F#pdsl31C^+Qgro}$q~5A<*c|kypzd} ziYGZ~?}5o`S5lw^B{O@laad9M_DuJle- z*9C7o=CJh#QL=V^sFlJ0c?BaB#4bV^T(DS6&Ne&DBM_3E$S^S13qC$7_Z?GYXTpR@wqr70wu$7+qvf-SEUa5mdHvFbu^7ew!Z1a^ zo}xKOuT*gtGws-a{Tx}{#(>G~Y_h&5P@Q8&p!{*s37^QX_Ibx<6XU*AtDOIvk|^{~ zPlS}&DM5$Ffyu-T&0|KS;Wnaqw{9DB&B3}vcO14wn;)O_e@2*9B&0I_ zZz{}CMxx`hv-XouY>^$Y@J(_INeM>lIQI@I>dBAqq1)}?Xmx(qRuX^i4IV%=MF306 z9g)i*79pP%_7Ex?m6ag-4Tlm=Z;?DQDyC-NpUIb#_^~V_tsL<~5<&;Gf2N+p?(msn zzUD~g>OoW@O}y0@Z;RN)wjam`CipmT&O7a|YljZqU=U86 zedayEdY)2F#BJ6xvmW8K&ffdS*0!%N<%RB!2~PAT4AD*$W7yzHbX#Eja9%3aD+Ah2 zf#T;XJW-GMxpE=d4Y>}jE=#U`IqgSoWcuvgaWQ9j1CKzG zDkoMDDT)B;Byl3R2PtC`ip=yGybfzmVNEx{xi_1|Cbqj>=FxQc{g`xj6fIfy`D8fA z##!-H_e6o0>6Su&$H2kQTujtbtyNFeKc}2=|4IfLTnye#@$Au7Kv4)dnA;-fz@D_8 z)>irG$)dkBY~zX zC!ZXLy*L3xr6cb70QqfN#Q>lFIc<>}>la4@3%7#>a1$PU&O^&VszpxLC%*!m-cO{B z-Y}rQr4$84(hvy#R69H{H zJ*O#uJh)TF6fbXy;fZkk%X=CjsTK}o5N1a`d7kgYYZLPxsHx%9*_XN8VWXEkVJZ%A z1A+5(B;0^{T4aPYr8%i@i32h)_)|q?9vws)r+=5u)1YNftF5mknwfd*%jXA2TeP}Z zQ!m?xJ3?9LpPM?_A3$hQ1QxNbR&}^m z!F999s?p^ak#C4NM_x2p9FoXWJ$>r?lJ)2bG)sX{gExgLA2s5RwHV!h6!C~d_H||J z>9{E{mEv{Z1z~65Vix@dqM4ZqiU|!)eWX$mwS5mLSufxbpBqqS!jShq1bmwCR6 z4uBri7ezMeS6ycaXPVu(i2up$L; zjpMtB`k~WaNrdgM_R=e#SN?Oa*u%nQy01?()h4A(jyfeNfx;5o+kX?maO4#1A^L}0 zYNyIh@QVXIFiS0*tE}2SWTrWNP3pH}1Vz1;E{@JbbgDFM-_Mky^7gH}LEhl~Ve5PexgbIyZ(IN%PqcaV@*_`ZFb=`EjspSz%5m2E34BVT)d=LGyHVz@-e%9Ova*{5@RD;7=Ebkc2GP%pIP^P7KzKapnh`UpH?@h z$RBpD*{b?vhohOKf-JG3?A|AX|2pQ?(>dwIbWhZ38GbTm4AImRNdv_&<99ySX;kJ| zo|5YgbHZC#HYgjBZrvGAT4NZYbp}qkVSa;C-LGsR26Co+i_HM&{awuO9l)Ml{G8zD zs$M8R`r+>PT#Rg!J(K6T4xHq7+tscU(}N$HY;Yz*cUObX7J7h0#u)S7b~t^Oj}TBF zuzsugnst;F#^1jm>22*AC$heublWtaQyM6RuaquFd8V#hJ60Z3j7@bAs&?dD#*>H0SJaDwp%U~27>zdtn+ z|8sZzklZy$%S|+^ie&P6++>zbrq&?+{Yy11Y>@_ce@vU4ZulS@6yziG6;iu3Iu`M= zf3rcWG<+3F`K|*(`0mE<$89F@jSq;j=W#E>(R}2drCB7D*0-|D;S;(;TwzIJkGs|q z2qH{m_zZ+el`b;Bv-#bQ>}*VPYC|7`rgBFf2oivXS^>v<&HHTypvd4|-zn|=h=TG{ z05TH2+{T%EnADO>3i|CB zCu60#qk`}GW{n4l-E$VrqgZGbI zbQW690KgZt4U3F^5@bdO1!xu~p@7Y~*_FfWg2CdvED5P5#w#V46LH`<&V0{t&Ml~4 zHNi7lIa+#i+^Z6EnxO7KJQw)wD)4~&S-Ki8)3=jpqxmx6c&zU&<&h%*c$I(5{1HZT zc9WE}ijcWJiVa^Q^xC|WX0habl89qycOyeViIbi(LFsEY_8a|+X^+%Qv+W4vzj>`y zpuRnjc-eHNkvXvI_f{=*FX=OKQzT?bck#2*qoKTHmDe>CDb&3AngA1O)1b}QJ1Tun z_<@yVEM>qG7664Pa@dzL@;DEh`#?yM+M|_fQS<7yv|i*pw)|Z8)9IR+QB7N3v3K(wv4OY*TXnH&X0nQB}?|h2XQeGL^q~N7N zDFa@x0E(UyN7k9g%IFq7Sf+EAfE#K%%#`)!90_)Dmy3Bll&e1vHQyPA87TaF(xbqMpDntVp?;8*$87STop$!EAnGhZ?>mqPJ(X zFsr336p3P{PpZCGn&^LP(JjnBbl_3P3Kcq+m}xVFMVr1zdCPJMDIV_ki#c=vvTwbU z*gKtfic&{<5ozL6Vfpx>o2Tts?3fkhWnJD&^$&+Mh5WGGyO7fG@6WDE`tEe(8<;+q z@Ld~g08XDzF8xtmpIj`#q^(Ty{Hq>t*v`pedHnuj(0%L(%sjkwp%s}wMd!a<*L~9T z9MM@s)Km~ogxlqEhIw5(lc46gCPsSosUFsgGDr8H{mj%OzJz{N#;bQ;KkV+ZWA1(9 zu0PXzyh+C<4OBYQ0v3z~Lr;=C@qmt8===Ov2lJ1=DeLfq*#jgT{YQCuwz?j{&3o_6 zsqp2Z_q-YWJg?C6=!Or|b@(zxTlg$ng2eUQzuC<+o)k<6^9ju_Z*#x+oioZ5T8Z_L zz9^A1h2eFS0O5muq8;LuDKwOv4A9pxmOjgb6L*i!-(0`Ie^d5Fsgspon%X|7 zC{RRXEmYn!5zP9XjG*{pLa)!2;PJB2<-tH@R7+E1cRo=Wz_5Ko8h8bB$QU%t9#vol zAoq?C$~~AsYC|AQQ)>>7BJ@{Cal)ZpqE=gjT+Juf!RD-;U0mbV1ED5PbvFD6M=qj1 zZ{QERT5@(&LQ~1X9xSf&@%r|3`S#ZCE=sWD`D4YQZ`MR`G&s>lN{y2+HqCfvgcw3E z-}Kp(dfGG?V|97kAHQX+OcKCZS`Q%}HD6u*e$~Ki&Vx53&FC!x94xJd4F2l^qQeFO z?&JdmgrdVjroKNJx64C!H&Vncr^w zzR#XI}Dn&o8jB~_YlVM^+#0W(G1LZH5K^|uYT@KSR z^Y5>^*Bc45E1({~EJB(t@4n9gb-eT#s@@7)J^^<_VV`Pm!h7av8XH6^5zO zOcQBhTGr;|MbRsgxCW69w{bl4EW#A~);L?d4*y#j8Ne=Z@fmJP0k4{_cQ~KA|Y#_#BuUiYx8y*za3_6Y}c=GSe7(2|KAfhdzud!Zq&}j)=o4 z7R|&&oX7~e@~HmyOOsCCwy`AR+deNjZ3bf6ijI_*tKP*_5JP3;0d;L_p(c>W1b%sG zJ*$wcO$ng^aW0E(5ldckV9unU7}OB7s?Wx(761?1^&8tA5y0_(ieV>(x-e@}1`lWC z-YH~G$D>#ud!SxK2_Iw{K%92=+{4yb-_XC>ji&j7)1ofp(OGa4jjF;Hd*`6YQL+Jf zffg+6CPc8F@EDPN{Kn96yip;?g@)qgkPo^nVKFqY?8!=h$G$V=<>%5J&iVjwR!7H0 z$@QL|_Q81I;Bnq8-5JyNRv$Y>`sWl{qhq>u+X|)@cMlsG!{*lu?*H`Tp|!uv z9oEPU1jUEj@ueBr}%Y)7Luyi)REaJV>eQ{+uy4uh0ep0){t;OU8D*RZ& zE-Z-&=BrWQLAD^A&qut&4{ZfhqK1ZQB0fACP)=zgx(0(o-`U62EzTkBkG@mXqbjXm z>w`HNeQM?Is&4xq@BB(K;wv5nI6EXas)XXAkUuf}5uSrZLYxRCQPefn-1^#OCd4aO zzF=dQ*CREEyWf@n6h7(uXLNgJIwGp#Xrsj6S<^bzQ7N0B0N{XlT;`=m9Olg<>KL}9 zlp>EKTx-h|%d1Ncqa=wnQEuE;sIO-f#%Bs?g4}&xS?$9MG?n$isHky0caj za8W+B^ERK#&h?(x)7LLpOqApV5F>sqB`sntV%SV>Q1;ax67qs+WcssfFeF3Xk=e4^ zjR2^(%K1oBq%0%Rf!y&WT;lu2Co(rHi|r1_uW)n{<7fGc-c=ft7Z0Q}r4W$o$@tQF#i?jDBwZ8h+=SC}3?anUp3mtRVv9l#H?-UD;HjTF zQ*>|}e=6gDrgI9p%c&4iMUkQa4zziS$bO&i#DI$Wu$7dz7-}XLk%!US^XUIFf2obO zFCTjVEtkvYSKWB;<0C;_B{HHs~ax_48^Cml*mjfBC5*7^HJZiLDir(3k&BerVIZF8zF;0q80eX8c zPN4tc+Dc5DqEAq$Y3B3R&XPZ=AQfFMXv#!RQnGecJONe0H;+!f^h5x0wS<+%;D}MpUbTNUBA}S2n&U59-_5HKr{L^jPsV8B^%NaH|tUr)mq=qCBv_- ziZ1xUp(ZzxUYTCF@C}To;u60?RIfTGS?#JnB8S8@j`TKPkAa)$My+6ziGaBcA@){d z91)%+v2_ba7gNecdj^8*I4#<11l!{XKl6s0zkXfJPxhP+@b+5ev{a>p*W-3*25c&} zmCf{g9mPWVQ$?Sp*4V|lT@~>RR)9iNdN^7KT@>*MU3&v^3e?=NTbG9!h6C|9zO097 zN{Qs6YwR-5$)~ z`b~qs`a1Dbx8P>%V=1XGjBptMf%P~sl1qbHVm1HYpY|-Z^Dar8^HqjIw}xaeRlsYa zJ_@Apy-??`gxPmb`m`0`z`#G7*_C}qiSZe~l2z65tE~IwMw$1|-u&t|z-8SxliH00 zlh1#kuqB56s+E&PWQ7Nz17?c}pN+A@-c^xLqh(j;mS|?>(Pf7(?qd z5q@jkc^nA&!K-}-1P=Ry0yyze0W!+h^iW}7jzC1{?|rEFFWbE^Yu7Y}t?jmP-D$f+ zmqFT7nTl0HL|4jwGm7w@a>9 zKD)V~+g~ysmei$OT5}%$&LK8?ib|8aY|>W3;P+0B;=oD=?1rg+PxKcP(d;OEzq1CKA&y#boc51P^ZJPPS)z5 zAZ)dd2$glGQXFj$`XBBJyl2y-aoBA8121JC9&~|_nY>nkmW>TLi%mWdn-^Jks-Jv| zSR*wij;A3Fcy8KsDjQ15?Z9oOj|Qw2;jgJiq>dxG(2I2RE- z$As!#zSFIskebqU2bnoM^N<4VWD2#>!;saPSsY8OaCCQqkCMdje$C?Sp%V}f2~tG5 z0whMYk6tcaABwu*x)ak@n4sMElGPX1_lmv@bgdI2jPdD|2-<~Jf`L`@>Lj7{<-uLQ zE3S_#3e10q-ra=vaDQ42QUY^@edh>tnTtpBiiDVUk5+Po@%RmuTntOlE29I4MeJI?;`7;{3e4Qst#i-RH6s;>e(Sc+ubF2_gwf5Qi%P!aa89fx6^{~A*&B4Q zKTF|Kx^NkiWx=RDhe<{PWXMQ;2)=SC=yZC&mh?T&CvFVz?5cW~ritRjG2?I0Av_cI z)=s!@MXpXbarYm>Kj0wOxl=eFMgSMc?62U#2gM^li@wKPK9^;;0_h7B>F>0>I3P`{ zr^ygPYp~WVm?Qbp6O3*O2)(`y)x>%ZXtztz zMAcwKDr=TCMY!S-MJ8|2MJCVNUBI0BkJV6?(!~W!_dC{TS=eh}t#X+2D>Kp&)ZN~q zvg!ogxUXu^y(P*;Q+y_rDoGeSCYxkaGPldDDx)k;ocJvvGO#1YKoQLHUf2h_pjm&1 zqh&!_KFH03FcJvSdfgUYMp=5EpigZ*8}7N_W%Ms^WSQ4hH`9>3061OEcxmf~TcYn5_oHtscWn zo5!ayj<_fZ)vHu3!A!7M;4y1QIr8YGy$P2qDD_4+T8^=^dB6uNsz|D>p~4pF3Nrb6 zcpRK*($<~JUqOya#M1=#IhOZ zG)W+rJS-x(6EoVz)P zsSo>JtnChdj9^);su%SkFG~_7JPM zEDz3gk2T7Y%x>1tWyia|op(ilEzvAujW?Xwlw>J6d7yEi8E zv30riR|a_MM%ZZX&n!qm0{2agq(s?x9E@=*tyT$nND+{Djpm7Rsy!+c$j+wqMwTOF zZL8BQ|I`<^bGW)5apO{lh(Asqen?_U`$_n0-Ob~Yd%^89oEe%9yGumQ_8Be+l2k+n zCxT%s?bMpv|AdWP7M1LQwLm|x+igA~;+iK-*+tClF&ueX_V}>=4gvZ01xpubQWXD_ zi?Un>&3=$fu)dgk-Z;0Ll}HK5_YM->l^Czrd0^cJ))(DwL2g3aZuza7ga9^|mT_70 z))}A}r1#-(9cxtn<9jGRwOB4hb9kK@YCgjfOM-90I$8@l=H^`K$cyhe2mTM|FY9vW znH~h)I<_aa#V1xmhk?Ng@$Jw-s%a!$BI4Us+Df+?J&gKAF-M`v}j`OWKP3>6`X`tEmhe#y*(Xm$_^Ybbs=%;L7h zp7q^C*qM}Krqsinq|WolR99>_!GL#Z71Hhz|IwQQv<>Ds09B?Je(lhI1(FInO8mc} zl$RyKCUmfku+Cd^8s0|t+e}5g7M{ZPJQH=UB3(~U&(w#Bz#@DTDHy>_UaS~AtN>4O zJ-I#U@R($fgupHebcpuEBX`SZ>kN!rW$#9>s{^3`86ZRQRtYTY)hiFm_9wU3c`SC8 z-5M%g)h}3Pt|wyj#F%}pGC@VL`9&>9P+_UbudCkS%y2w&*o})hBplrB*@Z?gel5q+ z%|*59(sR9GMk3xME}wd%&k?7~J)OL`rK#4d-haC7uaU8-L@?$K6(r<0e<;y83rK&` z3Q!1rD9WkcB8WBQ|WT|$u^lkr0UL4WH4EQTJyk@5gzHb18cOte4w zS`fLv8q;PvAZyY;*Go3Qw1~5#gP0D0ERla6M6#{; zr1l?bR}Nh+OC7)4bfAs(0ZD(axaw6j9v`^jh5>*Eo&$dAnt?c|Y*ckEORIiJXfGcM zEo`bmIq6rJm`XhkXR-^3d8^RTK2;nmVetHfUNugJG(4XLOu>HJA;0EWb~?&|0abr6 zxqVp@p=b3MN^|~?djPe!=eex(u!x>RYFAj|*T$cTi*Sd3Bme7Pri1tkK9N`KtRmXf zZYNBNtik97ct1R^vamQBfo9ZUR@k*LhIg8OR9d_{iv#t)LQV91^5}K5u{eyxwOFoU zHMVq$C>tfa@uNDW^_>EmO~WYQd(@!nKmAvSSIb&hPO|}g-3985t?|R&WZXvxS}Kt2i^eRe>WHb_;-K5cM4=@AN1>E&1c$k!w4O*oscx(f=<1K6l#8Exi)U(ZiZ zdr#YTP6?m1e1dOKysUjQ^>-MR={OuD00g6+(a^cvcmn#A_%Fh3Of%(qP5nvjS1=(> z|Ld8{u%(J}%2SY~+$4pjy{()5HN2MYUjg1X9umxOMFFPdM+IwOVEs4Z(olynvT%G) zt9|#VR}%O2@f6=+6uvbZv{3U)l;C{tuc zZ{K$rut=eS%3_~fQv^@$HV6#9)K9>|0qD$EV2$G^XUNBLM|5-ZmFF!KV)$4l^KVj@ zZ4fI}Knv*K%zPqK77}B-h_V{66VrmoZP2>@^euu8Rc}#qwRwt5uEBWcJJE5*5rT2t zA4Jpx`QQ~1Sh_n_a9x%Il!t1&B~J6p54zxAJx`REov${jeuL8h8x-z=?qwMAmPK5i z_*ES)BW(NZluu#Bmn1-NUKQip_X&_WzJy~J`WYxEJQ&Gu7DD< z&F9urE;}8S{x4{yB zaq~1Zrz%8)<`prSQv$eu5@1RY2WLu=waPTrn`WK%;G5(jt^FeM;gOdvXQjYhax~_> z{bS_`;t#$RYMu-;_Dd&o+LD<5Afg6v{NK?0d8dD5ohAN?QoocETBj?y{MB)jQ%UQ}#t3j&iL!qr@#6JEajR3@^k5wgLfI9S9dT2^f`2wd z%I#Q*@Ctk@w=(u)@QC}yBvUP&fFRR-uYKJ){Wp3&$s(o~W7OzgsUIPx0|ph2L1(r*_Pa@T@mcH^JxBjh09#fgo|W#gG7}|)k&uD1iZxb0 z@|Y)W79SKj9sS&EhmTD;uI#)FE6VwQ*YAr&foK$RI5H8_ripb$^=;U%gWbrrk4!5P zXDcyscEZoSH~n6VJu8$^6LE6)>+=o#Q-~*jmob^@191+Ot1w454e3)WMliLtY6~^w zW|n#R@~{5K#P+(w+XC%(+UcOrk|yzkEes=!qW%imu6>zjdb!B#`efaliKtN}_c!Jp zfyZa`n+Nx8;*AquvMT2;c8fnYszdDA*0(R`bsof1W<#O{v%O!1IO4WZe=>XBu_D%d zOwWDaEtX%@B>4V%f1+dKqcXT>m2!|&?}(GK8e&R=&w?V`*Vj)sCetWp9lr@@{xe6a zE)JL&;p}OnOO}Nw?vFyoccXT*z*?r}E8{uPtd;4<(hmX;d$rqJhEF}I+kD+m(ke;J z7Cm$W*CSdcD=RYEBhedg>tuT{PHqwCdDP*NkHv4rvQTXkzEn*Mb0oJz&+WfWIOS4@ zzpPJ|e%a-PIwOaOC7uQcHQ-q(SE(e@fj+7oC@34wzaBNaP;cw&gm{Z8yYX?V(lIv5 zKbg*zo1m5aGA4^lwJ|bAU=j3*d8S{vp!~fLFcK8s6%Ng55_qW_d*3R%e=34aDZPfD z&Le39j|ahp6E7B0*9OVdeMNrTErFatiE+=Z!XZ^tv0y%zZKXRTBuPyP&C{5(H?t)S zKV24_-TKpOmCPzU&by8R1Q5HY^@IDoeDA9MbgizgQ*F1Er~HVmvSU>vx}pZVQ&tr| zOtZl8vfY2#L<)gZ=ba&wG~EI*Vd?}lRMCf+!b5CDz$8~be-HKMo5omk$w7p4`Mym*IR8WiTz4^kKcUo^8Hkcsu14u z`Pkg`#-Y^A%CqJ0O@UF|caAulf68@(zhqp~YjzInh7qSN7Ov%Aj(Qz%{3zW|xubJ- ztNE_u_MO7Q_585r;xD?e=Er}@U1G@BKW5v$UM((eByhH2p!^g9W}99OD8VV@7d{#H zv)Eam+^K(5>-Ot~U!R$Um3prQmM)7DyK=iM%vy>BRX4#aH7*oCMmz07YB(EL!^%F7?CA#>zXqiYDhS;e?LYPTf(bte6B ztrfvDXYG*T;ExK-w?Knt{jNv)>KMk*sM^ngZ-WiUN;=0Ev^GIDMs=AyLg2V@3R z7ugNc45;4!RPxvzoT}3NCMeK$7j#q3r_xV(@t@OPRyoKBzHJ#IepkDsm$EJRxL)A* zf{_GQYttu^OXr$jHQn}zs$Eh|s|Z!r?Yi+bS-bi+PE*lH zo|6ztu6$r_?|B~S#m>imI!kQP9`6X426uHRri!wGcK;J;`%sFM(D#*Le~W*t2uH`Q z(HEO9-c_`mhA@4QhbW+tgtt9Pzx=_*3Kh~TB$SKmU4yx-Ay&)n%PZPKg#rD4H{%Ke zdMY@rf5EAFfqtrf?Vmk&N(_d-<=bvfOdPrYwY*;5%j@O6@O#Qj7LJTk-x3LN+dEKy+X z>~U8j3Ql`exr1jR>+S4nEy+4c2f{-Q!3_9)yY758tLGg7k^=nt<6h$YE$ltA+13S<}uOg#XHe6 zZHKdNsAnMQ_RIuB;mdoZ%RWpandzLR-BnjN2j@lkBbBd+?i ze*!5mC}!Qj(Q!rTu`KrRRqp22c=hF6<^v&iCDB`n7mHl;vdclcer%;{;=kA(PwdGG zdX#BWoC!leBC4);^J^tPkPbIe<)~nYb6R3u{HvC!NOQa?DC^Q`|_@ zcz;rk`a!4rSLAS>_=b@g?Yab4%=J3Cc7pRv8?_rHMl_aK*HSPU%0pG2Fyhef_biA!aW|-(( z*RIdG&Lmk(=(nk28Q1k1Oa$8Oa-phG%Mc6dT3>JIylcMMIc{&FsBYBD^n@#~>C?HG z*1&FpYVvXOU@~r2(BUa+KZv;tZ15#RewooEM0LFb>guQN;Z0EBFMFMZ=-m$a3;gVD z)2EBD4+*=6ZF?+)P`z@DOT;azK0Q4p4>NfwDR#Pd;no|{q_qB!zk1O8QojE;>zhPu z1Q=1z^0MYHo1*``H3ex|bW-Zy==5J4fE2;g6sq6YcXMYK5i|S^9(OSw#v!3^!EB<% zZF~J~CleS`V-peStyf*I%1^R88D;+8{{qN6-t!@gTARDg^w2`uSzFZbPQ!)q^oC}m zPo8VOQxq2BaIN`pAVFGu8!{p3}(+iZ`f4ck2ygVpEZMQW38nLpj3NQx+&sAkb8`}P3- zc>N*k6AG?r}bfO6_vccTuKX+*- z7W4Q#2``P0jIHYs)F>uG#AM#I6W2)!Nu2nD5{CRV_PmkDS2ditmbd#pggqEgAo%5oC?|CP zGa0CV)wA*ko!xC7pZYkqo{10CN_e00FX5SjWkI3?@XG}}bze!(&+k2$C-C`6temSk z_YyYpB^wh3woo`B zrMSTd4T?(X-jh`FeO76C(3xsOm9s2BP_b%ospg^!#*2*o9N;tf4(X9$qc_d(()yz5 zDk@1}u_Xd+86vy5RBs?LQCuYKCGPS;E4uFOi@V%1JTK&|eRf~lp$AV#;*#O}iRI2=i3rFL8{ zA^ptDZ0l6k-mq=hUJ0x$Y@J>UNfz~I5l63H(`~*v;qX`Z{zwsQQD-!wp0D&hyB8&Z z7$R07gIKGJ^%AvQ{4KM0edM39iFRx=P^6`!<1(s0t|JbB2tXs_B_IH9#ajH0C=-n+ z`nz`fKMBKLlf?2AC+|83M+0rqR%uhNGD;uKA6jOjp7YDe^4%0fRB<^bcjlS2KF~F; zu09wh1x0&4pG&76M;x8$u`b134t=dEPBn6PV|X29<#T4F1mxGF*HOgiWU8tN@cguI z_F@o+XL7FJztR63wC|j4x_DANzcX94r7Iz-O2x$({&qd*mdLG=-Rv)uZ}UlMR+F&q zU}=lkfb0p1>1Ho){o$@}mSKIV;h*$AND7~Dl)QzpFBlSM99Kx+F7GsVK5xcR? z_4Q(Z%cgk8ST}U;;=!LwyZVu^S$>B-Waeik%wzcKTIqeX=0FP(TGQ=nxi=dsS5BYF zl@?}NT!Y!Iyos^@v7XWXA{_bV~1lxz7gC?xuXxy0_?GaN!AhRRM5>)^t%&ODd;@HN5L{MD3 zc>i2keQZVm#?NrDwbfd}_<*5^U&w0zv~n-y8=GGN-!=_`FU^cM8oVCWRFxw?BM^YD zi=Vxz4q|jwPTg+?q7_XI)-S@gQkh>w0ZUB}a{^ z_i;`Y(~fvpI!vmW*A^|P7(6+@C4UeL2WATf{P1?H5rk`5{TL zcf!CgP6Mi{MvjZS)rfo7JLDZK7M7ANd$3`{j9baD*7{#Zu-33fOYUzjvtKzR2)_T1I1s7fe&z|=)QkX;=`zX8!Byw-veM#yr;|wjO^II>!B*B z0+w%;0(=*G3V@88t!}~zx)&do(uF=073Yeh*fEhZb3Vn>t!m(9p~Y_FdV3IgR)9eT z)~e9xpI%2deTWyHlXA(7srrfc_`7ACm!R>SoIgkuF8 z!wkOhrixFy9y@)GdxAntd!!7@=L_tFD2T5OdSUO)I%yj02le`qeQ=yKq$g^h)NG;# za(0J@#VBi^5YI|QI=rq{KlxwGabZJ0dKmfWDROkcM}lUN$@DV`K7fU?8CP2H23QPi zG?YF*=Vn=kTK*#Y_{AQN&oLju|0#E=fx%YVh>S{puu&K$b;BN*jIo@VYhqPiJPzzM>#kxoy0vW9i;ne2_BIG0zyRFp<3M(iY(%*M_>q0ulV2K}Tg zkG{EWKS{i%4DUuHi%DVKy%e+Q!~Uf`>>F6NgD{{I8~nO4!VgOvtFOc7(O)X`|7n*f zxBa4CJ-v9fUUH+`7sPVvpM_C*udZ@OTGTzx56QM5y~OlrZc&w9=)B?nmd@keRn+^= zvm~4sa5987LFDnU{(N|N zJAR8H@}p1fC+H(yTI4n#%~TbImMpuqYn9cQ<0QQ%=PzZItLkC*ef9WJUvfITKWh#D zc#__8`4am9%#NslIUw+<82#SR8AYG|woLfBg#!-&dqq}@P>|I0%lbdy0lSMmNe+}o zj0zZuFr6Wb?Y{Qy-S=|r`bdrDmhnmvkRnkdn`YCleU>Q$=je}LGhh>_QAj6aa_0Oc z%Swsmui;IRx7bN*=AAS@5yW&Y2hy;3&|HAiA8}!HT6!Z!RVn~MZg`RmI6&%#tBZDx zfD+y@Z~NWlk*4l13vmt3AK2wP!fQlnBbECL>?p)F?T)<`w&QN>cP_V>r7UTcsTaaP zTOb$f!P@zf$6>890NVKbIkG8rE?9!Y97sMSZjfF?A zYR8lp`LMoz~O?iaZN;gcX;LC-%Ia*R%A&SLx!YIf29?P+=XAAojK8!^OU*@?R&DK!#G_lsn!#;S375uZ&B0HH1|BO0R90$U>qs zSvHv>H~mAgNCcjo-e+;RjY6B9NCbQrZ|BHjTkehaU<9CSkdd>Vl*ifA2LNOP&R2Qdy3k3-TQ+ zbq=#vI43x`s=%~cGyN&y4Y!FxhwgDe@i6uv8^BLL&3z*SO=D0aLjih?gY4-9uWp5or)H+v~w6n5X#F-I52z=Z_p4JB(;M| zeaVFhuR2|3UD2MzVc~^nSoD2(dD#uL_1PdnIxeA{V5n`#3xf1Zx@4lw(DsQ&H$h zw#%3O<1173hjg2_nhKi!d1ej=h7y`hVjCNB6|HTnx>SWuCE-kgTnfT+YGX4_Lun({ zDv2`>d3vrS)tTf7ps_vvh!Cx^e1BFuWnEAh0(7fkNk|-3oU|iRWdsC6U)?Raft~HN z;^$U}vZK5O8|LV$>6X5T(uYkblv{zwPxnQBh(BQ5tA~J!vGiAMYP^_ki~pkIxDfOZ zUJDwq%O~WueeV6%uN<54&u*c&E4y431cklBNrb06zGOOy4XNT~JS-q(s6@)F@ovbe ze`fial(O4(-su%6@@1+V0MsdLLMyE8;)nou(7}czU(5ASaZYDT(kUZ0L(&g$nF^n9 z9-Pi`ZZLX&)^*M6As4_2Mmc9S7OT)F8KkL2NJ)KJcnCuWU=Wy402A&45#Q9Id~BBH z0cY*xlv!uXzKrXLH!xQu(OtJvEj|0-DmRj1vjFz{c*I4$Pe(+_V|^b~S!0xm{8lq= zZv)@NlcyL3Xdz+*|L137F7y6L-2VsrKw=q^S>F6i%<{Fr8zk06$Ay-(!L$fY@7mcng!2}L0t zgi|KxfB63Xtk_Q8#ZPipQ@!zgjdpEIbK_?q17Hoi4Eiyun$hrc>T(7pOLVLQE=lgGwA+A308p& z7@=09(|$>eLy5gLe{*|3b(M;1n;C^~v?o88jYib48eR4$QGsBFzd}3QuwO^_XE(=B zq+hMi0UFC|dB{LCwch7;zYT=NK})O%sgi0k#yV;My@24^B1+CuZmYOh0^b)5Ba_)) zC%i#_Iev&nsu%I|1N5=MVc#PrlunKAs&hY|3s5;@}`>sB>}gzxuB zB=2vrRyB3uiyW(hkDUNe1@&(b`;>ZvGgw|@s{zVC#_`HXIN_^J@Etb zA7A+F?ot37T{<-vTy8h&b3e+WKHE1oh;pUQrN4yRRrx?mT_9jRa2i4l1fUnLW^Cbl z!I1>VzyFe?VELWWhM?@?t-YPZkD-Qjo@bC2(o#ZtZmr{KZsdFWItV`rs$gp{724@C zL8K5}E0+DHcWcL^{BGei4>@J-3%a#$y6;I}=upc};-NDv-z#kPX26ylOpH)Ov1uU{ zkLj6oiH6l_s+B~_z;|Jc2oi?naS7#3H63~~lWj4rUnd=fCnKdkik<@R&kch9q##G{ z4u!%=rlM~Yp3jk*t8}1B`Sv6<%Z^}~1e@aq zg|JQ`QO2pSjAm-g*?IrNc$^~sIrNBo2$m|Sxanr?Mfs>2@Auu49 zGXlsS<9XS1&8h(dD*Hl&5HBDG!^pJ*lkau_Ur+7`7z;rcs$hT4we?3bT=7Fe<>{5( z2m2(c+hUz2BTHM8dCe*Z3XX&Av;b~a=$6EF>&^E8%nyxO@m_n!q&XD^A{SRjRZQ0L~qDeC=j&0$j6=LNIz@`ni^>ch|sv}^6 zlm>?28yPl@WmDPR?Y-A9X{U9Dv_IsbXJnzKCjkRksLOg#42uG2mE_acbTQ4)J|1V>%U@K(FP3AYhL0U zdeOCPN1qLv!|#c=p!_+%VNV(GHt`RuLRV^vz<5tt-r)yOK**kUWPspVAf|}ZL{LS= z@k(@@!P&W!>wwe`x{+GrFSWhHov7hu?{KuuT%kl#WO@*WX$i_@retlhQBj++SVNCx z5$78LxP>Z=^aJ)D280r_jj=zFfMJFXCIe^B{~V@d1rl_F(qo&AB4bC-vYL>x2jSKX zpuTG-6kgp3e^T&+dtV*i6a~)v@n?n*MffN59y}<0djUX zt27R+SE#hp8bzc#;rk$jw3r4)Q@eI$*`_)=Pvge8@8|8>H3X)<9YX6cXa=ii#Le;(qKm@%0-7$>2ShnYc`j#zJ7gu_FE^?uAkL|H)UIH#gPu^40!6^J=^ zr`}iwa^!4tzW~vOMZAaKF>*8A{^8m$i(VK)>?=#l`xrVe>wseSvM_aF zATNkY>kM_P3?1kE`uIq#mvr-wuTgUH0N<&JhF=(E9%^NS*HLm!4GZ4_XI zL=R5tlG5Mk_1rPfg)sk^llFuKPMPBhuU|L5q#yP_mzxp1o&pAzi-X31sgFpIHn@($ z_>=`AB5(8tP6p2zS5VEvH5J$M` z_much3>S7t3Yo`Yx!>83-hW9LYzDKP?mKdkD#QAK8*M((sx{eBQdrR<^3ZhFP81+& zBnJMUefQyNBji~$5d88Wfw1Lv59aJN9t2!pABLg;ewJ#LXL-10;QcJl+Y4Mtngb)k6JZlCf)3uD_u)J3sYyN;NN5hNbg$%W!i-GK%e&!Us)2IExWSss$YG(hm3kJ-h%yD z>8q^n$+4I(_y_mbT{du4P%h1j3oSpjhY97{+IZ`aA4ug!vNJ6*p?<2H(2w+GD3j$I z1TUXGyNzdf>_yB3grP~FZUs<2Quw;eEi*7s(-MiIkQ%@J^+WGdQvYSUN+TRiD-xto zJ=OUU+kxGYc!HCLNbCvR4lGTp~#L;DFzGd-#gJe*xf(P3hDQz|y)?b9mwU3WUVnpcqXM<@w%r-k*Wr^gzAv)8T^sqA=Ye z!7qy&exJmAcAt~CwS#@yNmjr8*T*!A6w4~E*ibaLRs0CFo(;R3=ODhDt6zWNodmo0 zXx&bT$6&+5c>a|WJ)F4G-^GjY0H#*tY=UNyYr_q5fsrcjk(c^~e*7Lf`!Jd`)p412 zn|^*hV= zFI4UbwA%X@smDd$cQOiMC%jfitTxTb+#`9`G=2rJDfK!E=5ra|So>lc{X1$~w28i+ z4p&cTGwZ#5VueiXS9O8#;RR$yg7tL9!^)Sz&pZYIzlSh}0}V{LxL$Cu%B4U5_}k}- zm~|CsD<076x@<>m=6w6N?WaThIBP`!u{-;WF)xc=2otx*lwf|5+MkdJePjh(B z9SH+%cHGCMAXNxB{_3^otDWdsV7Ob6n{0 z+&!(;iaHOX__5z_$Qk{%xYV%Ig@7iokGBwR`3642ZP#H#v9QGbWl8<|MS*=@qO@Uj z6+SZ_v9`1paUe5tFN~v(b#J3a_Lx0+;r9giZIx-A5TxdbG>xi#AZ5_z1V}B^n)sxT zz49}eK7EWb6wR!6-qQOrHQHkUvshvq%=G2d&@(#XM*Am1;WbnJ{X_!a{ZkphD$^TQ z=Iskb&}=lBm(RHiwJoGg`*NiQ6#RB$T#LF+>#ef;Jne&MxKPX!#r`&TVEFsp2jnNx>dClzpcPy&G&13a_<0qaR3i+k212~hoQ z8nMk{JP-t04I{GW5gUBqcJW-jSMrlw}>p)ptx?WKuCUV77taMiV zHok9V=6yv+Uts@fMY&A}amC=!Yj}eL@=e%XJ#%?agkt1jWF+10{(E9mHLDa>Ll7Vj zG=3cp%ljIB-6pC}6&`xJ*6WCP|IlglLWJ^?yviI8Ve)?V_i4%n;olzny62_`-|IGi z^=}p_O>Z8M;c4|RExu70E7ePW(HWVS&E$+LL6xSQgB`QfMQJ|4pCTFowA39p5P-|$ zUtM_H2HnP8_RoS~Vwk(FhbG zH41licj%=0a;Ln2STFBvU}Ne&O&%8bYKj!h1FA#sNM`232fX|U3QPp#3C?mN2;hE9 z;)!@5ixSPl<89^7gwhHc2YAX1KJK$#*3`KOMIQ253q7-*RJ5k)zp9GBO|Ga~X*^}US5oN@aG&waHV%vi~r{t^`ptTxb zL}q1W8S7*>7oWwvgV4uFLZ(@k`R*=LO_|Gu`prs~!WQXj-NLIa^2(7IHg>BG^N zc|i{-^=&Cek9dkJFQys|sjG9i>LLz|;yCv{^1i%c*h>8zF91kLvS9HBQi~ZU!JL`B zK8N+U0fr1*6??Ium)AF!6tc1eGhXIYL6IRT7rmKp7+>?%5Pa6zC5)KY$ycF0ZJ`G5nEQDG100U-jLkH8^UE4g6wq?sg%pP=-$&G#bcN`^?w3a6 z((s$6eRKcSEIslW-kk5Qi|5Mg-(xdLF}PxxVh$PuO}#aR6pW1kV4Af!Bqh*btXNNZ z>-4(IUl+L4dw+3LcpGut=qB45O+W)Q5?*zZ2A6rJcg`qkSvWA!j^r2mqKuCm6`Py? z@^T#Ux04HemPGd!Hs7NkZdVn1}8_j`o?)*OKZGS!`ff)gF zG?v-lj$wWNWCcw2Mg2o18D~1?3_b0XzdiKBNkYSDpcv@&kp0POmweJE2ZkIQ3B!a! zIgIoE+Xv?;34kyo^QYjZk+tEqZvq^#QG(OzX4~X+KtsoQoddTWUR(yo8R+ObEF1j<-syWOb>)JQ&Zbdu(sctU%Mt zW&YR0{ttY2TTXYZ?~WNU&cES1Z2q(7SrWDh``!J(JM+Nk$!hu&Y;(7E`ZNKTe0w+% zJc?Qnw2B+%UR}0;cB0Rufa(7-3FF}?629@LgTiEC&2uyL6NxexOp?AKT^aAx3gi(W zao>r>MPw0eQ3>IV02uLsC@>yK_epX6GRg4{NEL2wPPF9=*L2RV3yyK8DhuEK>rmmV z`&Q~#c`lgR&93TdOCja|ewOXmPNRh7!&dMT(1ett#iDr8HZW~VqWW@7fe9B6;7S+? zbC`d4@MEau&mKlOPKd>*10q0c{~^baw6!a*w^sY#0Xim{oOsiXiDOhbG&kl3c$$n1 zMRrD83&QucDSEcV*7LIp8VTA@F<%qe+_c`L;6on(>SjAU^}5c9!BCffT>$VQhe=)z z8(=Ej{5>jhmjB3{xDfj2R@VmHQ!CqjlO4KnuOmvHy3K#po$yp_V;p_MKjh1`(rzj6 zHW956k1yvntz{_g?Xbs`avK(IjlTnsu%htO;D7 z?J#x^EzuvVn&NA=!MEj7cwe5A-Z$Zk2LBZH$~%E* zf`((xH0?`}hs|HA%mtwfOEsZJxxrennkTYcwP#FKO5%Lpc^JXhSpV|ZH$Wr;`}`_( zIP==gd3LYyVtwD|*ZJGi{7~x8{=^bGVqu0RJ`n_BZH9+}kz%-4ZRsImi@rx%=ZEKs zcPnUXo6hbJV>fH;@1|bAHIe0ijYI*&kdT|HkDS$9No9 zCHo=*HWb~U+Dtzxr+Esao}6@|;Pf+E$ay0$kQp#s{wlw+7aIKbMdf`OqhoG*;Tco0 zjrP}VQG#Y2cJuqoJg&5({)S(BA}q9T1lGeWRyu=Je|)I!6a+aj!IP^1({)ZYe&x6w zt3a)Dq^TB+A7CdB0-}#z2Ur$W&h3YVw8==!xONy$uQmDWh-@15iEOt!q2m&?ZLA|w z8loSb(0}7y6Xu0?M5Uf4>VZGluB`wMf2oh;m)ghxVda>3m}4%V)r^0nVQ5V6f3>*) z0&VN!N0~GC^P}vj$`EDMZEmVV;N&RISY2C;$0;2(<{Lt&PKzqRByQdiEHGAbwtbS zPj`Da5%U6k1oEtVzI}QNw;!hT6F+~|@=c@$C4NtO@=xgP?|5MyZAyuCzcvq4rdAv@C06%gZ`9%I);R6UGiGJobfux+<0DLS&|MSG4UH z_~o{^^9>ixMg~mY!-@Fai{xaE4^;qy9iZN15Gbn5ZqHWf>Jc5Rv6(#n8`1NcCsdmG zab*dSXVPaE?)wCalD;$ivF%@nB#7D`@YG04p6ed9m}4iJW|pfVMLE<-c{=-8$e?cH zUdU#mCj4gb zZKA^b9p*9S(}8@tw~1RNPHr7tQr;P+-)D8|sq=*o)G%RGqt> zzP5yf`pVxb)I51D_G~Xp^GNK zVI6sAX)a9s)e{8N3?35YA6aQTXuyszK3ah~CemzA&CII#8F&F#KN41~8I^&_%}6MCNb{W87qAF`zj_Y^szhb> z3p3}KbOxotY|(lD=;)`fYE_*{S}x;f^SW#)SU&5X#o|-R|trpa|L5PS5aa0 zTHw8%SDSVtU4?vyrhnq+^@dgFS)|(y{~(4j%3UEiO-rBM9%`)8(dh33pMLiuurNY# z#10AsQ7%*0Cu_DSAU}P;X(JwA64~Q_^R%d_zSm^6Aux?Pn70PM>9EvLeOX z&w9c)pGmcL22;MO3C_B>=NC0RJpMp8?#ZUf=GWRvy z6RHq3B}=MGVg?9@iKFBpsvnkVh3{Vpp=`CcD=u~@ql{my|6?3ssi3mCOPnjI&E}VC zc@X+Yl>;;DNo0W0`0th!X{?luDhOC{E8N=?!w}K1{V=)+1={m(f`Oc|N=07>}3;z{-(A zm{JL=j?Sro5iecmE2-pWlRf(r%|HEQ7kgwQ9+kt=NBhtQI7OwcZ#3%$Uf%^r2nhjY zoQ08MfC%_X{O9~WcirMZMhn#z^ux4Erx-tf-6bHD)9eH&^L>^jvAd^9A^DCDs?0;k zkm7LE*KjP6`2d17MrQaaLqd_Rka}J$csvUec#hw78<=s(hyR>065~YCVCA9+#Q+; za(*L0IEw!r5P|@-;x33L$Lv9 zcuN8YG&g{<(SeJG18~(b!5yywSqQiLAX0;---;}mF5&b4lg|T?LwKREa{9YX_-zL@ZE?Zqi@HxK^2KO1>0LATu{te=T zprmHtY)bDVfxI1S}KBE7V zznP7KQ8HekWU#W6mw`dr-boV}pMQR==&5=Q5T=_q091jfc;R*jX#&=MQ%~@E@9^?`$v48ks<>(fI(F6L(5ppKy|$HWng*bKOb(4|cMUB&z$#ob#XV z5-mg)gmFIybZf=znm3ZPyUO^GJfxt0kmHjaTZ|sthsxXw&}Y)fOUSg=JhRSR^UjZ- zhqqb}Wsyw4zdnj6@#BAJa#-PdI4_dgafFXh85DsEQ_cT+5)XpZq$fZlBA_9UsE9r6 zEFec5?uqN@QhJ^IzwZrwl-5J`CmVPv{(YDTqEqWR^dI;5hXc~cxP%B3v&~s0`Ct89 z@S`i~a^c%V^N81dDT*ItFS*&IN;@O$EgzX0e7x&}TD=!zS}hTpezBLS>mdX(5< z)8DEI(-o_D)c-UX@dA1MuJ*yc>Hf4|`*B2S_O>w*-tbUwtiu`;W(Ud{HTty@(&x(T(F&;M zJ=?H>6`B7nf-90e8V`WSVp|0oEKB-P2M{}4ZDawzvM&a!y>`Y#jCsD%T_l``@ah(I2nJs~Q|%uSKu@k!m~*8B*IoA{*TgtF<(5sHCGG;n@NE%~Xt(G$^&<87u;}Na zx-8cq0g`uA(&RBFo=-4Y1GUZ<``Zw{xL4jfHkZw~%~wvtGueszcXt)_QwH8g!; z%s&3kSa~R$dO$-%L-)c@_hi7&>{6L_M>OZFkUQu;{sL_bUMStNrt{{&O(Wn~*zPOk zB>dnfszb29NSTf2pqIs68k|p-UrSrxgLHqi?3N-UFa!LHy9n1)=s>`yS+J{MEzS@ zNlfGtpma7kG&LR3JE@wB%rFA*h~~KitlO=IP)ZjN6dQLM6qsry zHkB#cyNh#n`)}bCrN1My*;k)^@>e4gJ`LJK?2)Pwp?4Tl4)4FA0(tvY+#1jOUM)xw zlMz4x-f@g^+yKUN`?Vu)|AwujArnM~Pa@y*Q9S8eS(u{-S%(Z5=R~pRl5ZGDjdqH% zC8rW&{##wOpU_oTIG4WXMk4&%2t1;lWcW5&!yxmOT*!hBcKyTqEcNoO+R2;Q?Yj+W z1-Y4?59fijz4(MIDwGe4-baYf08UCs;r|YefD-Md2ST;=cxwpgW=tR76-dQVAhn^= zG9Wk5lQk%jIR@KNU!UMp6@BfU;r+;y4VQ)D2!Il9HX%yW-9nOzV+m$YKzVaO`B8S7t z$!S2Mz`xw>V(RjE`0>bQp<0y&h~Y=M#jpy!#=dE>`=e_AjSZq6u!Dy1xJf~-7|0F! zPR9|n`e_7D2DIV2H(CESQ}hA>U>n|6`%z?YKEA~)BOVY%y=jPV zT=44R!L?J)736X#csn|lfBJ)o8ixaZclguWgrGO<`TN2FMfO}7;5}d+BlK0yTSH3* z4!=;5rOh85&2|x=46hkNaz?)U8&=bcfh=N_#8BNpZ2v$aVBo;sk^*X`v;4-LU;D>! zM*h12MxXIQy)SfAqE4;jY)wgnppazZkdNNVVF;(PLf^qK$FgY9+VFyBKE7UC|f z`R|?&egV11K3s$rJ6!GvoeW=jV*!-e(wA;x(2=d0E_e_%0x--0o8#~m^H1%AH5Z^B zn!TNPn927*bvaf0pt}zhK0o^V@WlGwwKo(*nQ|Q~4_;>~-8y20`HP>@UJa)3nEnGG z5Hwhs|FcmFG16ZVNb5hL`2Gc1{zWIMM{_OiKewV!hCi}U!VuE?s9wU-QbZ!)+Y^tS zGzp5OSi5iq6hmEr$w}&9DFgoB+i*`q`8TBi^MVS{SKEb8Aw%@K7@XCo(De2A`6%mf&a2#~y1N)+kJLD$1HCP!22)(U}xo2|j?WRzt(11j8Z_*v;P$R+Ug*Gy3VxV4K; zGGUGabnW*`Z}~`ydXL-l9e=GC$pY#z|63vy>E*m=$=j}iWP{sRTh0%H54`t>2xYH% zsk+M&u&pNgMCM@3e)Xc?jBWX-TIR_cQ1Z!RW7!B zBjZX=+^3}?SE)B+$EP+0oi1Fp5blDT?*}nsP>filqXH{ms zxU<$hetC`u)Wi+x|EKL-`y^#aQX+sDYIa{M;V%LqLrOk~lR>u0Q!+pyQSU4zY`?E^ z|5@)C)w6G_=i5YYC5SE_u(7hDNYr}uKT|@DSqF%S++lTIbIk^$a>{~0IH8KNFEy%+ zW#$&!ynpgNJh>6uR~?2c)ZMW+h0OKu231(7L_vETPaR+(P)Zy%0~yGm>E9?@@x!Jy z3PYgS}Q@b}x}E#F27@F+j}0=&Ql4gES&f8acMrPAVlVs9$97`FR))R5wI zc&}KFI1UIewh>3PkhnB7u zS3AT8_*|nexznG|Z*DU0c!K@jsI4J)5#DyNi#|e#`l1Vv1`1)*NVcy0LZ``aL0n8B zecupJ(rhq3u8bW0NIRhKYq$v1li+jp*4hfAd&wxYDE8vn1TQ7S@bTM|I2Ob z8vMOIxA7&_j{AKmD+O@EyXT`|dElt0pED^@IV0m)RPBUs*5jW60>>w1!@_G3aBKzG z_f(KfAPBk}-jQtR*Sroq!*3rbQ_m27e+YdzQjUb<_*k8vc_C)y!@cj5E>NxUhPu&g z@Z2<~esU`)ih+4opWe+K7sbN9n*9@n>#@n3*o z?xoROgDuvhq>jJ;Ve{6i<3roQNfgo5^4Q4(|GNExO2Dr7GjgA2zWuKp_K)K0R(6lv z!l$!zW-+T6mb3gQaAFviTQi{|*t%>{(mhTdy+y;Re4qT@kccy#{b z&zWy~kLO@>*WPj2k#H)|7L&gAJ37DmHQAme#@m;(Y8Nu^`D5vf8sZFW#+lA2!HK=( zJ)#hO6JD*`o~&c*&46d}g=Qj@SsoB5ikC z^1V8E+&<-OzuS_C`p5<<(A6fB`LXT(!kV^0_~hL6PpW4={l%|#xgdh?5EIk~lu8{D z2hiyhv3Yxij_#$Wu>P@7SYsl`-~3;}Ktx{34_NL^Kwin&=?!HDv3elQDbcU*qyYpN z(#yw~f1vFGK-t%CC-qa-4FYHbA^h>bag-I&*qaxwn?Qv|idE$<>1H|Gr6JtUu(he2$eg!N z@HTF@dG1)*y;4fxe)4_ZkpaBHH9hXp9p4|gLrRQyuevRd@gSS}JhRnWqrvm|U@>qM z=yl7RQROTKwQtzP3!zUF)_6Ld#NGA6v~2{J9Dd`h6{%+XsU#qGLh%`fB1Hc?wfayK zN`H4BpDp)npVQuu$DVW1qsBS&AJ2eP%6Qw>;k{)Z$8%HL=Q4(a$Ng2_vHw&vA!1L+9zc8vaX2GtqJ{L-;gvF0IR$em zMQ8@{Qp3+3Quk)TJ$?I<8KmwzD*7#(q<@Mc`dchngW}cRG14(Z6K7{T|LhFXwhqUQ;BET;cYqPcAcMgt6M$V9$(?jHo@Sud$an$U&5F zZ1QNh^ztt)E*d#Ij;<43oSKKnd+WNr$_r}+s_O_x6DZSB10*5Q{ourqq>mTl| zx4y^(cy+9;t@R=*j>3_dmm_m)$k$#937V(sllby&5)Xex^UD-|m|q<(jEd#@DV(of zAd7sSdmS*zUDqJ9|K%O2J2OfdUiK{{b{PCy)pi<;hp~7v1CQj&4-10 zgO<3dqhYH1#-Fa}Q{pjql5>>P6gZH21zLfxZ4$SK4T@7b!|`nWF9b*84Bq8&Eht;9 z*P72x&NUCZ7*@B$`FtE=hz5b}S`|c6Ey+j@D1ZibjJaRlR;{cxAWv z?Nqa>QqV*H-*zzaPvpLMHt~nl(x6?vrPpR?zn7~wow?oj*1TKmx4j71>$hvtC$DLD zUrz0^tiP0792U&dxJxNv@r}Elsjn^aSLUu=9#mD{&9n8|ayIL$!H3s>%KEvbchBFW z%cd?VU83mGF#Dar9*s~w&AnmQRQIOvR+uWsuZ?+|a=TzApXO@q^(r%8=}iv#wCnFq z=K9}JbqU@k99Q%j-}NNk+qLCP)jXfmOO|)@?mHcnynd6({mJisP1_}u7k)|eYHXWK z63eQ)E$ufFi!3CWUY2gw%e>omCv}qEX66aH-k&35f9`Q@Us|NPetVqe8=dX*VxJdn ze`q7b=Dn(UA(2sf&g)cOmQFhNJ#<-aMELJZbA#@to>25@kbW<)&!X01 z%NMJt>1ST)tyX)h@?`DxhbgCHr>S4wv}WC&Nw-!{+Z7$2D}74QAcXTvip=M0%Tp_N zor=k`)t|ra^ySr-+(|R9mB(E=`MX#y(wSw)$!iymzB;^c*>%&^*7HxTnRga=soSZT zdDl+9s;r!v8hk6POtzBaig4pRp7eWF(<8gufvNHPu6xs-=e{;mnHzJyGKE+8L0j}; z@%8-e^UCL5HhMiR>sD3Rve&yVZ#{Q1*CO8c+qSr^Z#CN;)(X5>tGG5yUw3<+CfhaL z%bP;hZ?jvgJU67BWyiy74_)6r)_nSxttxn0`0?HE^5(uydHVgP+HE$V?Lv)Leti43 zWA|;f-RqX``95>)^P-fw!Vi{3KNsII-*5f){gdxqd%gVdB1sOBNe=nEW%;i~g_P8J w!5uhoe-Jcg1nPN%MiEAtgE$;km@@t6ukO)1^!cY^83Pb_y85}Sb4q9e0FIsP9{>OV diff --git a/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/examples/flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png deleted file mode 100644 index 2f1632cfddf3d9dade342351e627a0a75609fb46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2218 zcmV;b2vzrqP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAuE6iGxuRCodHTWf3-RTMruyW6Fu zQYeUM04eX6D5c0FCjKKPrco1(K`<0SL=crI{PC3-^hZU0kQie$gh-5!7z6SH6Q0J% zqot*`H1q{R5fHFYS}dje@;kG=v$L0(yY0?wY2%*c?A&{2?!D*x?m71{of2gv!$5|C z3>qG_BW}7K_yUcT3A5C6QD<+{aq?x;MAUyAiJn#Jv8_zZtQ{P zTRzbL3U9!qVuZzS$xKU10KiW~Bgdcv1-!uAhQxf3a7q+dU6lj?yoO4Lq4TUN4}h{N z*fIM=SS8|C2$(T>w$`t@3Tka!(r!7W`x z-isCVgQD^mG-MJ;XtJuK3V{Vy72GQ83KRWsHU?e*wrhKk=ApIYeDqLi;JI1e zuvv}5^Dc=k7F7?nm3nIw$NVmU-+R>> zyqOR$-2SDpJ}Pt;^RkJytDVXNTsu|mI1`~G7yw`EJR?VkGfNdqK9^^8P`JdtTV&tX4CNcV4 z&N06nZa??Fw1AgQOUSE2AmPE@WO(Fvo`%m`cDgiv(fAeRA%3AGXUbsGw{7Q`cY;1BI#ac3iN$$Hw z0LT0;xc%=q)me?Y*$xI@GRAw?+}>=9D+KTk??-HJ4=A>`V&vKFS75@MKdSF1JTq{S zc1!^8?YA|t+uKigaq!sT;Z!&0F2=k7F0PIU;F$leJLaw2UI6FL^w}OG&!;+b%ya1c z1n+6-inU<0VM-Y_s5iTElq)ThyF?StVcebpGI znw#+zLx2@ah{$_2jn+@}(zJZ{+}_N9BM;z)0yr|gF-4=Iyu@hI*Lk=-A8f#bAzc9f z`Kd6K--x@t04swJVC3JK1cHY-Hq+=|PN-VO;?^_C#;coU6TDP7Bt`;{JTG;!+jj(` zw5cLQ-(Cz-Tlb`A^w7|R56Ce;Wmr0)$KWOUZ6ai0PhzPeHwdl0H(etP zUV`va_i0s-4#DkNM8lUlqI7>YQLf)(lz9Q3Uw`)nc(z3{m5ZE77Ul$V%m)E}3&8L0 z-XaU|eB~Is08eORPk;=<>!1w)Kf}FOVS2l&9~A+@R#koFJ$Czd%Y(ENTV&A~U(IPI z;UY+gf+&6ioZ=roly<0Yst8ck>(M=S?B-ys3mLdM&)ex!hbt+ol|T6CTS+Sc0jv(& z7ijdvFwBq;0a{%3GGwkDKTeG`b+lyj0jjS1OMkYnepCdoosNY`*zmBIo*981BU%%U z@~$z0V`OVtIbEx5pa|Tct|Lg#ZQf5OYMUMRD>Wdxm5SAqV2}3!ceE-M2 z@O~lQ0OiKQp}o9I;?uxCgYVV?FH|?Riri*U$Zi_`V2eiA>l zdSm6;SEm6#T+SpcE8Ro_f2AwxzI z44hfe^WE3!h@W3RDyA_H440cpmYkv*)6m1XazTqw%=E5Xv7^@^^T7Q2wxr+Z2kVYr - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/flutter/example/macos/Runner/Configs/AppInfo.xcconfig b/examples/flutter/example/macos/Runner/Configs/AppInfo.xcconfig deleted file mode 100644 index 322ba235..00000000 --- a/examples/flutter/example/macos/Runner/Configs/AppInfo.xcconfig +++ /dev/null @@ -1,14 +0,0 @@ -// Application-level settings for the Runner target. -// -// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the -// future. If not, the values below would default to using the project name when this becomes a -// 'flutter create' template. - -// The application's name. By default this is also the title of the Flutter window. -PRODUCT_NAME = example - -// The application's bundle identifier -PRODUCT_BUNDLE_IDENTIFIER = app.polyvox.example - -// The copyright displayed in application information -PRODUCT_COPYRIGHT = Copyright © 2024 app.polyvox. All rights reserved. diff --git a/examples/flutter/example/macos/Runner/Configs/Debug.xcconfig b/examples/flutter/example/macos/Runner/Configs/Debug.xcconfig deleted file mode 100644 index 36b0fd94..00000000 --- a/examples/flutter/example/macos/Runner/Configs/Debug.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Debug.xcconfig" -#include "Warnings.xcconfig" diff --git a/examples/flutter/example/macos/Runner/Configs/Release.xcconfig b/examples/flutter/example/macos/Runner/Configs/Release.xcconfig deleted file mode 100644 index dff4f495..00000000 --- a/examples/flutter/example/macos/Runner/Configs/Release.xcconfig +++ /dev/null @@ -1,2 +0,0 @@ -#include "../../Flutter/Flutter-Release.xcconfig" -#include "Warnings.xcconfig" diff --git a/examples/flutter/example/macos/Runner/Configs/Warnings.xcconfig b/examples/flutter/example/macos/Runner/Configs/Warnings.xcconfig deleted file mode 100644 index 42bcbf47..00000000 --- a/examples/flutter/example/macos/Runner/Configs/Warnings.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings -GCC_WARN_UNDECLARED_SELECTOR = YES -CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES -CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE -CLANG_WARN__DUPLICATE_METHOD_MATCH = YES -CLANG_WARN_PRAGMA_PACK = YES -CLANG_WARN_STRICT_PROTOTYPES = YES -CLANG_WARN_COMMA = YES -GCC_WARN_STRICT_SELECTOR_MATCH = YES -CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES -CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES -GCC_WARN_SHADOW = YES -CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/examples/flutter/example/macos/Runner/DebugProfile.entitlements b/examples/flutter/example/macos/Runner/DebugProfile.entitlements deleted file mode 100644 index dddb8a30..00000000 --- a/examples/flutter/example/macos/Runner/DebugProfile.entitlements +++ /dev/null @@ -1,12 +0,0 @@ - - - - - com.apple.security.app-sandbox - - com.apple.security.cs.allow-jit - - com.apple.security.network.server - - - diff --git a/examples/flutter/example/macos/Runner/Info.plist b/examples/flutter/example/macos/Runner/Info.plist deleted file mode 100644 index 4789daa6..00000000 --- a/examples/flutter/example/macos/Runner/Info.plist +++ /dev/null @@ -1,32 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIconFile - - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSMinimumSystemVersion - $(MACOSX_DEPLOYMENT_TARGET) - NSHumanReadableCopyright - $(PRODUCT_COPYRIGHT) - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/examples/flutter/example/macos/Runner/MainFlutterWindow.swift b/examples/flutter/example/macos/Runner/MainFlutterWindow.swift deleted file mode 100644 index 3cc05eb2..00000000 --- a/examples/flutter/example/macos/Runner/MainFlutterWindow.swift +++ /dev/null @@ -1,15 +0,0 @@ -import Cocoa -import FlutterMacOS - -class MainFlutterWindow: NSWindow { - override func awakeFromNib() { - let flutterViewController = FlutterViewController() - let windowFrame = self.frame - self.contentViewController = flutterViewController - self.setFrame(windowFrame, display: true) - - RegisterGeneratedPlugins(registry: flutterViewController) - - super.awakeFromNib() - } -} diff --git a/examples/flutter/example/macos/Runner/Release.entitlements b/examples/flutter/example/macos/Runner/Release.entitlements deleted file mode 100644 index 852fa1a4..00000000 --- a/examples/flutter/example/macos/Runner/Release.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - - com.apple.security.app-sandbox - - - diff --git a/examples/flutter/example/macos/RunnerTests/RunnerTests.swift b/examples/flutter/example/macos/RunnerTests/RunnerTests.swift deleted file mode 100644 index 61f3bd1f..00000000 --- a/examples/flutter/example/macos/RunnerTests/RunnerTests.swift +++ /dev/null @@ -1,12 +0,0 @@ -import Cocoa -import FlutterMacOS -import XCTest - -class RunnerTests: XCTestCase { - - func testExample() { - // If you add code to the Runner application, consider adding tests here. - // See https://developer.apple.com/documentation/xctest for more information about using XCTest. - } - -} diff --git a/examples/flutter/example/pubspec.yaml b/examples/flutter/example/pubspec.yaml deleted file mode 100644 index 2f10f80c..00000000 --- a/examples/flutter/example/pubspec.yaml +++ /dev/null @@ -1,51 +0,0 @@ -name: thermion_flutter_example -description: Demonstrates how to use the thermion_flutter plugin. - -# The following line prevents the package from being accidentally published to -# pub.dev using `flutter pub publish`. This is preferred for private packages. -publish_to: 'none' # Remove this line if you wish to publish to pub.dev - -environment: - sdk: ">=3.3.0 <4.0.0" - -dependencies: - flutter: - sdk: flutter - path_provider: - thermion_flutter: - path: ../../../thermion_flutter/thermion_flutter - cupertino_icons: ^1.0.2 - web: - -dependency_overrides: - thermion_flutter: - path: ../../../thermion_flutter/thermion_flutter - thermion_flutter_platform_interface: - path: ../../../thermion_flutter/thermion_flutter_platform_interface - thermion_flutter_ffi: - path: ../../../thermion_flutter/thermion_flutter_ffi - thermion_flutter_web: - path: ../../../thermion_flutter/thermion_flutter_web - thermion_dart: - path: ../../../thermion_dart - -dev_dependencies: - flutter_test: - sdk: flutter - integration_test: - sdk: flutter - flutter_lints: ^1.0.0 - crypto: - image_compare: ^1.1.2 - -# The following section is specific to Flutter. -flutter: - uses-material-design: true - assets: - - assets/ - - assets/shapes/ - - assets/default_env/ - - assets/BusterDrone/ - - assets/BusterDrone/textures/ - - assets/FlightHelmet/ - diff --git a/examples/flutter/example/test/widget_test.dart b/examples/flutter/example/test/widget_test.dart deleted file mode 100644 index c0873888..00000000 --- a/examples/flutter/example/test/widget_test.dart +++ /dev/null @@ -1,27 +0,0 @@ -// This is a basic Flutter widget test. -// -// To perform an interaction with a widget in your test, use the WidgetTester -// utility that Flutter provides. For example, you can send tap and scroll -// gestures. You can also use WidgetTester to find child widgets in the widget -// tree, read text, and verify that the values of widget properties are correct. - -import 'package:flutter/material.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:thermion_flutter_example/main.dart'; - -void main() { - testWidgets('Verify Platform version', (WidgetTester tester) async { - // Build our app and trigger a frame. - await tester.pumpWidget(const MyApp()); - - // Verify that platform version is retrieved. - expect( - find.byWidgetPredicate( - (Widget widget) => - widget is Text && widget.data!.startsWith('Running on:'), - ), - findsOneWidget, - ); - }); -} diff --git a/examples/flutter/example/test_driver/compare_goldens.sh b/examples/flutter/example/test_driver/compare_goldens.sh deleted file mode 100644 index 952ec892..00000000 --- a/examples/flutter/example/test_driver/compare_goldens.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -device=$1 -if [ -z "$device" ]; then - echo "Usage: $0 " - exit 1; -fi - -rm -f integration_test/goldens/{ios,macos,windows,android}/diffs/*.png -flutter drive --driver=test_driver/integration_test.dart -d $1 --target=integration_test/plugin_integration_test.dart diff --git a/examples/flutter/example/test_driver/integration_test.dart b/examples/flutter/example/test_driver/integration_test.dart deleted file mode 100644 index 752a3842..00000000 --- a/examples/flutter/example/test_driver/integration_test.dart +++ /dev/null @@ -1,58 +0,0 @@ -import 'dart:io'; - -import 'package:integration_test/integration_test_driver_extended.dart'; -import 'package:image_compare/image_compare.dart'; - -Future main() async { - await integrationDriver( - onScreenshot: ( - String screenshotName, - List screenshotBytes, [ - Map? args, - ]) async { - final dir = screenshotName.split("/")[0]; - final name = screenshotName.split("/")[1]; - final File golden = await File('integration_test/goldens/$dir/$name.png'); - - if (!golden.existsSync()) { - throw Exception( - "Golden image ${golden.path} doesn't exist yet. Make sure you have run integraton_test_update_goldens.dart first"); - } - - var result = await compareImages( - src1: screenshotBytes, - src2: golden.readAsBytesSync(), - algorithm: ChiSquareDistanceHistogram()); - - print(result); - - // TODO - it would be preferable to use Flutter's GoldenFileComparator here, e.g. - // - // ```var comparator = LocalFileComparator(testImage.uri); - // comparator.compare(imageBytes, golden) - // comparator.getFailureFile(failure, golden, basedir) - // var result = await comparator.compare( - // Uint8List.fromList(screenshotBytes), golden.uri); - // if (!result.passed) { - // for (var key in result.diffs!.keys) { - // var byteData = await result.diffs![key]!.toByteData(); - // File('integration_test/goldens/$dir/diffs/$name.png') - // .writeAsBytesSync( - // byteData!.buffer.asUint8List(byteData!.offsetInBytes)); - // } - // return false; - // }``` - // but this is only available via a Flutter shell which is currently unavailable (this script is run as a plain Dart file I guess). - // let's revisit if/when this changes - // see https://github.com/flutter/flutter/issues/51890 and https://github.com/flutter/flutter/issues/103222 - - if (result > 0.005) { - File('integration_test/goldens/$dir/diffs/$name.png') - .writeAsBytesSync(screenshotBytes); - return false; - } - - return true; - }, - ); -} diff --git a/examples/flutter/example/test_driver/integration_test_update_goldens.dart b/examples/flutter/example/test_driver/integration_test_update_goldens.dart deleted file mode 100644 index e32febe2..00000000 --- a/examples/flutter/example/test_driver/integration_test_update_goldens.dart +++ /dev/null @@ -1,22 +0,0 @@ -import 'dart:io'; -import 'package:crypto/crypto.dart'; -import 'package:integration_test/integration_test_driver_extended.dart'; - -Future main() async { - await integrationDriver( - onScreenshot: ( - String screenshotName, - List screenshotBytes, [ - Map? args, - ]) async { - final dir = screenshotName.split("/")[0]; - final name = screenshotName.split("/")[1]; - final File image = await File('integration_test/goldens/$dir/$name.png') - .create(recursive: true); - - image.writeAsBytesSync(screenshotBytes); - - return true; - }, - ); -} diff --git a/examples/flutter/example/test_driver/regenerate_goldens.sh b/examples/flutter/example/test_driver/regenerate_goldens.sh deleted file mode 100644 index b1f06b4f..00000000 --- a/examples/flutter/example/test_driver/regenerate_goldens.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash -device=$1 -if [ -z "$device" ]; then - echo "Usage: $0 " - exit 1; -fi -rm -f integration_test/goldens/{ios,macos,windows,android}/*.png -flutter drive --driver=test_driver/integration_test_update_goldens.dart -d $1 --target=integration_test/plugin_integration_test.dart diff --git a/examples/flutter/example/web/favicon.png b/examples/flutter/example/web/favicon.png deleted file mode 100644 index 8aaa46ac1ae21512746f852a42ba87e4165dfdd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM diff --git a/examples/flutter/example/web/icons/Icon-192.png b/examples/flutter/example/web/icons/Icon-192.png deleted file mode 100644 index b749bfef07473333cf1dd31e9eed89862a5d52aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5292 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 diff --git a/examples/flutter/example/web/icons/Icon-512.png b/examples/flutter/example/web/icons/Icon-512.png deleted file mode 100644 index 88cfd48dff1169879ba46840804b412fe02fefd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8252 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 diff --git a/examples/flutter/example/web/icons/Icon-maskable-192.png b/examples/flutter/example/web/icons/Icon-maskable-192.png deleted file mode 100644 index eb9b4d76e525556d5d89141648c724331630325d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! diff --git a/examples/flutter/example/web/icons/Icon-maskable-512.png b/examples/flutter/example/web/icons/Icon-maskable-512.png deleted file mode 100644 index d69c56691fbdb0b7efa65097c7cc1edac12a6d3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20998 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 MPgg&ebxsLQ025IeI{*Lx diff --git a/examples/flutter/example/web/index.html b/examples/flutter/example/web/index.html deleted file mode 100644 index afc3b66e..00000000 --- a/examples/flutter/example/web/index.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - thermion_flutter_example - - - - - - - - - - -
- - - diff --git a/examples/flutter/example/web/main.dart b/examples/flutter/example/web/main.dart deleted file mode 100644 index 91a2b0f9..00000000 --- a/examples/flutter/example/web/main.dart +++ /dev/null @@ -1,53 +0,0 @@ - -// import 'package:polyvox_engine/app/app.dart'; -// import 'package:polyvox_engine/app/states/states.dart'; -// import 'package:polyvox_engine/services/asr_service.dart'; -// import 'package:polyvox_web/error_handler.dart'; -// import 'package:polyvox_web/services/web_asr_service.dart'; -// import 'package:polyvox_web/services/web_asset_repository.dart'; -// import 'package:polyvox_web/services/web_audio_service.dart'; -// import 'package:polyvox_web/services/web_auth_service.dart'; -// import 'package:polyvox_web/services/web_data_provider.dart'; -// import 'package:polyvox_web/services/web_purchase_service.dart'; -// import 'package:polyvox_web/services/web_scoring_service.dart'; -// import 'package:polyvox_web/web_canvas.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer.dart'; -import 'package:thermion_dart/thermion_dart/compatibility/web/compatibility.dart'; -import 'package:thermion_dart/thermion_dart/thermion_viewer_ffi.dart'; -import 'package:thermion_dart/thermion_dart/compatibility/web/interop/thermion_dart_js_export_type.dart'; -import 'package:thermion_dart/thermion_dart/compatibility/web/interop/thermion_dart_js_extension_type.dart'; -import 'package:web/web.dart'; - -void main(List arguments) async { - var viewer = await WebViewer.initialize(); - - ThermionDartJSExportViewer.initializeBindings(viewer); - - print("Set wrapper, running!"); - - while (true) { - await Future.delayed(Duration(milliseconds: 16)); - } - print("Finisehd!"); -} - -class WebViewer { - static Future initialize() async { - var fc = FooChar(); - final canvas = document.getElementById("canvas") as HTMLCanvasElement; - canvas.width = window.innerWidth; - canvas.height = window.innerHeight; - - var resourceLoader = thermion_dart_web_get_resource_loader_wrapper(); - - var viewer = ThermionViewerFFI(resourceLoader: resourceLoader); - - await viewer.initialized; - var width = window.innerWidth; - var height = window.innerHeight; - await viewer.createSwapChain(width.toDouble(), height.toDouble()); - await viewer.updateViewportAndCameraProjection( - width.toDouble(), height.toDouble()); - return viewer; - } -} diff --git a/examples/flutter/example/web/main.mjs b/examples/flutter/example/web/main.mjs deleted file mode 100644 index 559c241f..00000000 --- a/examples/flutter/example/web/main.mjs +++ /dev/null @@ -1,358 +0,0 @@ -let buildArgsList; - -// `modulePromise` is a promise to the `WebAssembly.module` object to be -// instantiated. -// `importObjectPromise` is a promise to an object that contains any additional -// imports needed by the module that aren't provided by the standard runtime. -// The fields on this object will be merged into the importObject with which -// the module will be instantiated. -// This function returns a promise to the instantiated module. -export const instantiate = async (modulePromise, importObjectPromise) => { - let dartInstance; - - function stringFromDartString(string) { - const totalLength = dartInstance.exports.$stringLength(string); - let result = ''; - let index = 0; - while (index < totalLength) { - let chunkLength = Math.min(totalLength - index, 0xFFFF); - const array = new Array(chunkLength); - for (let i = 0; i < chunkLength; i++) { - array[i] = dartInstance.exports.$stringRead(string, index++); - } - result += String.fromCharCode(...array); - } - return result; - } - - function stringToDartString(string) { - const length = string.length; - let range = 0; - for (let i = 0; i < length; i++) { - range |= string.codePointAt(i); - } - if (range < 256) { - const dartString = dartInstance.exports.$stringAllocate1(length); - for (let i = 0; i < length; i++) { - dartInstance.exports.$stringWrite1(dartString, i, string.codePointAt(i)); - } - return dartString; - } else { - const dartString = dartInstance.exports.$stringAllocate2(length); - for (let i = 0; i < length; i++) { - dartInstance.exports.$stringWrite2(dartString, i, string.charCodeAt(i)); - } - return dartString; - } - } - - // Prints to the console - function printToConsole(value) { - if (typeof dartPrint == "function") { - dartPrint(value); - return; - } - if (typeof console == "object" && typeof console.log != "undefined") { - console.log(value); - return; - } - if (typeof print == "function") { - print(value); - return; - } - - throw "Unable to print message: " + js; - } - - // Converts a Dart List to a JS array. Any Dart objects will be converted, but - // this will be cheap for JSValues. - function arrayFromDartList(constructor, list) { - const length = dartInstance.exports.$listLength(list); - const array = new constructor(length); - for (let i = 0; i < length; i++) { - array[i] = dartInstance.exports.$listRead(list, i); - } - return array; - } - - buildArgsList = function(list) { - const dartList = dartInstance.exports.$makeStringList(); - for (let i = 0; i < list.length; i++) { - dartInstance.exports.$listAdd(dartList, stringToDartString(list[i])); - } - return dartList; - } - - // A special symbol attached to functions that wrap Dart functions. - const jsWrappedDartFunctionSymbol = Symbol("JSWrappedDartFunction"); - - function finalizeWrapper(dartFunction, wrapped) { - wrapped.dartFunction = dartFunction; - wrapped[jsWrappedDartFunctionSymbol] = true; - return wrapped; - } - - // Imports - const dart2wasm = { - -_11: x0 => new Array(x0), -_12: x0 => new Promise(x0), -_17: (o,s,v) => o[s] = v, -_18: f => finalizeWrapper(f,x0 => dartInstance.exports._18(f,x0)), -_19: f => finalizeWrapper(f,x0 => dartInstance.exports._19(f,x0)), -_20: (x0,x1,x2) => x0.call(x1,x2), -_21: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._21(f,x0,x1)), -_22: (x0,x1) => x0.call(x1), -_23: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._23(f,x0,x1)), -_44: () => Symbol("jsBoxedDartObjectProperty"), -_75: (x0,x1) => x0.getElementById(x1), -_1495: (x0,x1) => x0.width = x1, -_1497: (x0,x1) => x0.height = x1, -_1874: () => globalThis.window, -_1916: x0 => x0.innerWidth, -_1917: x0 => x0.innerHeight, -_6850: () => globalThis.document, -_12719: () => globalThis.createVoidCallback(), -_12720: () => globalThis.createVoidPointerCallback(), -_12721: () => globalThis.createBoolCallback(), -_12722: () => globalThis.createBoolCallback(), -_12724: v => stringToDartString(v.toString()), -_12740: () => { - let stackString = new Error().stack.toString(); - let frames = stackString.split('\n'); - let drop = 2; - if (frames[0] === 'Error') { - drop += 1; - } - return frames.slice(drop).join('\n'); - }, -_12759: s => stringToDartString(JSON.stringify(stringFromDartString(s))), -_12760: s => printToConsole(stringFromDartString(s)), -_12761: f => finalizeWrapper(f,() => dartInstance.exports._12761(f)), -_12762: f => finalizeWrapper(f,() => dartInstance.exports._12762(f)), -_12763: f => finalizeWrapper(f,x0 => dartInstance.exports._12763(f,x0)), -_12764: f => finalizeWrapper(f,() => dartInstance.exports._12764(f)), -_12765: f => finalizeWrapper(f,x0 => dartInstance.exports._12765(f,x0)), -_12766: f => finalizeWrapper(f,() => dartInstance.exports._12766(f)), -_12767: f => finalizeWrapper(f,x0 => dartInstance.exports._12767(f,x0)), -_12768: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12768(f,x0,x1)), -_12769: f => finalizeWrapper(f,() => dartInstance.exports._12769(f)), -_12770: f => finalizeWrapper(f,(x0,x1,x2,x3) => dartInstance.exports._12770(f,x0,x1,x2,x3)), -_12771: f => finalizeWrapper(f,x0 => dartInstance.exports._12771(f,x0)), -_12772: f => finalizeWrapper(f,() => dartInstance.exports._12772(f)), -_12773: f => finalizeWrapper(f,x0 => dartInstance.exports._12773(f,x0)), -_12774: f => finalizeWrapper(f,x0 => dartInstance.exports._12774(f,x0)), -_12775: f => finalizeWrapper(f,() => dartInstance.exports._12775(f)), -_12776: f => finalizeWrapper(f,(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9) => dartInstance.exports._12776(f,x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)), -_12777: f => finalizeWrapper(f,x0 => dartInstance.exports._12777(f,x0)), -_12778: f => finalizeWrapper(f,() => dartInstance.exports._12778(f)), -_12779: f => finalizeWrapper(f,x0 => dartInstance.exports._12779(f,x0)), -_12780: f => finalizeWrapper(f,x0 => dartInstance.exports._12780(f,x0)), -_12781: f => finalizeWrapper(f,x0 => dartInstance.exports._12781(f,x0)), -_12782: f => finalizeWrapper(f,x0 => dartInstance.exports._12782(f,x0)), -_12783: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12783(f,x0,x1)), -_12784: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12784(f,x0,x1)), -_12785: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12785(f,x0,x1)), -_12786: f => finalizeWrapper(f,() => dartInstance.exports._12786(f)), -_12787: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12787(f,x0,x1)), -_12788: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12788(f,x0,x1)), -_12789: f => finalizeWrapper(f,() => dartInstance.exports._12789(f)), -_12790: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12790(f,x0,x1)), -_12791: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12791(f,x0,x1)), -_12792: f => finalizeWrapper(f,x0 => dartInstance.exports._12792(f,x0)), -_12793: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12793(f,x0,x1)), -_12794: f => finalizeWrapper(f,(x0,x1,x2,x3,x4) => dartInstance.exports._12794(f,x0,x1,x2,x3,x4)), -_12795: f => finalizeWrapper(f,x0 => dartInstance.exports._12795(f,x0)), -_12796: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12796(f,x0,x1)), -_12797: f => finalizeWrapper(f,x0 => dartInstance.exports._12797(f,x0)), -_12798: f => finalizeWrapper(f,() => dartInstance.exports._12798(f)), -_12799: f => finalizeWrapper(f,() => dartInstance.exports._12799(f)), -_12800: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12800(f,x0,x1,x2)), -_12801: f => finalizeWrapper(f,() => dartInstance.exports._12801(f)), -_12802: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12802(f,x0,x1)), -_12803: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12803(f,x0,x1)), -_12804: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12804(f,x0,x1,x2)), -_12805: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12805(f,x0,x1)), -_12806: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12806(f,x0,x1)), -_12807: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12807(f,x0,x1)), -_12808: f => finalizeWrapper(f,() => dartInstance.exports._12808(f)), -_12809: f => finalizeWrapper(f,() => dartInstance.exports._12809(f)), -_12810: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12810(f,x0,x1,x2)), -_12811: f => finalizeWrapper(f,x0 => dartInstance.exports._12811(f,x0)), -_12812: f => finalizeWrapper(f,x0 => dartInstance.exports._12812(f,x0)), -_12813: f => finalizeWrapper(f,x0 => dartInstance.exports._12813(f,x0)), -_12814: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12814(f,x0,x1)), -_12815: f => finalizeWrapper(f,() => dartInstance.exports._12815(f)), -_12816: f => finalizeWrapper(f,() => dartInstance.exports._12816(f)), -_12817: f => finalizeWrapper(f,x0 => dartInstance.exports._12817(f,x0)), -_12818: f => finalizeWrapper(f,() => dartInstance.exports._12818(f)), -_12819: f => finalizeWrapper(f,() => dartInstance.exports._12819(f)), -_12820: f => finalizeWrapper(f,() => dartInstance.exports._12820(f)), -_12821: f => finalizeWrapper(f,() => dartInstance.exports._12821(f)), -_12822: f => finalizeWrapper(f,() => dartInstance.exports._12822(f)), -_12823: f => finalizeWrapper(f,() => dartInstance.exports._12823(f)), -_12824: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12824(f,x0,x1,x2)), -_12825: f => finalizeWrapper(f,() => dartInstance.exports._12825(f)), -_12826: f => finalizeWrapper(f,x0 => dartInstance.exports._12826(f,x0)), -_12827: f => finalizeWrapper(f,x0 => dartInstance.exports._12827(f,x0)), -_12828: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12828(f,x0,x1,x2)), -_12829: f => finalizeWrapper(f,x0 => dartInstance.exports._12829(f,x0)), -_12830: f => finalizeWrapper(f,x0 => dartInstance.exports._12830(f,x0)), -_12831: f => finalizeWrapper(f,(x0,x1,x2,x3,x4,x5,x6) => dartInstance.exports._12831(f,x0,x1,x2,x3,x4,x5,x6)), -_12832: f => finalizeWrapper(f,x0 => dartInstance.exports._12832(f,x0)), -_12833: f => finalizeWrapper(f,(x0,x1,x2,x3) => dartInstance.exports._12833(f,x0,x1,x2,x3)), -_12834: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12834(f,x0,x1)), -_12835: f => finalizeWrapper(f,(x0,x1,x2,x3,x4) => dartInstance.exports._12835(f,x0,x1,x2,x3,x4)), -_12836: f => finalizeWrapper(f,(x0,x1,x2,x3,x4) => dartInstance.exports._12836(f,x0,x1,x2,x3,x4)), -_12837: f => finalizeWrapper(f,(x0,x1,x2,x3,x4,x5) => dartInstance.exports._12837(f,x0,x1,x2,x3,x4,x5)), -_12838: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12838(f,x0,x1,x2)), -_12839: f => finalizeWrapper(f,x0 => dartInstance.exports._12839(f,x0)), -_12840: f => finalizeWrapper(f,(x0,x1,x2) => dartInstance.exports._12840(f,x0,x1,x2)), -_12841: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12841(f,x0,x1)), -_12842: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12842(f,x0,x1)), -_12843: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12843(f,x0,x1)), -_12844: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12844(f,x0,x1)), -_12845: f => finalizeWrapper(f,x0 => dartInstance.exports._12845(f,x0)), -_12846: f => finalizeWrapper(f,() => dartInstance.exports._12846(f)), -_12847: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12847(f,x0,x1)), -_12848: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12848(f,x0,x1)), -_12849: f => finalizeWrapper(f,(x0,x1) => dartInstance.exports._12849(f,x0,x1)), -_12850: f => finalizeWrapper(f,x0 => dartInstance.exports._12850(f,x0)), -_12851: f => finalizeWrapper(f,x0 => dartInstance.exports._12851(f,x0)), -_12852: f => finalizeWrapper(f,x0 => dartInstance.exports._12852(f,x0)), -_12853: f => finalizeWrapper(f,x0 => dartInstance.exports._12853(f,x0)), -_12854: f => finalizeWrapper(f,() => dartInstance.exports._12854(f)), -_12868: (ms, c) => - setTimeout(() => dartInstance.exports.$invokeCallback(c),ms), -_12872: (c) => - queueMicrotask(() => dartInstance.exports.$invokeCallback(c)), -_12874: (a, i) => a.push(i), -_12885: a => a.length, -_12887: (a, i) => a[i], -_12888: (a, i, v) => a[i] = v, -_12890: a => a.join(''), -_12900: (s, p, i) => s.indexOf(p, i), -_12903: (o, start, length) => new Uint8Array(o.buffer, o.byteOffset + start, length), -_12904: (o, start, length) => new Int8Array(o.buffer, o.byteOffset + start, length), -_12905: (o, start, length) => new Uint8ClampedArray(o.buffer, o.byteOffset + start, length), -_12906: (o, start, length) => new Uint16Array(o.buffer, o.byteOffset + start, length), -_12907: (o, start, length) => new Int16Array(o.buffer, o.byteOffset + start, length), -_12908: (o, start, length) => new Uint32Array(o.buffer, o.byteOffset + start, length), -_12909: (o, start, length) => new Int32Array(o.buffer, o.byteOffset + start, length), -_12912: (o, start, length) => new Float32Array(o.buffer, o.byteOffset + start, length), -_12913: (o, start, length) => new Float64Array(o.buffer, o.byteOffset + start, length), -_12918: (o) => new DataView(o.buffer, o.byteOffset, o.byteLength), -_12922: Function.prototype.call.bind(Object.getOwnPropertyDescriptor(DataView.prototype, 'byteLength').get), -_12923: (b, o) => new DataView(b, o), -_12925: Function.prototype.call.bind(DataView.prototype.getUint8), -_12927: Function.prototype.call.bind(DataView.prototype.getInt8), -_12929: Function.prototype.call.bind(DataView.prototype.getUint16), -_12931: Function.prototype.call.bind(DataView.prototype.getInt16), -_12933: Function.prototype.call.bind(DataView.prototype.getUint32), -_12935: Function.prototype.call.bind(DataView.prototype.getInt32), -_12941: Function.prototype.call.bind(DataView.prototype.getFloat32), -_12943: Function.prototype.call.bind(DataView.prototype.getFloat64), -_12962: (x0,x1,x2) => x0[x1] = x2, -_12964: o => o === undefined, -_12965: o => typeof o === 'boolean', -_12966: o => typeof o === 'number', -_12968: o => typeof o === 'string', -_12971: o => o instanceof Int8Array, -_12972: o => o instanceof Uint8Array, -_12973: o => o instanceof Uint8ClampedArray, -_12974: o => o instanceof Int16Array, -_12975: o => o instanceof Uint16Array, -_12976: o => o instanceof Int32Array, -_12977: o => o instanceof Uint32Array, -_12978: o => o instanceof Float32Array, -_12979: o => o instanceof Float64Array, -_12980: o => o instanceof ArrayBuffer, -_12981: o => o instanceof DataView, -_12982: o => o instanceof Array, -_12983: o => typeof o === 'function' && o[jsWrappedDartFunctionSymbol] === true, -_12987: (l, r) => l === r, -_12988: o => o, -_12989: o => o, -_12990: o => o, -_12991: b => !!b, -_12992: o => o.length, -_12995: (o, i) => o[i], -_12996: f => f.dartFunction, -_12997: l => arrayFromDartList(Int8Array, l), -_12998: l => arrayFromDartList(Uint8Array, l), -_12999: l => arrayFromDartList(Uint8ClampedArray, l), -_13000: l => arrayFromDartList(Int16Array, l), -_13001: l => arrayFromDartList(Uint16Array, l), -_13002: l => arrayFromDartList(Int32Array, l), -_13003: l => arrayFromDartList(Uint32Array, l), -_13004: l => arrayFromDartList(Float32Array, l), -_13005: l => arrayFromDartList(Float64Array, l), -_13006: (data, length) => { - const view = new DataView(new ArrayBuffer(length)); - for (let i = 0; i < length; i++) { - view.setUint8(i, dartInstance.exports.$byteDataGetUint8(data, i)); - } - return view; - }, -_13007: l => arrayFromDartList(Array, l), -_13008: stringFromDartString, -_13009: stringToDartString, -_13010: () => ({}), -_13012: l => new Array(l), -_13013: () => globalThis, -_13014: (constructor, args) => { - const factoryFunction = constructor.bind.apply( - constructor, [null, ...args]); - return new factoryFunction(); - }, -_13016: (o, p) => o[p], -_13018: (o, m, a) => o[m].apply(o, a), -_13020: o => String(o), -_13021: (p, s, f) => p.then(s, f), -_13040: (o, p) => o[p], -_13041: (o, p, v) => o[p] = v - }; - - const baseImports = { - dart2wasm: dart2wasm, - - - Math: Math, - Date: Date, - Object: Object, - Array: Array, - Reflect: Reflect, - }; - - const jsStringPolyfill = { - "charCodeAt": (s, i) => s.charCodeAt(i), - "compare": (s1, s2) => { - if (s1 < s2) return -1; - if (s1 > s2) return 1; - return 0; - }, - "concat": (s1, s2) => s1 + s2, - "equals": (s1, s2) => s1 === s2, - "fromCharCode": (i) => String.fromCharCode(i), - "length": (s) => s.length, - "substring": (s, a, b) => s.substring(a, b), - }; - - dartInstance = await WebAssembly.instantiate(await modulePromise, { - ...baseImports, - ...(await importObjectPromise), - "wasm:js-string": jsStringPolyfill, - }); - - return dartInstance; -} - -// Call the main function for the instantiated module -// `moduleInstance` is the instantiated dart2wasm module -// `args` are any arguments that should be passed into the main function. -export const invoke = (moduleInstance, ...args) => { - const dartMain = moduleInstance.exports.$getMain(); - const dartArgs = buildArgsList(args); - moduleInstance.exports.$invokeMain(dartMain, dartArgs); -} - diff --git a/examples/flutter/example/web/main.unopt.wasm b/examples/flutter/example/web/main.unopt.wasm deleted file mode 100644 index a27decf067326750cca9d1afac614d8a5c9dcf4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529519 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

O_Z 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

0i! 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 VVS=06J0~_{iUo6qN7_Xn`!@t2(<1-? diff --git a/examples/flutter/example/web/main.wasm b/examples/flutter/example/web/main.wasm deleted file mode 100644 index d38184eed30276d6ba41fd838630cf4d3745e09c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225312 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

oqy14!S`r6hc8!9u)_uY-}Jn34IMYNem^K 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