
/* THIS FILE IS GENERATED BY rust-cpp. DO NOT EDIT */

#include "stdint.h" // For {u}intN_t
#include <new> // For placement new
#include <cstdlib> // For abort
#include <type_traits>
#include <utility>

namespace rustcpp {

// We can't just pass or return any type from extern "C" rust functions (because the call
// convention may differ between the C++ type, and the Rust type).
// So we make sure to pass trivial structure that only contains a pointer to the object we want to
// pass. The constructor of these helper class contains a 'container' of the right size which will
// be allocated on the stack.
template<typename T> struct return_helper {
    struct container {
#if defined (_MSC_VER) && (_MSC_VER + 0 < 1900)
        char memory[sizeof(T)];
        ~container() { reinterpret_cast<T*>(this)->~T(); }
#else
        // The fact that it is in an union means it is properly sized and aligned, but we have
        // to call the destructor and constructor manually
        union { T memory; };
        ~container() { memory.~T(); }
#endif
        container() {}
    };
    const container* data;
    return_helper(int, const container &c = container()) : data(&c) { }
};

template<typename T> struct argument_helper {
    using type = const T&;
};
template<typename T> struct argument_helper<T&> {
    T &ref;
    argument_helper(T &x) : ref(x) {}
    using type = argument_helper<T&> const&;
};

template<typename T>
typename std::enable_if<std::is_copy_constructible<T>::value>::type copy_helper(const void *src, void *dest)
{ new (dest) T (*static_cast<T const*>(src)); }
template<typename T>
typename std::enable_if<!std::is_copy_constructible<T>::value>::type copy_helper(const void *, void *)
{ std::abort(); }
template<typename T>
typename std::enable_if<std::is_default_constructible<T>::value>::type default_helper(void *dest)
{ new (dest) T(); }
template<typename T>
typename std::enable_if<!std::is_default_constructible<T>::value>::type default_helper(void *)
{ std::abort(); }

template<typename T> int compare_helper(const T &a, const T&b, int cmp) {
    switch (cmp) {
        using namespace std::rel_ops;
        case 0:
            if (a < b)
                return -1;
            if (b < a)
                return 1;
            return 0;
        case -2: return a < b;
        case 2: return a > b;
        case -1: return a <= b;
        case 1: return a >= b;
    }
    std::abort();
}
}

#define RUST_CPP_CLASS_HELPER(HASH, ...) \
    extern "C" { \
    void __cpp_destructor_##HASH(void *ptr) { typedef __VA_ARGS__ T; static_cast<T*>(ptr)->~T(); } \
    void __cpp_copy_##HASH(const void *src, void *dest) { rustcpp::copy_helper<__VA_ARGS__>(src, dest); } \
    void __cpp_default_##HASH(void *dest) { rustcpp::default_helper<__VA_ARGS__>(dest); } \
    }

#line 29 "src/diagnose.rs"
            
    #ifdef IDESCRIPTOR_FLATPAK
    #include <QDBusConnection>
    #include <QDBusConnectionInterface>
    #include <QDBusReply>
    #include <QDebug>

    static bool idescriptor_is_avahi_available()
    {
        QDBusConnection bus = QDBusConnection::systemBus();

        if (!bus.isConnected()) {
            qWarning() << "Cannot connect to the D-Bus system bus";
            return false;
        }

        QDBusConnectionInterface *interface = bus.interface();
        QDBusReply<bool> reply =
            interface->isServiceRegistered(QStringLiteral("org.freedesktop.Avahi"));

        if (!reply.isValid()) {
            qWarning() << "Failed to query Avahi service registration:"
                       << reply.error().message();
            return false;
        }

        return reply.value();
    }
    #else
    // have to define this because
    // cpp_build scans cpp! blocks even when the Rust call is feature-gated.
    static bool idescriptor_is_avahi_available()
    {
        return false;
    }
    #endif

#line 23 "src/ifuse.rs"
       
    #include <QStandardPaths>

#line 7 "src/native.rs"
       
    #include <QQuickStyle>
    #include <QQuickWindow>
    #include <QQmlContext>
    #include <QtQml/qqml.h>
    #include <QLoggingCategory>
    #include <QtGui/QGuiApplication>
    #include <QFont>
    #include <QQmlFileSelector>
    #include <QIcon>
    #include <QMessageBox>

    #include "src/live_reload.cpp"
    #include "src/native/networkdeviceprovider.h"
    #include "src/native/systemappearance.h"

#line 10 "src/qml_image.rs"
       
    #include <QtQuick/QQuickPaintedItem>

#line 14 "src/qml_utils.rs"
       
    #include <QCoreApplication>
    #include <QGuiApplication>
    #include <QQmlEngine>
    #include <QString>
    #include <QTranslator>

extern "C" void Rust_QPixmapProvider_request_pixmap();
extern "C" void Rust_QImageProvider_request_image();
#line 147 "src/qquickimageprovider_imp.rs"
       
    #include "src/qmetaobject_rust.hpp"
    #include <QtQuick/QQuickImageProvider>

    #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
    class QPixmapProvider : public QQuickImageProvider
    {
        public:
            QPixmapProvider(): QQuickImageProvider(ImageType::Pixmap) {}
    };
    #else
    class QPixmapProvider : public QObject, public QQuickImageProvider
    {
        public:
            QPixmapProvider(): QObject(), QQuickImageProvider(ImageType::Pixmap) {}
    };
    #endif

    struct Rust_QPixmapProvider : public RustObject<QPixmapProvider>
    {
        QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requested_size) override
        {
            return std::move(*reinterpret_cast<QPixmap*(*)(rustcpp::argument_helper<TraitObject>::type, rustcpp::argument_helper<const QString &>::type, rustcpp::argument_helper<QSize *>::type, rustcpp::argument_helper<const QSize &>::type, rustcpp::return_helper<QPixmap>)>(Rust_QPixmapProvider_request_pixmap)(rust_object, id, size, requested_size, 0))














;
        }
    };

    #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
    class QImageProvider : public QQuickImageProvider
    {
        public:
            QImageProvider(): QQuickImageProvider(ImageType::Image) {}
    };
    #else
    class QImageProvider : public QObject, public QQuickImageProvider
    {
        public:
            QImageProvider(): QObject(), QQuickImageProvider(ImageType::Image) {}
    };
    #endif

    struct Rust_QImageProvider : public RustObject<QImageProvider>
    {
        QImage requestImage(const QString &id, QSize *size, const QSize &requested_size) override
        {
            return std::move(*reinterpret_cast<QImage*(*)(rustcpp::argument_helper<TraitObject>::type, rustcpp::argument_helper<const QString &>::type, rustcpp::argument_helper<QSize *>::type, rustcpp::argument_helper<const QSize &>::type, rustcpp::return_helper<QImage>)>(Rust_QImageProvider_request_image)(rust_object, id, size, requested_size, 0))














;
        }
    };

#line 8 "src/settings_manager.rs"
       
    #include <QDebug>
    #include <QDir>
    #include <QLocale>
    #include <QSettings>
    #include <QStandardPaths>
    #include <QStringList>
    #include <QVariantList>
    #include <QVariantMap>
    #include <algorithm>

    static const QString SEEN_DEVICE_PREFIX_RS = QStringLiteral("seenDevices/");

    static QSettings &settings_manager_settings()
    {
        static QSettings settings;
        return settings;
    }

    static QString settings_manager_home_path()
    {
        return QStandardPaths::writableLocation(QStandardPaths::HomeLocation)
            + QStringLiteral("/.idescriptor");
    }

    static QString settings_manager_default_language()
    {
        if (QLocale::system().language() == QLocale::German) {
            return QStringLiteral("de");
        }
        return QStringLiteral("en");
    }

    static QString settings_manager_normalize_language(QString language)
    {
        QString normalized = language.trimmed().toLower();
        if (normalized == QStringLiteral("german")) {
            return QStringLiteral("de");
        }
        if (normalized == QStringLiteral("english")) {
            return QStringLiteral("en");
        }
        if (normalized.startsWith(QStringLiteral("de"))) {
            return QStringLiteral("de");
        }
        return QStringLiteral("en");
    }

#line 15 "src/status_window_controller.rs"
       
    #include <QCoreApplication>
    #include <QEvent>
    #include <QKeyEvent>
    #include <QMetaObject>
    #include <QMouseEvent>
    #include <QObject>
    #include <QPointer>
    #include <QRect>
    #include <QWindow>
    #include <QJSValue>

    class StatusWindowEventFilter : public QObject {
    public:
        StatusWindowEventFilter(QObject *receiver, QObject *statusWindow, const QRect &openerRect)
            : QObject(QCoreApplication::instance()),
              receiver(receiver),
              statusWindow(statusWindow),
              openerRect(openerRect)
        {
        }

        void update(QObject *receiver, QObject *statusWindow, const QRect &openerRect)
        {
            this->receiver = receiver;
            this->statusWindow = statusWindow;
            this->openerRect = openerRect;
            this->closePending = false;
        }

    protected:
        bool eventFilter(QObject *obj, QEvent *event) override
        {
            if (!receiver) {
                return false;
            }

            switch (event->type()) {
            case QEvent::MouseButtonPress: {
                auto *mouseEvent = static_cast<QMouseEvent *>(event);
                QPoint globalPos;
            #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
                globalPos = mouseEvent->globalPosition().toPoint();
            #else
                globalPos = mouseEvent->globalPos();
            #endif

                if (openerRect.isValid() && openerRect.contains(globalPos)) {
                    return false;
                }

                if (statusWindow) {
                    if (auto *window = qobject_cast<QWindow *>(statusWindow.data())) {
                        if (window->geometry().contains(globalPos)) {
                            return false;
                        }
                    }
                }

                requestClose(QStringLiteral("outsideMousePress"));
                return true;
            }
            case QEvent::WindowDeactivate:
                if (obj == statusWindow.data()) {
                    requestClose(QStringLiteral("windowDeactivate"));
                }
                return false;
            case QEvent::ApplicationDeactivate:
                requestClose(QStringLiteral("applicationDeactivate"));
                return false;
            case QEvent::KeyPress: {
                auto *keyEvent = static_cast<QKeyEvent *>(event);
                if (keyEvent->key() == Qt::Key_Escape) {
                    requestClose(QStringLiteral("escape"));
                    return true;
                }
                return false;
            }
            default:
                return false;
            }
        }

    private:
        void requestClose(const QString &reason)
        {
            if (closePending || !receiver) {
                return;
            }

            closePending = true;
            QMetaObject::invokeMethod(
                receiver.data(),
                "emit_close_requested",
                Qt::QueuedConnection,
                Q_ARG(QString, reason)
            );
        }

        QPointer<QObject> receiver;
        QPointer<QObject> statusWindow;
        QRect openerRect;
        bool closePending = false;
    };

    static StatusWindowEventFilter *statusWindowEventFilter = nullptr;

    static void installStatusWindowEventFilter(
        QObject *receiver,
        QObject *statusWindow,
        int openerX,
        int openerY,
        int openerWidth,
        int openerHeight
    ) {
        QCoreApplication *app = QCoreApplication::instance();
        if (!app || !receiver || !statusWindow) {
            return;
        }

        QRect openerRect;
        if (openerWidth > 0 && openerHeight > 0) {
            openerRect = QRect(openerX, openerY, openerWidth, openerHeight);
        }

        if (!statusWindowEventFilter) {
            statusWindowEventFilter = new StatusWindowEventFilter(receiver, statusWindow, openerRect);
            app->installEventFilter(statusWindowEventFilter);
        } else {
            statusWindowEventFilter->update(receiver, statusWindow, openerRect);
        }
    }

    static void uninstallStatusWindowEventFilter()
    {
        QCoreApplication *app = QCoreApplication::instance();
        if (app && statusWindowEventFilter) {
            app->removeEventFilter(statusWindowEventFilter);
        }

        delete statusWindowEventFilter;
        statusWindowEventFilter = nullptr;
    }

#line 46 "src/updater.rs"
       
    #include <QCoreApplication>
    #include <QDesktopServices>
    #include <QDir>
    #include <QProcess>
    #include <QStandardPaths>
    #include <QUrl>

#line 29 "src/utils.rs"
       
    struct TraitObject2 { void *data; void *vtable; };
    #include <QCoreApplication>
    #include <QFileSystemWatcher>
    #include <QTimer>
    #include <QDirIterator>
    #include <QMap>
    #include <QDesktopServices>
    #include <QStandardPaths>
    #include <QBuffer>
    #include <QImage>
    #include <QGuiApplication>
    #include <QObject>
    #include <QClipboard>
    #include <QEvent>
    #include "src/native/include/bridge.h"
    #include <gst/gst.h>

    QCoreApplication *globalApp = nullptr;


#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline bool __cpp_closure_11585132129305917477_impl() {
#line 359 "src/diagnose.rs"
                                          
            return idescriptor_is_avahi_available();
        
}
extern "C" {
void __cpp_closure_11585132129305917477( void* __result) {
    ::new(__result) (bool)(__cpp_closure_11585132129305917477_impl());
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_10003677330115707163_impl() {
#line 719 "src/ifuse.rs"
                                                                
        return QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
    
}
extern "C" {
void __cpp_closure_10003677330115707163( void* __result) {
    ::new(__result) (QString)(__cpp_closure_10003677330115707163_impl());
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_139423480997489493(QString const& application_version) {
#line 25 "src/native.rs"
                                                    
        #define FLUENTUI_BUILD_STATIC_LIB 1
        #ifdef WIN32
            // ::SetUnhandledExceptionFilter(MyUnhandledExceptionFilter);
            qputenv("QT_QPA_PLATFORM", "windows:darkmode=2");
        #endif

        #ifdef Q_OS_WINDOWS
            QQuickStyle::setStyle("FluentWinUI3");
        #else
            QQuickStyle::setStyle("IDescriptorStyle");
            #ifdef Q_OS_MACOS
                QQuickStyle::setFallbackStyle("macOS");
            #elif defined(Q_OS_LINUX)
                QQuickStyle::setFallbackStyle("Fusion");
            #else
                QQuickStyle::setFallbackStyle("Basic");
            #endif
        #endif
        #ifndef Q_OS_LINUX
            // uxplay now uses qml6glsink so we have to use opengl
            // Linux is fine with QT_QPA_PLATFORM=xcb
            QQuickWindow::setGraphicsApi(QSGRendererInterface::OpenGL);
        #endif

        // QCoreApplication::setAttribute(Qt::AA_UseOpenGLES);
        #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
            QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
            QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
        #if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0))
            QApplication::setHighDpiScaleFactorRoundingPolicy(
                Qt::HighDpiScaleFactorRoundingPolicy::PassThrough);
        #endif
        #endif
            QCoreApplication::setOrganizationName("iDescriptor");
            QCoreApplication::setApplicationName("iDescriptor");
            QCoreApplication::setApplicationVersion(application_version);
    
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_11566382205792148722() {
#line 66 "src/native.rs"
                    
        QMessageBox::information(
            nullptr,
            QStringLiteral("Settings Reset"),
            QStringLiteral(
                "All application settings have been reset to their default values."
            )
        );
    
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_12377074516225366638() {
#line 79 "src/native.rs"
                    
        QGuiApplication::setFont(QFont("Segoe UI"));
    
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_18284455496274579892(QQmlApplicationEngine * const& engine_ptr) {
#line 88 "src/native.rs"
                                                           
        engine_ptr->addImportPath(":/src/ui/styles");
    
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_5262398002572766219(QQmlApplicationEngine * const& engine_ptr, QString const& style_import_path) {
#line 100 "src/native.rs"
       
        engine_ptr->addImportPath(style_import_path);
    
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_12610641365762134979(QQmlApplicationEngine * const& engine_ptr) {
#line 108 "src/native.rs"
                                                           

        static QQmlFileSelector* s_fileSelector = nullptr;
        if (!s_fileSelector) {
            s_fileSelector = new QQmlFileSelector(engine_ptr, engine_ptr);
        }


        qmlRegisterSingletonInstance(
            "iDescriptor", 1, 0, "NetworkDeviceProvider",
            NetworkDeviceProvider::sharedInstance());

        static SystemAppearance* s_systemAppearance = nullptr;
        if (!s_systemAppearance) {
            s_systemAppearance = new SystemAppearance(QCoreApplication::instance());
        }
        engine_ptr->rootContext()->setContextProperty("SystemAppearance", s_systemAppearance);
        QGuiApplication::setWindowIcon(QIcon(QStringLiteral(":/packaging/shared/resources/app-icon/icon.png")));
    
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_5969583340748656455(QQmlApplicationEngine * const& engine_ptr) {
#line 135 "src/native.rs"
                                                           
        engine_ptr->addImportPath("C:/Qt/6.9.3/mingw_64/qml");
    
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_2991614438042534684(QQmlApplicationEngine * const& engine_ptr, QString const& ui_path, QString const& entry_path) {
#line 147 "src/native.rs"
       
        init_live_reload(engine_ptr, ui_path, entry_path);
    
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QRectF __cpp_closure_1327603581849509702_impl(void* const& obj) {
#line 95 "src/qml_image.rs"
                                                            
            auto item = reinterpret_cast<QQuickPaintedItem *>(obj);
            return item ? item->boundingRect() : QRectF();
        
}
extern "C" {
void __cpp_closure_1327603581849509702(void* const& obj, void* __result) {
    ::new(__result) (QRectF)(__cpp_closure_1327603581849509702_impl(obj));
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_5986144349274274125(void* const& obj) {
#line 103 "src/qml_image.rs"
                                      
            auto item = reinterpret_cast<QQuickPaintedItem *>(obj);
            if (item) item->update();
        
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline bool __cpp_closure_4699293934981118072_impl(QQmlEngine * const& engine_ptr, QString const& lang_id) {
#line 54 "src/qml_utils.rs"
                                                                                            
            static QTranslator translator;

            QString normalized = lang_id.trimmed().toLower();
            if (normalized.isEmpty() || normalized == QStringLiteral("english")) {
                normalized = QStringLiteral("en");
            } else if (normalized == QStringLiteral("german")) {
                normalized = QStringLiteral("de");
            }

            QCoreApplication::removeTranslator(&translator);

            if (normalized != QStringLiteral("en")) {
                if (!translator.load(QStringLiteral(":/translations/") + normalized + QStringLiteral(".qm"))) {
                    engine_ptr->retranslate();
                    return false;
                }

                qApp->setLayoutDirection(
                    (normalized == QStringLiteral("ar")
                        || normalized == QStringLiteral("fa")
                        || normalized == QStringLiteral("he"))
                        ? Qt::RightToLeft
                        : Qt::LeftToRight
                );
                QCoreApplication::installTranslator(&translator);
            } else {
                qApp->setLayoutDirection(Qt::LeftToRight);
            }

            engine_ptr->retranslate();
            return true;
        
}
extern "C" {
void __cpp_closure_4699293934981118072(QQmlEngine * const& engine_ptr, QString const& lang_id, void* __result) {
    ::new(__result) (bool)(__cpp_closure_4699293934981118072_impl(engine_ptr, lang_id));
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_14943313825967631200(QQmlEngine * const& qml_engine, QString const& provider_id, Rust_QImageProvider * const& provider_ptr) {
#line 31 "src/qquickimageprovider_imp.rs"
           
            qml_engine->addImageProvider(provider_id, provider_ptr);
        
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_10708480264379187599(QQmlEngine * const& qml_engine, QString const& provider_id, Rust_QPixmapProvider * const& provider_ptr) {
#line 60 "src/qquickimageprovider_imp.rs"
           
            qml_engine->addImageProvider(provider_id, provider_ptr);
        
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline RustQObjectDescriptor const* __cpp_closure_13410495114432381421_impl() {
#line 107 "src/qquickimageprovider_imp.rs"
                                                                                    
                return RustQObjectDescriptor::instance<Rust_QPixmapProvider>();
            
}
extern "C" {
void __cpp_closure_13410495114432381421( void* __result) {
    ::new(__result) (RustQObjectDescriptor const*)(__cpp_closure_13410495114432381421_impl());
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline RustQObjectDescriptor const* __cpp_closure_6443165644796478117_impl() {
#line 140 "src/qquickimageprovider_imp.rs"
                                                                                    
                return RustQObjectDescriptor::instance<Rust_QImageProvider>();
            
}
extern "C" {
void __cpp_closure_6443165644796478117( void* __result) {
    ::new(__result) (RustQObjectDescriptor const*)(__cpp_closure_6443165644796478117_impl());
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_15781264944059747232_impl(QString const& mac_address) {
#line 60 "src/settings_manager.rs"
                                                                                       
        QSettings settings;
        const QString prefix = QStringLiteral("_macos_idevice_");
        const QString exactKey = prefix + mac_address;
        if (settings.contains(exactKey)) {
            return settings.value(exactKey, QString()).toString();
        }

        // handle mac address normalization
        // 44:F2:1B:95:46:06
        // 44-f2-1b-95-46-06
        // 44f21b954606
        auto normalizeMacAddress = [](const QString &value) {
            QString normalized;
            for (const QChar character : value) {
                const QChar lower = character.toLower();
                if ((lower >= QChar('0') && lower <= QChar('9')) ||
                    (lower >= QChar('a') && lower <= QChar('f'))) {
                    normalized.append(lower);
                }
            }
            return normalized;
        };

        const QString normalizedMacAddress = normalizeMacAddress(mac_address);
        for (const QString &key : settings.allKeys()) {
            if (key.startsWith(prefix) &&
                normalizeMacAddress(key.mid(prefix.length())) == normalizedMacAddress) {
                return settings.value(key, QString()).toString();
            }
        }
        return QString();
    
}
extern "C" {
void __cpp_closure_15781264944059747232(QString const& mac_address, void* __result) {
    ::new(__result) (QString)(__cpp_closure_15781264944059747232_impl(mac_address));
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_10122827289966720591(QString const& mac_address, QString const& pairing_file) {
#line 102 "src/settings_manager.rs"
                                                                       
        QSettings settings;
        settings.setValue(QStringLiteral("_macos_idevice_") + mac_address, pairing_file);
        settings.sync();
    
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_14630568089596397874() {
#line 214 "src/settings_manager.rs"
                        
            auto &settings = settings_manager_settings();
            settings.clear();
            settings.sync();
        
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_5086800198967672453_impl() {
#line 226 "src/settings_manager.rs"
                                                
            return settings_manager_home_path();
        
}
extern "C" {
void __cpp_closure_5086800198967672453( void* __result) {
    ::new(__result) (QString)(__cpp_closure_5086800198967672453_impl());
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_13804977060937148544_impl() {
#line 232 "src/settings_manager.rs"
                                                
            auto &settings = settings_manager_settings();
            return settings.value(
                QStringLiteral("devdiskimgpath"),
                settings_manager_home_path() + QStringLiteral("/devdiskimages")
            ).toString();
        
}
extern "C" {
void __cpp_closure_13804977060937148544( void* __result) {
    ::new(__result) (QString)(__cpp_closure_13804977060937148544_impl());
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_4752330755358957668(QString const& path) {
#line 242 "src/settings_manager.rs"
                                         
            auto &settings = settings_manager_settings();
            settings.setValue(QStringLiteral("devdiskimgpath"), path);
            settings.sync();
        
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_13434117036856468060_impl() {
#line 250 "src/settings_manager.rs"
                                                
            auto &settings = settings_manager_settings();
            QString path = settings.value(
                QStringLiteral("devdiskimgpath"),
                settings_manager_home_path() + QStringLiteral("/devdiskimages")
            ).toString();
            QDir dir(path);
            if (!dir.exists()) {
                dir.mkpath(path);
            }
            return path;
        
}
extern "C" {
void __cpp_closure_13434117036856468060( void* __result) {
    ::new(__result) (QString)(__cpp_closure_13434117036856468060_impl());
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_12887792123218949210_impl() {
#line 265 "src/settings_manager.rs"
                                                
            auto &settings = settings_manager_settings();
            return settings.value(
                QStringLiteral("ipaDownloadPath"),
                settings_manager_home_path() + QStringLiteral("/ipa")
            ).toString();
        
}
extern "C" {
void __cpp_closure_12887792123218949210( void* __result) {
    ::new(__result) (QString)(__cpp_closure_12887792123218949210_impl());
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_18155753659441802178(QString const& path) {
#line 275 "src/settings_manager.rs"
                                         
            auto &settings = settings_manager_settings();
            settings.setValue(QStringLiteral("ipaDownloadPath"), path);
            settings.sync();
        
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_310892644267509033_impl() {
#line 283 "src/settings_manager.rs"
                                                
            auto &settings = settings_manager_settings();
            QString path = settings.value(
                QStringLiteral("ipaDownloadPath"),
                settings_manager_home_path() + QStringLiteral("/ipa")
            ).toString();
            QDir dir(path);
            if (!dir.exists()) {
                dir.mkpath(path);
            }
            return path;
        
}
extern "C" {
void __cpp_closure_310892644267509033( void* __result) {
    ::new(__result) (QString)(__cpp_closure_310892644267509033_impl());
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_18225949218305997097_impl() {
#line 298 "src/settings_manager.rs"
                                                
            auto &settings = settings_manager_settings();
            return settings.value(
                QStringLiteral("backupRootPath"),
                settings_manager_home_path() + QStringLiteral("/backups")
            ).toString();
        
}
extern "C" {
void __cpp_closure_18225949218305997097( void* __result) {
    ::new(__result) (QString)(__cpp_closure_18225949218305997097_impl());
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_18000714637841416559(QString const& path) {
#line 308 "src/settings_manager.rs"
                                         
            auto &settings = settings_manager_settings();
            settings.setValue(QStringLiteral("backupRootPath"), path);
            settings.sync();
        
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_8547799656863135777_impl() {
#line 316 "src/settings_manager.rs"
                                                
            auto &settings = settings_manager_settings();
            QString path = settings.value(
                QStringLiteral("backupRootPath"),
                settings_manager_home_path() + QStringLiteral("/backups")
            ).toString();
            QDir dir(path);
            if (!dir.exists()) {
                dir.mkpath(path);
            }
            return path;
        
}
extern "C" {
void __cpp_closure_8547799656863135777( void* __result) {
    ::new(__result) (QString)(__cpp_closure_8547799656863135777_impl());
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline bool __cpp_closure_11544430411735474367_impl(QString const& path, QString const& alias, QString const& key_prefix) {
#line 331 "src/settings_manager.rs"
                                                                                                                      
            if (path.isEmpty() || alias.isEmpty()) {
                qWarning() << "Cannot save favorite place with empty path or alias";
                return false;
            }

            auto &settings = settings_manager_settings();
            QString key = key_prefix + QString::fromLatin1(path.toUtf8().toBase64());
            settings.setValue(key, QStringList() << path << alias);
            settings.sync();
            qDebug() << "Saved favorite place (AFC2):" << alias << "(" << path << ")";
            return true;
        
}
extern "C" {
void __cpp_closure_11544430411735474367(QString const& path, QString const& alias, QString const& key_prefix, void* __result) {
    ::new(__result) (bool)(__cpp_closure_11544430411735474367_impl(path, alias, key_prefix));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline bool __cpp_closure_13716074324977279545_impl(QString const& key_prefix, QString const& path) {
#line 351 "src/settings_manager.rs"
                                                                                                  
            auto &settings = settings_manager_settings();
            QString key = key_prefix + QString::fromLatin1(path.toUtf8().toBase64());
            qDebug() << "Attempting to remove favorite place with key:" << key;
            if (!settings.contains(key)) {
                return false;
            }
            settings.remove(key);
            settings.sync();
            qDebug() << "Removed favorite place:" << path;
            return true;
        
}
extern "C" {
void __cpp_closure_13716074324977279545(QString const& key_prefix, QString const& path, void* __result) {
    ::new(__result) (bool)(__cpp_closure_13716074324977279545_impl(key_prefix, path));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QVariantList __cpp_closure_4294301103073192083_impl(QString const& key_prefix) {
#line 370 "src/settings_manager.rs"
                                                                                 
            auto &settings = settings_manager_settings();
            QList<QPair<QString, QString>> favorites;
            QStringList favoriteKeys = settings.allKeys().filter(key_prefix);

            qDebug() << "Found favorite keys:" << favoriteKeys;

            for (const QString &key : favoriteKeys) {
                QStringList value = settings.value(key).toStringList();
                if (value.size() >= 2) {
                    QString path = value[0];
                    QString alias = value[1];
                    if (!path.isEmpty() && !alias.isEmpty()) {
                        favorites.append(qMakePair(path, alias));
                        qDebug() << "Loaded favorite:" << alias << "->" << path;
                    }
                }
            }

            std::sort(
                favorites.begin(), favorites.end(),
                [](const QPair<QString, QString> &a, const QPair<QString, QString> &b) {
                    return a.second.toLower() < b.second.toLower();
                });

            QVariantList result;
            for (const auto &favorite : favorites) {
                QVariantMap item;
                item.insert(QStringLiteral("path"), favorite.first);
                item.insert(QStringLiteral("alias"), favorite.second);
                result.append(item);
            }
            return result;
        
}
extern "C" {
void __cpp_closure_4294301103073192083(QString const& key_prefix, void* __result) {
    ::new(__result) (QVariantList)(__cpp_closure_4294301103073192083_impl(key_prefix));
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_10281308884346944821(QString const& key_prefix) {
#line 407 "src/settings_manager.rs"
                                               
            auto &settings = settings_manager_settings();
            QStringList favoriteKeys = settings.allKeys().filter(key_prefix);
            for (const QString &key : favoriteKeys) {
                settings.remove(key);
            }
            settings.sync();
        
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_5685824955945419480(QString const& latitude, QString const& longitude, QString const& name) {
#line 419 "src/settings_manager.rs"
                                                                                        
            Q_UNUSED(name);

            auto &settings = settings_manager_settings();
            QVariantList recentLocations = settings.value(QStringLiteral("recentLocations")).toList();

            QVariantMap newLocation;
            newLocation.insert(QStringLiteral("latitude"), latitude);
            newLocation.insert(QStringLiteral("longitude"), longitude);

            recentLocations.prepend(newLocation);
            while (recentLocations.size() > 10) {
                recentLocations.removeLast();
            }

            settings.setValue(QStringLiteral("recentLocations"), recentLocations);
            settings.sync();
            qDebug() << "Saved recent location:" << latitude << "," << longitude;
        
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QVariantList __cpp_closure_1491264170070456118_impl() {
#line 442 "src/settings_manager.rs"
                                                          
            auto &settings = settings_manager_settings();
            return settings.value(QStringLiteral("recentLocations")).toList();
        
}
extern "C" {
void __cpp_closure_1491264170070456118( void* __result) {
    ::new(__result) (QVariantList)(__cpp_closure_1491264170070456118_impl());
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_7229045763273525768() {
#line 449 "src/settings_manager.rs"
                        
            auto &settings = settings_manager_settings();
            settings.remove(QStringLiteral("recentLocations"));
            settings.sync();
        
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_12192744781313480385_impl() {
#line 553 "src/settings_manager.rs"
                                                
            auto &settings = settings_manager_settings();
            return settings_manager_normalize_language(settings.value(
                QStringLiteral("language"),
                settings_manager_default_language()
            ).toString());
        
}
extern "C" {
void __cpp_closure_12192744781313480385( void* __result) {
    ::new(__result) (QString)(__cpp_closure_12192744781313480385_impl());
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_5153996711864459763_impl(QString const& language) {
#line 563 "src/settings_manager.rs"
                                                                                    
            return settings_manager_normalize_language(language);
        
}
extern "C" {
void __cpp_closure_5153996711864459763(QString const& language, void* __result) {
    ::new(__result) (QString)(__cpp_closure_5153996711864459763_impl(language));
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_3763309496465886716(QString const& mac_address, QString const& pairing_file) {
#line 689 "src/settings_manager.rs"
                                                                           
            auto &settings = settings_manager_settings();
            settings.setValue(QStringLiteral("_macos_idevice_") + mac_address, pairing_file);
            settings.sync();
        
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_6148940512132359897_impl(QString const& mac_address) {
#line 697 "src/settings_manager.rs"
                                                                        
            auto &settings = settings_manager_settings();
            return settings.value(QStringLiteral("_macos_idevice_") + mac_address, QString()).toString();
        
}
extern "C" {
void __cpp_closure_6148940512132359897(QString const& mac_address, void* __result) {
    ::new(__result) (QString)(__cpp_closure_6148940512132359897_impl(mac_address));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QVariantList __cpp_closure_12186923275306345206_impl() {
#line 704 "src/settings_manager.rs"
                                                          
            auto &settings = settings_manager_settings();
            QVariantList result;
            const QString prefix = QStringLiteral("_macos_idevice_");
            for (const QString &key : settings.allKeys()) {
                if (!key.startsWith(prefix)) {
                    continue;
                }

                QVariantMap item;
                item.insert(QStringLiteral("macAddress"), key.mid(prefix.length()));
                item.insert(QStringLiteral("pairingFile"), settings.value(key, QString()).toString());
                result.append(item);
            }
            return result;
        
}
extern "C" {
void __cpp_closure_12186923275306345206( void* __result) {
    ::new(__result) (QVariantList)(__cpp_closure_12186923275306345206_impl());
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline bool __cpp_closure_3710503534535028971_impl(QString const& udid) {
#line 751 "src/settings_manager.rs"
                                                           
            const QString trimmed = udid.trimmed();
            if (trimmed.isEmpty()) {
                return false;
            }
            auto &settings = settings_manager_settings();
            return settings.value(SEEN_DEVICE_PREFIX_RS + trimmed, false).toBool();
        
}
extern "C" {
void __cpp_closure_3710503534535028971(QString const& udid, void* __result) {
    ::new(__result) (bool)(__cpp_closure_3710503534535028971_impl(udid));
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_14320129568119596475(QString const& udid, bool const& seen) {
#line 762 "src/settings_manager.rs"
                                                         
            const QString trimmed = udid.trimmed();
            if (trimmed.isEmpty()) {
                return;
            }

            auto &settings = settings_manager_settings();
            const QString key = SEEN_DEVICE_PREFIX_RS + trimmed;
            if (seen) {
                settings.setValue(key, true);
            } else {
                settings.remove(key);
            }
            settings.sync();
        
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QStringList __cpp_closure_15267509322903428217_impl() {
#line 780 "src/settings_manager.rs"
                                                        
            auto &settings = settings_manager_settings();
            QStringList udids;
            for (const QString &key : settings.allKeys()) {
                if (!key.startsWith(SEEN_DEVICE_PREFIX_RS)) {
                    continue;
                }

                if (settings.value(key, false).toBool()) {
                    udids.append(key.mid(SEEN_DEVICE_PREFIX_RS.length()));
                }
            }
            return udids;
        
}
extern "C" {
void __cpp_closure_15267509322903428217( void* __result) {
    ::new(__result) (QStringList)(__cpp_closure_15267509322903428217_impl());
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_7121734929359428026() {
#line 797 "src/settings_manager.rs"
                        
            auto &settings = settings_manager_settings();
            for (const QString &key : settings.allKeys()) {
                if (key.startsWith(SEEN_DEVICE_PREFIX_RS)) {
                    settings.remove(key);
                }
            }
            settings.sync();
        
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline bool __cpp_closure_9117711783933766272_impl(QString const& key, bool const& default_value) {
#line 811 "src/settings_manager.rs"
                                                                               
        return settings_manager_settings().value(key, default_value).toBool();
    
}
extern "C" {
void __cpp_closure_9117711783933766272(QString const& key, bool const& default_value, void* __result) {
    ::new(__result) (bool)(__cpp_closure_9117711783933766272_impl(key, default_value));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline bool __cpp_closure_9222457212185762938_impl(QString const& key) {
#line 819 "src/settings_manager.rs"
                                                      
        return settings_manager_settings().contains(key);
    
}
extern "C" {
void __cpp_closure_9222457212185762938(QString const& key, void* __result) {
    ::new(__result) (bool)(__cpp_closure_9222457212185762938_impl(key));
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_7968843914773869106(QString const& key, bool const& value) {
#line 846 "src/settings_manager.rs"
                                                     
        auto &settings = settings_manager_settings();
        settings.setValue(key, value);
        settings.sync();
    
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline int __cpp_closure_17135547972615414130_impl(QString const& key, int const& default_value) {
#line 855 "src/settings_manager.rs"
                                                                            
        return settings_manager_settings().value(key, default_value).toInt();
    
}
extern "C" {
void __cpp_closure_17135547972615414130(QString const& key, int const& default_value, void* __result) {
    ::new(__result) (int)(__cpp_closure_17135547972615414130_impl(key, default_value));
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_17405859408445108491(QString const& key, int const& value) {
#line 862 "src/settings_manager.rs"
                                                    
        auto &settings = settings_manager_settings();
        settings.setValue(key, value);
        settings.sync();
    
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_4234439493567640694_impl(QString const& key, QString const& default_value) {
#line 872 "src/settings_manager.rs"
                                                                                        
        return settings_manager_settings().value(key, default_value).toString();
    
}
extern "C" {
void __cpp_closure_4234439493567640694(QString const& key, QString const& default_value, void* __result) {
    ::new(__result) (QString)(__cpp_closure_4234439493567640694_impl(key, default_value));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_13444862973122395173_impl(QString const& effect) {
#line 878 "src/settings_manager.rs"
                                                               
        const QString normalized = effect.trimmed().toLower();
        if (normalized == QStringLiteral("acrylic")) {
            return QStringLiteral("acrylic");
        }
        return QStringLiteral("normal");
    
}
extern "C" {
void __cpp_closure_13444862973122395173(QString const& effect, void* __result) {
    ::new(__result) (QString)(__cpp_closure_13444862973122395173_impl(effect));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_10201819725347216051_impl() {
#line 888 "src/settings_manager.rs"
                                            
        return settings_manager_default_language();
    
}
extern "C" {
void __cpp_closure_10201819725347216051( void* __result) {
    ::new(__result) (QString)(__cpp_closure_10201819725347216051_impl());
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_13658013200775767910(QString const& key, QString const& value) {
#line 895 "src/settings_manager.rs"
                                                        
        auto &settings = settings_manager_settings();
        settings.setValue(key, value);
        settings.sync();
    
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline bool __cpp_closure_12148711471793574334_impl(QObject * const& receiver, QJSValue const& status_window, double const& opener_x, double const& opener_y, double const& opener_width, double const& opener_height) {
#line 198 "src/status_window_controller.rs"
                                 
                QObject *statusWindow = status_window.toQObject();
                if (!receiver || !statusWindow) {
                    return false;
                }

                installStatusWindowEventFilter(
                    receiver,
                    statusWindow,
                    static_cast<int>(opener_x),
                    static_cast<int>(opener_y),
                    static_cast<int>(opener_width),
                    static_cast<int>(opener_height)
                );
                return true;
            
}
extern "C" {
void __cpp_closure_12148711471793574334(QObject * const& receiver, QJSValue const& status_window, double const& opener_x, double const& opener_y, double const& opener_width, double const& opener_height, void* __result) {
    ::new(__result) (bool)(__cpp_closure_12148711471793574334_impl(receiver, status_window, opener_x, opener_y, opener_width, opener_height));
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_13880952764399356306() {
#line 223 "src/status_window_controller.rs"
                     
                uninstallStatusWindowEventFilter();
            
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_5344919085462256097_impl() {
#line 775 "src/updater.rs"
                                                       
        QString path = QStandardPaths::writableLocation(QStandardPaths::DownloadLocation);
        if (path.isEmpty()) {
            path = QDir::homePath();
        }
        path += QStringLiteral("/iDescriptor");
        QDir().mkpath(path);
        return path;
    
}
extern "C" {
void __cpp_closure_5344919085462256097( void* __result) {
    ::new(__result) (QString)(__cpp_closure_5344919085462256097_impl());
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_1072606924328412273(QString const& path, bool const& quit_app) {
#line 794 "src/updater.rs"
                                                         
        #ifdef Q_OS_LINUX
            if (path.endsWith(QStringLiteral(".AppImage"), Qt::CaseInsensitive)) {
                bool opened = QProcess::startDetached(path, QStringList());
                if (opened && quit_app) {
                    QCoreApplication::quit();
                }
                return;
            }
        #endif
        bool opened = QDesktopServices::openUrl(QUrl::fromLocalFile(path));
        if (opened && quit_app) {
            QCoreApplication::quit();
        }
    
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_9060208307472702001(QString const& dir) {
#line 823 "src/updater.rs"
                                    
        QDesktopServices::openUrl(QUrl::fromLocalFile(dir));
    
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QImage __cpp_closure_6147631982113464630_impl(const uchar* const& buf_ptr, int const& buf_len, int const& width, int const& height) {
#line 788 "src/utils.rs"
                                                                                                                      
        QImage img = QImage::fromData(buf_ptr, buf_len, nullptr);
        if (img.isNull()) {
            return QImage();
        }
        if (width > 0 && height > 0) {
            return img.scaled(width, height, Qt::KeepAspectRatio, Qt::SmoothTransformation);
        } else {
            return img;
        }
    
}
extern "C" {
void __cpp_closure_6147631982113464630(const uchar* const& buf_ptr, int const& buf_len, int const& width, int const& height, void* __result) {
    ::new(__result) (QImage)(__cpp_closure_6147631982113464630_impl(buf_ptr, buf_len, width, height));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QImage __cpp_closure_5189539050856893286_impl(QImage const& img, int const& width, int const& height) {
#line 802 "src/utils.rs"
                                                                                          
        if (img.isNull() || width <= 0 || height <= 0) {
            return img;
        }
        return img.scaled(width, height, Qt::KeepAspectRatio, Qt::SmoothTransformation);
    
}
extern "C" {
void __cpp_closure_5189539050856893286(QImage const& img, int const& width, int const& height, void* __result) {
    ::new(__result) (QImage)(__cpp_closure_5189539050856893286_impl(img, width, height));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_170568443408369691_impl(QString const& context, QString const& text) {
#line 937 "src/utils.rs"
                                                                                   
        return QCoreApplication::translate(qUtf8Printable(context), qUtf8Printable(text));
    
}
extern "C" {
void __cpp_closure_170568443408369691(QString const& context, QString const& text, void* __result) {
    ::new(__result) (QString)(__cpp_closure_170568443408369691_impl(context, text));
}
}
#line 228 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

extern "C" {
void __cpp_closure_2292849441819038258(QString const& text) {
#line 957 "src/utils.rs"
                                      QGuiApplication::clipboard()->setText(text); 
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_2990875317831172749_impl(uint32_t const& w, uint32_t const& h, uint32_t const& s, const uint8_t * const& ptr) {
#line 962 "src/utils.rs"
                                                                                                                       
        QImage img(ptr, w, h, s, QImage::Format_RGBA8888_Premultiplied);
        QByteArray byteArray;
        QBuffer buffer(&byteArray);
        buffer.open(QIODevice::WriteOnly);
        img.save(&buffer, "JPEG", 50);
        QString b64("data:image/jpg;base64,");
        b64.append(QString::fromLatin1(byteArray.toBase64().data()));
        return b64;
    
}
extern "C" {
void __cpp_closure_2990875317831172749(uint32_t const& w, uint32_t const& h, uint32_t const& s, const uint8_t * const& ptr, void* __result) {
    ::new(__result) (QString)(__cpp_closure_2990875317831172749_impl(w, h, s, ptr));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QString __cpp_closure_15550278271769237555_impl(QImage const& img) {
#line 975 "src/utils.rs"
                                                           
        QByteArray byteArray;
        QBuffer buffer(&byteArray);
        buffer.open(QIODevice::WriteOnly);
        img.save(&buffer, "JPEG", 50);
        QString b64("data:image/jpg;base64,");
        b64.append(QString::fromLatin1(byteArray.toBase64().data()));
        return b64;
    
}
extern "C" {
void __cpp_closure_15550278271769237555(QImage const& img, void* __result) {
    ::new(__result) (QString)(__cpp_closure_15550278271769237555_impl(img));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QImage __cpp_closure_7270303938844343934_impl(const void* const& reader_ptr, int64_t const& file_size, int32_t const& requested_w, int32_t const& requested_h) {
#line 1084 "src/utils.rs"
                             
        return generate_thumbnail_with_reader_ffi(
            reader_ptr, file_size, requested_w, requested_h
        );
    
}
extern "C" {
void __cpp_closure_7270303938844343934(const void* const& reader_ptr, int64_t const& file_size, int32_t const& requested_w, int32_t const& requested_h, void* __result) {
    ::new(__result) (QImage)(__cpp_closure_7270303938844343934_impl(reader_ptr, file_size, requested_w, requested_h));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QJSValue __cpp_closure_3299386731937162128_impl() {
#line 1092 "src/utils.rs"
                                               return QJSValue(); 
}
extern "C" {
void __cpp_closure_3299386731937162128( void* __result) {
    ::new(__result) (QJSValue)(__cpp_closure_3299386731937162128_impl());
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QJSValue __cpp_closure_14247124633663015447_impl(QQmlEngine * const& engine_ptr, QObject * const& obj_ptr) {
#line 1099 "src/utils.rs"
                                 
        return engine_ptr->newQObject(obj_ptr);
    
}
extern "C" {
void __cpp_closure_14247124633663015447(QQmlEngine * const& engine_ptr, QObject * const& obj_ptr, void* __result) {
    ::new(__result) (QJSValue)(__cpp_closure_14247124633663015447_impl(engine_ptr, obj_ptr));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QImage __cpp_closure_17918375285484513375_impl(const uint8_t * const& data, size_t const& len) {
#line 1110 "src/utils.rs"
                             
        return heic_to_image_ffi(data, len);
    
}
extern "C" {
void __cpp_closure_17918375285484513375(const uint8_t * const& data, size_t const& len, void* __result) {
    ::new(__result) (QImage)(__cpp_closure_17918375285484513375_impl(data, len));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline bool __cpp_closure_17762732822180016800_impl() {
#line 1121 "src/utils.rs"
                                     
        gst_init(nullptr,nullptr);
        // GstElement *pipeline = gst_pipeline_new (NULL);
        // GstElement *src = gst_element_factory_make ("videotestsrc", NULL);
        // GstElement *glupload = gst_element_factory_make ("glupload", NULL);
        GstElement *sink = gst_element_factory_make ("qml6glsink", NULL);
        if (!sink) {
            return false;
        }

        gst_object_unref(sink);

        return true;
    
}
extern "C" {
void __cpp_closure_17762732822180016800( void* __result) {
    ::new(__result) (bool)(__cpp_closure_17762732822180016800_impl());
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline uintptr_t __cpp_closure_5288634857989158218_impl(QVariant const& item) {
#line 1138 "src/utils.rs"
                                                                   
        QObject* o = item.value<QObject *>();
        if (!o) return 0;

        // better do this
        QQuickItem* q = qobject_cast<QQuickItem*>(o);
        if (!q) return 0;

        return reinterpret_cast<uintptr_t>(q);
    
}
extern "C" {
void __cpp_closure_5288634857989158218(QVariant const& item, void* __result) {
    ::new(__result) (uintptr_t)(__cpp_closure_5288634857989158218_impl(item));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline QObject * __cpp_closure_7658463863965102175_impl(QJSValue const& val) {
#line 1183 "src/utils.rs"
                                                                
            return val.toQObject();
        
}
extern "C" {
void __cpp_closure_7658463863965102175(QJSValue const& val, void* __result) {
    ::new(__result) (QObject *)(__cpp_closure_7658463863965102175_impl(val));
}
}
#line 247 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"

static inline size_t __cpp_closure_9841546613543781575_impl(QObject* const& obj_ptr) {
#line 1194 "src/utils.rs"
                                                           
            if (!obj_ptr) return 0;
            QWindow *window = qobject_cast<QWindow*>(obj_ptr);
            if (window) {
                WId native_win_id = window->winId();
                return (size_t)native_win_id;
            }
            return 0;
        
}
extern "C" {
void __cpp_closure_9841546613543781575(QObject* const& obj_ptr, void* __result) {
    ::new(__result) (size_t)(__cpp_closure_9841546613543781575_impl(obj_ptr));
}
}
#line 308 "/build/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/cpp_build-0.5.11/src/lib.rs"


namespace rustcpp {

template<typename T>
struct AlignOf {
    struct Inner {
        char a;
        T b;
    };
    static const uintptr_t value = sizeof(Inner) - sizeof(T);
};

template<typename T>
struct Flags {
    static const uintptr_t value =
        (std::is_copy_constructible<T>::value << 0) |
        (std::is_default_constructible<T>::value << 1) |
#if !defined(__GNUC__) || (__GNUC__ + 0 >= 5) || defined(__clang__)
        (std::is_trivially_destructible<T>::value << 2) |
        (std::is_trivially_copyable<T>::value << 3) |
        (std::is_trivially_default_constructible<T>::value << 4) |
#endif
        0;
};

struct SizeAlign {
    uint64_t hash;
    uint64_t size;
    uint64_t align;
    uint64_t flags;
};

struct MetaData {
    uint8_t magic[128];
    uint8_t version[16];
    uint64_t endianness_check;
    uint64_t length;
    SizeAlign data[165];
};

MetaData metadata_14498712559543288772 = {
    { 114, 117, 115, 116, 99, 112, 112, 126, 109, 101, 116, 97, 100, 97, 116, 97, 92, 74, 112, 213, 165, 185, 214, 120, 179, 17, 185, 25, 182, 253, 82, 118, 148, 29, 139, 208, 59, 153, 78, 137, 230, 54, 26, 177, 232, 121, 132, 166, 44, 106, 218, 57, 158, 33, 69, 32, 54, 204, 123, 226, 99, 117, 60, 173, 112, 61, 56, 174, 117, 141, 126, 249, 79, 159, 6, 119, 2, 129, 147, 66, 135, 136, 212, 252, 231, 105, 239, 91, 96, 232, 113, 94, 164, 255, 152, 144, 64, 207, 192, 90, 225, 171, 59, 154, 60, 2, 0, 191, 114, 182, 38, 134, 134, 183, 212, 227, 31, 217, 12, 5, 65, 221, 150, 59, 230, 96, 73, 62 },
    "0.5.11",
    0xffef,
    165,
    { {
                11585132129305917477ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value | 0ull << 32
            }, {
                10003677330115707163ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {139423480997489493ull, 0, 1, 0ull << 32}, {
                139423480997489493ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {11566382205792148722ull, 0, 1, 0ull << 32}, {12377074516225366638ull, 0, 1, 0ull << 32}, {18284455496274579892ull, 0, 1, 0ull << 32}, {
                18284455496274579892ull,
                sizeof(QQmlApplicationEngine *),
                rustcpp::AlignOf<QQmlApplicationEngine *>::value,
                rustcpp::Flags<QQmlApplicationEngine *>::value
            }, {5262398002572766219ull, 0, 1, 0ull << 32}, {
                5262398002572766219ull,
                sizeof(QQmlApplicationEngine *),
                rustcpp::AlignOf<QQmlApplicationEngine *>::value,
                rustcpp::Flags<QQmlApplicationEngine *>::value
            }, {
                5262398002572766219ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {12610641365762134979ull, 0, 1, 0ull << 32}, {
                12610641365762134979ull,
                sizeof(QQmlApplicationEngine *),
                rustcpp::AlignOf<QQmlApplicationEngine *>::value,
                rustcpp::Flags<QQmlApplicationEngine *>::value
            }, {5969583340748656455ull, 0, 1, 0ull << 32}, {
                5969583340748656455ull,
                sizeof(QQmlApplicationEngine *),
                rustcpp::AlignOf<QQmlApplicationEngine *>::value,
                rustcpp::Flags<QQmlApplicationEngine *>::value
            }, {2991614438042534684ull, 0, 1, 0ull << 32}, {
                2991614438042534684ull,
                sizeof(QQmlApplicationEngine *),
                rustcpp::AlignOf<QQmlApplicationEngine *>::value,
                rustcpp::Flags<QQmlApplicationEngine *>::value
            }, {
                2991614438042534684ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                2991614438042534684ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                1327603581849509702ull,
                sizeof(QRectF),
                rustcpp::AlignOf<QRectF>::value,
                rustcpp::Flags<QRectF>::value | 0ull << 32
            }, {
                1327603581849509702ull,
                sizeof(void*),
                rustcpp::AlignOf<void*>::value,
                rustcpp::Flags<void*>::value
            }, {5986144349274274125ull, 0, 1, 0ull << 32}, {
                5986144349274274125ull,
                sizeof(void*),
                rustcpp::AlignOf<void*>::value,
                rustcpp::Flags<void*>::value
            }, {
                4699293934981118072ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value | 0ull << 32
            }, {
                4699293934981118072ull,
                sizeof(QQmlEngine *),
                rustcpp::AlignOf<QQmlEngine *>::value,
                rustcpp::Flags<QQmlEngine *>::value
            }, {
                4699293934981118072ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {14943313825967631200ull, 0, 1, 0ull << 32}, {
                14943313825967631200ull,
                sizeof(QQmlEngine *),
                rustcpp::AlignOf<QQmlEngine *>::value,
                rustcpp::Flags<QQmlEngine *>::value
            }, {
                14943313825967631200ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                14943313825967631200ull,
                sizeof(Rust_QImageProvider *),
                rustcpp::AlignOf<Rust_QImageProvider *>::value,
                rustcpp::Flags<Rust_QImageProvider *>::value
            }, {10708480264379187599ull, 0, 1, 0ull << 32}, {
                10708480264379187599ull,
                sizeof(QQmlEngine *),
                rustcpp::AlignOf<QQmlEngine *>::value,
                rustcpp::Flags<QQmlEngine *>::value
            }, {
                10708480264379187599ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                10708480264379187599ull,
                sizeof(Rust_QPixmapProvider *),
                rustcpp::AlignOf<Rust_QPixmapProvider *>::value,
                rustcpp::Flags<Rust_QPixmapProvider *>::value
            }, {
                13410495114432381421ull,
                sizeof(RustQObjectDescriptor const*),
                rustcpp::AlignOf<RustQObjectDescriptor const*>::value,
                rustcpp::Flags<RustQObjectDescriptor const*>::value | 0ull << 32
            }, {
                6443165644796478117ull,
                sizeof(RustQObjectDescriptor const*),
                rustcpp::AlignOf<RustQObjectDescriptor const*>::value,
                rustcpp::Flags<RustQObjectDescriptor const*>::value | 0ull << 32
            }, {
                15781264944059747232ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                15781264944059747232ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {10122827289966720591ull, 0, 1, 0ull << 32}, {
                10122827289966720591ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                10122827289966720591ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {14630568089596397874ull, 0, 1, 0ull << 32}, {
                5086800198967672453ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                13804977060937148544ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {4752330755358957668ull, 0, 1, 0ull << 32}, {
                4752330755358957668ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                13434117036856468060ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                12887792123218949210ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {18155753659441802178ull, 0, 1, 0ull << 32}, {
                18155753659441802178ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                310892644267509033ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                18225949218305997097ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {18000714637841416559ull, 0, 1, 0ull << 32}, {
                18000714637841416559ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                8547799656863135777ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                11544430411735474367ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value | 0ull << 32
            }, {
                11544430411735474367ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                11544430411735474367ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                11544430411735474367ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                13716074324977279545ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value | 0ull << 32
            }, {
                13716074324977279545ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                13716074324977279545ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                4294301103073192083ull,
                sizeof(QVariantList),
                rustcpp::AlignOf<QVariantList>::value,
                rustcpp::Flags<QVariantList>::value | 0ull << 32
            }, {
                4294301103073192083ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {10281308884346944821ull, 0, 1, 0ull << 32}, {
                10281308884346944821ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {5685824955945419480ull, 0, 1, 0ull << 32}, {
                5685824955945419480ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                5685824955945419480ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                5685824955945419480ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                1491264170070456118ull,
                sizeof(QVariantList),
                rustcpp::AlignOf<QVariantList>::value,
                rustcpp::Flags<QVariantList>::value | 0ull << 32
            }, {7229045763273525768ull, 0, 1, 0ull << 32}, {
                12192744781313480385ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                5153996711864459763ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                5153996711864459763ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {3763309496465886716ull, 0, 1, 0ull << 32}, {
                3763309496465886716ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                3763309496465886716ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                6148940512132359897ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                6148940512132359897ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                12186923275306345206ull,
                sizeof(QVariantList),
                rustcpp::AlignOf<QVariantList>::value,
                rustcpp::Flags<QVariantList>::value | 0ull << 32
            }, {
                3710503534535028971ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value | 0ull << 32
            }, {
                3710503534535028971ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {14320129568119596475ull, 0, 1, 0ull << 32}, {
                14320129568119596475ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                14320129568119596475ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value
            }, {
                15267509322903428217ull,
                sizeof(QStringList),
                rustcpp::AlignOf<QStringList>::value,
                rustcpp::Flags<QStringList>::value | 0ull << 32
            }, {7121734929359428026ull, 0, 1, 0ull << 32}, {
                9117711783933766272ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value | 0ull << 32
            }, {
                9117711783933766272ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                9117711783933766272ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value
            }, {
                9222457212185762938ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value | 0ull << 32
            }, {
                9222457212185762938ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {7968843914773869106ull, 0, 1, 0ull << 32}, {
                7968843914773869106ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                7968843914773869106ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value
            }, {
                17135547972615414130ull,
                sizeof(int),
                rustcpp::AlignOf<int>::value,
                rustcpp::Flags<int>::value | 0ull << 32
            }, {
                17135547972615414130ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                17135547972615414130ull,
                sizeof(int),
                rustcpp::AlignOf<int>::value,
                rustcpp::Flags<int>::value
            }, {17405859408445108491ull, 0, 1, 0ull << 32}, {
                17405859408445108491ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                17405859408445108491ull,
                sizeof(int),
                rustcpp::AlignOf<int>::value,
                rustcpp::Flags<int>::value
            }, {
                4234439493567640694ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                4234439493567640694ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                4234439493567640694ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                13444862973122395173ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                13444862973122395173ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                10201819725347216051ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {13658013200775767910ull, 0, 1, 0ull << 32}, {
                13658013200775767910ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                13658013200775767910ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                12148711471793574334ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value | 0ull << 32
            }, {
                12148711471793574334ull,
                sizeof(QObject *),
                rustcpp::AlignOf<QObject *>::value,
                rustcpp::Flags<QObject *>::value
            }, {
                12148711471793574334ull,
                sizeof(QJSValue),
                rustcpp::AlignOf<QJSValue>::value,
                rustcpp::Flags<QJSValue>::value
            }, {
                12148711471793574334ull,
                sizeof(double),
                rustcpp::AlignOf<double>::value,
                rustcpp::Flags<double>::value
            }, {
                12148711471793574334ull,
                sizeof(double),
                rustcpp::AlignOf<double>::value,
                rustcpp::Flags<double>::value
            }, {
                12148711471793574334ull,
                sizeof(double),
                rustcpp::AlignOf<double>::value,
                rustcpp::Flags<double>::value
            }, {
                12148711471793574334ull,
                sizeof(double),
                rustcpp::AlignOf<double>::value,
                rustcpp::Flags<double>::value
            }, {13880952764399356306ull, 0, 1, 0ull << 32}, {
                5344919085462256097ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {1072606924328412273ull, 0, 1, 0ull << 32}, {
                1072606924328412273ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                1072606924328412273ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value
            }, {9060208307472702001ull, 0, 1, 0ull << 32}, {
                9060208307472702001ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                6147631982113464630ull,
                sizeof(QImage),
                rustcpp::AlignOf<QImage>::value,
                rustcpp::Flags<QImage>::value | 0ull << 32
            }, {
                6147631982113464630ull,
                sizeof(const uchar*),
                rustcpp::AlignOf<const uchar*>::value,
                rustcpp::Flags<const uchar*>::value
            }, {
                6147631982113464630ull,
                sizeof(int),
                rustcpp::AlignOf<int>::value,
                rustcpp::Flags<int>::value
            }, {
                6147631982113464630ull,
                sizeof(int),
                rustcpp::AlignOf<int>::value,
                rustcpp::Flags<int>::value
            }, {
                6147631982113464630ull,
                sizeof(int),
                rustcpp::AlignOf<int>::value,
                rustcpp::Flags<int>::value
            }, {
                5189539050856893286ull,
                sizeof(QImage),
                rustcpp::AlignOf<QImage>::value,
                rustcpp::Flags<QImage>::value | 0ull << 32
            }, {
                5189539050856893286ull,
                sizeof(QImage),
                rustcpp::AlignOf<QImage>::value,
                rustcpp::Flags<QImage>::value
            }, {
                5189539050856893286ull,
                sizeof(int),
                rustcpp::AlignOf<int>::value,
                rustcpp::Flags<int>::value
            }, {
                5189539050856893286ull,
                sizeof(int),
                rustcpp::AlignOf<int>::value,
                rustcpp::Flags<int>::value
            }, {
                170568443408369691ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                170568443408369691ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                170568443408369691ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {2292849441819038258ull, 0, 1, 0ull << 32}, {
                2292849441819038258ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value
            }, {
                2990875317831172749ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                2990875317831172749ull,
                sizeof(uint32_t),
                rustcpp::AlignOf<uint32_t>::value,
                rustcpp::Flags<uint32_t>::value
            }, {
                2990875317831172749ull,
                sizeof(uint32_t),
                rustcpp::AlignOf<uint32_t>::value,
                rustcpp::Flags<uint32_t>::value
            }, {
                2990875317831172749ull,
                sizeof(uint32_t),
                rustcpp::AlignOf<uint32_t>::value,
                rustcpp::Flags<uint32_t>::value
            }, {
                2990875317831172749ull,
                sizeof(const uint8_t *),
                rustcpp::AlignOf<const uint8_t *>::value,
                rustcpp::Flags<const uint8_t *>::value
            }, {
                15550278271769237555ull,
                sizeof(QString),
                rustcpp::AlignOf<QString>::value,
                rustcpp::Flags<QString>::value | 0ull << 32
            }, {
                15550278271769237555ull,
                sizeof(QImage),
                rustcpp::AlignOf<QImage>::value,
                rustcpp::Flags<QImage>::value
            }, {
                7270303938844343934ull,
                sizeof(QImage),
                rustcpp::AlignOf<QImage>::value,
                rustcpp::Flags<QImage>::value | 0ull << 32
            }, {
                7270303938844343934ull,
                sizeof(const void*),
                rustcpp::AlignOf<const void*>::value,
                rustcpp::Flags<const void*>::value
            }, {
                7270303938844343934ull,
                sizeof(int64_t),
                rustcpp::AlignOf<int64_t>::value,
                rustcpp::Flags<int64_t>::value
            }, {
                7270303938844343934ull,
                sizeof(int32_t),
                rustcpp::AlignOf<int32_t>::value,
                rustcpp::Flags<int32_t>::value
            }, {
                7270303938844343934ull,
                sizeof(int32_t),
                rustcpp::AlignOf<int32_t>::value,
                rustcpp::Flags<int32_t>::value
            }, {
                3299386731937162128ull,
                sizeof(QJSValue),
                rustcpp::AlignOf<QJSValue>::value,
                rustcpp::Flags<QJSValue>::value | 0ull << 32
            }, {
                14247124633663015447ull,
                sizeof(QJSValue),
                rustcpp::AlignOf<QJSValue>::value,
                rustcpp::Flags<QJSValue>::value | 0ull << 32
            }, {
                14247124633663015447ull,
                sizeof(QQmlEngine *),
                rustcpp::AlignOf<QQmlEngine *>::value,
                rustcpp::Flags<QQmlEngine *>::value
            }, {
                14247124633663015447ull,
                sizeof(QObject *),
                rustcpp::AlignOf<QObject *>::value,
                rustcpp::Flags<QObject *>::value
            }, {
                17918375285484513375ull,
                sizeof(QImage),
                rustcpp::AlignOf<QImage>::value,
                rustcpp::Flags<QImage>::value | 0ull << 32
            }, {
                17918375285484513375ull,
                sizeof(const uint8_t *),
                rustcpp::AlignOf<const uint8_t *>::value,
                rustcpp::Flags<const uint8_t *>::value
            }, {
                17918375285484513375ull,
                sizeof(size_t),
                rustcpp::AlignOf<size_t>::value,
                rustcpp::Flags<size_t>::value
            }, {
                17762732822180016800ull,
                sizeof(bool),
                rustcpp::AlignOf<bool>::value,
                rustcpp::Flags<bool>::value | 0ull << 32
            }, {
                5288634857989158218ull,
                sizeof(uintptr_t),
                rustcpp::AlignOf<uintptr_t>::value,
                rustcpp::Flags<uintptr_t>::value | 0ull << 32
            }, {
                5288634857989158218ull,
                sizeof(QVariant),
                rustcpp::AlignOf<QVariant>::value,
                rustcpp::Flags<QVariant>::value
            }, {
                7658463863965102175ull,
                sizeof(QObject *),
                rustcpp::AlignOf<QObject *>::value,
                rustcpp::Flags<QObject *>::value | 0ull << 32
            }, {
                7658463863965102175ull,
                sizeof(QJSValue),
                rustcpp::AlignOf<QJSValue>::value,
                rustcpp::Flags<QJSValue>::value
            }, {
                9841546613543781575ull,
                sizeof(size_t),
                rustcpp::AlignOf<size_t>::value,
                rustcpp::Flags<size_t>::value | 0ull << 32
            }, {
                9841546613543781575ull,
                sizeof(QObject*),
                rustcpp::AlignOf<QObject*>::value,
                rustcpp::Flags<QObject*>::value
            } }
};

} // namespace rustcpp
