/* Application.c generated by valac 0.56.19, the Vala compiler
 * generated from Application.vala, do not modify */

#include <glib.h>
#include <glib-object.h>
#include <adwaita.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>
#include <gtk/gtk.h>
#include <libsoup/soup.h>
#include <gtksourceview/gtksource.h>
#include <clapper/clapper.h>
#include <clapper-gtk/clapper-gtk.h>
#include <gst/gst.h>
#include <gexiv2/gexiv2.h>
#include <gee.h>
#include <locale.h>
#include <pango/pango.h>
#include <float.h>
#include <math.h>
#include <json-glib/json-glib.h>
#include <gdk/gdk.h>

#define BUILD_PREFIX "/usr"
#define BUILD_VERSION "0.11.1"
#define BUILD_PROFILE "production"
#define BUILD_NAME "Tuba"
#define BUILD_GETTEXT_PACKAGE "dev.geopjr.Tuba"
#define BUILD_LOCALEDIR "/usr/share/locale"
#define BUILD_DOMAIN "dev.geopjr.Tuba"
#define BUILD_WIKI_WEBSITE "https://codeberg.org/GeopJr/Tuba/wiki"
#define BUILD_TRANSLATE_WEBSITE "https://translate.codeberg.org/engage/tuba/"
#define BUILD_DONATE_WEBSITE "https://geopjr.dev/donate"
#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define TUBA_TYPE_OOPSIE (tuba_oopsie_get_type ())

#define TUBA_TYPE_APPLICATION (tuba_application_get_type ())
#define TUBA_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_APPLICATION, TubaApplication))
#define TUBA_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_APPLICATION, TubaApplicationClass))
#define TUBA_IS_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_APPLICATION))
#define TUBA_IS_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_APPLICATION))
#define TUBA_APPLICATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_APPLICATION, TubaApplicationClass))

typedef struct _TubaApplication TubaApplication;
typedef struct _TubaApplicationClass TubaApplicationClass;

#define TUBA_TYPE_SETTINGS (tuba_settings_get_type ())
#define TUBA_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_SETTINGS, TubaSettings))
#define TUBA_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_SETTINGS, TubaSettingsClass))
#define TUBA_IS_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_SETTINGS))
#define TUBA_IS_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_SETTINGS))
#define TUBA_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_SETTINGS, TubaSettingsClass))

typedef struct _TubaSettings TubaSettings;
typedef struct _TubaSettingsClass TubaSettingsClass;

#define TUBA_TYPE_ACCOUNT_STORE (tuba_account_store_get_type ())
#define TUBA_ACCOUNT_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_ACCOUNT_STORE, TubaAccountStore))
#define TUBA_ACCOUNT_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_ACCOUNT_STORE, TubaAccountStoreClass))
#define TUBA_IS_ACCOUNT_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_ACCOUNT_STORE))
#define TUBA_IS_ACCOUNT_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_ACCOUNT_STORE))
#define TUBA_ACCOUNT_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_ACCOUNT_STORE, TubaAccountStoreClass))

typedef struct _TubaAccountStore TubaAccountStore;
typedef struct _TubaAccountStoreClass TubaAccountStoreClass;

#define TUBA_TYPE_NETWORK (tuba_network_get_type ())
#define TUBA_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_NETWORK, TubaNetwork))
#define TUBA_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_NETWORK, TubaNetworkClass))
#define TUBA_IS_NETWORK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_NETWORK))
#define TUBA_IS_NETWORK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_NETWORK))
#define TUBA_NETWORK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_NETWORK, TubaNetworkClass))

typedef struct _TubaNetwork TubaNetwork;
typedef struct _TubaNetworkClass TubaNetworkClass;

#define TUBA_TYPE_STREAMS (tuba_streams_get_type ())
#define TUBA_STREAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_STREAMS, TubaStreams))
#define TUBA_STREAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_STREAMS, TubaStreamsClass))
#define TUBA_IS_STREAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_STREAMS))
#define TUBA_IS_STREAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_STREAMS))
#define TUBA_STREAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_STREAMS, TubaStreamsClass))

typedef struct _TubaStreams TubaStreams;
typedef struct _TubaStreamsClass TubaStreamsClass;
typedef struct _TubaApplicationPrivate TubaApplicationPrivate;

#define TUBA_DIALOGS_TYPE_MAIN_WINDOW (tuba_dialogs_main_window_get_type ())
#define TUBA_DIALOGS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindow))
#define TUBA_DIALOGS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindowClass))
#define TUBA_DIALOGS_IS_MAIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW))
#define TUBA_DIALOGS_IS_MAIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_TYPE_MAIN_WINDOW))
#define TUBA_DIALOGS_MAIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_TYPE_MAIN_WINDOW, TubaDialogsMainWindowClass))

typedef struct _TubaDialogsMainWindow TubaDialogsMainWindow;
typedef struct _TubaDialogsMainWindowClass TubaDialogsMainWindowClass;

#define TUBA_DIALOGS_TYPE_NEW_ACCOUNT (tuba_dialogs_new_account_get_type ())
#define TUBA_DIALOGS_NEW_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_TYPE_NEW_ACCOUNT, TubaDialogsNewAccount))
#define TUBA_DIALOGS_NEW_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_TYPE_NEW_ACCOUNT, TubaDialogsNewAccountClass))
#define TUBA_DIALOGS_IS_NEW_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_TYPE_NEW_ACCOUNT))
#define TUBA_DIALOGS_IS_NEW_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_TYPE_NEW_ACCOUNT))
#define TUBA_DIALOGS_NEW_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_TYPE_NEW_ACCOUNT, TubaDialogsNewAccountClass))

typedef struct _TubaDialogsNewAccount TubaDialogsNewAccount;
typedef struct _TubaDialogsNewAccountClass TubaDialogsNewAccountClass;

#define TUBA_UTILS_TYPE_LOCALES (tuba_utils_locales_get_type ())
#define TUBA_UTILS_LOCALES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_UTILS_TYPE_LOCALES, TubaUtilsLocales))
#define TUBA_UTILS_LOCALES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_UTILS_TYPE_LOCALES, TubaUtilsLocalesClass))
#define TUBA_UTILS_IS_LOCALES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_UTILS_TYPE_LOCALES))
#define TUBA_UTILS_IS_LOCALES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_UTILS_TYPE_LOCALES))
#define TUBA_UTILS_LOCALES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_UTILS_TYPE_LOCALES, TubaUtilsLocalesClass))

typedef struct _TubaUtilsLocales TubaUtilsLocales;
typedef struct _TubaUtilsLocalesClass TubaUtilsLocalesClass;

#define TUBA_UTILS_SHARE_HANDLER_TYPE_SHARE_RESULT (tuba_utils_share_handler_share_result_get_type ())
typedef struct _TubaUtilsShareHandlerShareResult TubaUtilsShareHandlerShareResult;
enum  {
	TUBA_APPLICATION_0_PROPERTY,
	TUBA_APPLICATION_PROXY_PROPERTY,
	TUBA_APPLICATION_MAIN_WINDOW_PROPERTY,
	TUBA_APPLICATION_ADD_ACCOUNT_WINDOW_PROPERTY,
	TUBA_APPLICATION_IS_MOBILE_PROPERTY,
	TUBA_APPLICATION_IS_ONLINE_PROPERTY,
	TUBA_APPLICATION_APP_LOCALES_PROPERTY,
	TUBA_APPLICATION_APP_SETTINGS_PROPERTY,
	TUBA_APPLICATION_APP_ACCOUNTS_PROPERTY,
	TUBA_APPLICATION_APP_NETWORK_PROPERTY,
	TUBA_APPLICATION_APP_STREAMS_PROPERTY,
	TUBA_APPLICATION_NUM_PROPERTIES
};
static GParamSpec* tuba_application_properties[TUBA_APPLICATION_NUM_PROPERTIES];
typedef enum  {
	TUBA_APPLICATION_QUESTION_ANSWER_YES,
	TUBA_APPLICATION_QUESTION_ANSWER_NO,
	TUBA_APPLICATION_QUESTION_ANSWER_CLOSE
} TubaApplicationQuestionAnswer;

#define TUBA_APPLICATION_TYPE_QUESTION_ANSWER (tuba_application_question_answer_get_type ())
typedef void (*GSimpleActionActivateCallback) (GSimpleAction* action, GVariant* parameter, gpointer user_data);
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _tuba_utils_share_handler_share_result_free0(var) ((var == NULL) ? NULL : (var = (tuba_utils_share_handler_share_result_free (var), NULL)))
#define _g_free0(var) (var = (g_free (var), NULL))

#define TUBA_TYPE_ENTITY (tuba_entity_get_type ())
#define TUBA_ENTITY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_ENTITY, TubaEntity))
#define TUBA_ENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_ENTITY, TubaEntityClass))
#define TUBA_IS_ENTITY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_ENTITY))
#define TUBA_IS_ENTITY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_ENTITY))
#define TUBA_ENTITY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_ENTITY, TubaEntityClass))

typedef struct _TubaEntity TubaEntity;
typedef struct _TubaEntityClass TubaEntityClass;

#define TUBA_API_TYPE_ACCOUNT (tuba_api_account_get_type ())
#define TUBA_API_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_ACCOUNT, TubaAPIAccount))
#define TUBA_API_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_ACCOUNT, TubaAPIAccountClass))
#define TUBA_API_IS_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_ACCOUNT))
#define TUBA_API_IS_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_ACCOUNT))
#define TUBA_API_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_ACCOUNT, TubaAPIAccountClass))

typedef struct _TubaAPIAccount TubaAPIAccount;
typedef struct _TubaAPIAccountClass TubaAPIAccountClass;

#define TUBA_TYPE_INSTANCE_ACCOUNT (tuba_instance_account_get_type ())
#define TUBA_INSTANCE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccount))
#define TUBA_INSTANCE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccountClass))
#define TUBA_IS_INSTANCE_ACCOUNT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_INSTANCE_ACCOUNT))
#define TUBA_IS_INSTANCE_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_INSTANCE_ACCOUNT))
#define TUBA_INSTANCE_ACCOUNT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_INSTANCE_ACCOUNT, TubaInstanceAccountClass))

typedef struct _TubaInstanceAccount TubaInstanceAccount;
typedef struct _TubaInstanceAccountClass TubaInstanceAccountClass;
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))

#define TUBA_TYPE_PLACE (tuba_place_get_type ())
#define TUBA_PLACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_PLACE, TubaPlace))
#define TUBA_PLACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_PLACE, TubaPlaceClass))
#define TUBA_IS_PLACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_PLACE))
#define TUBA_IS_PLACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_PLACE))
#define TUBA_PLACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_PLACE, TubaPlaceClass))

typedef struct _TubaPlace TubaPlace;
typedef struct _TubaPlaceClass TubaPlaceClass;
typedef void (*TubaPlaceOpenFunc) (TubaDialogsMainWindow* window, GObject* extra);
#define _g_uri_unref0(var) ((var == NULL) ? NULL : (var = (g_uri_unref (var), NULL)))
typedef struct _Block1Data Block1Data;

#define TUBA_TYPE_WIDGETIZABLE (tuba_widgetizable_get_type ())
#define TUBA_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizable))
#define TUBA_IS_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_WIDGETIZABLE))
#define TUBA_WIDGETIZABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizableIface))

typedef struct _TubaWidgetizable TubaWidgetizable;
typedef struct _TubaWidgetizableIface TubaWidgetizableIface;
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#define TUBA_API_TYPE_INSTANCE (tuba_api_instance_get_type ())
#define TUBA_API_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_INSTANCE, TubaAPIInstance))
#define TUBA_API_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_INSTANCE, TubaAPIInstanceClass))
#define TUBA_API_IS_INSTANCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_INSTANCE))
#define TUBA_API_IS_INSTANCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_INSTANCE))
#define TUBA_API_INSTANCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_INSTANCE, TubaAPIInstanceClass))

typedef struct _TubaAPIInstance TubaAPIInstance;
typedef struct _TubaAPIInstanceClass TubaAPIInstanceClass;

#define TUBA_DIALOGS_COMPOSER_DIALOG_TYPE_PRECOMPOSE (tuba_dialogs_composer_dialog_precompose_get_type ())
typedef struct _TubaDialogsComposerDialogPrecompose TubaDialogsComposerDialogPrecompose;

#define TUBA_API_TYPE_POLL (tuba_api_poll_get_type ())
#define TUBA_API_POLL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_POLL, TubaAPIPoll))
#define TUBA_API_POLL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_POLL, TubaAPIPollClass))
#define TUBA_API_IS_POLL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_POLL))
#define TUBA_API_IS_POLL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_POLL))
#define TUBA_API_POLL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_POLL, TubaAPIPollClass))

typedef struct _TubaAPIPoll TubaAPIPoll;
typedef struct _TubaAPIPollClass TubaAPIPollClass;

#define TUBA_API_TYPE_ATTACHMENT (tuba_api_attachment_get_type ())
#define TUBA_API_ATTACHMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_ATTACHMENT, TubaAPIAttachment))
#define TUBA_API_ATTACHMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_ATTACHMENT, TubaAPIAttachmentClass))
#define TUBA_API_IS_ATTACHMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_ATTACHMENT))
#define TUBA_API_IS_ATTACHMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_ATTACHMENT))
#define TUBA_API_ATTACHMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_ATTACHMENT, TubaAPIAttachmentClass))

typedef struct _TubaAPIAttachment TubaAPIAttachment;
typedef struct _TubaAPIAttachmentClass TubaAPIAttachmentClass;

#define TUBA_DIALOGS_COMPOSER_TYPE_DIALOG (tuba_dialogs_composer_dialog_get_type ())
#define TUBA_DIALOGS_COMPOSER_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_COMPOSER_TYPE_DIALOG, TubaDialogsComposerDialog))
#define TUBA_DIALOGS_COMPOSER_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_COMPOSER_TYPE_DIALOG, TubaDialogsComposerDialogClass))
#define TUBA_DIALOGS_COMPOSER_IS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_COMPOSER_TYPE_DIALOG))
#define TUBA_DIALOGS_COMPOSER_IS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_COMPOSER_TYPE_DIALOG))
#define TUBA_DIALOGS_COMPOSER_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_COMPOSER_TYPE_DIALOG, TubaDialogsComposerDialogClass))

typedef struct _TubaDialogsComposerDialog TubaDialogsComposerDialog;
typedef struct _TubaDialogsComposerDialogClass TubaDialogsComposerDialogClass;
#define _g_regex_unref0(var) ((var == NULL) ? NULL : (var = (g_regex_unref (var), NULL)))

#define TUBA_TYPE_SECRET_ACCOUNT_STORE (tuba_secret_account_store_get_type ())
#define TUBA_SECRET_ACCOUNT_STORE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_SECRET_ACCOUNT_STORE, TubaSecretAccountStore))
#define TUBA_SECRET_ACCOUNT_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_SECRET_ACCOUNT_STORE, TubaSecretAccountStoreClass))
#define TUBA_IS_SECRET_ACCOUNT_STORE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_SECRET_ACCOUNT_STORE))
#define TUBA_IS_SECRET_ACCOUNT_STORE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_SECRET_ACCOUNT_STORE))
#define TUBA_SECRET_ACCOUNT_STORE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_SECRET_ACCOUNT_STORE, TubaSecretAccountStoreClass))

typedef struct _TubaSecretAccountStore TubaSecretAccountStore;
typedef struct _TubaSecretAccountStoreClass TubaSecretAccountStoreClass;
typedef enum  {
	TUBA_COLOR_SCHEME_SYSTEM,
	TUBA_COLOR_SCHEME_LIGHT,
	TUBA_COLOR_SCHEME_DARK
} TubaColorScheme;

#define TUBA_TYPE_COLOR_SCHEME (tuba_color_scheme_get_type ())

#define TUBA_VIEWS_TYPE_BASE (tuba_views_base_get_type ())
#define TUBA_VIEWS_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_BASE, TubaViewsBase))
#define TUBA_VIEWS_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_BASE, TubaViewsBaseClass))
#define TUBA_VIEWS_IS_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_BASE))
#define TUBA_VIEWS_IS_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_BASE))
#define TUBA_VIEWS_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_BASE, TubaViewsBaseClass))

typedef struct _TubaViewsBase TubaViewsBase;
typedef struct _TubaViewsBaseClass TubaViewsBaseClass;

#define TUBA_VIEWS_TYPE_TABBED_BASE (tuba_views_tabbed_base_get_type ())
#define TUBA_VIEWS_TABBED_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_TABBED_BASE, TubaViewsTabbedBase))
#define TUBA_VIEWS_TABBED_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_TABBED_BASE, TubaViewsTabbedBaseClass))
#define TUBA_VIEWS_IS_TABBED_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_TABBED_BASE))
#define TUBA_VIEWS_IS_TABBED_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_TABBED_BASE))
#define TUBA_VIEWS_TABBED_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_TABBED_BASE, TubaViewsTabbedBaseClass))

typedef struct _TubaViewsTabbedBase TubaViewsTabbedBase;
typedef struct _TubaViewsTabbedBaseClass TubaViewsTabbedBaseClass;

#define TUBA_VIEWS_TYPE_SEARCH (tuba_views_search_get_type ())
#define TUBA_VIEWS_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_SEARCH, TubaViewsSearch))
#define TUBA_VIEWS_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_SEARCH, TubaViewsSearchClass))
#define TUBA_VIEWS_IS_SEARCH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_SEARCH))
#define TUBA_VIEWS_IS_SEARCH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_SEARCH))
#define TUBA_VIEWS_SEARCH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_SEARCH, TubaViewsSearchClass))

typedef struct _TubaViewsSearch TubaViewsSearch;
typedef struct _TubaViewsSearchClass TubaViewsSearchClass;

#define TUBA_DIALOGS_TYPE_PREFERENCES (tuba_dialogs_preferences_get_type ())
#define TUBA_DIALOGS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_TYPE_PREFERENCES, TubaDialogsPreferences))
#define TUBA_DIALOGS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_TYPE_PREFERENCES, TubaDialogsPreferencesClass))
#define TUBA_DIALOGS_IS_PREFERENCES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_TYPE_PREFERENCES))
#define TUBA_DIALOGS_IS_PREFERENCES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_TYPE_PREFERENCES))
#define TUBA_DIALOGS_PREFERENCES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_TYPE_PREFERENCES, TubaDialogsPreferencesClass))

typedef struct _TubaDialogsPreferences TubaDialogsPreferences;
typedef struct _TubaDialogsPreferencesClass TubaDialogsPreferencesClass;

#define TUBA_VIEWS_TYPE_CONTENT_BASE (tuba_views_content_base_get_type ())
#define TUBA_VIEWS_CONTENT_BASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_CONTENT_BASE, TubaViewsContentBase))
#define TUBA_VIEWS_CONTENT_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_CONTENT_BASE, TubaViewsContentBaseClass))
#define TUBA_VIEWS_IS_CONTENT_BASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_CONTENT_BASE))
#define TUBA_VIEWS_IS_CONTENT_BASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_CONTENT_BASE))
#define TUBA_VIEWS_CONTENT_BASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_CONTENT_BASE, TubaViewsContentBaseClass))

typedef struct _TubaViewsContentBase TubaViewsContentBase;
typedef struct _TubaViewsContentBaseClass TubaViewsContentBaseClass;

#define TUBA_VIEWS_TYPE_TIMELINE (tuba_views_timeline_get_type ())
#define TUBA_VIEWS_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_TIMELINE, TubaViewsTimeline))
#define TUBA_VIEWS_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_TIMELINE, TubaViewsTimelineClass))
#define TUBA_VIEWS_IS_TIMELINE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_TIMELINE))
#define TUBA_VIEWS_IS_TIMELINE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_TIMELINE))
#define TUBA_VIEWS_TIMELINE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_TIMELINE, TubaViewsTimelineClass))

typedef struct _TubaViewsTimeline TubaViewsTimeline;
typedef struct _TubaViewsTimelineClass TubaViewsTimelineClass;

#define TUBA_VIEWS_TYPE_ANNOUNCEMENTS (tuba_views_announcements_get_type ())
#define TUBA_VIEWS_ANNOUNCEMENTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_ANNOUNCEMENTS, TubaViewsAnnouncements))
#define TUBA_VIEWS_ANNOUNCEMENTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_ANNOUNCEMENTS, TubaViewsAnnouncementsClass))
#define TUBA_VIEWS_IS_ANNOUNCEMENTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_ANNOUNCEMENTS))
#define TUBA_VIEWS_IS_ANNOUNCEMENTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_ANNOUNCEMENTS))
#define TUBA_VIEWS_ANNOUNCEMENTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_ANNOUNCEMENTS, TubaViewsAnnouncementsClass))

typedef struct _TubaViewsAnnouncements TubaViewsAnnouncements;
typedef struct _TubaViewsAnnouncementsClass TubaViewsAnnouncementsClass;

#define TUBA_VIEWS_TYPE_FOLLOW_REQUESTS (tuba_views_follow_requests_get_type ())
#define TUBA_VIEWS_FOLLOW_REQUESTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_FOLLOW_REQUESTS, TubaViewsFollowRequests))
#define TUBA_VIEWS_FOLLOW_REQUESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_FOLLOW_REQUESTS, TubaViewsFollowRequestsClass))
#define TUBA_VIEWS_IS_FOLLOW_REQUESTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_FOLLOW_REQUESTS))
#define TUBA_VIEWS_IS_FOLLOW_REQUESTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_FOLLOW_REQUESTS))
#define TUBA_VIEWS_FOLLOW_REQUESTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_FOLLOW_REQUESTS, TubaViewsFollowRequestsClass))

typedef struct _TubaViewsFollowRequests TubaViewsFollowRequests;
typedef struct _TubaViewsFollowRequestsClass TubaViewsFollowRequestsClass;

#define TUBA_VIEWS_TYPE_MUTES_BLOCKS (tuba_views_mutes_blocks_get_type ())
#define TUBA_VIEWS_MUTES_BLOCKS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_MUTES_BLOCKS, TubaViewsMutesBlocks))
#define TUBA_VIEWS_MUTES_BLOCKS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_MUTES_BLOCKS, TubaViewsMutesBlocksClass))
#define TUBA_VIEWS_IS_MUTES_BLOCKS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_MUTES_BLOCKS))
#define TUBA_VIEWS_IS_MUTES_BLOCKS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_MUTES_BLOCKS))
#define TUBA_VIEWS_MUTES_BLOCKS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_MUTES_BLOCKS, TubaViewsMutesBlocksClass))

typedef struct _TubaViewsMutesBlocks TubaViewsMutesBlocks;
typedef struct _TubaViewsMutesBlocksClass TubaViewsMutesBlocksClass;

#define TUBA_VIEWS_TYPE_SCHEDULED_STATUSES (tuba_views_scheduled_statuses_get_type ())
#define TUBA_VIEWS_SCHEDULED_STATUSES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_SCHEDULED_STATUSES, TubaViewsScheduledStatuses))
#define TUBA_VIEWS_SCHEDULED_STATUSES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_SCHEDULED_STATUSES, TubaViewsScheduledStatusesClass))
#define TUBA_VIEWS_IS_SCHEDULED_STATUSES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_SCHEDULED_STATUSES))
#define TUBA_VIEWS_IS_SCHEDULED_STATUSES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_SCHEDULED_STATUSES))
#define TUBA_VIEWS_SCHEDULED_STATUSES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_SCHEDULED_STATUSES, TubaViewsScheduledStatusesClass))

typedef struct _TubaViewsScheduledStatuses TubaViewsScheduledStatuses;
typedef struct _TubaViewsScheduledStatusesClass TubaViewsScheduledStatusesClass;

#define TUBA_VIEWS_TYPE_DRAFT_STATUSES (tuba_views_draft_statuses_get_type ())
#define TUBA_VIEWS_DRAFT_STATUSES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_DRAFT_STATUSES, TubaViewsDraftStatuses))
#define TUBA_VIEWS_DRAFT_STATUSES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_DRAFT_STATUSES, TubaViewsDraftStatusesClass))
#define TUBA_VIEWS_IS_DRAFT_STATUSES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_DRAFT_STATUSES))
#define TUBA_VIEWS_IS_DRAFT_STATUSES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_DRAFT_STATUSES))
#define TUBA_VIEWS_DRAFT_STATUSES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_DRAFT_STATUSES, TubaViewsDraftStatusesClass))

typedef struct _TubaViewsDraftStatuses TubaViewsDraftStatuses;
typedef struct _TubaViewsDraftStatusesClass TubaViewsDraftStatusesClass;

#define TUBA_DIALOGS_ADMIN_TYPE_WINDOW (tuba_dialogs_admin_window_get_type ())
#define TUBA_DIALOGS_ADMIN_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_ADMIN_TYPE_WINDOW, TubaDialogsAdminWindow))
#define TUBA_DIALOGS_ADMIN_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_ADMIN_TYPE_WINDOW, TubaDialogsAdminWindowClass))
#define TUBA_DIALOGS_ADMIN_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_ADMIN_TYPE_WINDOW))
#define TUBA_DIALOGS_ADMIN_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_ADMIN_TYPE_WINDOW))
#define TUBA_DIALOGS_ADMIN_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_ADMIN_TYPE_WINDOW, TubaDialogsAdminWindowClass))

typedef struct _TubaDialogsAdminWindow TubaDialogsAdminWindow;
typedef struct _TubaDialogsAdminWindowClass TubaDialogsAdminWindowClass;

#define TUBA_VIEWS_TYPE_COLLECTIONS (tuba_views_collections_get_type ())
#define TUBA_VIEWS_COLLECTIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_VIEWS_TYPE_COLLECTIONS, TubaViewsCollections))
#define TUBA_VIEWS_COLLECTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_VIEWS_TYPE_COLLECTIONS, TubaViewsCollectionsClass))
#define TUBA_VIEWS_IS_COLLECTIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_VIEWS_TYPE_COLLECTIONS))
#define TUBA_VIEWS_IS_COLLECTIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_VIEWS_TYPE_COLLECTIONS))
#define TUBA_VIEWS_COLLECTIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_VIEWS_TYPE_COLLECTIONS, TubaViewsCollectionsClass))

typedef struct _TubaViewsCollections TubaViewsCollections;
typedef struct _TubaViewsCollectionsClass TubaViewsCollectionsClass;

#define TUBA_DIALOGS_TYPE_SAVEABLE (tuba_dialogs_saveable_get_type ())
#define TUBA_DIALOGS_SAVEABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_TYPE_SAVEABLE, TubaDialogsSaveable))
#define TUBA_DIALOGS_IS_SAVEABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_TYPE_SAVEABLE))
#define TUBA_DIALOGS_SAVEABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TUBA_DIALOGS_TYPE_SAVEABLE, TubaDialogsSaveableIface))

typedef struct _TubaDialogsSaveable TubaDialogsSaveable;
typedef struct _TubaDialogsSaveableIface TubaDialogsSaveableIface;
typedef struct _TubaDialogsMainWindowPrivate TubaDialogsMainWindowPrivate;
typedef struct _Block2Data Block2Data;
#define _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))
#define _g_time_zone_unref0(var) ((var == NULL) ? NULL : (var = (g_time_zone_unref (var), NULL)))
#define _tuba_application_question_text_free0(var) ((var == NULL) ? NULL : (var = (tuba_application_question_text_free (var), NULL)))

#define TUBA_APPLICATION_TYPE_QUESTION_TEXT (tuba_application_question_text_get_type ())
typedef struct _TubaApplicationQuestionText TubaApplicationQuestionText;

#define TUBA_APPLICATION_TYPE_QUESTION_BUTTONS (tuba_application_question_buttons_get_type ())
typedef struct _TubaApplicationQuestionButtons TubaApplicationQuestionButtons;

#define TUBA_APPLICATION_TYPE_QUESTION_BUTTON (tuba_application_question_button_get_type ())
typedef struct _TubaApplicationQuestionButton TubaApplicationQuestionButton;
typedef struct _TubaApplicationQuestionData TubaApplicationQuestionData;
typedef struct _Block3Data Block3Data;
#define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL)))

#define TUBA_TYPE_REQUEST_V2 (tuba_request_v2_get_type ())
#define TUBA_REQUEST_V2(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_REQUEST_V2, TubaRequestV2))
#define TUBA_REQUEST_V2_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_TYPE_REQUEST_V2, TubaRequestV2Class))
#define TUBA_IS_REQUEST_V2(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_REQUEST_V2))
#define TUBA_IS_REQUEST_V2_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_TYPE_REQUEST_V2))
#define TUBA_REQUEST_V2_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_TYPE_REQUEST_V2, TubaRequestV2Class))

typedef struct _TubaRequestV2 TubaRequestV2;
typedef struct _TubaRequestV2Class TubaRequestV2Class;
typedef enum  {
	TUBA_REQUEST_V2_METHOD_GET,
	TUBA_REQUEST_V2_METHOD_POST,
	TUBA_REQUEST_V2_METHOD_PUT,
	TUBA_REQUEST_V2_METHOD_DELETE,
	TUBA_REQUEST_V2_METHOD_PATCH
} TubaRequestV2Method;

#define TUBA_REQUEST_V2_TYPE_METHOD (tuba_request_v2_method_get_type ())
typedef struct _Block4Data Block4Data;
typedef void (*TubaNetworkNodeCallback) (JsonNode* node, gpointer user_data, GError** error);
typedef struct _TubaApplicationUpdateContributorsData TubaApplicationUpdateContributorsData;
#define _g_bytes_unref0(var) ((var == NULL) ? NULL : (var = (g_bytes_unref (var), NULL)))
typedef struct _TubaApplicationUpdateAnalyticsData TubaApplicationUpdateAnalyticsData;

#define TUBA_API_TYPE_RELATIONSHIP (tuba_api_relationship_get_type ())
#define TUBA_API_RELATIONSHIP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_RELATIONSHIP, TubaAPIRelationship))
#define TUBA_API_RELATIONSHIP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_RELATIONSHIP, TubaAPIRelationshipClass))
#define TUBA_API_IS_RELATIONSHIP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_RELATIONSHIP))
#define TUBA_API_IS_RELATIONSHIP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_RELATIONSHIP))
#define TUBA_API_RELATIONSHIP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_RELATIONSHIP, TubaAPIRelationshipClass))

typedef struct _TubaAPIRelationship TubaAPIRelationship;
typedef struct _TubaAPIRelationshipClass TubaAPIRelationshipClass;
enum  {
	TUBA_APPLICATION_REFRESH_SIGNAL,
	TUBA_APPLICATION_REFRESH_SCHEDULED_STATUSES_SIGNAL,
	TUBA_APPLICATION_REFRESH_FEATURED_SIGNAL,
	TUBA_APPLICATION_REMOVE_STATUS_WIDGET_SIGNAL,
	TUBA_APPLICATION_RELATIONSHIP_INVALIDATED_SIGNAL,
	TUBA_APPLICATION_REMOVE_USER_ID_SIGNAL,
	TUBA_APPLICATION_FAV_TAGS_CHANGED_SIGNAL,
	TUBA_APPLICATION_TIME_UPDATE_SIGNAL,
	TUBA_APPLICATION_TOAST_SIGNAL,
	TUBA_APPLICATION_TOAST_OBJECT_SIGNAL,
	TUBA_APPLICATION_NUM_SIGNALS
};
static guint tuba_application_signals[TUBA_APPLICATION_NUM_SIGNALS] = {0};

typedef enum  {
	TUBA_OOPSIE_USER,
	TUBA_OOPSIE_PARSING,
	TUBA_OOPSIE_INSTANCE,
	TUBA_OOPSIE_INTERNAL,
	TUBA_OOPSIE_HTTP_401 = 401,
	TUBA_OOPSIE_HTTP_403 = 403,
	TUBA_OOPSIE_HTTP_404 = 404,
	TUBA_OOPSIE_HTTP_410 = 410,
	TUBA_OOPSIE_HTTP_422 = 422,
	TUBA_OOPSIE_HTTP_429 = 429,
	TUBA_OOPSIE_HTTP_500 = 500,
	TUBA_OOPSIE_HTTP_503 = 503
} TubaOopsie;
#define TUBA_OOPSIE tuba_oopsie_quark ()

struct _TubaApplication {
	AdwApplication parent_instance;
	TubaApplicationPrivate * priv;
};

struct _TubaApplicationClass {
	AdwApplicationClass parent_class;
};

struct _TubaUtilsShareHandlerShareResult {
	gchar* text;
	gchar* cw;
};

struct _TubaApplicationPrivate {
	GProxyResolver* _proxy;
	TubaDialogsMainWindow* _main_window;
	TubaDialogsNewAccount* _add_account_window;
	gboolean _is_mobile;
	gboolean _is_online;
	TubaUtilsLocales* _app_locales;
	TubaUtilsShareHandlerShareResult* to_share;
	gboolean activated;
	gchar* troubleshooting;
	gboolean loaded_egg;
};

struct _Block1Data {
	int _ref_count_;
	TubaApplication* self;
	GUri* uri;
};

struct _TubaWidgetizableIface {
	GTypeInterface parent_iface;
	GtkWidget* (*to_widget) (TubaWidgetizable* self);
	void (*open) (TubaWidgetizable* self);
	void (*resolve_open) (TubaWidgetizable* self, TubaInstanceAccount* account);
};

struct _TubaDialogsComposerDialogPrecompose {
	gchar* content;
	gchar* spoiler;
	gchar* quote_id;
	gchar* scheduled_id;
	gchar* in_reply_to_id;
	TubaAPIPoll* poll;
	GeeArrayList* media_attachments;
	gboolean sensitive_media;
	gboolean local_only;
	gboolean force_cursor_at_start;
};

struct _TubaDialogsSaveableIface {
	GTypeInterface parent_iface;
};

struct _TubaDialogsMainWindow {
	AdwApplicationWindow parent_instance;
	TubaDialogsMainWindowPrivate * priv;
	AdwOverlaySplitView* split_view;
	AdwNavigationPage* main_page;
};

struct _TubaDialogsMainWindowClass {
	AdwApplicationWindowClass parent_class;
};

struct _Block2Data {
	int _ref_count_;
	TubaApplication* self;
	AdwAboutDialog* dialog;
};

struct _TubaApplicationQuestionText {
	gchar* text;
	gboolean use_markup;
};

struct _TubaApplicationQuestionButton {
	gchar* label;
	AdwResponseAppearance appearance;
};

struct _TubaApplicationQuestionButtons {
	TubaApplicationQuestionButton yes;
	TubaApplicationQuestionButton no;
};

struct _TubaApplicationQuestionData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	TubaApplication* self;
	TubaApplicationQuestionText title;
	TubaApplicationQuestionText* msg;
	GtkWidget* win;
	TubaApplicationQuestionButtons buttons;
	GtkWidget* child;
	gboolean skip;
	TubaApplicationQuestionAnswer result;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	AdwAlertDialog* dlg;
	TubaApplicationQuestionText _tmp2_;
	const gchar* _tmp3_;
	AdwAlertDialog* _tmp4_;
	AdwAlertDialog* _tmp5_;
	TubaApplicationQuestionText _tmp6_;
	AdwAlertDialog* _tmp7_;
	AdwAlertDialog* _tmp8_;
	AdwAlertDialog* _tmp9_;
	TubaApplicationQuestionButtons _tmp10_;
	TubaApplicationQuestionButton _tmp11_;
	const gchar* _tmp12_;
	AdwAlertDialog* _tmp13_;
	TubaApplicationQuestionButtons _tmp14_;
	TubaApplicationQuestionButton _tmp15_;
	AdwAlertDialog* _tmp16_;
	TubaApplicationQuestionButtons _tmp17_;
	TubaApplicationQuestionButton _tmp18_;
	const gchar* _tmp19_;
	AdwAlertDialog* _tmp20_;
	TubaApplicationQuestionButtons _tmp21_;
	TubaApplicationQuestionButton _tmp22_;
	AdwAlertDialog* _tmp23_;
	const gchar* _tmp24_;
};

struct _Block3Data {
	int _ref_count_;
	TubaApplication* self;
	JsonBuilder* builder;
};

struct _Block4Data {
	int _ref_count_;
	TubaApplication* self;
	gchar** new_contributors;
	gint new_contributors_length1;
	gint _new_contributors_size_;
};

struct _TubaApplicationUpdateContributorsData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	TubaApplication* self;
	TubaSettings* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	TubaSettings* _tmp4_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	TubaSettings* _tmp7_;
	const gchar* _tmp8_;
	const gchar* _tmp9_;
	TubaSettings* _tmp10_;
	TubaSettings* _tmp11_;
	gboolean can_update;
	GDateTime* now_utc;
	GDateTime* _tmp12_;
	gboolean _tmp13_;
	TubaSettings* _tmp14_;
	const gchar* _tmp15_;
	const gchar* _tmp16_;
	TubaSettings* _tmp17_;
	const gchar* _tmp18_;
	const gchar* _tmp19_;
	GDateTime* then_utc;
	TubaSettings* _tmp20_;
	const gchar* _tmp21_;
	const gchar* _tmp22_;
	GDateTime* _tmp23_;
	GDateTime* _tmp24_;
	GDateTime* _tmp25_;
	GDateTime* _tmp26_;
	TubaRequestV2* msg;
	TubaRequestV2* _tmp27_;
	Block4Data* _data4_;
	GInputStream* in_stream;
	TubaRequestV2* _tmp28_;
	GInputStream* _tmp29_;
	JsonParser* parser;
	GInputStream* _tmp30_;
	JsonParser* _tmp31_;
	gchar** _tmp32_;
	JsonParser* _tmp33_;
	TubaSettings* _tmp34_;
	gchar** _tmp35_;
	gint _tmp35__length1;
	TubaSettings* _tmp36_;
	GDateTime* _tmp37_;
	gchar* _tmp38_;
	gchar* _tmp39_;
	GError* e;
	GError* _tmp40_;
	gchar* _tmp41_;
	gchar* _tmp42_;
	GError* _tmp43_;
	const gchar* _tmp44_;
	const gchar* _tmp45_;
	gchar* _tmp46_;
	gchar* _tmp47_;
	GError* _inner_error0_;
};

struct _TubaApplicationUpdateAnalyticsData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	TubaApplication* self;
	TubaSettings* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	gboolean can_update;
	GDateTime* now_utc;
	GDateTime* _tmp3_;
	gboolean _tmp4_;
	TubaSettings* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	TubaSettings* _tmp8_;
	const gchar* _tmp9_;
	const gchar* _tmp10_;
	GDateTime* then_utc;
	TubaSettings* _tmp11_;
	const gchar* _tmp12_;
	const gchar* _tmp13_;
	GDateTime* _tmp14_;
	GDateTime* _tmp15_;
	GDateTime* _tmp16_;
	GDateTime* _tmp17_;
	TubaRequestV2* msg;
	TubaRequestV2* _tmp18_;
	TubaRequestV2* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	guint8* _tmp22_;
	gint _tmp22__length1;
	gint _tmp23_;
	guint8* _tmp24_;
	gint _tmp24__length1;
	guint8* _tmp25_;
	gint _tmp25__length1;
	GBytes* _tmp26_;
	GBytes* _tmp27_;
	TubaRequestV2* _tmp28_;
	GInputStream* _tmp29_;
	GInputStream* _tmp30_;
	TubaSettings* _tmp31_;
	GDateTime* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	GError* e;
	GError* _tmp35_;
	gchar* _tmp36_;
	gchar* _tmp37_;
	GError* _tmp38_;
	const gchar* _tmp39_;
	const gchar* _tmp40_;
	gchar* _tmp41_;
	gchar* _tmp42_;
	GError* _inner_error0_;
};

VALA_EXTERN TubaApplication* tuba_app;
TubaApplication* tuba_app = NULL;
VALA_EXTERN TubaSettings* tuba_settings;
TubaSettings* tuba_settings = NULL;
VALA_EXTERN TubaAccountStore* tuba_accounts;
TubaAccountStore* tuba_accounts = NULL;
VALA_EXTERN TubaNetwork* tuba_network;
TubaNetwork* tuba_network = NULL;
VALA_EXTERN TubaStreams* tuba_streams;
TubaStreams* tuba_streams = NULL;
VALA_EXTERN GNetworkMonitor* tuba_network_monitor;
GNetworkMonitor* tuba_network_monitor = NULL;
VALA_EXTERN GRegex* tuba_bookwyrm_regex;
GRegex* tuba_bookwyrm_regex = NULL;
VALA_EXTERN GRegex* tuba_custom_emoji_regex;
GRegex* tuba_custom_emoji_regex = NULL;
VALA_EXTERN GRegex* tuba_rtl_regex;
GRegex* tuba_rtl_regex = NULL;
VALA_EXTERN gboolean tuba_is_rtl;
gboolean tuba_is_rtl = FALSE;
VALA_EXTERN gboolean tuba_start_hidden;
gboolean tuba_start_hidden = FALSE;
VALA_EXTERN gboolean tuba_is_flatpak;
gboolean tuba_is_flatpak = FALSE;
VALA_EXTERN gboolean tuba_should_blur_sensitive_media;
gboolean tuba_should_blur_sensitive_media = TRUE;
VALA_EXTERN gchar* tuba_cache_path;
gchar* tuba_cache_path = NULL;
VALA_EXTERN gchar* tuba_default_locale;
gchar* tuba_default_locale = NULL;
static gint TubaApplication_private_offset;
static gpointer tuba_application_parent_class = NULL;
VALA_EXTERN TubaPlace* tuba_mastodon_account_PLACE_NOTIFICATIONS;

VALA_EXTERN GQuark tuba_oopsie_quark (void);
VALA_EXTERN GType tuba_oopsie_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType tuba_application_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaApplication, g_object_unref)
VALA_EXTERN GType tuba_settings_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaSettings, g_object_unref)
VALA_EXTERN GType tuba_account_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAccountStore, g_object_unref)
VALA_EXTERN GType tuba_network_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaNetwork, g_object_unref)
VALA_EXTERN GType tuba_streams_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaStreams, g_object_unref)
VALA_EXTERN GType tuba_dialogs_main_window_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsMainWindow, g_object_unref)
VALA_EXTERN GType tuba_dialogs_new_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsNewAccount, g_object_unref)
VALA_EXTERN GType tuba_utils_locales_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaUtilsLocales, g_object_unref)
VALA_EXTERN GType tuba_utils_share_handler_share_result_get_type (void) G_GNUC_CONST ;
VALA_EXTERN TubaUtilsShareHandlerShareResult* tuba_utils_share_handler_share_result_dup (const TubaUtilsShareHandlerShareResult* self);
VALA_EXTERN void tuba_utils_share_handler_share_result_free (TubaUtilsShareHandlerShareResult* self);
VALA_EXTERN void tuba_utils_share_handler_share_result_copy (const TubaUtilsShareHandlerShareResult* self,
                                                 TubaUtilsShareHandlerShareResult* dest);
VALA_EXTERN void tuba_utils_share_handler_share_result_destroy (TubaUtilsShareHandlerShareResult* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (TubaUtilsShareHandlerShareResult, tuba_utils_share_handler_share_result_destroy)
VALA_EXTERN GType tuba_application_question_answer_get_type (void) G_GNUC_CONST ;
VALA_EXTERN TubaApplicationQuestionAnswer tuba_application_question_answer_from_string (const gchar* answer);
VALA_EXTERN gboolean tuba_application_question_answer_truthy (TubaApplicationQuestionAnswer self);
VALA_EXTERN gboolean tuba_application_question_answer_falsy (TubaApplicationQuestionAnswer self);
static void tuba_application_about_activated (TubaApplication* self);
static void _tuba_application_about_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                         GVariant* parameter,
                                                                         gpointer self);
static void tuba_application_compose_activated (TubaApplication* self);
static void _tuba_application_compose_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                           GVariant* parameter,
                                                                           gpointer self);
static void tuba_application_back_activated (TubaApplication* self);
static void _tuba_application_back_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                        GVariant* parameter,
                                                                        gpointer self);
static void tuba_application_refresh_activated (TubaApplication* self);
static void _tuba_application_refresh_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                           GVariant* parameter,
                                                                           gpointer self);
static void tuba_application_search_activated (TubaApplication* self);
static void _tuba_application_search_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                          GVariant* parameter,
                                                                          gpointer self);
static void tuba_application_quit_activated (TubaApplication* self);
static void _tuba_application_quit_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                        GVariant* parameter,
                                                                        gpointer self);
static void tuba_application_back_home_activated (TubaApplication* self);
static void _tuba_application_back_home_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                             GVariant* parameter,
                                                                             gpointer self);
static void tuba_application_scroll_view_page_down (TubaApplication* self);
static void _tuba_application_scroll_view_page_down_gsimple_action_activate_callback (GSimpleAction* action,
                                                                               GVariant* parameter,
                                                                               gpointer self);
static void tuba_application_scroll_view_page_up (TubaApplication* self);
static void _tuba_application_scroll_view_page_up_gsimple_action_activate_callback (GSimpleAction* action,
                                                                             GVariant* parameter,
                                                                             gpointer self);
static void tuba_application_goto_notifications (TubaApplication* self);
static void _tuba_application_goto_notifications_gsimple_action_activate_callback (GSimpleAction* action,
                                                                            GVariant* parameter,
                                                                            gpointer self);
static void tuba_application_open_status_url (TubaApplication* self,
                                       GSimpleAction* action,
                                       GVariant* value);
static void _tuba_application_open_status_url_gsimple_action_activate_callback (GSimpleAction* action,
                                                                         GVariant* parameter,
                                                                         gpointer self);
static void tuba_application_answer_follow_request (TubaApplication* self,
                                             GSimpleAction* action,
                                             GVariant* value);
static void _tuba_application_answer_follow_request_gsimple_action_activate_callback (GSimpleAction* action,
                                                                               GVariant* parameter,
                                                                               gpointer self);
static void tuba_application_follow_back (TubaApplication* self,
                                   GSimpleAction* action,
                                   GVariant* value);
static void _tuba_application_follow_back_gsimple_action_activate_callback (GSimpleAction* action,
                                                                     GVariant* parameter,
                                                                     gpointer self);
static void tuba_application_reply_to_status_uri (TubaApplication* self,
                                           GSimpleAction* action,
                                           GVariant* value);
static void _tuba_application_reply_to_status_uri_gsimple_action_activate_callback (GSimpleAction* action,
                                                                             GVariant* parameter,
                                                                             gpointer self);
static void tuba_application_remove_from_followers (TubaApplication* self,
                                             GSimpleAction* action,
                                             GVariant* value);
static void _tuba_application_remove_from_followers_gsimple_action_activate_callback (GSimpleAction* action,
                                                                               GVariant* parameter,
                                                                               gpointer self);
static void tuba_application_open_preferences (TubaApplication* self);
static void _tuba_application_open_preferences_gsimple_action_activate_callback (GSimpleAction* action,
                                                                          GVariant* parameter,
                                                                          gpointer self);
static void tuba_application_open_current_account_profile (TubaApplication* self);
static void _tuba_application_open_current_account_profile_gsimple_action_activate_callback (GSimpleAction* action,
                                                                                      GVariant* parameter,
                                                                                      gpointer self);
VALA_EXTERN void tuba_application_open_announcements (TubaApplication* self);
static void _tuba_application_open_announcements_gsimple_action_activate_callback (GSimpleAction* action,
                                                                            GVariant* parameter,
                                                                            gpointer self);
VALA_EXTERN void tuba_application_open_follow_requests (TubaApplication* self);
static void _tuba_application_open_follow_requests_gsimple_action_activate_callback (GSimpleAction* action,
                                                                              GVariant* parameter,
                                                                              gpointer self);
VALA_EXTERN void tuba_application_open_mutes_blocks (TubaApplication* self);
static void _tuba_application_open_mutes_blocks_gsimple_action_activate_callback (GSimpleAction* action,
                                                                           GVariant* parameter,
                                                                           gpointer self);
VALA_EXTERN void tuba_application_open_scheduled_posts (TubaApplication* self);
static void _tuba_application_open_scheduled_posts_gsimple_action_activate_callback (GSimpleAction* action,
                                                                              GVariant* parameter,
                                                                              gpointer self);
VALA_EXTERN void tuba_application_open_draft_posts (TubaApplication* self);
static void _tuba_application_open_draft_posts_gsimple_action_activate_callback (GSimpleAction* action,
                                                                          GVariant* parameter,
                                                                          gpointer self);
VALA_EXTERN void tuba_application_open_admin_dashboard (TubaApplication* self);
static void _tuba_application_open_admin_dashboard_gsimple_action_activate_callback (GSimpleAction* action,
                                                                              GVariant* parameter,
                                                                              gpointer self);
VALA_EXTERN void tuba_application_open_last_fediwrapped (TubaApplication* self);
static void _tuba_application_open_last_fediwrapped_gsimple_action_activate_callback (GSimpleAction* action,
                                                                               GVariant* parameter,
                                                                               gpointer self);
VALA_EXTERN void tuba_application_open_collections (TubaApplication* self);
static void _tuba_application_open_collections_gsimple_action_activate_callback (GSimpleAction* action,
                                                                          GVariant* parameter,
                                                                          gpointer self);
VALA_EXTERN void tuba_application_open_containing_folder (TubaApplication* self,
                                              GSimpleAction* action,
                                              GVariant* value);
static void _tuba_application_open_containing_folder_gsimple_action_activate_callback (GSimpleAction* action,
                                                                                GVariant* parameter,
                                                                                gpointer self);
static void tuba_application_increase_font_size (TubaApplication* self);
static void _tuba_application_increase_font_size_gsimple_action_activate_callback (GSimpleAction* action,
                                                                            GVariant* parameter,
                                                                            gpointer self);
static void tuba_application_decrease_font_size (TubaApplication* self);
static void _tuba_application_decrease_font_size_gsimple_action_activate_callback (GSimpleAction* action,
                                                                            GVariant* parameter,
                                                                            gpointer self);
static void tuba_application_reset_font_size (TubaApplication* self);
static void _tuba_application_reset_font_size_gsimple_action_activate_callback (GSimpleAction* action,
                                                                         GVariant* parameter,
                                                                         gpointer self);
VALA_EXTERN GType tuba_entity_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaEntity, g_object_unref)
VALA_EXTERN GType tuba_api_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIAccount, g_object_unref)
VALA_EXTERN GType tuba_instance_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaInstanceAccount, g_object_unref)
VALA_EXTERN TubaInstanceAccount* tuba_account_store_get_active (TubaAccountStore* self);
VALA_EXTERN void tuba_instance_account_remove_from_followers (TubaInstanceAccount* self,
                                                  const gchar* issuer_id,
                                                  const gchar* acc_id);
VALA_EXTERN void tuba_instance_account_reply_to_status_uri (TubaInstanceAccount* self,
                                                const gchar* issuer_id,
                                                const gchar* uri);
VALA_EXTERN void tuba_instance_account_follow_back (TubaInstanceAccount* self,
                                        const gchar* issuer_id,
                                        const gchar* acc_id);
VALA_EXTERN GType tuba_place_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaPlace, g_object_unref)
VALA_EXTERN TubaPlaceOpenFunc tuba_place_get_open_func (TubaPlace* self);
VALA_EXTERN TubaDialogsMainWindow* tuba_application_get_main_window (TubaApplication* self);
VALA_EXTERN void tuba_instance_account_open_status_url (TubaInstanceAccount* self,
                                            const gchar* url);
VALA_EXTERN void tuba_instance_account_answer_follow_request (TubaInstanceAccount* self,
                                                  const gchar* issuer_id,
                                                  const gchar* fr_id,
                                                  gboolean accept);
VALA_EXTERN void tuba_application_handle_web_ap (TubaApplication* self,
                                     GUri* uri);
static Block1Data* block1_data_ref (Block1Data* _data1_);
static void block1_data_unref (void * _userdata_);
VALA_EXTERN void tuba_instance_account_resolve (TubaInstanceAccount* self,
                                    const gchar* url,
                                    GAsyncReadyCallback _callback_,
                                    gpointer _user_data_);
VALA_EXTERN TubaEntity* tuba_instance_account_resolve_finish (TubaInstanceAccount* self,
                                                  GAsyncResult* _res_,
                                                  GError** error);
VALA_EXTERN gchar* tuba_utils_web_ap_handler_from_uri (GUri* uri);
static void __lambda141_ (Block1Data* _data1_,
                   GObject* obj,
                   GAsyncResult* res);
VALA_EXTERN GType tuba_widgetizable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetizable, g_object_unref)
VALA_EXTERN void tuba_widgetizable_open (TubaWidgetizable* self);
static void ___lambda141__gasync_ready_callback (GObject* source_object,
                                          GAsyncResult* res,
                                          gpointer self);
VALA_EXTERN void tuba_application_handle_share (TubaApplication* self);
VALA_EXTERN GType tuba_api_instance_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIInstance, g_object_unref)
VALA_EXTERN TubaAPIInstance* tuba_instance_account_get_instance_info (TubaInstanceAccount* self);
VALA_EXTERN GType tuba_dialogs_composer_dialog_precompose_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType tuba_api_poll_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIPoll, g_object_unref)
VALA_EXTERN GType tuba_api_attachment_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIAttachment, g_object_unref)
VALA_EXTERN TubaDialogsComposerDialogPrecompose* tuba_dialogs_composer_dialog_precompose_dup (const TubaDialogsComposerDialogPrecompose* self);
VALA_EXTERN void tuba_dialogs_composer_dialog_precompose_free (TubaDialogsComposerDialogPrecompose* self);
VALA_EXTERN void tuba_dialogs_composer_dialog_precompose_copy (const TubaDialogsComposerDialogPrecompose* self,
                                                   TubaDialogsComposerDialogPrecompose* dest);
VALA_EXTERN void tuba_dialogs_composer_dialog_precompose_destroy (TubaDialogsComposerDialogPrecompose* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (TubaDialogsComposerDialogPrecompose, tuba_dialogs_composer_dialog_precompose_destroy)
VALA_EXTERN const gchar* tuba_settings_get_default_post_visibility (TubaSettings* self);
VALA_EXTERN const gchar* tuba_settings_get_default_language (TubaSettings* self);
VALA_EXTERN const gchar* tuba_settings_get_default_quote_policy (TubaSettings* self);
VALA_EXTERN TubaDialogsComposerDialog* tuba_dialogs_composer_dialog_new (TubaDialogsComposerDialogPrecompose* precompose,
                                                             const gchar* default_visibility,
                                                             const gchar* default_language,
                                                             const gchar* post_button_label,
                                                             gboolean edit_mode,
                                                             gboolean can_schedule,
                                                             const gchar* default_quote_policy,
                                                             gboolean can_update_draft);
VALA_EXTERN TubaDialogsComposerDialog* tuba_dialogs_composer_dialog_construct (GType object_type,
                                                                   TubaDialogsComposerDialogPrecompose* precompose,
                                                                   const gchar* default_visibility,
                                                                   const gchar* default_language,
                                                                   const gchar* post_button_label,
                                                                   gboolean edit_mode,
                                                                   gboolean can_schedule,
                                                                   const gchar* default_quote_policy,
                                                                   gboolean can_update_draft);
VALA_EXTERN GType tuba_dialogs_composer_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsComposerDialog, g_object_unref)
static gint tuba_application_main (gchar** args,
                            gint args_length1);
VALA_EXTERN TubaApplication* tuba_application_new (void);
VALA_EXTERN TubaApplication* tuba_application_construct (GType object_type);
static void tuba_application_on_network_change (TubaApplication* self,
                                         gboolean online);
static void tuba_application_on_network_change_cb (TubaApplication* self);
static void _tuba_application_on_network_change_cb_gsource_once_func (gpointer self);
VALA_EXTERN gboolean tuba_application_get_is_online (TubaApplication* self);
static void tuba_application_set_is_online (TubaApplication* self,
                                     gboolean value);
static void tuba_application_real_startup (GApplication* base);
VALA_EXTERN TubaSettings* tuba_settings_new (void);
VALA_EXTERN TubaSettings* tuba_settings_construct (GType object_type);
VALA_EXTERN TubaStreams* tuba_streams_new (void);
VALA_EXTERN TubaStreams* tuba_streams_construct (GType object_type);
VALA_EXTERN TubaNetwork* tuba_network_new (void);
VALA_EXTERN TubaNetwork* tuba_network_construct (GType object_type);
VALA_EXTERN TubaSecretAccountStore* tuba_secret_account_store_new (void);
VALA_EXTERN TubaSecretAccountStore* tuba_secret_account_store_construct (GType object_type);
VALA_EXTERN GType tuba_secret_account_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaSecretAccountStore, g_object_unref)
VALA_EXTERN void tuba_account_store_init (TubaAccountStore* self,
                              GError** error);
VALA_EXTERN GType tuba_color_scheme_get_type (void) G_GNUC_CONST ;
VALA_EXTERN AdwColorScheme tuba_color_scheme_to_adwaita_scheme (TubaColorScheme self);
VALA_EXTERN gboolean tuba_settings_get_monitor_network (TubaSettings* self);
static void _tuba_application_on_network_change_g_network_monitor_network_changed (GNetworkMonitor* _sender,
                                                                            gboolean network_available,
                                                                            gpointer self);
VALA_EXTERN const gchar* tuba_settings_get_proxy (TubaSettings* self);
static void tuba_application_on_proxy_change (TubaApplication* self,
                                       gboolean recover);
static void tuba_application_on_proxy_notify (TubaApplication* self);
static void _tuba_application_on_proxy_notify_g_object_notify (GObject* _sender,
                                                        GParamSpec* pspec,
                                                        gpointer self);
VALA_EXTERN gboolean tuba_settings_get_analytics (TubaSettings* self);
VALA_EXTERN void tuba_application_update_analytics (TubaApplication* self,
                                        GAsyncReadyCallback _callback_,
                                        gpointer _user_data_);
VALA_EXTERN void tuba_application_update_analytics_finish (TubaApplication* self,
                                               GAsyncResult* _res_);
VALA_EXTERN void tuba_application_update_contributors (TubaApplication* self,
                                           GAsyncReadyCallback _callback_,
                                           gpointer _user_data_);
VALA_EXTERN void tuba_application_update_contributors_finish (TubaApplication* self,
                                                  GAsyncResult* _res_);
VALA_EXTERN gboolean tuba_settings_get_larger_font_size (TubaSettings* self);
VALA_EXTERN void tuba_settings_set_larger_font_size (TubaSettings* self,
                                         gboolean value);
VALA_EXTERN void tuba_settings_set_status_font_size (TubaSettings* self,
                                         gdouble value);
VALA_EXTERN void tuba_application_set_proxy (TubaApplication* self,
                                 GProxyResolver* value);
VALA_EXTERN TubaDialogsNewAccount* tuba_application_get_add_account_window (TubaApplication* self);
static void tuba_application_trigger_is_online_notify (TubaApplication* self);
static void _tuba_application_trigger_is_online_notify_gsource_once_func (gpointer self);
static void tuba_application_real_activate (GApplication* base);
VALA_EXTERN void tuba_application_present_window (TubaApplication* self,
                                      gboolean destroy_main);
static void tuba_application_real_shutdown (GApplication* base);
VALA_EXTERN void tuba_settings_apply_all (TubaSettings* self);
VALA_EXTERN void tuba_network_flush_cache (TubaNetwork* self);
static void tuba_application_real_open (GApplication* base,
                                 GFile** files,
                                 gint files_length1,
                                 const gchar* hint);
VALA_EXTERN TubaUtilsShareHandlerShareResult* tuba_utils_share_handler_from_uri (GUri* uri);
VALA_EXTERN void tuba_dialogs_new_account_redirect (TubaDialogsNewAccount* self,
                                        GUri* uri);
VALA_EXTERN AdwAlertDialog* tuba_application_inform (TubaApplication* self,
                                         const gchar* text,
                                         const gchar* msg);
VALA_EXTERN GeeArrayList* tuba_account_store_get_saved (TubaAccountStore* self);
VALA_EXTERN TubaDialogsNewAccount* tuba_dialogs_new_account_new (gboolean can_access_settings,
                                                     TubaInstanceAccount* account_to_update);
VALA_EXTERN TubaDialogsNewAccount* tuba_dialogs_new_account_construct (GType object_type,
                                                           gboolean can_access_settings,
                                                           TubaInstanceAccount* account_to_update);
VALA_EXTERN TubaDialogsMainWindow* tuba_dialogs_main_window_new (AdwApplication* app);
VALA_EXTERN TubaDialogsMainWindow* tuba_dialogs_main_window_construct (GType object_type,
                                                           AdwApplication* app);
VALA_EXTERN void tuba_application_set_main_window (TubaApplication* self,
                                       TubaDialogsMainWindow* value);
VALA_EXTERN gboolean tuba_application_on_window_closed (TubaApplication* self);
static gboolean _tuba_application_on_window_closed_gtk_window_close_request (GtkWindow* _sender,
                                                                      gpointer self);
VALA_EXTERN gboolean tuba_settings_get_work_in_background (TubaSettings* self);
VALA_EXTERN gboolean tuba_dialogs_main_window_back (TubaDialogsMainWindow* self);
VALA_EXTERN GType tuba_views_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsBase, g_object_unref)
VALA_EXTERN TubaViewsBase* tuba_dialogs_main_window_open_view (TubaDialogsMainWindow* self,
                                                   TubaViewsBase* view);
VALA_EXTERN TubaViewsSearch* tuba_views_search_new (void);
VALA_EXTERN TubaViewsSearch* tuba_views_search_construct (GType object_type);
VALA_EXTERN GType tuba_views_tabbed_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsTabbedBase, g_object_unref)
VALA_EXTERN GType tuba_views_search_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsSearch, g_object_unref)
VALA_EXTERN void tuba_dialogs_main_window_go_back_to_start (TubaDialogsMainWindow* self);
VALA_EXTERN void tuba_dialogs_main_window_scroll_view_page (TubaDialogsMainWindow* self,
                                                gboolean up);
VALA_EXTERN TubaDialogsPreferences* tuba_dialogs_preferences_new (void);
VALA_EXTERN TubaDialogsPreferences* tuba_dialogs_preferences_construct (GType object_type);
VALA_EXTERN GType tuba_dialogs_preferences_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsPreferences, g_object_unref)
static void tuba_application_close_sidebar (TubaApplication* self);
VALA_EXTERN GType tuba_views_content_base_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsContentBase, g_object_unref)
VALA_EXTERN GType tuba_views_timeline_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsTimeline, g_object_unref)
VALA_EXTERN GType tuba_views_announcements_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsAnnouncements, g_object_unref)
VALA_EXTERN TubaViewsAnnouncements* tuba_views_announcements_new (void);
VALA_EXTERN TubaViewsAnnouncements* tuba_views_announcements_construct (GType object_type);
VALA_EXTERN void tuba_views_announcements_set_dismiss_all_announcements (TubaViewsAnnouncements* self,
                                                             gboolean value);
VALA_EXTERN void tuba_instance_account_set_unread_announcements (TubaInstanceAccount* self,
                                                     gint value);
VALA_EXTERN TubaViewsFollowRequests* tuba_views_follow_requests_new (void);
VALA_EXTERN TubaViewsFollowRequests* tuba_views_follow_requests_construct (GType object_type);
VALA_EXTERN GType tuba_views_follow_requests_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsFollowRequests, g_object_unref)
VALA_EXTERN void tuba_instance_account_set_unreviewed_follow_requests (TubaInstanceAccount* self,
                                                           gint value);
VALA_EXTERN TubaViewsMutesBlocks* tuba_views_mutes_blocks_new (void);
VALA_EXTERN TubaViewsMutesBlocks* tuba_views_mutes_blocks_construct (GType object_type);
VALA_EXTERN GType tuba_views_mutes_blocks_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsMutesBlocks, g_object_unref)
VALA_EXTERN TubaViewsScheduledStatuses* tuba_views_scheduled_statuses_new (void);
VALA_EXTERN TubaViewsScheduledStatuses* tuba_views_scheduled_statuses_construct (GType object_type);
VALA_EXTERN GType tuba_views_scheduled_statuses_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsScheduledStatuses, g_object_unref)
VALA_EXTERN TubaViewsDraftStatuses* tuba_views_draft_statuses_new (void);
VALA_EXTERN TubaViewsDraftStatuses* tuba_views_draft_statuses_construct (GType object_type);
VALA_EXTERN GType tuba_views_draft_statuses_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsDraftStatuses, g_object_unref)
VALA_EXTERN TubaDialogsAdminWindow* tuba_dialogs_admin_window_new (void);
VALA_EXTERN TubaDialogsAdminWindow* tuba_dialogs_admin_window_construct (GType object_type);
VALA_EXTERN GType tuba_dialogs_admin_window_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsAdminWindow, g_object_unref)
VALA_EXTERN void tuba_instance_account_open_latest_wrapped (TubaInstanceAccount* self);
VALA_EXTERN TubaViewsCollections* tuba_views_collections_new (void);
VALA_EXTERN TubaViewsCollections* tuba_views_collections_construct (GType object_type);
VALA_EXTERN GType tuba_views_collections_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaViewsCollections, g_object_unref)
VALA_EXTERN void tuba_utils_host_open_containing_folder (const gchar* path,
                                             GAsyncReadyCallback _callback_,
                                             gpointer _user_data_);
VALA_EXTERN void tuba_utils_host_open_containing_folder_finish (GAsyncResult* _res_);
VALA_EXTERN gdouble tuba_settings_get_status_font_size (TubaSettings* self);
VALA_EXTERN GType tuba_dialogs_saveable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsSaveable, g_object_unref)
static Block2Data* block2_data_ref (Block2Data* _data2_);
static void block2_data_unref (void * _userdata_);
static gchar** _vala_array_dup1 (gchar** self,
                          gssize length);
static gchar** _vala_array_dup2 (gchar** self,
                          gssize length);
static gchar** _vala_array_dup3 (gchar** self,
                          gssize length);
static gboolean __lambda214_ (Block2Data* _data2_);
VALA_EXTERN gchar* tuba_utils_celebrate_get_celebration_css_class (GDateTime* date);
static gboolean ___lambda214__gsource_func (gpointer self);
static void tuba_application_question_data_free (gpointer _data);
VALA_EXTERN GType tuba_application_question_text_get_type (void) G_GNUC_CONST ;
VALA_EXTERN TubaApplicationQuestionText* tuba_application_question_text_dup (const TubaApplicationQuestionText* self);
VALA_EXTERN void tuba_application_question_text_free (TubaApplicationQuestionText* self);
VALA_EXTERN void tuba_application_question_text_copy (const TubaApplicationQuestionText* self,
                                          TubaApplicationQuestionText* dest);
VALA_EXTERN void tuba_application_question_text_destroy (TubaApplicationQuestionText* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (TubaApplicationQuestionText, tuba_application_question_text_destroy)
VALA_EXTERN GType tuba_application_question_buttons_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType tuba_application_question_button_get_type (void) G_GNUC_CONST ;
VALA_EXTERN TubaApplicationQuestionButton* tuba_application_question_button_dup (const TubaApplicationQuestionButton* self);
VALA_EXTERN void tuba_application_question_button_free (TubaApplicationQuestionButton* self);
VALA_EXTERN void tuba_application_question_button_copy (const TubaApplicationQuestionButton* self,
                                            TubaApplicationQuestionButton* dest);
VALA_EXTERN void tuba_application_question_button_destroy (TubaApplicationQuestionButton* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (TubaApplicationQuestionButton, tuba_application_question_button_destroy)
VALA_EXTERN TubaApplicationQuestionButtons* tuba_application_question_buttons_dup (const TubaApplicationQuestionButtons* self);
VALA_EXTERN void tuba_application_question_buttons_free (TubaApplicationQuestionButtons* self);
VALA_EXTERN void tuba_application_question_buttons_copy (const TubaApplicationQuestionButtons* self,
                                             TubaApplicationQuestionButtons* dest);
VALA_EXTERN void tuba_application_question_buttons_destroy (TubaApplicationQuestionButtons* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (TubaApplicationQuestionButtons, tuba_application_question_buttons_destroy)
VALA_EXTERN void tuba_application_question (TubaApplication* self,
                                TubaApplicationQuestionText* title,
                                TubaApplicationQuestionText* msg,
                                GtkWidget* win,
                                TubaApplicationQuestionButtons* buttons,
                                GtkWidget* child,
                                gboolean skip,
                                GAsyncReadyCallback _callback_,
                                gpointer _user_data_);
VALA_EXTERN TubaApplicationQuestionAnswer tuba_application_question_finish (TubaApplication* self,
                                                                GAsyncResult* _res_);
static gboolean tuba_application_question_co (TubaApplicationQuestionData* _data_);
static void tuba_application_question_ready (GObject* source_object,
                                      GAsyncResult* _res_,
                                      gpointer _user_data_);
VALA_EXTERN gchar* tuba_application_generate_analytics_object (TubaApplication* self,
                                                   gboolean pretty);
static Block3Data* block3_data_ref (Block3Data* _data3_);
static void block3_data_unref (void * _userdata_);
static gboolean __lambda219_ (Block3Data* _data3_,
                       TubaInstanceAccount* e);
VALA_EXTERN const gchar* tuba_instance_account_get_uuid (TubaInstanceAccount* self);
static gboolean ___lambda219__gee_forall_func (gpointer g,
                                        gpointer self);
VALA_EXTERN JsonBuilder* tuba_settings_to_debug_json (TubaSettings* self);
static void _vala_JsonNode_free (JsonNode* self);
static void tuba_application_update_contributors_data_free (gpointer _data);
static gboolean tuba_application_update_contributors_co (TubaApplicationUpdateContributorsData* _data_);
VALA_EXTERN gboolean tuba_settings_get_update_contributors (TubaSettings* self);
VALA_EXTERN const gchar* tuba_settings_get_last_contributors_update (TubaSettings* self);
VALA_EXTERN void tuba_settings_set_last_contributors_update (TubaSettings* self,
                                                 const gchar* value);
VALA_EXTERN GType tuba_request_v2_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaRequestV2, g_object_unref)
VALA_EXTERN GType tuba_request_v2_method_get_type (void) G_GNUC_CONST ;
VALA_EXTERN TubaRequestV2* tuba_request_v2_new (const gchar* url,
                                    TubaRequestV2Method method);
VALA_EXTERN TubaRequestV2* tuba_request_v2_construct (GType object_type,
                                          const gchar* url,
                                          TubaRequestV2Method method);
static Block4Data* block4_data_ref (Block4Data* _data4_);
static void block4_data_unref (void * _userdata_);
VALA_EXTERN void tuba_request_v2_exec (TubaRequestV2* self,
                           GAsyncReadyCallback _callback_,
                           gpointer _user_data_);
VALA_EXTERN GInputStream* tuba_request_v2_exec_finish (TubaRequestV2* self,
                                           GAsyncResult* _res_,
                                           SoupMessageHeaders** response_headers,
                                           GError** error);
static void tuba_application_update_contributors_ready (GObject* source_object,
                                                 GAsyncResult* _res_,
                                                 gpointer _user_data_);
VALA_EXTERN void tuba_network_get_parser_from_inputstream_async (GInputStream* in_stream,
                                                     GCancellable* cancellable,
                                                     GAsyncReadyCallback _callback_,
                                                     gpointer _user_data_);
VALA_EXTERN JsonParser* tuba_network_get_parser_from_inputstream_finish (GAsyncResult* _res_,
                                                             GError** error);
VALA_EXTERN void tuba_network_parse_array (JsonParser* parser,
                               TubaNetworkNodeCallback cb,
                               gpointer cb_target,
                               GDestroyNotify cb_target_destroy_notify,
                               GError** error);
static void ___lambda220_ (Block4Data* _data4_,
                    JsonNode* node,
                    GError** error);
static void _vala_array_add1 (gchar** * array,
                       gint* length,
                       gint* size,
                       gchar* value);
static void ____lambda220__tuba_network_node_callback (JsonNode* node,
                                                gpointer self,
                                                GError** error);
VALA_EXTERN void tuba_settings_set_contributors (TubaSettings* self,
                                     gchar** value,
                                     gint value_length1);
static void tuba_application_update_analytics_data_free (gpointer _data);
static gboolean tuba_application_update_analytics_co (TubaApplicationUpdateAnalyticsData* _data_);
VALA_EXTERN const gchar* tuba_settings_get_last_analytics_update (TubaSettings* self);
VALA_EXTERN void tuba_request_v2_set_body (TubaRequestV2* self,
                               const gchar* content_type,
                               GBytes* bytes);
static guint8* _vala_array_dup4 (guint8* self,
                          gssize length);
static void tuba_application_update_analytics_ready (GObject* source_object,
                                              GAsyncResult* _res_,
                                              gpointer _user_data_);
VALA_EXTERN void tuba_settings_set_last_analytics_update (TubaSettings* self,
                                              const gchar* value);
VALA_EXTERN void tuba_application_load_egg (TubaApplication* self,
                                const gchar* style);
VALA_EXTERN GProxyResolver* tuba_application_get_proxy (TubaApplication* self);
VALA_EXTERN void tuba_application_set_add_account_window (TubaApplication* self,
                                              TubaDialogsNewAccount* value);
VALA_EXTERN gboolean tuba_application_get_is_mobile (TubaApplication* self);
VALA_EXTERN void tuba_application_set_is_mobile (TubaApplication* self,
                                     gboolean value);
VALA_EXTERN TubaUtilsLocales* tuba_application_get_app_locales (TubaApplication* self);
VALA_EXTERN void tuba_application_set_app_locales (TubaApplication* self,
                                       TubaUtilsLocales* value);
VALA_EXTERN TubaSettings* tuba_application_get_app_settings (TubaApplication* self);
VALA_EXTERN TubaAccountStore* tuba_application_get_app_accounts (TubaApplication* self);
VALA_EXTERN TubaNetwork* tuba_application_get_app_network (TubaApplication* self);
VALA_EXTERN TubaStreams* tuba_application_get_app_streams (TubaApplication* self);
VALA_EXTERN GType tuba_api_relationship_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIRelationship, g_object_unref)
static void g_cclosure_user_marshal_VOID__STRING_UINT_STRING_VARIANT_STRING (GClosure * closure,
                                                                      GValue * return_value,
                                                                      guint n_param_values,
                                                                      const GValue * param_values,
                                                                      gpointer invocation_hint,
                                                                      gpointer marshal_data);
static GObject * tuba_application_constructor (GType type,
                                        guint n_construct_properties,
                                        GObjectConstructParam * construct_properties);
VALA_EXTERN TubaUtilsLocales* tuba_utils_locales_new (void);
VALA_EXTERN TubaUtilsLocales* tuba_utils_locales_construct (GType object_type);
static void tuba_application_finalize (GObject * obj);
static GType tuba_application_get_type_once (void);
static void _vala_tuba_application_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec);
static void _vala_tuba_application_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec);
VALA_EXTERN void tuba_toggle_css (GtkWidget* wdg,
                      gboolean state,
                      const gchar* style);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);
static gssize _vala_array_length (gpointer array);

const GOptionEntry TUBA_APPLICATION_APP_OPTIONS[2] = {{"hidden", (gchar) 0, (gint) 0, G_OPTION_ARG_NONE, &tuba_start_hidden, N_ ("Do not show main window on start"), NULL}, {NULL}};
static const GActionEntry TUBA_APPLICATION_APP_ENTRIES[29] = {{"about", _tuba_application_about_activated_gsimple_action_activate_callback}, {"compose", _tuba_application_compose_activated_gsimple_action_activate_callback}, {"back", _tuba_application_back_activated_gsimple_action_activate_callback}, {"refresh", _tuba_application_refresh_activated_gsimple_action_activate_callback}, {"search", _tuba_application_search_activated_gsimple_action_activate_callback}, {"quit", _tuba_application_quit_activated_gsimple_action_activate_callback}, {"back-home", _tuba_application_back_home_activated_gsimple_action_activate_callback}, {"scroll-page-down", _tuba_application_scroll_view_page_down_gsimple_action_activate_callback}, {"scroll-page-up", _tuba_application_scroll_view_page_up_gsimple_action_activate_callback}, {"goto-notifications", _tuba_application_goto_notifications_gsimple_action_activate_callback}, {"open-status-url", _tuba_application_open_status_url_gsimple_action_activate_callback, "s"}, {"answer-follow-request", _tuba_application_answer_follow_request_gsimple_action_activate_callback, "(ssb)"}, {"follow-back", _tuba_application_follow_back_gsimple_action_activate_callback, "(ss)"}, {"reply-to-status-uri", _tuba_application_reply_to_status_uri_gsimple_action_activate_callback, "(ss)"}, {"remove-from-followers", _tuba_application_remove_from_followers_gsimple_action_activate_callback, "(ss)"}, {"open-preferences", _tuba_application_open_preferences_gsimple_action_activate_callback}, {"open-current-account-profile", _tuba_application_open_current_account_profile_gsimple_action_activate_callback}, {"open-announcements", _tuba_application_open_announcements_gsimple_action_activate_callback}, {"open-follow-requests", _tuba_application_open_follow_requests_gsimple_action_activate_callback}, {"open-mutes-blocks", _tuba_application_open_mutes_blocks_gsimple_action_activate_callback}, {"open-scheduled-posts", _tuba_application_open_scheduled_posts_gsimple_action_activate_callback}, {"open-draft-posts", _tuba_application_open_draft_posts_gsimple_action_activate_callback}, {"open-admin-dashboard", _tuba_application_open_admin_dashboard_gsimple_action_activate_callback}, {"open-last-fediwrapped", _tuba_application_open_last_fediwrapped_gsimple_action_activate_callback}, {"open-collections", _tuba_application_open_collections_gsimple_action_activate_callback}, {"open-containing-folder", _tuba_application_open_containing_folder_gsimple_action_activate_callback, "s"}, {"increase-font-size", _tuba_application_increase_font_size_gsimple_action_activate_callback}, {"decrease-font-size", _tuba_application_decrease_font_size_gsimple_action_activate_callback}, {"reset-font-size", _tuba_application_reset_font_size_gsimple_action_activate_callback}};

GQuark
tuba_oopsie_quark (void)
{
	return g_quark_from_static_string ("tuba-oopsie-quark");
}

 G_GNUC_NO_INLINE static GType
tuba_oopsie_get_type_once (void)
{
	static const GEnumValue values[] = {{TUBA_OOPSIE_USER, "TUBA_OOPSIE_USER", "user"}, {TUBA_OOPSIE_PARSING, "TUBA_OOPSIE_PARSING", "parsing"}, {TUBA_OOPSIE_INSTANCE, "TUBA_OOPSIE_INSTANCE", "instance"}, {TUBA_OOPSIE_INTERNAL, "TUBA_OOPSIE_INTERNAL", "internal"}, {TUBA_OOPSIE_HTTP_401, "TUBA_OOPSIE_HTTP_401", "http-401"}, {TUBA_OOPSIE_HTTP_403, "TUBA_OOPSIE_HTTP_403", "http-403"}, {TUBA_OOPSIE_HTTP_404, "TUBA_OOPSIE_HTTP_404", "http-404"}, {TUBA_OOPSIE_HTTP_410, "TUBA_OOPSIE_HTTP_410", "http-410"}, {TUBA_OOPSIE_HTTP_422, "TUBA_OOPSIE_HTTP_422", "http-422"}, {TUBA_OOPSIE_HTTP_429, "TUBA_OOPSIE_HTTP_429", "http-429"}, {TUBA_OOPSIE_HTTP_500, "TUBA_OOPSIE_HTTP_500", "http-500"}, {TUBA_OOPSIE_HTTP_503, "TUBA_OOPSIE_HTTP_503", "http-503"}, {0, NULL, NULL}};
	GType tuba_oopsie_type_id;
	tuba_oopsie_type_id = g_enum_register_static ("TubaOopsie", values);
	return tuba_oopsie_type_id;
}

GType
tuba_oopsie_get_type (void)
{
	static GType tuba_oopsie_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_oopsie_type_id__once)) {
		GType tuba_oopsie_type_id;
		tuba_oopsie_type_id = tuba_oopsie_get_type_once ();
		g_once_init_leave_pointer (&tuba_oopsie_type_id__once, tuba_oopsie_type_id);
	}
	return tuba_oopsie_type_id__once;
}

static inline gpointer
tuba_application_get_instance_private (TubaApplication* self)
{
	return G_STRUCT_MEMBER_P (self, TubaApplication_private_offset);
}

TubaApplicationQuestionAnswer
tuba_application_question_answer_from_string (const gchar* answer)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	static GQuark _tmp2_label1 = 0;
	TubaApplicationQuestionAnswer result;
	g_return_val_if_fail (answer != NULL, 0);
	_tmp0_ = g_utf8_strdown (answer, (gssize) -1);
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	g_free (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("yes")))) {
		switch (0) {
			default:
			{
				result = TUBA_APPLICATION_QUESTION_ANSWER_YES;
				return result;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("no")))) {
		switch (0) {
			default:
			{
				result = TUBA_APPLICATION_QUESTION_ANSWER_NO;
				return result;
			}
		}
	} else {
		switch (0) {
			default:
			{
				result = TUBA_APPLICATION_QUESTION_ANSWER_CLOSE;
				return result;
			}
		}
	}
}

gboolean
tuba_application_question_answer_truthy (TubaApplicationQuestionAnswer self)
{
	gboolean result;
	result = self == TUBA_APPLICATION_QUESTION_ANSWER_YES;
	return result;
}

gboolean
tuba_application_question_answer_falsy (TubaApplicationQuestionAnswer self)
{
	gboolean result;
	result = self != TUBA_APPLICATION_QUESTION_ANSWER_YES;
	return result;
}

 G_GNUC_NO_INLINE static GType
tuba_application_question_answer_get_type_once (void)
{
	static const GEnumValue values[] = {{TUBA_APPLICATION_QUESTION_ANSWER_YES, "TUBA_APPLICATION_QUESTION_ANSWER_YES", "yes"}, {TUBA_APPLICATION_QUESTION_ANSWER_NO, "TUBA_APPLICATION_QUESTION_ANSWER_NO", "no"}, {TUBA_APPLICATION_QUESTION_ANSWER_CLOSE, "TUBA_APPLICATION_QUESTION_ANSWER_CLOSE", "close"}, {0, NULL, NULL}};
	GType tuba_application_question_answer_type_id;
	tuba_application_question_answer_type_id = g_enum_register_static ("TubaApplicationQuestionAnswer", values);
	return tuba_application_question_answer_type_id;
}

GType
tuba_application_question_answer_get_type (void)
{
	static GType tuba_application_question_answer_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_application_question_answer_type_id__once)) {
		GType tuba_application_question_answer_type_id;
		tuba_application_question_answer_type_id = tuba_application_question_answer_get_type_once ();
		g_once_init_leave_pointer (&tuba_application_question_answer_type_id__once, tuba_application_question_answer_type_id);
	}
	return tuba_application_question_answer_type_id__once;
}

static void
_tuba_application_about_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                    GVariant* parameter,
                                                                    gpointer self)
{
	tuba_application_about_activated ((TubaApplication*) self);
}

static void
_tuba_application_compose_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                      GVariant* parameter,
                                                                      gpointer self)
{
	tuba_application_compose_activated ((TubaApplication*) self);
}

static void
_tuba_application_back_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                   GVariant* parameter,
                                                                   gpointer self)
{
	tuba_application_back_activated ((TubaApplication*) self);
}

static void
_tuba_application_refresh_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                      GVariant* parameter,
                                                                      gpointer self)
{
	tuba_application_refresh_activated ((TubaApplication*) self);
}

static void
_tuba_application_search_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                     GVariant* parameter,
                                                                     gpointer self)
{
	tuba_application_search_activated ((TubaApplication*) self);
}

static void
_tuba_application_quit_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                   GVariant* parameter,
                                                                   gpointer self)
{
	tuba_application_quit_activated ((TubaApplication*) self);
}

static void
_tuba_application_back_home_activated_gsimple_action_activate_callback (GSimpleAction* action,
                                                                        GVariant* parameter,
                                                                        gpointer self)
{
	tuba_application_back_home_activated ((TubaApplication*) self);
}

static void
_tuba_application_scroll_view_page_down_gsimple_action_activate_callback (GSimpleAction* action,
                                                                          GVariant* parameter,
                                                                          gpointer self)
{
	tuba_application_scroll_view_page_down ((TubaApplication*) self);
}

static void
_tuba_application_scroll_view_page_up_gsimple_action_activate_callback (GSimpleAction* action,
                                                                        GVariant* parameter,
                                                                        gpointer self)
{
	tuba_application_scroll_view_page_up ((TubaApplication*) self);
}

static void
_tuba_application_goto_notifications_gsimple_action_activate_callback (GSimpleAction* action,
                                                                       GVariant* parameter,
                                                                       gpointer self)
{
	tuba_application_goto_notifications ((TubaApplication*) self);
}

static void
_tuba_application_open_status_url_gsimple_action_activate_callback (GSimpleAction* action,
                                                                    GVariant* parameter,
                                                                    gpointer self)
{
	tuba_application_open_status_url ((TubaApplication*) self, action, parameter);
}

static void
_tuba_application_answer_follow_request_gsimple_action_activate_callback (GSimpleAction* action,
                                                                          GVariant* parameter,
                                                                          gpointer self)
{
	tuba_application_answer_follow_request ((TubaApplication*) self, action, parameter);
}

static void
_tuba_application_follow_back_gsimple_action_activate_callback (GSimpleAction* action,
                                                                GVariant* parameter,
                                                                gpointer self)
{
	tuba_application_follow_back ((TubaApplication*) self, action, parameter);
}

static void
_tuba_application_reply_to_status_uri_gsimple_action_activate_callback (GSimpleAction* action,
                                                                        GVariant* parameter,
                                                                        gpointer self)
{
	tuba_application_reply_to_status_uri ((TubaApplication*) self, action, parameter);
}

static void
_tuba_application_remove_from_followers_gsimple_action_activate_callback (GSimpleAction* action,
                                                                          GVariant* parameter,
                                                                          gpointer self)
{
	tuba_application_remove_from_followers ((TubaApplication*) self, action, parameter);
}

static void
_tuba_application_open_preferences_gsimple_action_activate_callback (GSimpleAction* action,
                                                                     GVariant* parameter,
                                                                     gpointer self)
{
	tuba_application_open_preferences ((TubaApplication*) self);
}

static void
_tuba_application_open_current_account_profile_gsimple_action_activate_callback (GSimpleAction* action,
                                                                                 GVariant* parameter,
                                                                                 gpointer self)
{
	tuba_application_open_current_account_profile ((TubaApplication*) self);
}

static void
_tuba_application_open_announcements_gsimple_action_activate_callback (GSimpleAction* action,
                                                                       GVariant* parameter,
                                                                       gpointer self)
{
	tuba_application_open_announcements ((TubaApplication*) self);
}

static void
_tuba_application_open_follow_requests_gsimple_action_activate_callback (GSimpleAction* action,
                                                                         GVariant* parameter,
                                                                         gpointer self)
{
	tuba_application_open_follow_requests ((TubaApplication*) self);
}

static void
_tuba_application_open_mutes_blocks_gsimple_action_activate_callback (GSimpleAction* action,
                                                                      GVariant* parameter,
                                                                      gpointer self)
{
	tuba_application_open_mutes_blocks ((TubaApplication*) self);
}

static void
_tuba_application_open_scheduled_posts_gsimple_action_activate_callback (GSimpleAction* action,
                                                                         GVariant* parameter,
                                                                         gpointer self)
{
	tuba_application_open_scheduled_posts ((TubaApplication*) self);
}

static void
_tuba_application_open_draft_posts_gsimple_action_activate_callback (GSimpleAction* action,
                                                                     GVariant* parameter,
                                                                     gpointer self)
{
	tuba_application_open_draft_posts ((TubaApplication*) self);
}

static void
_tuba_application_open_admin_dashboard_gsimple_action_activate_callback (GSimpleAction* action,
                                                                         GVariant* parameter,
                                                                         gpointer self)
{
	tuba_application_open_admin_dashboard ((TubaApplication*) self);
}

static void
_tuba_application_open_last_fediwrapped_gsimple_action_activate_callback (GSimpleAction* action,
                                                                          GVariant* parameter,
                                                                          gpointer self)
{
	tuba_application_open_last_fediwrapped ((TubaApplication*) self);
}

static void
_tuba_application_open_collections_gsimple_action_activate_callback (GSimpleAction* action,
                                                                     GVariant* parameter,
                                                                     gpointer self)
{
	tuba_application_open_collections ((TubaApplication*) self);
}

static void
_tuba_application_open_containing_folder_gsimple_action_activate_callback (GSimpleAction* action,
                                                                           GVariant* parameter,
                                                                           gpointer self)
{
	tuba_application_open_containing_folder ((TubaApplication*) self, action, parameter);
}

static void
_tuba_application_increase_font_size_gsimple_action_activate_callback (GSimpleAction* action,
                                                                       GVariant* parameter,
                                                                       gpointer self)
{
	tuba_application_increase_font_size ((TubaApplication*) self);
}

static void
_tuba_application_decrease_font_size_gsimple_action_activate_callback (GSimpleAction* action,
                                                                       GVariant* parameter,
                                                                       gpointer self)
{
	tuba_application_decrease_font_size ((TubaApplication*) self);
}

static void
_tuba_application_reset_font_size_gsimple_action_activate_callback (GSimpleAction* action,
                                                                    GVariant* parameter,
                                                                    gpointer self)
{
	tuba_application_reset_font_size ((TubaApplication*) self);
}

static gchar*
bool_to_string (gboolean self)
{
	gchar* result;
	if (self) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup ("true");
		result = _tmp0_;
		return result;
	} else {
		gchar* _tmp1_;
		_tmp1_ = g_strdup ("false");
		result = _tmp1_;
		return result;
	}
}

static const gchar*
string_to_string (const gchar* self)
{
	const gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	result = self;
	return result;
}

static void
tuba_application_remove_from_followers (TubaApplication* self,
                                        GSimpleAction* action,
                                        GVariant* value)
{
	gboolean _tmp0_ = FALSE;
	TubaAccountStore* _tmp4_;
	TubaInstanceAccount* _tmp5_;
	TubaInstanceAccount* _tmp6_;
	GVariant* _tmp7_;
	GVariant* _tmp8_;
	const gchar* _tmp9_;
	GVariant* _tmp10_;
	GVariant* _tmp11_;
	const gchar* _tmp12_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (action != NULL);
	if (value == NULL) {
		_tmp0_ = TRUE;
	} else {
		TubaAccountStore* _tmp1_;
		TubaInstanceAccount* _tmp2_;
		TubaInstanceAccount* _tmp3_;
		_tmp1_ = tuba_accounts;
		_tmp2_ = tuba_account_store_get_active (_tmp1_);
		_tmp3_ = _tmp2_;
		_tmp0_ = _tmp3_ == NULL;
	}
	if (_tmp0_) {
		return;
	}
	_tmp4_ = tuba_accounts;
	_tmp5_ = tuba_account_store_get_active (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = g_variant_get_child_value (value, (gsize) 0);
	_tmp8_ = _tmp7_;
	_tmp9_ = g_variant_get_string (_tmp8_, NULL);
	_tmp10_ = g_variant_get_child_value (value, (gsize) 1);
	_tmp11_ = _tmp10_;
	_tmp12_ = g_variant_get_string (_tmp11_, NULL);
	tuba_instance_account_remove_from_followers (_tmp6_, _tmp9_, _tmp12_);
	_g_variant_unref0 (_tmp11_);
	_g_variant_unref0 (_tmp8_);
}

static void
tuba_application_reply_to_status_uri (TubaApplication* self,
                                      GSimpleAction* action,
                                      GVariant* value)
{
	gboolean _tmp0_ = FALSE;
	TubaAccountStore* _tmp4_;
	TubaInstanceAccount* _tmp5_;
	TubaInstanceAccount* _tmp6_;
	GVariant* _tmp7_;
	GVariant* _tmp8_;
	const gchar* _tmp9_;
	GVariant* _tmp10_;
	GVariant* _tmp11_;
	const gchar* _tmp12_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (action != NULL);
	if (value == NULL) {
		_tmp0_ = TRUE;
	} else {
		TubaAccountStore* _tmp1_;
		TubaInstanceAccount* _tmp2_;
		TubaInstanceAccount* _tmp3_;
		_tmp1_ = tuba_accounts;
		_tmp2_ = tuba_account_store_get_active (_tmp1_);
		_tmp3_ = _tmp2_;
		_tmp0_ = _tmp3_ == NULL;
	}
	if (_tmp0_) {
		return;
	}
	_tmp4_ = tuba_accounts;
	_tmp5_ = tuba_account_store_get_active (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = g_variant_get_child_value (value, (gsize) 0);
	_tmp8_ = _tmp7_;
	_tmp9_ = g_variant_get_string (_tmp8_, NULL);
	_tmp10_ = g_variant_get_child_value (value, (gsize) 1);
	_tmp11_ = _tmp10_;
	_tmp12_ = g_variant_get_string (_tmp11_, NULL);
	tuba_instance_account_reply_to_status_uri (_tmp6_, _tmp9_, _tmp12_);
	_g_variant_unref0 (_tmp11_);
	_g_variant_unref0 (_tmp8_);
}

static void
tuba_application_follow_back (TubaApplication* self,
                              GSimpleAction* action,
                              GVariant* value)
{
	gboolean _tmp0_ = FALSE;
	TubaAccountStore* _tmp4_;
	TubaInstanceAccount* _tmp5_;
	TubaInstanceAccount* _tmp6_;
	GVariant* _tmp7_;
	GVariant* _tmp8_;
	const gchar* _tmp9_;
	GVariant* _tmp10_;
	GVariant* _tmp11_;
	const gchar* _tmp12_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (action != NULL);
	if (value == NULL) {
		_tmp0_ = TRUE;
	} else {
		TubaAccountStore* _tmp1_;
		TubaInstanceAccount* _tmp2_;
		TubaInstanceAccount* _tmp3_;
		_tmp1_ = tuba_accounts;
		_tmp2_ = tuba_account_store_get_active (_tmp1_);
		_tmp3_ = _tmp2_;
		_tmp0_ = _tmp3_ == NULL;
	}
	if (_tmp0_) {
		return;
	}
	_tmp4_ = tuba_accounts;
	_tmp5_ = tuba_account_store_get_active (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = g_variant_get_child_value (value, (gsize) 0);
	_tmp8_ = _tmp7_;
	_tmp9_ = g_variant_get_string (_tmp8_, NULL);
	_tmp10_ = g_variant_get_child_value (value, (gsize) 1);
	_tmp11_ = _tmp10_;
	_tmp12_ = g_variant_get_string (_tmp11_, NULL);
	tuba_instance_account_follow_back (_tmp6_, _tmp9_, _tmp12_);
	_g_variant_unref0 (_tmp11_);
	_g_variant_unref0 (_tmp8_);
}

static void
tuba_application_goto_notifications (TubaApplication* self)
{
	TubaPlace* _tmp0_;
	TubaPlaceOpenFunc _tmp1_ = NULL;
	TubaPlaceOpenFunc _tmp2_;
	TubaApplication* _tmp3_;
	TubaDialogsMainWindow* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_mastodon_account_PLACE_NOTIFICATIONS;
	_tmp1_ = tuba_place_get_open_func (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = tuba_app;
	_tmp4_ = _tmp3_->priv->_main_window;
	_tmp2_ (_tmp4_, NULL);
}

static void
tuba_application_open_status_url (TubaApplication* self,
                                  GSimpleAction* action,
                                  GVariant* value)
{
	gboolean _tmp0_ = FALSE;
	TubaAccountStore* _tmp4_;
	TubaInstanceAccount* _tmp5_;
	TubaInstanceAccount* _tmp6_;
	const gchar* _tmp7_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (action != NULL);
	if (value == NULL) {
		_tmp0_ = TRUE;
	} else {
		TubaAccountStore* _tmp1_;
		TubaInstanceAccount* _tmp2_;
		TubaInstanceAccount* _tmp3_;
		_tmp1_ = tuba_accounts;
		_tmp2_ = tuba_account_store_get_active (_tmp1_);
		_tmp3_ = _tmp2_;
		_tmp0_ = _tmp3_ == NULL;
	}
	if (_tmp0_) {
		return;
	}
	_tmp4_ = tuba_accounts;
	_tmp5_ = tuba_account_store_get_active (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = g_variant_get_string (value, NULL);
	tuba_instance_account_open_status_url (_tmp6_, _tmp7_);
}

static void
tuba_application_answer_follow_request (TubaApplication* self,
                                        GSimpleAction* action,
                                        GVariant* value)
{
	gboolean _tmp0_ = FALSE;
	TubaAccountStore* _tmp4_;
	TubaInstanceAccount* _tmp5_;
	TubaInstanceAccount* _tmp6_;
	GVariant* _tmp7_;
	GVariant* _tmp8_;
	const gchar* _tmp9_;
	GVariant* _tmp10_;
	GVariant* _tmp11_;
	const gchar* _tmp12_;
	GVariant* _tmp13_;
	GVariant* _tmp14_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (action != NULL);
	if (value == NULL) {
		_tmp0_ = TRUE;
	} else {
		TubaAccountStore* _tmp1_;
		TubaInstanceAccount* _tmp2_;
		TubaInstanceAccount* _tmp3_;
		_tmp1_ = tuba_accounts;
		_tmp2_ = tuba_account_store_get_active (_tmp1_);
		_tmp3_ = _tmp2_;
		_tmp0_ = _tmp3_ == NULL;
	}
	if (_tmp0_) {
		return;
	}
	_tmp4_ = tuba_accounts;
	_tmp5_ = tuba_account_store_get_active (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = g_variant_get_child_value (value, (gsize) 0);
	_tmp8_ = _tmp7_;
	_tmp9_ = g_variant_get_string (_tmp8_, NULL);
	_tmp10_ = g_variant_get_child_value (value, (gsize) 1);
	_tmp11_ = _tmp10_;
	_tmp12_ = g_variant_get_string (_tmp11_, NULL);
	_tmp13_ = g_variant_get_child_value (value, (gsize) 2);
	_tmp14_ = _tmp13_;
	tuba_instance_account_answer_follow_request (_tmp6_, _tmp9_, _tmp12_, g_variant_get_boolean (_tmp14_));
	_g_variant_unref0 (_tmp14_);
	_g_variant_unref0 (_tmp11_);
	_g_variant_unref0 (_tmp8_);
}

static gpointer
_g_uri_ref0 (gpointer self)
{
	return self ? g_uri_ref (self) : NULL;
}

static Block1Data*
block1_data_ref (Block1Data* _data1_)
{
	g_atomic_int_inc (&_data1_->_ref_count_);
	return _data1_;
}

static void
block1_data_unref (void * _userdata_)
{
	Block1Data* _data1_;
	_data1_ = (Block1Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data1_->_ref_count_)) {
		TubaApplication* self;
		self = _data1_->self;
		_g_uri_unref0 (_data1_->uri);
		_g_object_unref0 (self);
		g_slice_free (Block1Data, _data1_);
	}
}

static void
__lambda141_ (Block1Data* _data1_,
              GObject* obj,
              GAsyncResult* res)
{
	TubaApplication* self;
	GError* _inner_error0_ = NULL;
	self = _data1_->self;
	g_return_if_fail (res != NULL);
	{
		TubaEntity* _tmp0_ = NULL;
		TubaAccountStore* _tmp1_;
		TubaInstanceAccount* _tmp2_;
		TubaInstanceAccount* _tmp3_;
		TubaEntity* _tmp4_;
		_tmp1_ = tuba_accounts;
		_tmp2_ = tuba_account_store_get_active (_tmp1_);
		_tmp3_ = _tmp2_;
		_tmp4_ = tuba_instance_account_resolve_finish (_tmp3_, res, &_inner_error0_);
		_tmp0_ = _tmp4_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		tuba_widgetizable_open ((TubaWidgetizable*) _tmp0_);
		_g_object_unref0 (_tmp0_);
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		gchar* msg = NULL;
		gchar* _tmp5_;
		gchar* _tmp6_;
		GError* _tmp7_;
		const gchar* _tmp8_;
		const gchar* _tmp9_;
		gchar* _tmp10_;
		gchar* _tmp11_;
		const gchar* _tmp12_;
		const gchar* _tmp13_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp5_ = g_uri_to_string (_data1_->uri);
		_tmp6_ = _tmp5_;
		_tmp7_ = e;
		_tmp8_ = _tmp7_->message;
		_tmp9_ = string_to_string (_tmp8_);
		_tmp10_ = g_strconcat ("Failed to resolve URL \"", _tmp6_, "\": ", _tmp9_, NULL);
		_tmp11_ = _tmp10_;
		_g_free0 (_tmp6_);
		msg = _tmp11_;
		_tmp12_ = msg;
		g_warning ("Application.vala:197: %s", _tmp12_);
		_tmp13_ = msg;
		g_signal_emit (self, tuba_application_signals[TUBA_APPLICATION_TOAST_SIGNAL], 0, _tmp13_, (guint) 5, NULL, NULL, NULL);
		_g_free0 (msg);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return;
	}
}

static void
___lambda141__gasync_ready_callback (GObject* source_object,
                                     GAsyncResult* res,
                                     gpointer self)
{
	__lambda141_ (self, source_object, res);
	block1_data_unref (self);
}

void
tuba_application_handle_web_ap (TubaApplication* self,
                                GUri* uri)
{
	Block1Data* _data1_;
	GUri* _tmp0_;
	TubaAccountStore* _tmp1_;
	TubaInstanceAccount* _tmp2_;
	TubaInstanceAccount* _tmp3_;
	TubaAccountStore* _tmp4_;
	TubaInstanceAccount* _tmp5_;
	TubaInstanceAccount* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (uri != NULL);
	_data1_ = g_slice_new0 (Block1Data);
	_data1_->_ref_count_ = 1;
	_data1_->self = g_object_ref (self);
	_tmp0_ = _g_uri_ref0 (uri);
	_g_uri_unref0 (_data1_->uri);
	_data1_->uri = _tmp0_;
	_tmp1_ = tuba_accounts;
	_tmp2_ = tuba_account_store_get_active (_tmp1_);
	_tmp3_ = _tmp2_;
	if (_tmp3_ == NULL) {
		block1_data_unref (_data1_);
		_data1_ = NULL;
		return;
	}
	_tmp4_ = tuba_accounts;
	_tmp5_ = tuba_account_store_get_active (_tmp4_);
	_tmp6_ = _tmp5_;
	_tmp7_ = tuba_utils_web_ap_handler_from_uri (_data1_->uri);
	_tmp8_ = _tmp7_;
	tuba_instance_account_resolve (_tmp6_, _tmp8_, ___lambda141__gasync_ready_callback, block1_data_ref (_data1_));
	_g_free0 (_tmp8_);
	block1_data_unref (_data1_);
	_data1_ = NULL;
}

void
tuba_application_handle_share (TubaApplication* self)
{
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	TubaUtilsShareHandlerShareResult* _tmp2_;
	TubaUtilsShareHandlerShareResult* _tmp11_;
	const gchar* _tmp12_;
	TubaUtilsShareHandlerShareResult* _tmp13_;
	const gchar* _tmp14_;
	TubaDialogsComposerDialogPrecompose _tmp15_ = {0};
	TubaSettings* _tmp16_;
	const gchar* _tmp17_;
	const gchar* _tmp18_;
	TubaSettings* _tmp19_;
	const gchar* _tmp20_;
	const gchar* _tmp21_;
	TubaSettings* _tmp22_;
	const gchar* _tmp23_;
	const gchar* _tmp24_;
	TubaDialogsComposerDialog* _tmp25_;
	TubaDialogsComposerDialog* _tmp26_;
	g_return_if_fail (self != NULL);
	_tmp2_ = self->priv->to_share;
	if (_tmp2_ == NULL) {
		_tmp1_ = TRUE;
	} else {
		TubaAccountStore* _tmp3_;
		TubaInstanceAccount* _tmp4_;
		TubaInstanceAccount* _tmp5_;
		_tmp3_ = tuba_accounts;
		_tmp4_ = tuba_account_store_get_active (_tmp3_);
		_tmp5_ = _tmp4_;
		_tmp1_ = _tmp5_ == NULL;
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		TubaAccountStore* _tmp6_;
		TubaInstanceAccount* _tmp7_;
		TubaInstanceAccount* _tmp8_;
		TubaAPIInstance* _tmp9_;
		TubaAPIInstance* _tmp10_;
		_tmp6_ = tuba_accounts;
		_tmp7_ = tuba_account_store_get_active (_tmp6_);
		_tmp8_ = _tmp7_;
		_tmp9_ = tuba_instance_account_get_instance_info (_tmp8_);
		_tmp10_ = _tmp9_;
		_tmp0_ = _tmp10_ == NULL;
	}
	if (_tmp0_) {
		return;
	}
	_tmp11_ = self->priv->to_share;
	_tmp12_ = (*_tmp11_).text;
	_tmp13_ = self->priv->to_share;
	_tmp14_ = (*_tmp13_).cw;
	_g_free0 (_tmp15_.content);
	_tmp15_.content = _tmp12_;
	_g_free0 (_tmp15_.spoiler);
	_tmp15_.spoiler = _tmp14_;
	_g_free0 (_tmp15_.quote_id);
	_tmp15_.quote_id = NULL;
	_g_free0 (_tmp15_.scheduled_id);
	_tmp15_.scheduled_id = NULL;
	_g_free0 (_tmp15_.in_reply_to_id);
	_tmp15_.in_reply_to_id = NULL;
	_g_object_unref0 (_tmp15_.poll);
	_tmp15_.poll = NULL;
	_g_object_unref0 (_tmp15_.media_attachments);
	_tmp15_.media_attachments = NULL;
	_tmp15_.sensitive_media = TRUE;
	_tmp15_.local_only = FALSE;
	_tmp16_ = tuba_settings;
	_tmp17_ = tuba_settings_get_default_post_visibility (_tmp16_);
	_tmp18_ = _tmp17_;
	_tmp19_ = tuba_settings;
	_tmp20_ = tuba_settings_get_default_language (_tmp19_);
	_tmp21_ = _tmp20_;
	_tmp22_ = tuba_settings;
	_tmp23_ = tuba_settings_get_default_quote_policy (_tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = tuba_dialogs_composer_dialog_new (&_tmp15_, _tmp18_, _tmp21_, _ ("Post"), FALSE, TRUE, _tmp24_, FALSE);
	g_object_ref_sink (_tmp25_);
	_tmp26_ = _tmp25_;
	_g_object_unref0 (_tmp26_);
	_tuba_utils_share_handler_share_result_free0 (self->priv->to_share);
	self->priv->to_share = NULL;
}

static gpointer
_g_object_ref0 (gpointer self)
{
	return self ? g_object_ref (self) : NULL;
}

static gint
tuba_application_main (gchar** args,
                       gint args_length1)
{
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gboolean _tmp25_ = FALSE;
	const gchar* _tmp26_;
	const gchar* _tmp29_;
	GNetworkMonitor* _tmp30_;
	GNetworkMonitor* _tmp31_;
	TubaApplication* _tmp32_;
	TubaApplication* _tmp33_;
	GError* _inner_error0_ = NULL;
	gint result;
	gexiv2_initialize ();
	gst_init ((gint*) (&args_length1), &args);
	clapper_init ((gint*) (&args_length1), &args);
	g_setenv ("CLAPPER_USE_PLAYBIN3", "1", FALSE);
	_tmp0_ = g_get_user_cache_dir ();
	_tmp1_ = g_utf8_strdown (BUILD_NAME, (gssize) -1);
	_tmp2_ = _tmp1_;
	_tmp3_ = g_build_path (G_DIR_SEPARATOR_S, _tmp0_, _tmp2_, NULL);
	_g_free0 (tuba_cache_path);
	tuba_cache_path = _tmp3_;
	_g_free0 (_tmp2_);
	{
		GRegex* _tmp4_ = NULL;
		GRegex* _tmp5_;
		GRegex* _tmp7_;
		_tmp5_ = g_regex_new ("/book/\\d+(/?$|/s/[-_a-z0-9]*)", G_REGEX_OPTIMIZE, 0, &_inner_error0_);
		_tmp4_ = _tmp5_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			gint _tmp6_ = -1;
			if (_inner_error0_->domain == G_REGEX_ERROR) {
				goto __catch0_g_regex_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return _tmp6_;
		}
		_tmp7_ = _tmp4_;
		_tmp4_ = NULL;
		_g_regex_unref0 (tuba_bookwyrm_regex);
		tuba_bookwyrm_regex = _tmp7_;
		_g_regex_unref0 (_tmp4_);
	}
	goto __finally0;
	__catch0_g_regex_error:
	{
		GError* e = NULL;
		GError* _tmp8_;
		const gchar* _tmp9_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp8_ = e;
		_tmp9_ = _tmp8_->message;
		g_critical ("Application.vala:248: %s", _tmp9_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		gint _tmp10_ = -1;
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return _tmp10_;
	}
	{
		GRegex* _tmp11_ = NULL;
		GRegex* _tmp12_;
		GRegex* _tmp14_;
		_tmp12_ = g_regex_new ("(:[a-zA-Z0-9_]{2,}:)", G_REGEX_OPTIMIZE, 0, &_inner_error0_);
		_tmp11_ = _tmp12_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			gint _tmp13_ = -1;
			if (_inner_error0_->domain == G_REGEX_ERROR) {
				goto __catch1_g_regex_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return _tmp13_;
		}
		_tmp14_ = _tmp11_;
		_tmp11_ = NULL;
		_g_regex_unref0 (tuba_custom_emoji_regex);
		tuba_custom_emoji_regex = _tmp14_;
		_g_regex_unref0 (_tmp11_);
	}
	goto __finally1;
	__catch1_g_regex_error:
	{
		GError* e = NULL;
		GError* _tmp15_;
		const gchar* _tmp16_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp15_ = e;
		_tmp16_ = _tmp15_->message;
		g_critical ("Application.vala:254: %s", _tmp16_);
		_g_error_free0 (e);
	}
	__finally1:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		gint _tmp17_ = -1;
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return _tmp17_;
	}
	{
		GRegex* _tmp18_ = NULL;
		GRegex* _tmp19_;
		GRegex* _tmp21_;
		_tmp19_ = g_regex_new ("[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]", G_REGEX_OPTIMIZE, G_REGEX_MATCH_ANCHORED, &_inner_error0_);
		_tmp18_ = _tmp19_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			gint _tmp20_ = -1;
			if (_inner_error0_->domain == G_REGEX_ERROR) {
				goto __catch2_g_regex_error;
			}
			g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return _tmp20_;
		}
		_tmp21_ = _tmp18_;
		_tmp18_ = NULL;
		_g_regex_unref0 (tuba_rtl_regex);
		tuba_rtl_regex = _tmp21_;
		_g_regex_unref0 (_tmp18_);
	}
	goto __finally2;
	__catch2_g_regex_error:
	{
		GError* e = NULL;
		GError* _tmp22_;
		const gchar* _tmp23_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp22_ = e;
		_tmp23_ = _tmp22_->message;
		g_critical ("Application.vala:264: %s", _tmp23_);
		_g_error_free0 (e);
	}
	__finally2:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		gint _tmp24_ = -1;
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return _tmp24_;
	}
	_tmp26_ = g_getenv ("FLATPAK_ID");
	if (_tmp26_ != NULL) {
		_tmp25_ = TRUE;
	} else {
		GFile* _tmp27_;
		GFile* _tmp28_;
		_tmp27_ = g_file_new_for_path ("/.flatpak-info");
		_tmp28_ = _tmp27_;
		_tmp25_ = g_file_query_exists (_tmp28_, NULL);
		_g_object_unref0 (_tmp28_);
	}
	tuba_is_flatpak = _tmp25_;
	setlocale (LC_ALL, "");
	bindtextdomain (BUILD_GETTEXT_PACKAGE, BUILD_LOCALEDIR);
	bind_textdomain_codeset (BUILD_GETTEXT_PACKAGE, "UTF-8");
	textdomain (BUILD_GETTEXT_PACKAGE);
	g_unsetenv ("GTK_THEME");
	_tmp29_ = g_getenv ("GSK_RENDERER");
	if (g_strcmp0 (_tmp29_, "gl") == 0) {
		g_setenv ("GDK_DEBUG", "gl-no-fractional", FALSE);
	}
	_tmp30_ = g_network_monitor_get_default ();
	_tmp31_ = _g_object_ref0 (_tmp30_);
	_g_object_unref0 (tuba_network_monitor);
	tuba_network_monitor = _tmp31_;
	_tmp32_ = tuba_application_new ();
	_g_object_unref0 (tuba_app);
	tuba_app = _tmp32_;
	_tmp33_ = tuba_app;
	result = g_application_run ((GApplication*) _tmp33_, (gint) args_length1, args);
	return result;
}

int
main (int argc,
      char ** argv)
{
	return tuba_application_main (argv, argc);
}

static void
_tuba_application_on_network_change_cb_gsource_once_func (gpointer self)
{
	tuba_application_on_network_change_cb ((TubaApplication*) self);
	g_object_unref (self);
}

static void
tuba_application_on_network_change (TubaApplication* self,
                                    gboolean online)
{
	g_return_if_fail (self != NULL);
	g_timeout_add_once ((guint) 5000, _tuba_application_on_network_change_cb_gsource_once_func, g_object_ref (self));
}

static void
tuba_application_on_network_change_cb (TubaApplication* self)
{
	gboolean online = FALSE;
	GNetworkMonitor* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_network_monitor;
	_tmp1_ = g_network_monitor_get_network_available (_tmp0_);
	_tmp2_ = _tmp1_;
	online = _tmp2_;
	_tmp3_ = self->priv->_is_online;
	if (_tmp3_ == online) {
		return;
	}
	tuba_application_set_is_online (self, online);
}

static gint
string_index_of_char (const gchar* self,
                      gunichar c,
                      gint start_index)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gint result;
	g_return_val_if_fail (self != NULL, -1);
	_tmp0_ = g_utf8_strchr (((gchar*) self) + start_index, (gssize) -1, c);
	_result_ = _tmp0_;
	_tmp1_ = _result_;
	if (_tmp1_ != NULL) {
		gchar* _tmp2_;
		_tmp2_ = _result_;
		result = (gint) (_tmp2_ - ((gchar*) self));
		return result;
	} else {
		result = -1;
		return result;
	}
}

static void
_tuba_application_on_network_change_g_network_monitor_network_changed (GNetworkMonitor* _sender,
                                                                       gboolean network_available,
                                                                       gpointer self)
{
	tuba_application_on_network_change ((TubaApplication*) self, network_available);
}

static void
_tuba_application_on_proxy_notify_g_object_notify (GObject* _sender,
                                                   GParamSpec* pspec,
                                                   gpointer self)
{
	tuba_application_on_proxy_notify ((TubaApplication*) self);
}

static void
tuba_application_real_startup (GApplication* base)
{
	TubaApplication * self;
	AdwStyleManager* style_manager = NULL;
	AdwStyleManager* _tmp34_;
	AdwStyleManager* _tmp35_;
	TubaColorScheme color_scheme = 0;
	TubaSettings* _tmp36_;
	AdwStyleManager* _tmp37_;
	gchar* _tmp38_;
	gchar** _tmp39_;
	gchar** _tmp40_;
	gint _tmp40__length1;
	gchar* _tmp41_;
	gchar** _tmp42_;
	gchar** _tmp43_;
	gint _tmp43__length1;
	gchar* _tmp44_;
	gchar* _tmp45_;
	gchar** _tmp46_;
	gchar** _tmp47_;
	gint _tmp47__length1;
	gchar* _tmp48_;
	gchar* _tmp49_;
	gchar** _tmp50_;
	gchar** _tmp51_;
	gint _tmp51__length1;
	gchar* _tmp52_;
	gchar* _tmp53_;
	gchar** _tmp54_;
	gchar** _tmp55_;
	gint _tmp55__length1;
	gchar* _tmp56_;
	gchar* _tmp57_;
	gchar** _tmp58_;
	gchar** _tmp59_;
	gint _tmp59__length1;
	gchar* _tmp60_;
	gchar** _tmp61_;
	gchar** _tmp62_;
	gint _tmp62__length1;
	gchar* _tmp63_;
	gchar** _tmp64_;
	gchar** _tmp65_;
	gint _tmp65__length1;
	gchar* _tmp66_;
	gchar** _tmp67_;
	gchar** _tmp68_;
	gint _tmp68__length1;
	gchar* _tmp69_;
	gchar** _tmp70_;
	gchar** _tmp71_;
	gint _tmp71__length1;
	gchar* _tmp72_;
	gchar** _tmp73_;
	gchar** _tmp74_;
	gint _tmp74__length1;
	TubaSettings* _tmp75_;
	gboolean _tmp76_;
	gboolean _tmp77_;
	TubaSettings* _tmp79_;
	const gchar* _tmp80_;
	const gchar* _tmp81_;
	TubaSettings* _tmp82_;
	TubaSettings* _tmp83_;
	gboolean _tmp84_;
	gboolean _tmp85_;
	TubaApplication* _tmp87_;
	TubaSettings* _tmp88_;
	TubaSettings* _tmp89_;
	gboolean _tmp90_;
	gboolean _tmp91_;
	GError* _inner_error0_ = NULL;
	self = (TubaApplication*) base;
	G_APPLICATION_CLASS (tuba_application_parent_class)->startup ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, adw_application_get_type (), AdwApplication));
	{
		gchar** lines = NULL;
		const gchar* _tmp0_;
		gchar** _tmp1_;
		gchar** _tmp2_;
		gint lines_length1;
		gint _lines_size_;
		gchar** _tmp3_;
		gint _tmp3__length1;
		gchar* t_default_locale = NULL;
		PangoLanguage* _tmp5_;
		const gchar* _tmp6_;
		gchar* _tmp7_;
		const gchar* _tmp8_;
		TubaSettings* _tmp27_;
		TubaStreams* _tmp28_;
		TubaNetwork* _tmp29_;
		TubaSecretAccountStore* _tmp30_;
		TubaAccountStore* _tmp31_;
		_tmp0_ = self->priv->troubleshooting;
		_tmp2_ = _tmp1_ = g_strsplit (_tmp0_, "\n", 0);
		lines = _tmp2_;
		lines_length1 = _vala_array_length (_tmp1_);
		_lines_size_ = lines_length1;
		_tmp3_ = lines;
		_tmp3__length1 = lines_length1;
		{
			gchar** line_collection = NULL;
			gint line_collection_length1 = 0;
			gint _line_collection_size_ = 0;
			gint line_it = 0;
			line_collection = _tmp3_;
			line_collection_length1 = _tmp3__length1;
			for (line_it = 0; line_it < line_collection_length1; line_it = line_it + 1) {
				const gchar* line = NULL;
				line = line_collection[line_it];
				{
					const gchar* _tmp4_;
					_tmp4_ = line;
					g_debug ("Application.vala:495: %s", _tmp4_);
				}
			}
		}
		gtk_window_set_default_icon_name (BUILD_DOMAIN);
		adw_init ();
		gtk_source_init ();
		_tmp5_ = gtk_get_default_language ();
		_tmp6_ = pango_language_to_string (_tmp5_);
		_tmp7_ = g_strdup (_tmp6_);
		t_default_locale = _tmp7_;
		_tmp8_ = t_default_locale;
		if (g_strcmp0 (_tmp8_, "c") == 0) {
			gchar* _tmp9_;
			_tmp9_ = g_strdup ("en-US");
			_g_free0 (tuba_default_locale);
			tuba_default_locale = _tmp9_;
		} else {
			const gchar* _tmp10_;
			const gchar* _tmp25_;
			gchar* _tmp26_;
			_tmp10_ = t_default_locale;
			if (string_index_of_char (_tmp10_, (gunichar) '-', 0) != -1) {
				gchar** tdl_parts = NULL;
				const gchar* _tmp11_;
				gchar** _tmp12_;
				gchar** _tmp13_;
				gint tdl_parts_length1;
				gint _tdl_parts_size_;
				gchar** _tmp14_;
				gint _tmp14__length1;
				const gchar* _tmp15_;
				gchar* _tmp16_;
				gchar* _tmp17_;
				const gchar* _tmp18_;
				gchar** _tmp19_;
				gint _tmp19__length1;
				const gchar* _tmp20_;
				gchar* _tmp21_;
				gchar* _tmp22_;
				const gchar* _tmp23_;
				gchar* _tmp24_;
				_tmp11_ = t_default_locale;
				_tmp13_ = _tmp12_ = g_strsplit (_tmp11_, "-", 2);
				tdl_parts = _tmp13_;
				tdl_parts_length1 = _vala_array_length (_tmp12_);
				_tdl_parts_size_ = tdl_parts_length1;
				_tmp14_ = tdl_parts;
				_tmp14__length1 = tdl_parts_length1;
				_tmp15_ = _tmp14_[0];
				_tmp16_ = g_utf8_strdown (_tmp15_, (gssize) -1);
				_tmp17_ = _tmp16_;
				_tmp18_ = string_to_string (_tmp17_);
				_tmp19_ = tdl_parts;
				_tmp19__length1 = tdl_parts_length1;
				_tmp20_ = _tmp19_[1];
				_tmp21_ = g_utf8_strup (_tmp20_, (gssize) -1);
				_tmp22_ = _tmp21_;
				_tmp23_ = string_to_string (_tmp22_);
				_tmp24_ = g_strconcat (_tmp18_, "-", _tmp23_, NULL);
				_g_free0 (t_default_locale);
				t_default_locale = _tmp24_;
				_g_free0 (_tmp22_);
				_g_free0 (_tmp17_);
				tdl_parts = (_vala_array_free (tdl_parts, tdl_parts_length1, (GDestroyNotify) g_free), NULL);
			}
			_tmp25_ = t_default_locale;
			_tmp26_ = g_strdup (_tmp25_);
			_g_free0 (tuba_default_locale);
			tuba_default_locale = _tmp26_;
		}
		_tmp27_ = tuba_settings_new ();
		_g_object_unref0 (tuba_settings);
		tuba_settings = _tmp27_;
		_tmp28_ = tuba_streams_new ();
		_g_object_unref0 (tuba_streams);
		tuba_streams = _tmp28_;
		_tmp29_ = tuba_network_new ();
		_g_object_unref0 (tuba_network);
		tuba_network = _tmp29_;
		_tmp30_ = tuba_secret_account_store_new ();
		_g_object_unref0 (tuba_accounts);
		tuba_accounts = (TubaAccountStore*) _tmp30_;
		_tmp31_ = tuba_accounts;
		tuba_account_store_init (_tmp31_, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			_g_free0 (t_default_locale);
			lines = (_vala_array_free (lines, lines_length1, (GDestroyNotify) g_free), NULL);
			goto __catch0_g_error;
		}
		_g_free0 (t_default_locale);
		lines = (_vala_array_free (lines, lines_length1, (GDestroyNotify) g_free), NULL);
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		gchar* msg = NULL;
		const gchar* _tmp32_;
		gchar* _tmp33_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp32_ = e->message;
		_tmp33_ = g_strdup_printf ("Could not start application: %s", _tmp32_);
		msg = _tmp33_;
		g_error ("Application.vala:526: %s", msg);
		_g_free0 (msg);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return;
	}
	_tmp34_ = adw_style_manager_get_default ();
	_tmp35_ = _g_object_ref0 (_tmp34_);
	style_manager = _tmp35_;
	_tmp36_ = tuba_settings;
	color_scheme = (TubaColorScheme) g_settings_get_enum ((GSettings*) _tmp36_, "color-scheme");
	_tmp37_ = style_manager;
	adw_style_manager_set_color_scheme (_tmp37_, tuba_color_scheme_to_adwaita_scheme (color_scheme));
	_tmp38_ = g_strdup ("F1");
	_tmp39_ = g_new0 (gchar*, 1 + 1);
	_tmp39_[0] = _tmp38_;
	_tmp40_ = _tmp39_;
	_tmp40__length1 = 1;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.about", _tmp40_);
	_tmp40_ = (_vala_array_free (_tmp40_, _tmp40__length1, (GDestroyNotify) g_free), NULL);
	_tmp41_ = g_strdup ("<Ctrl>comma");
	_tmp42_ = g_new0 (gchar*, 1 + 1);
	_tmp42_[0] = _tmp41_;
	_tmp43_ = _tmp42_;
	_tmp43__length1 = 1;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.open-preferences", _tmp43_);
	_tmp43_ = (_vala_array_free (_tmp43_, _tmp43__length1, (GDestroyNotify) g_free), NULL);
	_tmp44_ = g_strdup ("<Ctrl>T");
	_tmp45_ = g_strdup ("<Ctrl>N");
	_tmp46_ = g_new0 (gchar*, 2 + 1);
	_tmp46_[0] = _tmp44_;
	_tmp46_[1] = _tmp45_;
	_tmp47_ = _tmp46_;
	_tmp47__length1 = 2;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.compose", _tmp47_);
	_tmp47_ = (_vala_array_free (_tmp47_, _tmp47__length1, (GDestroyNotify) g_free), NULL);
	_tmp48_ = g_strdup ("<Alt>BackSpace");
	_tmp49_ = g_strdup ("<Alt>KP_Left");
	_tmp50_ = g_new0 (gchar*, 2 + 1);
	_tmp50_[0] = _tmp48_;
	_tmp50_[1] = _tmp49_;
	_tmp51_ = _tmp50_;
	_tmp51__length1 = 2;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.back", _tmp51_);
	_tmp51_ = (_vala_array_free (_tmp51_, _tmp51__length1, (GDestroyNotify) g_free), NULL);
	_tmp52_ = g_strdup ("<Ctrl>R");
	_tmp53_ = g_strdup ("F5");
	_tmp54_ = g_new0 (gchar*, 2 + 1);
	_tmp54_[0] = _tmp52_;
	_tmp54_[1] = _tmp53_;
	_tmp55_ = _tmp54_;
	_tmp55__length1 = 2;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.refresh", _tmp55_);
	_tmp55_ = (_vala_array_free (_tmp55_, _tmp55__length1, (GDestroyNotify) g_free), NULL);
	_tmp56_ = g_strdup ("<Ctrl>F");
	_tmp57_ = g_strdup ("<Ctrl>L");
	_tmp58_ = g_new0 (gchar*, 2 + 1);
	_tmp58_[0] = _tmp56_;
	_tmp58_[1] = _tmp57_;
	_tmp59_ = _tmp58_;
	_tmp59__length1 = 2;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.search", _tmp59_);
	_tmp59_ = (_vala_array_free (_tmp59_, _tmp59__length1, (GDestroyNotify) g_free), NULL);
	_tmp60_ = g_strdup ("<Ctrl>Q");
	_tmp61_ = g_new0 (gchar*, 1 + 1);
	_tmp61_[0] = _tmp60_;
	_tmp62_ = _tmp61_;
	_tmp62__length1 = 1;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.quit", _tmp62_);
	_tmp62_ = (_vala_array_free (_tmp62_, _tmp62__length1, (GDestroyNotify) g_free), NULL);
	_tmp63_ = g_strdup ("<Ctrl>W");
	_tmp64_ = g_new0 (gchar*, 1 + 1);
	_tmp64_[0] = _tmp63_;
	_tmp65_ = _tmp64_;
	_tmp65__length1 = 1;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "window.close", _tmp65_);
	_tmp65_ = (_vala_array_free (_tmp65_, _tmp65__length1, (GDestroyNotify) g_free), NULL);
	_tmp66_ = g_strdup ("<Alt>Home");
	_tmp67_ = g_new0 (gchar*, 1 + 1);
	_tmp67_[0] = _tmp66_;
	_tmp68_ = _tmp67_;
	_tmp68__length1 = 1;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.back-home", _tmp68_);
	_tmp68_ = (_vala_array_free (_tmp68_, _tmp68__length1, (GDestroyNotify) g_free), NULL);
	_tmp69_ = g_strdup ("Page_Down");
	_tmp70_ = g_new0 (gchar*, 1 + 1);
	_tmp70_[0] = _tmp69_;
	_tmp71_ = _tmp70_;
	_tmp71__length1 = 1;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.scroll-page-down", _tmp71_);
	_tmp71_ = (_vala_array_free (_tmp71_, _tmp71__length1, (GDestroyNotify) g_free), NULL);
	_tmp72_ = g_strdup ("Page_Up");
	_tmp73_ = g_new0 (gchar*, 1 + 1);
	_tmp73_[0] = _tmp72_;
	_tmp74_ = _tmp73_;
	_tmp74__length1 = 1;
	gtk_application_set_accels_for_action ((GtkApplication*) self, "app.scroll-page-up", _tmp74_);
	_tmp74_ = (_vala_array_free (_tmp74_, _tmp74__length1, (GDestroyNotify) g_free), NULL);
	g_action_map_add_action_entries ((GActionMap*) self, TUBA_APPLICATION_APP_ENTRIES, (gint) G_N_ELEMENTS (TUBA_APPLICATION_APP_ENTRIES), self);
	_tmp75_ = tuba_settings;
	_tmp76_ = tuba_settings_get_monitor_network (_tmp75_);
	_tmp77_ = _tmp76_;
	if (_tmp77_) {
		GNetworkMonitor* _tmp78_;
		_tmp78_ = tuba_network_monitor;
		g_signal_connect_object (_tmp78_, "network-changed", (GCallback) _tuba_application_on_network_change_g_network_monitor_network_changed, self, 0);
		tuba_application_on_network_change (self, TRUE);
	}
	_tmp79_ = tuba_settings;
	_tmp80_ = tuba_settings_get_proxy (_tmp79_);
	_tmp81_ = _tmp80_;
	if (g_strcmp0 (_tmp81_, "") != 0) {
		tuba_application_on_proxy_change (self, FALSE);
	}
	_tmp82_ = tuba_settings;
	g_signal_connect_object ((GObject*) _tmp82_, "notify::proxy", (GCallback) _tuba_application_on_proxy_notify_g_object_notify, self, 0);
	_tmp83_ = tuba_settings;
	_tmp84_ = tuba_settings_get_analytics (_tmp83_);
	_tmp85_ = _tmp84_;
	if (_tmp85_) {
		TubaApplication* _tmp86_;
		_tmp86_ = tuba_app;
		tuba_application_update_analytics (_tmp86_, NULL, NULL);
	}
	_tmp87_ = tuba_app;
	tuba_application_update_contributors (_tmp87_, NULL, NULL);
	_tmp88_ = tuba_settings;
	tuba_should_blur_sensitive_media = g_settings_get_boolean ((GSettings*) _tmp88_, "blur-sensitive-media");
	_tmp89_ = tuba_settings;
	_tmp90_ = tuba_settings_get_larger_font_size (_tmp89_);
	_tmp91_ = _tmp90_;
	if (_tmp91_) {
		TubaSettings* _tmp92_;
		TubaSettings* _tmp93_;
		_tmp92_ = tuba_settings;
		tuba_settings_set_larger_font_size (_tmp92_, FALSE);
		_tmp93_ = tuba_settings;
		tuba_settings_set_status_font_size (_tmp93_, 1.2);
	}
	_g_object_unref0 (style_manager);
}

static void
_tuba_application_trigger_is_online_notify_gsource_once_func (gpointer self)
{
	tuba_application_trigger_is_online_notify ((TubaApplication*) self);
	g_object_unref (self);
}

static void
tuba_application_on_proxy_change (TubaApplication* self,
                                  gboolean recover)
{
	TubaSettings* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gboolean _tmp16_ = FALSE;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_settings;
	_tmp1_ = tuba_settings_get_proxy (_tmp0_);
	_tmp2_ = _tmp1_;
	if (g_strcmp0 (_tmp2_, "") != 0) {
		{
			gboolean _tmp3_ = FALSE;
			TubaSettings* _tmp4_;
			const gchar* _tmp5_;
			const gchar* _tmp6_;
			_tmp4_ = tuba_settings;
			_tmp5_ = tuba_settings_get_proxy (_tmp4_);
			_tmp6_ = _tmp5_;
			_tmp3_ = g_uri_is_valid (_tmp6_, G_URI_FLAGS_NONE, &_inner_error0_);
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				goto __catch0_g_error;
			}
			if (_tmp3_) {
				TubaSettings* _tmp7_;
				const gchar* _tmp8_;
				const gchar* _tmp9_;
				GSimpleProxyResolver* _tmp10_;
				GSimpleProxyResolver* _tmp11_;
				_tmp7_ = tuba_settings;
				_tmp8_ = tuba_settings_get_proxy (_tmp7_);
				_tmp9_ = _tmp8_;
				_tmp10_ = (GSimpleProxyResolver*) g_simple_proxy_resolver_new (_tmp9_, NULL);
				_tmp11_ = _tmp10_;
				tuba_application_set_proxy (self, (GProxyResolver*) _tmp11_);
				_g_object_unref0 (_tmp11_);
			}
		}
		goto __finally0;
		__catch0_g_error:
		{
			GError* e = NULL;
			TubaApplication* _tmp12_;
			GError* _tmp13_;
			const gchar* _tmp14_;
			e = _inner_error0_;
			_inner_error0_ = NULL;
			_tmp12_ = tuba_app;
			g_signal_emit (_tmp12_, tuba_application_signals[TUBA_APPLICATION_TOAST_SIGNAL], 0, _ ("Invalid Proxy URL"), (guint) 5, NULL, NULL, NULL);
			_tmp13_ = e;
			_tmp14_ = _tmp13_->message;
			g_warning ("Application.vala:582: %s", _tmp14_);
			_g_error_free0 (e);
			return;
		}
		__finally0:
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return;
		}
	} else {
		GProxyResolver* _tmp15_;
		_tmp15_ = g_proxy_resolver_get_default ();
		tuba_application_set_proxy (self, _tmp15_);
	}
	if (recover) {
		TubaDialogsNewAccount* _tmp17_;
		_tmp17_ = self->priv->_add_account_window;
		_tmp16_ = _tmp17_ == NULL;
	} else {
		_tmp16_ = FALSE;
	}
	if (_tmp16_) {
		g_timeout_add_once ((guint) 5000, _tuba_application_trigger_is_online_notify_gsource_once_func, g_object_ref (self));
	}
}

static void
tuba_application_trigger_is_online_notify (TubaApplication* self)
{
	g_return_if_fail (self != NULL);
	g_object_notify ((GObject*) self, "is-online");
}

static void
tuba_application_on_proxy_notify (TubaApplication* self)
{
	g_return_if_fail (self != NULL);
	tuba_application_on_proxy_change (self, TRUE);
}

static void
tuba_application_real_activate (GApplication* base)
{
	TubaApplication * self;
	TubaSettings* _tmp0_;
	self = (TubaApplication*) base;
	self->priv->activated = TRUE;
	tuba_application_present_window (self, FALSE);
	if (tuba_start_hidden) {
		tuba_start_hidden = FALSE;
		return;
	}
	_tmp0_ = tuba_settings;
	g_settings_delay ((GSettings*) _tmp0_);
}

static void
tuba_application_real_shutdown (GApplication* base)
{
	TubaApplication * self;
	TubaSettings* _tmp0_;
	TubaNetwork* _tmp1_;
	self = (TubaApplication*) base;
	_tmp0_ = tuba_settings;
	tuba_settings_apply_all (_tmp0_);
	_tmp1_ = tuba_network;
	tuba_network_flush_cache (_tmp1_);
	G_APPLICATION_CLASS (tuba_application_parent_class)->shutdown ((GApplication*) G_TYPE_CHECK_INSTANCE_CAST (self, adw_application_get_type (), AdwApplication));
}

static void
tuba_application_real_open (GApplication* base,
                            GFile** files,
                            gint files_length1,
                            const gchar* hint)
{
	TubaApplication * self;
	GError* _inner_error0_ = NULL;
	self = (TubaApplication*) base;
	g_return_if_fail (hint != NULL);
	if (!self->priv->activated) {
		g_application_activate ((GApplication*) self);
	}
	{
		GFile** file_collection = NULL;
		gint file_collection_length1 = 0;
		gint _file_collection_size_ = 0;
		gint file_it = 0;
		file_collection = files;
		file_collection_length1 = files_length1;
		for (file_it = 0; file_it < file_collection_length1; file_it = file_it + 1) {
			GFile* _tmp0_;
			GFile* file = NULL;
			_tmp0_ = _g_object_ref0 (file_collection[file_it]);
			file = _tmp0_;
			{
				gchar* unparsed_uri = NULL;
				GFile* _tmp1_;
				gchar* _tmp2_;
				_tmp1_ = file;
				_tmp2_ = g_file_get_uri (_tmp1_);
				unparsed_uri = _tmp2_;
				{
					GUri* uri = NULL;
					const gchar* _tmp3_;
					GUri* _tmp4_;
					gchar* scheme = NULL;
					GUri* _tmp5_;
					const gchar* _tmp6_;
					gchar* _tmp7_;
					const gchar* _tmp8_;
					const gchar* _tmp9_;
					GQuark _tmp11_ = 0U;
					static GQuark _tmp10_label0 = 0;
					static GQuark _tmp10_label1 = 0;
					_tmp3_ = unparsed_uri;
					_tmp4_ = g_uri_parse (_tmp3_, G_URI_FLAGS_ENCODED, &_inner_error0_);
					uri = _tmp4_;
					if (G_UNLIKELY (_inner_error0_ != NULL)) {
						goto __catch0_g_error;
					}
					_tmp5_ = uri;
					_tmp6_ = g_uri_get_scheme (_tmp5_);
					_tmp7_ = g_strdup (_tmp6_);
					scheme = _tmp7_;
					_tmp8_ = scheme;
					_tmp9_ = _tmp8_;
					_tmp11_ = (NULL == _tmp9_) ? 0 : g_quark_from_string (_tmp9_);
					if (_tmp11_ == ((0 != _tmp10_label0) ? _tmp10_label0 : (_tmp10_label0 = g_quark_from_static_string ("tuba")))) {
						switch (0) {
							default:
							{
								TubaDialogsNewAccount* _tmp12_;
								TubaDialogsNewAccount* _tmp25_;
								GUri* _tmp26_;
								_tmp12_ = self->priv->_add_account_window;
								if (_tmp12_ == NULL) {
									GUri* _tmp13_;
									const gchar* _tmp14_;
									gchar* _tmp15_;
									gchar* _tmp16_;
									gboolean _tmp17_;
									const gchar* _tmp20_;
									gchar* _tmp21_;
									gchar* _tmp22_;
									GError* _tmp23_;
									GError* _tmp24_;
									_tmp13_ = uri;
									_tmp14_ = g_uri_get_host (_tmp13_);
									_tmp15_ = g_utf8_strdown (_tmp14_, (gssize) -1);
									_tmp16_ = _tmp15_;
									_tmp17_ = g_strcmp0 (_tmp16_, "share") == 0;
									_g_free0 (_tmp16_);
									if (_tmp17_) {
										GUri* _tmp18_;
										TubaUtilsShareHandlerShareResult* _tmp19_;
										_tmp18_ = uri;
										_tmp19_ = tuba_utils_share_handler_from_uri (_tmp18_);
										_tuba_utils_share_handler_share_result_free0 (self->priv->to_share);
										self->priv->to_share = _tmp19_;
										tuba_application_handle_share (self);
										break;
									}
									_tmp20_ = scheme;
									_tmp21_ = g_strdup_printf (_ ("'%s://' may only be used when adding a new account"), _tmp20_);
									_tmp22_ = _tmp21_;
									_tmp23_ = g_error_new_literal ((GQuark) -1, 1, _tmp22_);
									_tmp24_ = _tmp23_;
									_g_free0 (_tmp22_);
									_inner_error0_ = _tmp24_;
									_g_free0 (scheme);
									_g_uri_unref0 (uri);
									goto __catch0_g_error;
								}
								_tmp25_ = self->priv->_add_account_window;
								_tmp26_ = uri;
								tuba_dialogs_new_account_redirect (_tmp25_, _tmp26_);
								break;
							}
						}
					} else if (_tmp11_ == ((0 != _tmp10_label1) ? _tmp10_label1 : (_tmp10_label1 = g_quark_from_static_string ("web+ap")))) {
						switch (0) {
							default:
							{
								TubaDialogsNewAccount* _tmp27_;
								GUri* _tmp33_;
								_tmp27_ = self->priv->_add_account_window;
								if (_tmp27_ != NULL) {
									const gchar* _tmp28_;
									gchar* _tmp29_;
									gchar* _tmp30_;
									GError* _tmp31_;
									GError* _tmp32_;
									_tmp28_ = scheme;
									_tmp29_ = g_strdup_printf (_ ("'%s://' may not be used when adding a new account"), _tmp28_);
									_tmp30_ = _tmp29_;
									_tmp31_ = g_error_new_literal ((GQuark) -1, 2, _tmp30_);
									_tmp32_ = _tmp31_;
									_g_free0 (_tmp30_);
									_inner_error0_ = _tmp32_;
									_g_free0 (scheme);
									_g_uri_unref0 (uri);
									goto __catch0_g_error;
								}
								_tmp33_ = uri;
								tuba_application_handle_web_ap (self, _tmp33_);
								break;
							}
						}
					} else {
						switch (0) {
							default:
							{
								const gchar* _tmp34_;
								gchar* _tmp35_;
								gchar* _tmp36_;
								GError* _tmp37_;
								GError* _tmp38_;
								_tmp34_ = scheme;
								_tmp35_ = g_strdup_printf (_ ("%s does not accept '%s://'"), BUILD_NAME, _tmp34_);
								_tmp36_ = _tmp35_;
								_tmp37_ = g_error_new_literal ((GQuark) -1, 3, _tmp36_);
								_tmp38_ = _tmp37_;
								_g_free0 (_tmp36_);
								_inner_error0_ = _tmp38_;
								_g_free0 (scheme);
								_g_uri_unref0 (uri);
								goto __catch0_g_error;
							}
						}
					}
					_g_free0 (scheme);
					_g_uri_unref0 (uri);
				}
				goto __finally0;
				__catch0_g_error:
				{
					GError* e = NULL;
					gchar* msg = NULL;
					const gchar* _tmp39_;
					const gchar* _tmp40_;
					GError* _tmp41_;
					const gchar* _tmp42_;
					const gchar* _tmp43_;
					gchar* _tmp44_;
					const gchar* _tmp45_;
					AdwAlertDialog* dlg = NULL;
					const gchar* _tmp46_;
					AdwAlertDialog* _tmp47_;
					AdwAlertDialog* _tmp48_;
					TubaApplication* _tmp49_;
					TubaDialogsMainWindow* _tmp50_;
					e = _inner_error0_;
					_inner_error0_ = NULL;
					_tmp39_ = unparsed_uri;
					_tmp40_ = string_to_string (_tmp39_);
					_tmp41_ = e;
					_tmp42_ = _tmp41_->message;
					_tmp43_ = string_to_string (_tmp42_);
					_tmp44_ = g_strconcat ("Couldn't open ", _tmp40_, ": ", _tmp43_, NULL);
					msg = _tmp44_;
					_tmp45_ = msg;
					g_warning ("Application.vala:671: %s", _tmp45_);
					_tmp46_ = msg;
					_tmp47_ = tuba_application_inform (self, _ ("Error"), _tmp46_);
					dlg = _tmp47_;
					_tmp48_ = dlg;
					_tmp49_ = tuba_app;
					_tmp50_ = _tmp49_->priv->_main_window;
					adw_dialog_present ((AdwDialog*) _tmp48_, (GtkWidget*) _tmp50_);
					_g_object_unref0 (dlg);
					_g_free0 (msg);
					_g_error_free0 (e);
				}
				__finally0:
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					_g_free0 (unparsed_uri);
					_g_object_unref0 (file);
					g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
					g_clear_error (&_inner_error0_);
					return;
				}
				_g_free0 (unparsed_uri);
				_g_object_unref0 (file);
			}
		}
	}
}

static gboolean
_tuba_application_on_window_closed_gtk_window_close_request (GtkWindow* _sender,
                                                             gpointer self)
{
	gboolean result;
	result = tuba_application_on_window_closed ((TubaApplication*) self);
	return result;
}

void
tuba_application_present_window (TubaApplication* self,
                                 gboolean destroy_main)
{
	gboolean _tmp0_ = FALSE;
	TubaAccountStore* _tmp3_;
	GeeArrayList* _tmp4_;
	GeeArrayList* _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	TubaDialogsMainWindow* _tmp19_;
	g_return_if_fail (self != NULL);
	if (!self->priv->activated) {
		GApplicationFlags _tmp1_;
		GApplicationFlags _tmp2_;
		_tmp1_ = g_application_get_flags ((GApplication*) self);
		_tmp2_ = _tmp1_;
		_tmp0_ = (_tmp2_ & G_APPLICATION_IS_SERVICE) == G_APPLICATION_IS_SERVICE;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		return;
	}
	_tmp3_ = tuba_accounts;
	_tmp4_ = tuba_account_store_get_saved (_tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = gee_collection_get_is_empty ((GeeCollection*) _tmp5_);
	_tmp7_ = _tmp6_;
	if (_tmp7_) {
		gboolean _tmp8_ = FALSE;
		TubaDialogsMainWindow* _tmp9_;
		TubaDialogsNewAccount* _tmp11_;
		TubaDialogsNewAccount* _tmp14_;
		_tmp9_ = self->priv->_main_window;
		if (_tmp9_ != NULL) {
			_tmp8_ = destroy_main;
		} else {
			_tmp8_ = FALSE;
		}
		if (_tmp8_) {
			TubaDialogsMainWindow* _tmp10_;
			_tmp10_ = self->priv->_main_window;
			gtk_widget_hide ((GtkWidget*) _tmp10_);
		}
		g_debug ("Application.vala:687: Presenting NewAccount dialog");
		_tmp11_ = self->priv->_add_account_window;
		if (_tmp11_ == NULL) {
			TubaDialogsNewAccount* _tmp12_;
			TubaDialogsNewAccount* _tmp13_;
			_tmp12_ = tuba_dialogs_new_account_new (FALSE, NULL);
			g_object_ref_sink (_tmp12_);
			_tmp13_ = _tmp12_;
			_g_object_unref0 (_tmp13_);
		}
		_tmp14_ = self->priv->_add_account_window;
		gtk_window_present ((GtkWindow*) _tmp14_);
	} else {
		TubaDialogsMainWindow* _tmp15_;
		g_debug ("Application.vala:692: Presenting MainWindow");
		_tmp15_ = self->priv->_main_window;
		if (_tmp15_ == NULL) {
			TubaDialogsMainWindow* _tmp16_;
			TubaDialogsMainWindow* _tmp17_;
			tuba_is_rtl = gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL;
			_tmp16_ = tuba_dialogs_main_window_new ((AdwApplication*) self);
			g_object_ref_sink (_tmp16_);
			_tmp17_ = _tmp16_;
			tuba_application_set_main_window (self, _tmp17_);
			_g_object_unref0 (_tmp17_);
		}
		if (!tuba_start_hidden) {
			TubaDialogsMainWindow* _tmp18_;
			_tmp18_ = self->priv->_main_window;
			gtk_window_present ((GtkWindow*) _tmp18_);
		}
	}
	_tmp19_ = self->priv->_main_window;
	if (_tmp19_ != NULL) {
		TubaDialogsMainWindow* _tmp20_;
		_tmp20_ = self->priv->_main_window;
		g_signal_connect_object ((GtkWindow*) _tmp20_, "close-request", (GCallback) _tuba_application_on_window_closed_gtk_window_close_request, self, 0);
	}
}

gboolean
tuba_application_on_window_closed (TubaApplication* self)
{
	gboolean _tmp0_ = FALSE;
	TubaSettings* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp1_ = tuba_settings;
	_tmp2_ = tuba_settings_get_work_in_background (_tmp1_);
	_tmp3_ = _tmp2_;
	if (!_tmp3_) {
		_tmp0_ = TRUE;
	} else {
		TubaAccountStore* _tmp4_;
		GeeArrayList* _tmp5_;
		GeeArrayList* _tmp6_;
		gboolean _tmp7_;
		gboolean _tmp8_;
		_tmp4_ = tuba_accounts;
		_tmp5_ = tuba_account_store_get_saved (_tmp4_);
		_tmp6_ = _tmp5_;
		_tmp7_ = gee_collection_get_is_empty ((GeeCollection*) _tmp6_);
		_tmp8_ = _tmp7_;
		_tmp0_ = _tmp8_;
	}
	if (_tmp0_) {
		TubaDialogsMainWindow* _tmp9_;
		_tmp9_ = self->priv->_main_window;
		gtk_window_set_hide_on_close ((GtkWindow*) _tmp9_, FALSE);
	} else {
		TubaDialogsMainWindow* _tmp10_;
		TubaSettings* _tmp11_;
		_tmp10_ = self->priv->_main_window;
		gtk_window_set_hide_on_close ((GtkWindow*) _tmp10_, TRUE);
		_tmp11_ = tuba_settings;
		tuba_settings_apply_all (_tmp11_);
	}
	result = FALSE;
	return result;
}

static void
tuba_application_compose_activated (TubaApplication* self)
{
	TubaAccountStore* _tmp0_;
	TubaInstanceAccount* _tmp1_;
	TubaInstanceAccount* _tmp2_;
	TubaAPIInstance* _tmp3_;
	TubaAPIInstance* _tmp4_;
	TubaSettings* _tmp5_;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	TubaSettings* _tmp8_;
	const gchar* _tmp9_;
	const gchar* _tmp10_;
	TubaSettings* _tmp11_;
	const gchar* _tmp12_;
	const gchar* _tmp13_;
	TubaDialogsComposerDialog* _tmp14_;
	TubaDialogsComposerDialog* _tmp15_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_accounts;
	_tmp1_ = tuba_account_store_get_active (_tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = tuba_instance_account_get_instance_info (_tmp2_);
	_tmp4_ = _tmp3_;
	if (_tmp4_ == NULL) {
		return;
	}
	_tmp5_ = tuba_settings;
	_tmp6_ = tuba_settings_get_default_post_visibility (_tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = tuba_settings;
	_tmp9_ = tuba_settings_get_default_language (_tmp8_);
	_tmp10_ = _tmp9_;
	_tmp11_ = tuba_settings;
	_tmp12_ = tuba_settings_get_default_quote_policy (_tmp11_);
	_tmp13_ = _tmp12_;
	_tmp14_ = tuba_dialogs_composer_dialog_new (NULL, _tmp7_, _tmp10_, _ ("Post"), FALSE, TRUE, _tmp13_, FALSE);
	g_object_ref_sink (_tmp14_);
	_tmp15_ = _tmp14_;
	_g_object_unref0 (_tmp15_);
}

static void
tuba_application_back_activated (TubaApplication* self)
{
	TubaDialogsMainWindow* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_main_window;
	tuba_dialogs_main_window_back (_tmp0_);
}

static void
tuba_application_search_activated (TubaApplication* self)
{
	TubaDialogsMainWindow* _tmp0_;
	TubaViewsSearch* _tmp1_;
	TubaViewsSearch* _tmp2_;
	TubaViewsBase* _tmp3_;
	TubaViewsBase* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_main_window;
	_tmp1_ = tuba_views_search_new ();
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	_tmp3_ = tuba_dialogs_main_window_open_view (_tmp0_, (TubaViewsBase*) _tmp2_);
	_tmp4_ = _tmp3_;
	_g_object_unref0 (_tmp4_);
	_g_object_unref0 (_tmp2_);
}

static void
tuba_application_quit_activated (TubaApplication* self)
{
	TubaApplication* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_app;
	g_application_quit ((GApplication*) _tmp0_);
}

static void
tuba_application_refresh_activated (TubaApplication* self)
{
	g_return_if_fail (self != NULL);
	g_signal_emit (self, tuba_application_signals[TUBA_APPLICATION_REFRESH_SIGNAL], 0);
}

static void
tuba_application_back_home_activated (TubaApplication* self)
{
	TubaDialogsMainWindow* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_main_window;
	tuba_dialogs_main_window_go_back_to_start (_tmp0_);
}

static void
tuba_application_scroll_view_page_down (TubaApplication* self)
{
	TubaDialogsMainWindow* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_main_window;
	tuba_dialogs_main_window_scroll_view_page (_tmp0_, FALSE);
}

static void
tuba_application_scroll_view_page_up (TubaApplication* self)
{
	TubaDialogsMainWindow* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_main_window;
	tuba_dialogs_main_window_scroll_view_page (_tmp0_, TRUE);
}

static void
tuba_application_open_preferences (TubaApplication* self)
{
	TubaDialogsPreferences* _tmp0_;
	TubaDialogsPreferences* _tmp1_;
	TubaDialogsMainWindow* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_dialogs_preferences_new ();
	g_object_ref_sink (_tmp0_);
	_tmp1_ = _tmp0_;
	_tmp2_ = self->priv->_main_window;
	adw_dialog_present ((AdwDialog*) _tmp1_, (GtkWidget*) _tmp2_);
	_g_object_unref0 (_tmp1_);
}

static void
tuba_application_open_current_account_profile (TubaApplication* self)
{
	TubaAccountStore* _tmp0_;
	TubaInstanceAccount* _tmp1_;
	TubaInstanceAccount* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_accounts;
	_tmp1_ = tuba_account_store_get_active (_tmp0_);
	_tmp2_ = _tmp1_;
	tuba_widgetizable_open ((TubaWidgetizable*) _tmp2_);
	tuba_application_close_sidebar (self);
}

void
tuba_application_open_announcements (TubaApplication* self)
{
	TubaDialogsMainWindow* _tmp0_;
	TubaViewsAnnouncements* _tmp1_ = NULL;
	TubaViewsAnnouncements* _tmp2_;
	TubaViewsBase* _tmp3_;
	TubaViewsBase* _tmp4_;
	TubaAccountStore* _tmp5_;
	TubaInstanceAccount* _tmp6_;
	TubaInstanceAccount* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_main_window;
	_tmp1_ = tuba_views_announcements_new ();
	tuba_views_announcements_set_dismiss_all_announcements (_tmp1_, TRUE);
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	_tmp3_ = tuba_dialogs_main_window_open_view (_tmp0_, (TubaViewsBase*) _tmp2_);
	_tmp4_ = _tmp3_;
	_g_object_unref0 (_tmp4_);
	_g_object_unref0 (_tmp2_);
	tuba_application_close_sidebar (self);
	_tmp5_ = tuba_accounts;
	_tmp6_ = tuba_account_store_get_active (_tmp5_);
	_tmp7_ = _tmp6_;
	if (_tmp7_ != NULL) {
		TubaAccountStore* _tmp8_;
		TubaInstanceAccount* _tmp9_;
		TubaInstanceAccount* _tmp10_;
		_tmp8_ = tuba_accounts;
		_tmp9_ = tuba_account_store_get_active (_tmp8_);
		_tmp10_ = _tmp9_;
		tuba_instance_account_set_unread_announcements (_tmp10_, 0);
	}
}

void
tuba_application_open_follow_requests (TubaApplication* self)
{
	TubaDialogsMainWindow* _tmp0_;
	TubaViewsFollowRequests* _tmp1_;
	TubaViewsFollowRequests* _tmp2_;
	TubaViewsBase* _tmp3_;
	TubaViewsBase* _tmp4_;
	TubaAccountStore* _tmp5_;
	TubaInstanceAccount* _tmp6_;
	TubaInstanceAccount* _tmp7_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_main_window;
	_tmp1_ = tuba_views_follow_requests_new ();
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	_tmp3_ = tuba_dialogs_main_window_open_view (_tmp0_, (TubaViewsBase*) _tmp2_);
	_tmp4_ = _tmp3_;
	_g_object_unref0 (_tmp4_);
	_g_object_unref0 (_tmp2_);
	tuba_application_close_sidebar (self);
	_tmp5_ = tuba_accounts;
	_tmp6_ = tuba_account_store_get_active (_tmp5_);
	_tmp7_ = _tmp6_;
	if (_tmp7_ != NULL) {
		TubaAccountStore* _tmp8_;
		TubaInstanceAccount* _tmp9_;
		TubaInstanceAccount* _tmp10_;
		_tmp8_ = tuba_accounts;
		_tmp9_ = tuba_account_store_get_active (_tmp8_);
		_tmp10_ = _tmp9_;
		tuba_instance_account_set_unreviewed_follow_requests (_tmp10_, 0);
	}
}

void
tuba_application_open_mutes_blocks (TubaApplication* self)
{
	TubaDialogsMainWindow* _tmp0_;
	TubaViewsMutesBlocks* _tmp1_;
	TubaViewsMutesBlocks* _tmp2_;
	TubaViewsBase* _tmp3_;
	TubaViewsBase* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_main_window;
	_tmp1_ = tuba_views_mutes_blocks_new ();
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	_tmp3_ = tuba_dialogs_main_window_open_view (_tmp0_, (TubaViewsBase*) _tmp2_);
	_tmp4_ = _tmp3_;
	_g_object_unref0 (_tmp4_);
	_g_object_unref0 (_tmp2_);
	tuba_application_close_sidebar (self);
}

void
tuba_application_open_scheduled_posts (TubaApplication* self)
{
	TubaDialogsMainWindow* _tmp0_;
	TubaViewsScheduledStatuses* _tmp1_;
	TubaViewsScheduledStatuses* _tmp2_;
	TubaViewsBase* _tmp3_;
	TubaViewsBase* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_main_window;
	_tmp1_ = tuba_views_scheduled_statuses_new ();
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	_tmp3_ = tuba_dialogs_main_window_open_view (_tmp0_, (TubaViewsBase*) _tmp2_);
	_tmp4_ = _tmp3_;
	_g_object_unref0 (_tmp4_);
	_g_object_unref0 (_tmp2_);
	tuba_application_close_sidebar (self);
}

void
tuba_application_open_draft_posts (TubaApplication* self)
{
	TubaDialogsMainWindow* _tmp0_;
	TubaViewsDraftStatuses* _tmp1_;
	TubaViewsDraftStatuses* _tmp2_;
	TubaViewsBase* _tmp3_;
	TubaViewsBase* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_main_window;
	_tmp1_ = tuba_views_draft_statuses_new ();
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	_tmp3_ = tuba_dialogs_main_window_open_view (_tmp0_, (TubaViewsBase*) _tmp2_);
	_tmp4_ = _tmp3_;
	_g_object_unref0 (_tmp4_);
	_g_object_unref0 (_tmp2_);
	tuba_application_close_sidebar (self);
}

void
tuba_application_open_admin_dashboard (TubaApplication* self)
{
	TubaDialogsAdminWindow* _tmp0_;
	TubaDialogsAdminWindow* _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_dialogs_admin_window_new ();
	g_object_ref_sink (_tmp0_);
	_tmp1_ = _tmp0_;
	gtk_window_present ((GtkWindow*) _tmp1_);
	_g_object_unref0 (_tmp1_);
}

void
tuba_application_open_last_fediwrapped (TubaApplication* self)
{
	TubaAccountStore* _tmp0_;
	TubaInstanceAccount* _tmp1_;
	TubaInstanceAccount* _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_accounts;
	_tmp1_ = tuba_account_store_get_active (_tmp0_);
	_tmp2_ = _tmp1_;
	tuba_instance_account_open_latest_wrapped (_tmp2_);
}

void
tuba_application_open_collections (TubaApplication* self)
{
	TubaDialogsMainWindow* _tmp0_;
	TubaViewsCollections* _tmp1_;
	TubaViewsCollections* _tmp2_;
	TubaViewsBase* _tmp3_;
	TubaViewsBase* _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_main_window;
	_tmp1_ = tuba_views_collections_new ();
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	_tmp3_ = tuba_dialogs_main_window_open_view (_tmp0_, (TubaViewsBase*) _tmp2_);
	_tmp4_ = _tmp3_;
	_g_object_unref0 (_tmp4_);
	_g_object_unref0 (_tmp2_);
	tuba_application_close_sidebar (self);
}

void
tuba_application_open_containing_folder (TubaApplication* self,
                                         GSimpleAction* action,
                                         GVariant* value)
{
	const gchar* _tmp0_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (action != NULL);
	if (value == NULL) {
		return;
	}
	_tmp0_ = g_variant_get_string (value, NULL);
	tuba_utils_host_open_containing_folder (_tmp0_, NULL, NULL);
}

static void
tuba_application_increase_font_size (TubaApplication* self)
{
	TubaSettings* _tmp0_;
	gdouble _tmp1_;
	gdouble _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_settings;
	_tmp1_ = tuba_settings_get_status_font_size (_tmp0_);
	_tmp2_ = _tmp1_;
	if (_tmp2_ < 2.0) {
		TubaSettings* _tmp3_;
		TubaSettings* _tmp4_;
		gdouble _tmp5_;
		gdouble _tmp6_;
		_tmp3_ = tuba_settings;
		_tmp4_ = tuba_settings;
		_tmp5_ = tuba_settings_get_status_font_size (_tmp4_);
		_tmp6_ = _tmp5_;
		tuba_settings_set_status_font_size (_tmp4_, _tmp6_ + 0.1);
	}
}

static void
tuba_application_decrease_font_size (TubaApplication* self)
{
	TubaSettings* _tmp0_;
	gdouble _tmp1_;
	gdouble _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_settings;
	_tmp1_ = tuba_settings_get_status_font_size (_tmp0_);
	_tmp2_ = _tmp1_;
	if (_tmp2_ > 0.8) {
		TubaSettings* _tmp3_;
		TubaSettings* _tmp4_;
		gdouble _tmp5_;
		gdouble _tmp6_;
		_tmp3_ = tuba_settings;
		_tmp4_ = tuba_settings;
		_tmp5_ = tuba_settings_get_status_font_size (_tmp4_);
		_tmp6_ = _tmp5_;
		tuba_settings_set_status_font_size (_tmp4_, _tmp6_ - 0.1);
	}
}

static void
tuba_application_reset_font_size (TubaApplication* self)
{
	TubaSettings* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_settings;
	tuba_settings_set_status_font_size (_tmp0_, 1.0);
}

static void
tuba_application_close_sidebar (TubaApplication* self)
{
	AdwOverlaySplitView* split_view = NULL;
	TubaApplication* _tmp0_;
	TubaDialogsMainWindow* _tmp1_;
	AdwOverlaySplitView* _tmp2_;
	AdwOverlaySplitView* _tmp3_;
	AdwOverlaySplitView* _tmp4_;
	gboolean _tmp5_;
	gboolean _tmp6_;
	g_return_if_fail (self != NULL);
	_tmp0_ = tuba_app;
	_tmp1_ = _tmp0_->priv->_main_window;
	_tmp2_ = _tmp1_->split_view;
	_tmp3_ = _g_object_ref0 (_tmp2_);
	split_view = _tmp3_;
	_tmp4_ = split_view;
	_tmp5_ = adw_overlay_split_view_get_collapsed (_tmp4_);
	_tmp6_ = _tmp5_;
	if (_tmp6_) {
		AdwOverlaySplitView* _tmp7_;
		_tmp7_ = split_view;
		adw_overlay_split_view_set_show_sidebar (_tmp7_, FALSE);
	}
	_g_object_unref0 (split_view);
}

static Block2Data*
block2_data_ref (Block2Data* _data2_)
{
	g_atomic_int_inc (&_data2_->_ref_count_);
	return _data2_;
}

static void
block2_data_unref (void * _userdata_)
{
	Block2Data* _data2_;
	_data2_ = (Block2Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data2_->_ref_count_)) {
		TubaApplication* self;
		self = _data2_->self;
		_g_object_unref0 (_data2_->dialog);
		_g_object_unref0 (self);
		g_slice_free (Block2Data, _data2_);
	}
}

static gchar**
_vala_array_dup1 (gchar** self,
                  gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static gchar**
_vala_array_dup2 (gchar** self,
                  gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static gchar**
_vala_array_dup3 (gchar** self,
                  gssize length)
{
	if (length >= 0) {
		gchar** result;
		gssize i;
		result = g_new0 (gchar*, length + 1);
		for (i = 0; i < length; i++) {
			gchar* _tmp0_;
			_tmp0_ = g_strdup (self[i]);
			result[i] = _tmp0_;
		}
		return result;
	}
	return NULL;
}

static gboolean
__lambda214_ (Block2Data* _data2_)
{
	TubaApplication* self;
	gchar* style = NULL;
	GTimeZone* _tmp0_;
	GTimeZone* _tmp1_;
	GDateTime* _tmp2_;
	GDateTime* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	const gchar* _tmp6_;
	gboolean result;
	self = _data2_->self;
	_tmp0_ = g_time_zone_new_local ();
	_tmp1_ = _tmp0_;
	_tmp2_ = g_date_time_new_now (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = tuba_utils_celebrate_get_celebration_css_class (_tmp3_);
	_tmp5_ = _tmp4_;
	_g_date_time_unref0 (_tmp3_);
	_g_time_zone_unref0 (_tmp1_);
	style = _tmp5_;
	_tmp6_ = style;
	if (g_strcmp0 (_tmp6_, "") != 0) {
		const gchar* _tmp7_;
		_tmp7_ = style;
		gtk_widget_add_css_class ((GtkWidget*) _data2_->dialog, _tmp7_);
	}
	result = G_SOURCE_REMOVE;
	_g_free0 (style);
	return result;
}

static gboolean
___lambda214__gsource_func (gpointer self)
{
	gboolean result;
	result = __lambda214_ (self);
	return result;
}

static void
tuba_application_about_activated (TubaApplication* self)
{
	Block2Data* _data2_;
	static const gchar* ARTISTS[2] = {"Tobias Bernard", "Jakub Steiner"};
	static const gchar* DESIGNERS[2] = {"Tobias Bernard", "Brage Fuglseth"};
	static const gchar* DEVELOPERS[3] = {"Evangelos “GeopJr” Paterakis", "bleak_grey", "Sergey Bugaev"};
	static const char COPYRIGHT[] = "© 2018-2022 bleak_grey\n© 2022 Evangelos “GeopJr” Paterakis";
	const gchar* _tmp0_ = NULL;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar** _tmp3_;
	gint _tmp3__length1;
	gchar** _tmp4_;
	gint _tmp4__length1;
	gchar** _tmp5_;
	gint _tmp5__length1;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	const gchar* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	AdwAboutDialog* _tmp11_ = NULL;
	TubaDialogsMainWindow* _tmp12_;
	g_return_if_fail (self != NULL);
	_data2_ = g_slice_new0 (Block2Data);
	_data2_->_ref_count_ = 1;
	_data2_->self = g_object_ref (self);
	if (g_strcmp0 (BUILD_PROFILE, "development") == 0) {
		_tmp0_ = NULL;
	} else {
		_tmp0_ = BUILD_VERSION;
	}
	_tmp1_ = g_strdup (BUILD_VERSION);
	_tmp2_ = g_strdup (COPYRIGHT);
	_tmp3_ = _vala_array_dup1 (DEVELOPERS, G_N_ELEMENTS (DEVELOPERS));
	_tmp3__length1 = G_N_ELEMENTS (DEVELOPERS);
	_tmp4_ = _vala_array_dup2 (ARTISTS, G_N_ELEMENTS (ARTISTS));
	_tmp4__length1 = G_N_ELEMENTS (ARTISTS);
	_tmp5_ = _vala_array_dup3 (DESIGNERS, G_N_ELEMENTS (DESIGNERS));
	_tmp5__length1 = G_N_ELEMENTS (DESIGNERS);
	_tmp6_ = self->priv->troubleshooting;
	_tmp7_ = g_strdup (_tmp6_);
	_tmp8_ = string_to_string (BUILD_NAME);
	_tmp9_ = g_strconcat (_tmp8_, ".txt", NULL);
	_tmp10_ = g_strdup (_ ("translator-credits"));
	_tmp11_ = (AdwAboutDialog*) adw_about_dialog_new_from_appdata ("/dev/geopjr/Tuba/metainfo.xml", _tmp0_);
	adw_about_dialog_set_version (_tmp11_, _tmp1_);
	_g_free0 (_tmp1_);
	adw_about_dialog_set_copyright (_tmp11_, _tmp2_);
	_g_free0 (_tmp2_);
	adw_about_dialog_set_developers (_tmp11_, _tmp3_);
	_tmp3_ = (_vala_array_free (_tmp3_, _tmp3__length1, (GDestroyNotify) g_free), NULL);
	adw_about_dialog_set_artists (_tmp11_, _tmp4_);
	_tmp4_ = (_vala_array_free (_tmp4_, _tmp4__length1, (GDestroyNotify) g_free), NULL);
	adw_about_dialog_set_designers (_tmp11_, _tmp5_);
	_tmp5_ = (_vala_array_free (_tmp5_, _tmp5__length1, (GDestroyNotify) g_free), NULL);
	adw_about_dialog_set_debug_info (_tmp11_, _tmp7_);
	_g_free0 (_tmp7_);
	adw_about_dialog_set_debug_info_filename (_tmp11_, _tmp9_);
	_g_free0 (_tmp9_);
	adw_about_dialog_set_translator_credits (_tmp11_, _tmp10_);
	_g_free0 (_tmp10_);
	g_object_ref_sink (_tmp11_);
	_data2_->dialog = _tmp11_;
	adw_about_dialog_add_link (_data2_->dialog, _ ("Wiki"), BUILD_WIKI_WEBSITE);
	adw_about_dialog_add_link (_data2_->dialog, _ ("Translate"), BUILD_TRANSLATE_WEBSITE);
	adw_about_dialog_add_link (_data2_->dialog, _ ("Donate"), BUILD_DONATE_WEBSITE);
	adw_about_dialog_add_other_app (_data2_->dialog, "dev.geopjr.Archives", _ ("Archives"), _ ("Create and view web archives"));
	adw_about_dialog_add_other_app (_data2_->dialog, "dev.geopjr.Calligraphy", _ ("Calligraphy"), _ ("Turn text into ASCII banners"));
	adw_about_dialog_add_other_app (_data2_->dialog, "dev.geopjr.Collision", _ ("Collision"), _ ("Check hashes for your files"));
	adw_about_dialog_add_other_app (_data2_->dialog, "dev.geopjr.Turntable", _ ("Turntable"), _ ("Scrobble your music"));
	_tmp12_ = self->priv->_main_window;
	adw_dialog_present ((AdwDialog*) _data2_->dialog, (GtkWidget*) _tmp12_);
	g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ___lambda214__gsource_func, block2_data_ref (_data2_), block2_data_unref);
	block2_data_unref (_data2_);
	_data2_ = NULL;
}

AdwAlertDialog*
tuba_application_inform (TubaApplication* self,
                         const gchar* text,
                         const gchar* msg)
{
	AdwAlertDialog* dlg = NULL;
	AdwAlertDialog* _tmp0_;
	AdwAlertDialog* result;
	g_return_val_if_fail (self != NULL, NULL);
	g_return_val_if_fail (text != NULL, NULL);
	_tmp0_ = (AdwAlertDialog*) adw_alert_dialog_new (text, msg);
	g_object_ref_sink (_tmp0_);
	dlg = _tmp0_;
	adw_alert_dialog_add_response (dlg, "ok", _ ("OK"));
	result = dlg;
	return result;
}

static void
tuba_application_question_data_free (gpointer _data)
{
	TubaApplicationQuestionData* _data_;
	_data_ = _data;
	tuba_application_question_text_destroy (&_data_->title);
	_tuba_application_question_text_free0 (_data_->msg);
	_g_object_unref0 (_data_->win);
	tuba_application_question_buttons_destroy (&_data_->buttons);
	_g_object_unref0 (_data_->child);
	_g_object_unref0 (_data_->self);
	g_slice_free (TubaApplicationQuestionData, _data_);
}

static gpointer
_tuba_application_question_text_dup0 (gpointer self)
{
	return self ? tuba_application_question_text_dup (self) : NULL;
}

void
tuba_application_question (TubaApplication* self,
                           TubaApplicationQuestionText* title,
                           TubaApplicationQuestionText* msg,
                           GtkWidget* win,
                           TubaApplicationQuestionButtons* buttons,
                           GtkWidget* child,
                           gboolean skip,
                           GAsyncReadyCallback _callback_,
                           gpointer _user_data_)
{
	TubaApplicationQuestionData* _data_;
	TubaApplication* _tmp0_;
	TubaApplicationQuestionText _tmp1_;
	TubaApplicationQuestionText _tmp2_;
	TubaApplicationQuestionText _tmp3_ = {0};
	TubaApplicationQuestionText* _tmp4_;
	GtkWidget* _tmp5_;
	TubaApplicationQuestionButtons _tmp6_;
	TubaApplicationQuestionButtons _tmp7_;
	TubaApplicationQuestionButtons _tmp8_ = {0};
	GtkWidget* _tmp9_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (title != NULL);
	g_return_if_fail (buttons != NULL);
	_data_ = g_slice_new0 (TubaApplicationQuestionData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_application_question_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = *title;
	_tmp2_ = _tmp1_;
	tuba_application_question_text_copy (&_tmp2_, &_tmp3_);
	tuba_application_question_text_destroy (&_data_->title);
	_data_->title = _tmp3_;
	_tmp4_ = _tuba_application_question_text_dup0 (msg);
	_tuba_application_question_text_free0 (_data_->msg);
	_data_->msg = _tmp4_;
	_tmp5_ = _g_object_ref0 (win);
	_g_object_unref0 (_data_->win);
	_data_->win = _tmp5_;
	_tmp6_ = *buttons;
	_tmp7_ = _tmp6_;
	tuba_application_question_buttons_copy (&_tmp7_, &_tmp8_);
	tuba_application_question_buttons_destroy (&_data_->buttons);
	_data_->buttons = _tmp8_;
	_tmp9_ = _g_object_ref0 (child);
	_g_object_unref0 (_data_->child);
	_data_->child = _tmp9_;
	_data_->skip = skip;
	tuba_application_question_co (_data_);
}

TubaApplicationQuestionAnswer
tuba_application_question_finish (TubaApplication* self,
                                  GAsyncResult* _res_)
{
	TubaApplicationQuestionAnswer result;
	TubaApplicationQuestionData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
	result = _data_->result;
	return result;
}

static void
tuba_application_question_ready (GObject* source_object,
                                 GAsyncResult* _res_,
                                 gpointer _user_data_)
{
	TubaApplicationQuestionData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_application_question_co (_data_);
}

static gboolean
tuba_application_question_co (TubaApplicationQuestionData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	if (_data_->skip) {
		_data_->result = TUBA_APPLICATION_QUESTION_ANSWER_YES;
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
		if (_data_->_state_ != 0) {
			while (!g_task_get_completed (_data_->_async_result)) {
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
			}
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	if (_data_->msg == NULL) {
		_data_->_tmp0_ = NULL;
	} else {
		_data_->_tmp1_ = (*_data_->msg).text;
		_data_->_tmp0_ = _data_->_tmp1_;
	}
	_data_->_tmp2_ = _data_->title;
	_data_->_tmp3_ = _data_->_tmp2_.text;
	_data_->_tmp4_ = (AdwAlertDialog*) adw_alert_dialog_new (_data_->_tmp3_, _data_->_tmp0_);
	g_object_ref_sink (_data_->_tmp4_);
	_data_->dlg = _data_->_tmp4_;
	_data_->_tmp5_ = _data_->dlg;
	_data_->_tmp6_ = _data_->title;
	adw_alert_dialog_set_heading_use_markup (_data_->_tmp5_, _data_->_tmp6_.use_markup);
	if (_data_->msg != NULL) {
		_data_->_tmp7_ = _data_->dlg;
		adw_alert_dialog_set_body_use_markup (_data_->_tmp7_, (*_data_->msg).use_markup);
	}
	if (_data_->child != NULL) {
		_data_->_tmp8_ = _data_->dlg;
		adw_alert_dialog_set_extra_child (_data_->_tmp8_, _data_->child);
	}
	_data_->_tmp9_ = _data_->dlg;
	_data_->_tmp10_ = _data_->buttons;
	_data_->_tmp11_ = _data_->_tmp10_.no;
	_data_->_tmp12_ = _data_->_tmp11_.label;
	adw_alert_dialog_add_response (_data_->_tmp9_, "no", _data_->_tmp12_);
	_data_->_tmp13_ = _data_->dlg;
	_data_->_tmp14_ = _data_->buttons;
	_data_->_tmp15_ = _data_->_tmp14_.no;
	adw_alert_dialog_set_response_appearance (_data_->_tmp13_, "no", _data_->_tmp15_.appearance);
	_data_->_tmp16_ = _data_->dlg;
	_data_->_tmp17_ = _data_->buttons;
	_data_->_tmp18_ = _data_->_tmp17_.yes;
	_data_->_tmp19_ = _data_->_tmp18_.label;
	adw_alert_dialog_add_response (_data_->_tmp16_, "yes", _data_->_tmp19_);
	_data_->_tmp20_ = _data_->dlg;
	_data_->_tmp21_ = _data_->buttons;
	_data_->_tmp22_ = _data_->_tmp21_.yes;
	adw_alert_dialog_set_response_appearance (_data_->_tmp20_, "yes", _data_->_tmp22_.appearance);
	_data_->_tmp23_ = _data_->dlg;
	_data_->_state_ = 1;
	adw_alert_dialog_choose (_data_->_tmp23_, _data_->win, NULL, tuba_application_question_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp24_ = adw_alert_dialog_choose_finish (_data_->_tmp23_, _data_->_res_);
	_data_->result = tuba_application_question_answer_from_string (_data_->_tmp24_);
	_g_object_unref0 (_data_->dlg);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static Block3Data*
block3_data_ref (Block3Data* _data3_)
{
	g_atomic_int_inc (&_data3_->_ref_count_);
	return _data3_;
}

static void
block3_data_unref (void * _userdata_)
{
	Block3Data* _data3_;
	_data3_ = (Block3Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data3_->_ref_count_)) {
		TubaApplication* self;
		self = _data3_->self;
		_g_object_unref0 (_data3_->builder);
		_g_object_unref0 (self);
		g_slice_free (Block3Data, _data3_);
	}
}

static gboolean
__lambda219_ (Block3Data* _data3_,
              TubaInstanceAccount* e)
{
	TubaApplication* self;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gboolean result;
	self = _data3_->self;
	g_return_val_if_fail (e != NULL, FALSE);
	_tmp0_ = tuba_instance_account_get_uuid (e);
	_tmp1_ = _tmp0_;
	json_builder_add_string_value (_data3_->builder, _tmp1_);
	result = TRUE;
	_g_object_unref0 (e);
	return result;
}

static gboolean
___lambda219__gee_forall_func (gpointer g,
                               gpointer self)
{
	gboolean result;
	result = __lambda219_ (self, (TubaInstanceAccount*) g);
	return result;
}

static void
_vala_JsonNode_free (JsonNode* self)
{
	g_boxed_free (json_node_get_type (), self);
}

gchar*
tuba_application_generate_analytics_object (TubaApplication* self,
                                            gboolean pretty)
{
	Block3Data* _data3_;
	JsonGenerator* generator = NULL;
	JsonGenerator* _tmp0_ = NULL;
	JsonBuilder* _tmp1_;
	TubaAccountStore* _tmp2_;
	GeeArrayList* _tmp3_;
	GeeArrayList* _tmp4_;
	TubaSettings* _tmp5_;
	JsonBuilder* _tmp6_;
	JsonBuilder* _tmp7_;
	JsonNode* _tmp8_;
	JsonNode* _tmp9_;
	JsonNode* _tmp10_;
	gchar* _tmp11_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_data3_ = g_slice_new0 (Block3Data);
	_data3_->_ref_count_ = 1;
	_data3_->self = g_object_ref (self);
	_tmp0_ = json_generator_new ();
	json_generator_set_pretty (_tmp0_, pretty);
	generator = _tmp0_;
	_tmp1_ = json_builder_new ();
	_data3_->builder = _tmp1_;
	json_builder_begin_object (_data3_->builder);
	json_builder_set_member_name (_data3_->builder, "accounts");
	json_builder_begin_array (_data3_->builder);
	_tmp2_ = tuba_accounts;
	_tmp3_ = tuba_account_store_get_saved (_tmp2_);
	_tmp4_ = _tmp3_;
	gee_abstract_collection_foreach ((GeeAbstractCollection*) _tmp4_, ___lambda219__gee_forall_func, _data3_);
	json_builder_end_array (_data3_->builder);
	json_builder_set_member_name (_data3_->builder, "analytics");
	_tmp5_ = tuba_settings;
	_tmp6_ = tuba_settings_to_debug_json (_tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = json_builder_get_root (_tmp7_);
	json_builder_add_value (_data3_->builder, _tmp8_);
	_g_object_unref0 (_tmp7_);
	json_builder_end_object (_data3_->builder);
	_tmp9_ = json_builder_get_root (_data3_->builder);
	_tmp10_ = _tmp9_;
	json_generator_set_root (generator, _tmp10_);
	__vala_JsonNode_free0 (_tmp10_);
	_tmp11_ = json_generator_to_data (generator, NULL);
	result = _tmp11_;
	_g_object_unref0 (generator);
	block3_data_unref (_data3_);
	_data3_ = NULL;
	return result;
}

static void
tuba_application_update_contributors_data_free (gpointer _data)
{
	TubaApplicationUpdateContributorsData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (TubaApplicationUpdateContributorsData, _data_);
}

void
tuba_application_update_contributors (TubaApplication* self,
                                      GAsyncReadyCallback _callback_,
                                      gpointer _user_data_)
{
	TubaApplicationUpdateContributorsData* _data_;
	TubaApplication* _tmp0_;
	g_return_if_fail (self != NULL);
	_data_ = g_slice_new0 (TubaApplicationUpdateContributorsData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_application_update_contributors_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	tuba_application_update_contributors_co (_data_);
}

void
tuba_application_update_contributors_finish (TubaApplication* self,
                                             GAsyncResult* _res_)
{
	TubaApplicationUpdateContributorsData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static Block4Data*
block4_data_ref (Block4Data* _data4_)
{
	g_atomic_int_inc (&_data4_->_ref_count_);
	return _data4_;
}

static void
block4_data_unref (void * _userdata_)
{
	Block4Data* _data4_;
	_data4_ = (Block4Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) {
		TubaApplication* self;
		self = _data4_->self;
		_data4_->new_contributors = (_vala_array_free (_data4_->new_contributors, _data4_->new_contributors_length1, (GDestroyNotify) g_free), NULL);
		_g_object_unref0 (self);
		g_slice_free (Block4Data, _data4_);
	}
}

static void
tuba_application_update_contributors_ready (GObject* source_object,
                                            GAsyncResult* _res_,
                                            gpointer _user_data_)
{
	TubaApplicationUpdateContributorsData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_application_update_contributors_co (_data_);
}

static void
_vala_array_add1 (gchar** * array,
                  gint* length,
                  gint* size,
                  gchar* value)
{
	if ((*length) == (*size)) {
		*size = (*size) ? (2 * (*size)) : 4;
		*array = g_renew (gchar*, *array, (*size) + 1);
	}
	(*array)[(*length)++] = value;
	(*array)[*length] = NULL;
}

static void
___lambda220_ (Block4Data* _data4_,
               JsonNode* node,
               GError** error)
{
	TubaApplication* self;
	self = _data4_->self;
	g_return_if_fail (node != NULL);
	if (node != NULL) {
		const gchar* _tmp0_;
		gchar* _tmp1_;
		_tmp0_ = json_node_get_string (node);
		_tmp1_ = g_strdup (_tmp0_);
		_vala_array_add1 (&_data4_->new_contributors, &_data4_->new_contributors_length1, &_data4_->_new_contributors_size_, _tmp1_);
	}
}

static void
____lambda220__tuba_network_node_callback (JsonNode* node,
                                           gpointer self,
                                           GError** error)
{
	___lambda220_ (self, node, error);
}

static gboolean
tuba_application_update_contributors_co (TubaApplicationUpdateContributorsData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = tuba_settings;
	_data_->_tmp1_ = tuba_settings_get_update_contributors (_data_->_tmp0_);
	_data_->_tmp2_ = _data_->_tmp1_;
	if (!_data_->_tmp2_) {
		_data_->_tmp4_ = tuba_settings;
		_data_->_tmp5_ = tuba_settings_get_last_contributors_update (_data_->_tmp4_);
		_data_->_tmp6_ = _data_->_tmp5_;
		if (_data_->_tmp6_ != NULL) {
			_data_->_tmp7_ = tuba_settings;
			_data_->_tmp8_ = tuba_settings_get_last_contributors_update (_data_->_tmp7_);
			_data_->_tmp9_ = _data_->_tmp8_;
			_data_->_tmp3_ = g_strcmp0 (_data_->_tmp9_, "") != 0;
		} else {
			_data_->_tmp3_ = FALSE;
		}
		if (_data_->_tmp3_) {
			_data_->_tmp10_ = tuba_settings;
			g_settings_reset ((GSettings*) _data_->_tmp10_, "contributors");
			_data_->_tmp11_ = tuba_settings;
			tuba_settings_set_last_contributors_update (_data_->_tmp11_, "");
		}
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
		if (_data_->_state_ != 0) {
			while (!g_task_get_completed (_data_->_async_result)) {
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
			}
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->can_update = FALSE;
	_data_->_tmp12_ = g_date_time_new_now_utc ();
	_data_->now_utc = _data_->_tmp12_;
	_data_->_tmp14_ = tuba_settings;
	_data_->_tmp15_ = tuba_settings_get_last_contributors_update (_data_->_tmp14_);
	_data_->_tmp16_ = _data_->_tmp15_;
	if (_data_->_tmp16_ == NULL) {
		_data_->_tmp13_ = TRUE;
	} else {
		_data_->_tmp17_ = tuba_settings;
		_data_->_tmp18_ = tuba_settings_get_last_contributors_update (_data_->_tmp17_);
		_data_->_tmp19_ = _data_->_tmp18_;
		_data_->_tmp13_ = g_strcmp0 (_data_->_tmp19_, "") == 0;
	}
	if (_data_->_tmp13_) {
		_data_->can_update = TRUE;
	} else {
		_data_->_tmp20_ = tuba_settings;
		_data_->_tmp21_ = tuba_settings_get_last_contributors_update (_data_->_tmp20_);
		_data_->_tmp22_ = _data_->_tmp21_;
		_data_->_tmp23_ = g_date_time_new_from_iso8601 (_data_->_tmp22_, NULL);
		_data_->then_utc = _data_->_tmp23_;
		_data_->_tmp24_ = _data_->then_utc;
		if (_data_->_tmp24_ == NULL) {
			_data_->can_update = TRUE;
		} else {
			_data_->_tmp25_ = _data_->now_utc;
			_data_->_tmp26_ = _data_->then_utc;
			_data_->can_update = g_date_time_difference (_data_->_tmp25_, _data_->_tmp26_) > (G_TIME_SPAN_DAY * 14);
		}
		_g_date_time_unref0 (_data_->then_utc);
	}
	if (!_data_->can_update) {
		_g_date_time_unref0 (_data_->now_utc);
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
		if (_data_->_state_ != 0) {
			while (!g_task_get_completed (_data_->_async_result)) {
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
			}
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->_tmp27_ = tuba_request_v2_new ("https://api.tuba.geopjr.dev/v1/supporters", TUBA_REQUEST_V2_METHOD_GET);
	_data_->msg = _data_->_tmp27_;
	{
		_data_->_data4_ = g_slice_new0 (Block4Data);
		_data_->_data4_->_ref_count_ = 1;
		_data_->_data4_->self = g_object_ref (_data_->self);
		_data_->_tmp28_ = _data_->msg;
		_data_->_state_ = 1;
		tuba_request_v2_exec (_data_->_tmp28_, tuba_application_update_contributors_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp29_ = tuba_request_v2_exec_finish (_data_->_tmp28_, _data_->_res_, NULL, &_data_->_inner_error0_);
		_data_->in_stream = _data_->_tmp29_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			block4_data_unref (_data_->_data4_);
			_data_->_data4_ = NULL;
			goto __catch0_g_error;
		}
		_data_->_tmp30_ = _data_->in_stream;
		_data_->_state_ = 2;
		tuba_network_get_parser_from_inputstream_async (_data_->_tmp30_, NULL, tuba_application_update_contributors_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp31_ = tuba_network_get_parser_from_inputstream_finish (_data_->_res_, &_data_->_inner_error0_);
		_data_->parser = _data_->_tmp31_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->in_stream);
			block4_data_unref (_data_->_data4_);
			_data_->_data4_ = NULL;
			goto __catch0_g_error;
		}
		_data_->_tmp32_ = g_new0 (gchar*, 0 + 1);
		_data_->_data4_->new_contributors = _data_->_tmp32_;
		_data_->_data4_->new_contributors_length1 = 0;
		_data_->_data4_->_new_contributors_size_ = _data_->_data4_->new_contributors_length1;
		_data_->_tmp33_ = _data_->parser;
		tuba_network_parse_array (_data_->_tmp33_, ____lambda220__tuba_network_node_callback, block4_data_ref (_data_->_data4_), block4_data_unref, &_data_->_inner_error0_);
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->parser);
			_g_object_unref0 (_data_->in_stream);
			block4_data_unref (_data_->_data4_);
			_data_->_data4_ = NULL;
			goto __catch0_g_error;
		}
		_data_->_tmp34_ = tuba_settings;
		_data_->_tmp35_ = _data_->_data4_->new_contributors;
		_data_->_tmp35__length1 = _data_->_data4_->new_contributors_length1;
		tuba_settings_set_contributors (_data_->_tmp34_, _data_->_tmp35_, _data_->_tmp35__length1);
		_data_->_tmp36_ = tuba_settings;
		_data_->_tmp37_ = _data_->now_utc;
		_data_->_tmp38_ = g_date_time_format_iso8601 (_data_->_tmp37_);
		_data_->_tmp39_ = _data_->_tmp38_;
		tuba_settings_set_last_contributors_update (_data_->_tmp36_, _data_->_tmp39_);
		_g_free0 (_data_->_tmp39_);
		_g_object_unref0 (_data_->parser);
		_g_object_unref0 (_data_->in_stream);
		block4_data_unref (_data_->_data4_);
		_data_->_data4_ = NULL;
	}
	goto __finally0;
	__catch0_g_error:
	{
		_data_->e = _data_->_inner_error0_;
		_data_->_inner_error0_ = NULL;
		_data_->_tmp40_ = _data_->e;
		_data_->_tmp41_ = g_strdup_printf ("%i", _data_->_tmp40_->code);
		_data_->_tmp42_ = _data_->_tmp41_;
		_data_->_tmp43_ = _data_->e;
		_data_->_tmp44_ = _data_->_tmp43_->message;
		_data_->_tmp45_ = string_to_string (_data_->_tmp44_);
		_data_->_tmp46_ = g_strconcat ("Couldn't update contributors: ", _data_->_tmp42_, " ", _data_->_tmp45_, NULL);
		_data_->_tmp47_ = _data_->_tmp46_;
		g_warning ("Application.vala:1083: %s", _data_->_tmp47_);
		_g_free0 (_data_->_tmp47_);
		_g_free0 (_data_->_tmp42_);
		_g_error_free0 (_data_->e);
	}
	__finally0:
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
		_g_object_unref0 (_data_->msg);
		_g_date_time_unref0 (_data_->now_utc);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code);
		g_clear_error (&_data_->_inner_error0_);
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_g_object_unref0 (_data_->msg);
	_g_date_time_unref0 (_data_->now_utc);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static void
tuba_application_update_analytics_data_free (gpointer _data)
{
	TubaApplicationUpdateAnalyticsData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (TubaApplicationUpdateAnalyticsData, _data_);
}

void
tuba_application_update_analytics (TubaApplication* self,
                                   GAsyncReadyCallback _callback_,
                                   gpointer _user_data_)
{
	TubaApplicationUpdateAnalyticsData* _data_;
	TubaApplication* _tmp0_;
	g_return_if_fail (self != NULL);
	_data_ = g_slice_new0 (TubaApplicationUpdateAnalyticsData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_application_update_analytics_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	tuba_application_update_analytics_co (_data_);
}

void
tuba_application_update_analytics_finish (TubaApplication* self,
                                          GAsyncResult* _res_)
{
	TubaApplicationUpdateAnalyticsData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static guint8*
string_get_data (const gchar* self,
                 gint* result_length1)
{
	guint8* result;
	guint8* res = NULL;
	gint res_length1;
	gint _res_size_;
	gint _tmp0_;
	gint _tmp1_;
	guint8* _tmp2_;
	gint _tmp2__length1;
	g_return_val_if_fail (self != NULL, NULL);
	res = (guint8*) self;
	res_length1 = -1;
	_res_size_ = res_length1;
	_tmp0_ = strlen (self);
	_tmp1_ = _tmp0_;
	res_length1 = (gint) _tmp1_;
	_tmp2_ = res;
	_tmp2__length1 = res_length1;
	if (result_length1) {
		*result_length1 = _tmp2__length1;
	}
	result = _tmp2_;
	return result;
}

static guint8*
_vala_array_dup4 (guint8* self,
                  gssize length)
{
	if (length > 0) {
		return g_memdup2 (self, length * sizeof (guint8));
	}
	return NULL;
}

static void
tuba_application_update_analytics_ready (GObject* source_object,
                                         GAsyncResult* _res_,
                                         gpointer _user_data_)
{
	TubaApplicationUpdateAnalyticsData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_application_update_analytics_co (_data_);
}

static gboolean
tuba_application_update_analytics_co (TubaApplicationUpdateAnalyticsData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = tuba_settings;
	_data_->_tmp1_ = tuba_settings_get_analytics (_data_->_tmp0_);
	_data_->_tmp2_ = _data_->_tmp1_;
	if (!_data_->_tmp2_) {
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
		if (_data_->_state_ != 0) {
			while (!g_task_get_completed (_data_->_async_result)) {
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
			}
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->can_update = FALSE;
	_data_->_tmp3_ = g_date_time_new_now_utc ();
	_data_->now_utc = _data_->_tmp3_;
	_data_->_tmp5_ = tuba_settings;
	_data_->_tmp6_ = tuba_settings_get_last_analytics_update (_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	if (_data_->_tmp7_ == NULL) {
		_data_->_tmp4_ = TRUE;
	} else {
		_data_->_tmp8_ = tuba_settings;
		_data_->_tmp9_ = tuba_settings_get_last_analytics_update (_data_->_tmp8_);
		_data_->_tmp10_ = _data_->_tmp9_;
		_data_->_tmp4_ = g_strcmp0 (_data_->_tmp10_, "") == 0;
	}
	if (_data_->_tmp4_) {
		_data_->can_update = TRUE;
	} else {
		_data_->_tmp11_ = tuba_settings;
		_data_->_tmp12_ = tuba_settings_get_last_analytics_update (_data_->_tmp11_);
		_data_->_tmp13_ = _data_->_tmp12_;
		_data_->_tmp14_ = g_date_time_new_from_iso8601 (_data_->_tmp13_, NULL);
		_data_->then_utc = _data_->_tmp14_;
		_data_->_tmp15_ = _data_->then_utc;
		if (_data_->_tmp15_ == NULL) {
			_data_->can_update = TRUE;
		} else {
			_data_->_tmp16_ = _data_->now_utc;
			_data_->_tmp17_ = _data_->then_utc;
			_data_->can_update = g_date_time_difference (_data_->_tmp16_, _data_->_tmp17_) > (G_TIME_SPAN_DAY * 14);
		}
		_g_date_time_unref0 (_data_->then_utc);
	}
	if (!_data_->can_update) {
		_g_date_time_unref0 (_data_->now_utc);
		g_task_return_pointer (_data_->_async_result, _data_, NULL);
		if (_data_->_state_ != 0) {
			while (!g_task_get_completed (_data_->_async_result)) {
				g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
			}
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->_tmp18_ = tuba_request_v2_new ("https://api.tuba.geopjr.dev/v1/analytics", TUBA_REQUEST_V2_METHOD_POST);
	_data_->msg = _data_->_tmp18_;
	_data_->_tmp19_ = _data_->msg;
	_data_->_tmp20_ = tuba_application_generate_analytics_object (_data_->self, FALSE);
	_data_->_tmp21_ = _data_->_tmp20_;
	_data_->_tmp23_ = 0;
	_data_->_tmp22_ = string_get_data (_data_->_tmp21_, &_data_->_tmp23_);
	_data_->_tmp22__length1 = _data_->_tmp23_;
	_data_->_tmp24_ = _data_->_tmp22_;
	_data_->_tmp24__length1 = _data_->_tmp22__length1;
	_data_->_tmp25_ = (_data_->_tmp24_ != NULL) ? _vala_array_dup4 (_data_->_tmp24_, _data_->_tmp24__length1) : _data_->_tmp24_;
	_data_->_tmp25__length1 = _data_->_tmp24__length1;
	_data_->_tmp26_ = g_bytes_new_take (_data_->_tmp25_, _data_->_tmp25__length1);
	_data_->_tmp27_ = _data_->_tmp26_;
	tuba_request_v2_set_body (_data_->_tmp19_, "application/json", _data_->_tmp27_);
	_g_bytes_unref0 (_data_->_tmp27_);
	_g_free0 (_data_->_tmp21_);
	{
		_data_->_tmp28_ = _data_->msg;
		_data_->_state_ = 1;
		tuba_request_v2_exec (_data_->_tmp28_, tuba_application_update_analytics_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp29_ = tuba_request_v2_exec_finish (_data_->_tmp28_, _data_->_res_, NULL, &_data_->_inner_error0_);
		_data_->_tmp30_ = _data_->_tmp29_;
		_g_object_unref0 (_data_->_tmp30_);
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		_data_->_tmp31_ = tuba_settings;
		_data_->_tmp32_ = _data_->now_utc;
		_data_->_tmp33_ = g_date_time_format_iso8601 (_data_->_tmp32_);
		_data_->_tmp34_ = _data_->_tmp33_;
		tuba_settings_set_last_analytics_update (_data_->_tmp31_, _data_->_tmp34_);
		_g_free0 (_data_->_tmp34_);
	}
	goto __finally0;
	__catch0_g_error:
	{
		_data_->e = _data_->_inner_error0_;
		_data_->_inner_error0_ = NULL;
		_data_->_tmp35_ = _data_->e;
		_data_->_tmp36_ = g_strdup_printf ("%i", _data_->_tmp35_->code);
		_data_->_tmp37_ = _data_->_tmp36_;
		_data_->_tmp38_ = _data_->e;
		_data_->_tmp39_ = _data_->_tmp38_->message;
		_data_->_tmp40_ = string_to_string (_data_->_tmp39_);
		_data_->_tmp41_ = g_strconcat ("Couldn't update analytics: ", _data_->_tmp37_, " ", _data_->_tmp40_, NULL);
		_data_->_tmp42_ = _data_->_tmp41_;
		g_warning ("Application.vala:1112: %s", _data_->_tmp42_);
		_g_free0 (_data_->_tmp42_);
		_g_free0 (_data_->_tmp37_);
		_g_error_free0 (_data_->e);
	}
	__finally0:
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
		_g_object_unref0 (_data_->msg);
		_g_date_time_unref0 (_data_->now_utc);
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code);
		g_clear_error (&_data_->_inner_error0_);
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_g_object_unref0 (_data_->msg);
	_g_date_time_unref0 (_data_->now_utc);
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

void
tuba_application_load_egg (TubaApplication* self,
                           const gchar* style)
{
	GtkCssProvider* css_provider = NULL;
	GtkCssProvider* _tmp0_;
	GtkCssProvider* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	GdkDisplay* _tmp5_;
	GtkCssProvider* _tmp6_;
	AdwStyleManager* _tmp7_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (style != NULL);
	if (self->priv->loaded_egg) {
		return;
	}
	self->priv->loaded_egg = TRUE;
	_tmp0_ = gtk_css_provider_new ();
	css_provider = _tmp0_;
	_tmp1_ = css_provider;
	_tmp2_ = string_to_string (style);
	_tmp3_ = g_strconcat ("/dev/geopjr/Tuba/eggs/", _tmp2_, ".css", NULL);
	_tmp4_ = _tmp3_;
	gtk_css_provider_load_from_resource (_tmp1_, _tmp4_);
	_g_free0 (_tmp4_);
	_tmp5_ = gdk_display_get_default ();
	_tmp6_ = css_provider;
	gtk_style_context_add_provider_for_display (_tmp5_, (GtkStyleProvider*) _tmp6_, (guint) GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
	_tmp7_ = adw_style_manager_get_default ();
	adw_style_manager_set_color_scheme (_tmp7_, ADW_COLOR_SCHEME_FORCE_LIGHT);
	_g_object_unref0 (css_provider);
}

TubaApplication*
tuba_application_construct (GType object_type)
{
	TubaApplication * self = NULL;
	self = (TubaApplication*) g_object_new (object_type, NULL);
	return self;
}

TubaApplication*
tuba_application_new (void)
{
	return tuba_application_construct (TUBA_TYPE_APPLICATION);
}

GProxyResolver*
tuba_application_get_proxy (TubaApplication* self)
{
	GProxyResolver* result;
	GProxyResolver* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_proxy;
	result = _tmp0_;
	return result;
}

void
tuba_application_set_proxy (TubaApplication* self,
                            GProxyResolver* value)
{
	GProxyResolver* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_application_get_proxy (self);
	if (old_value != value) {
		GProxyResolver* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_proxy);
		self->priv->_proxy = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_application_properties[TUBA_APPLICATION_PROXY_PROPERTY]);
	}
}

TubaDialogsMainWindow*
tuba_application_get_main_window (TubaApplication* self)
{
	TubaDialogsMainWindow* result;
	TubaDialogsMainWindow* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_main_window;
	result = _tmp0_;
	return result;
}

void
tuba_application_set_main_window (TubaApplication* self,
                                  TubaDialogsMainWindow* value)
{
	TubaDialogsMainWindow* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_application_get_main_window (self);
	if (old_value != value) {
		TubaDialogsMainWindow* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_main_window);
		self->priv->_main_window = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_application_properties[TUBA_APPLICATION_MAIN_WINDOW_PROPERTY]);
	}
}

TubaDialogsNewAccount*
tuba_application_get_add_account_window (TubaApplication* self)
{
	TubaDialogsNewAccount* result;
	TubaDialogsNewAccount* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_add_account_window;
	result = _tmp0_;
	return result;
}

void
tuba_application_set_add_account_window (TubaApplication* self,
                                         TubaDialogsNewAccount* value)
{
	TubaDialogsNewAccount* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_application_get_add_account_window (self);
	if (old_value != value) {
		TubaDialogsNewAccount* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_add_account_window);
		self->priv->_add_account_window = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_application_properties[TUBA_APPLICATION_ADD_ACCOUNT_WINDOW_PROPERTY]);
	}
}

gboolean
tuba_application_get_is_mobile (TubaApplication* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_is_mobile;
	return result;
}

void
tuba_application_set_is_mobile (TubaApplication* self,
                                gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_application_get_is_mobile (self);
	if (old_value != value) {
		self->priv->_is_mobile = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_application_properties[TUBA_APPLICATION_IS_MOBILE_PROPERTY]);
	}
}

gboolean
tuba_application_get_is_online (TubaApplication* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_is_online;
	return result;
}

static void
tuba_application_set_is_online (TubaApplication* self,
                                gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_application_get_is_online (self);
	if (old_value != value) {
		self->priv->_is_online = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_application_properties[TUBA_APPLICATION_IS_ONLINE_PROPERTY]);
	}
}

TubaUtilsLocales*
tuba_application_get_app_locales (TubaApplication* self)
{
	TubaUtilsLocales* result;
	TubaUtilsLocales* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_app_locales;
	result = _tmp0_;
	return result;
}

void
tuba_application_set_app_locales (TubaApplication* self,
                                  TubaUtilsLocales* value)
{
	TubaUtilsLocales* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_application_get_app_locales (self);
	if (old_value != value) {
		TubaUtilsLocales* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_app_locales);
		self->priv->_app_locales = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_application_properties[TUBA_APPLICATION_APP_LOCALES_PROPERTY]);
	}
}

TubaSettings*
tuba_application_get_app_settings (TubaApplication* self)
{
	TubaSettings* result;
	TubaSettings* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = tuba_settings;
	result = _tmp0_;
	return result;
}

TubaAccountStore*
tuba_application_get_app_accounts (TubaApplication* self)
{
	TubaAccountStore* result;
	TubaAccountStore* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = tuba_accounts;
	result = _tmp0_;
	return result;
}

TubaNetwork*
tuba_application_get_app_network (TubaApplication* self)
{
	TubaNetwork* result;
	TubaNetwork* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = tuba_network;
	result = _tmp0_;
	return result;
}

TubaStreams*
tuba_application_get_app_streams (TubaApplication* self)
{
	TubaStreams* result;
	TubaStreams* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = tuba_streams;
	result = _tmp0_;
	return result;
}

static void
g_cclosure_user_marshal_VOID__STRING_UINT_STRING_VARIANT_STRING (GClosure * closure,
                                                                 GValue * return_value,
                                                                 guint n_param_values,
                                                                 const GValue * param_values,
                                                                 gpointer invocation_hint,
                                                                 gpointer marshal_data)
{
	typedef void (*GMarshalFunc_VOID__STRING_UINT_STRING_VARIANT_STRING) (gpointer data1, const char* arg_1, guint arg_2, const char* arg_3, gpointer arg_4, const char* arg_5, gpointer data2);
	register GMarshalFunc_VOID__STRING_UINT_STRING_VARIANT_STRING callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
	g_return_if_fail (n_param_values == 6);
	if (G_CCLOSURE_SWAP_DATA (closure)) {
		data1 = closure->data;
		data2 = param_values->data[0].v_pointer;
	} else {
		data1 = param_values->data[0].v_pointer;
		data2 = closure->data;
	}
	callback = (GMarshalFunc_VOID__STRING_UINT_STRING_VARIANT_STRING) (marshal_data ? marshal_data : cc->callback);
	callback (data1, g_value_get_string (param_values + 1), g_value_get_uint (param_values + 2), g_value_get_string (param_values + 3), g_value_get_variant (param_values + 4), g_value_get_string (param_values + 5), data2);
}

void
tuba_application_question_button_copy (const TubaApplicationQuestionButton* self,
                                       TubaApplicationQuestionButton* dest)
{
	const gchar* _tmp0_;
	gchar* _tmp1_;
	_tmp0_ = (*self).label;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 ((*dest).label);
	(*dest).label = _tmp1_;
	(*dest).appearance = (*self).appearance;
}

void
tuba_application_question_button_destroy (TubaApplicationQuestionButton* self)
{
	_g_free0 ((*self).label);
}

TubaApplicationQuestionButton*
tuba_application_question_button_dup (const TubaApplicationQuestionButton* self)
{
	TubaApplicationQuestionButton* dup;
	dup = g_new0 (TubaApplicationQuestionButton, 1);
	tuba_application_question_button_copy (self, dup);
	return dup;
}

void
tuba_application_question_button_free (TubaApplicationQuestionButton* self)
{
	tuba_application_question_button_destroy (self);
	g_free (self);
}

 G_GNUC_NO_INLINE static GType
tuba_application_question_button_get_type_once (void)
{
	GType tuba_application_question_button_type_id;
	tuba_application_question_button_type_id = g_boxed_type_register_static ("TubaApplicationQuestionButton", (GBoxedCopyFunc) tuba_application_question_button_dup, (GBoxedFreeFunc) tuba_application_question_button_free);
	return tuba_application_question_button_type_id;
}

GType
tuba_application_question_button_get_type (void)
{
	static GType tuba_application_question_button_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_application_question_button_type_id__once)) {
		GType tuba_application_question_button_type_id;
		tuba_application_question_button_type_id = tuba_application_question_button_get_type_once ();
		g_once_init_leave_pointer (&tuba_application_question_button_type_id__once, tuba_application_question_button_type_id);
	}
	return tuba_application_question_button_type_id__once;
}

void
tuba_application_question_buttons_copy (const TubaApplicationQuestionButtons* self,
                                        TubaApplicationQuestionButtons* dest)
{
	TubaApplicationQuestionButton _tmp0_;
	TubaApplicationQuestionButton _tmp1_;
	TubaApplicationQuestionButton _tmp2_ = {0};
	TubaApplicationQuestionButton _tmp3_;
	TubaApplicationQuestionButton _tmp4_;
	TubaApplicationQuestionButton _tmp5_ = {0};
	_tmp0_ = (*self).yes;
	_tmp1_ = _tmp0_;
	tuba_application_question_button_copy (&_tmp1_, &_tmp2_);
	tuba_application_question_button_destroy (&(*dest).yes);
	(*dest).yes = _tmp2_;
	_tmp3_ = (*self).no;
	_tmp4_ = _tmp3_;
	tuba_application_question_button_copy (&_tmp4_, &_tmp5_);
	tuba_application_question_button_destroy (&(*dest).no);
	(*dest).no = _tmp5_;
}

void
tuba_application_question_buttons_destroy (TubaApplicationQuestionButtons* self)
{
	tuba_application_question_button_destroy (&(*self).yes);
	tuba_application_question_button_destroy (&(*self).no);
}

TubaApplicationQuestionButtons*
tuba_application_question_buttons_dup (const TubaApplicationQuestionButtons* self)
{
	TubaApplicationQuestionButtons* dup;
	dup = g_new0 (TubaApplicationQuestionButtons, 1);
	tuba_application_question_buttons_copy (self, dup);
	return dup;
}

void
tuba_application_question_buttons_free (TubaApplicationQuestionButtons* self)
{
	tuba_application_question_buttons_destroy (self);
	g_free (self);
}

 G_GNUC_NO_INLINE static GType
tuba_application_question_buttons_get_type_once (void)
{
	GType tuba_application_question_buttons_type_id;
	tuba_application_question_buttons_type_id = g_boxed_type_register_static ("TubaApplicationQuestionButtons", (GBoxedCopyFunc) tuba_application_question_buttons_dup, (GBoxedFreeFunc) tuba_application_question_buttons_free);
	return tuba_application_question_buttons_type_id;
}

GType
tuba_application_question_buttons_get_type (void)
{
	static GType tuba_application_question_buttons_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_application_question_buttons_type_id__once)) {
		GType tuba_application_question_buttons_type_id;
		tuba_application_question_buttons_type_id = tuba_application_question_buttons_get_type_once ();
		g_once_init_leave_pointer (&tuba_application_question_buttons_type_id__once, tuba_application_question_buttons_type_id);
	}
	return tuba_application_question_buttons_type_id__once;
}

void
tuba_application_question_text_copy (const TubaApplicationQuestionText* self,
                                     TubaApplicationQuestionText* dest)
{
	const gchar* _tmp0_;
	gchar* _tmp1_;
	_tmp0_ = (*self).text;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 ((*dest).text);
	(*dest).text = _tmp1_;
	(*dest).use_markup = (*self).use_markup;
}

void
tuba_application_question_text_destroy (TubaApplicationQuestionText* self)
{
	_g_free0 ((*self).text);
}

TubaApplicationQuestionText*
tuba_application_question_text_dup (const TubaApplicationQuestionText* self)
{
	TubaApplicationQuestionText* dup;
	dup = g_new0 (TubaApplicationQuestionText, 1);
	tuba_application_question_text_copy (self, dup);
	return dup;
}

void
tuba_application_question_text_free (TubaApplicationQuestionText* self)
{
	tuba_application_question_text_destroy (self);
	g_free (self);
}

 G_GNUC_NO_INLINE static GType
tuba_application_question_text_get_type_once (void)
{
	GType tuba_application_question_text_type_id;
	tuba_application_question_text_type_id = g_boxed_type_register_static ("TubaApplicationQuestionText", (GBoxedCopyFunc) tuba_application_question_text_dup, (GBoxedFreeFunc) tuba_application_question_text_free);
	return tuba_application_question_text_type_id;
}

GType
tuba_application_question_text_get_type (void)
{
	static GType tuba_application_question_text_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_application_question_text_type_id__once)) {
		GType tuba_application_question_text_type_id;
		tuba_application_question_text_type_id = tuba_application_question_text_get_type_once ();
		g_once_init_leave_pointer (&tuba_application_question_text_type_id__once, tuba_application_question_text_type_id);
	}
	return tuba_application_question_text_type_id__once;
}

static GObject *
tuba_application_constructor (GType type,
                              guint n_construct_properties,
                              GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	TubaApplication * self;
	TubaUtilsLocales* _tmp0_;
	TubaUtilsLocales* _tmp1_;
	parent_class = G_OBJECT_CLASS (tuba_application_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_TYPE_APPLICATION, TubaApplication);
	g_application_set_application_id ((GApplication*) self, BUILD_DOMAIN);
	g_application_set_flags ((GApplication*) self, G_APPLICATION_HANDLES_OPEN);
	g_application_add_main_option_entries ((GApplication*) self, TUBA_APPLICATION_APP_OPTIONS);
	_tmp0_ = tuba_utils_locales_new ();
	_tmp1_ = _tmp0_;
	tuba_application_set_app_locales (self, _tmp1_);
	_g_object_unref0 (_tmp1_);
	return obj;
}

static void
tuba_application_class_init (TubaApplicationClass * klass,
                             gpointer klass_data)
{
	tuba_application_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaApplication_private_offset);
	((GApplicationClass *) klass)->startup = (void (*) (GApplication*)) tuba_application_real_startup;
	((GApplicationClass *) klass)->activate = (void (*) (GApplication*)) tuba_application_real_activate;
	((GApplicationClass *) klass)->shutdown = (void (*) (GApplication*)) tuba_application_real_shutdown;
	((GApplicationClass *) klass)->open = (void (*) (GApplication*, GFile**, gint, const gchar*)) tuba_application_real_open;
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_application_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_application_set_property;
	G_OBJECT_CLASS (klass)->constructor = tuba_application_constructor;
	G_OBJECT_CLASS (klass)->finalize = tuba_application_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_APPLICATION_PROXY_PROPERTY, tuba_application_properties[TUBA_APPLICATION_PROXY_PROPERTY] = g_param_spec_object ("proxy", "proxy", "proxy", g_proxy_resolver_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_APPLICATION_MAIN_WINDOW_PROPERTY, tuba_application_properties[TUBA_APPLICATION_MAIN_WINDOW_PROPERTY] = g_param_spec_object ("main-window", "main-window", "main-window", TUBA_DIALOGS_TYPE_MAIN_WINDOW, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_APPLICATION_ADD_ACCOUNT_WINDOW_PROPERTY, tuba_application_properties[TUBA_APPLICATION_ADD_ACCOUNT_WINDOW_PROPERTY] = g_param_spec_object ("add-account-window", "add-account-window", "add-account-window", TUBA_DIALOGS_TYPE_NEW_ACCOUNT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_APPLICATION_IS_MOBILE_PROPERTY, tuba_application_properties[TUBA_APPLICATION_IS_MOBILE_PROPERTY] = g_param_spec_boolean ("is-mobile", "is-mobile", "is-mobile", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_APPLICATION_IS_ONLINE_PROPERTY, tuba_application_properties[TUBA_APPLICATION_IS_ONLINE_PROPERTY] = g_param_spec_boolean ("is-online", "is-online", "is-online", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_APPLICATION_APP_LOCALES_PROPERTY, tuba_application_properties[TUBA_APPLICATION_APP_LOCALES_PROPERTY] = g_param_spec_object ("app-locales", "app-locales", "app-locales", TUBA_UTILS_TYPE_LOCALES, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_APPLICATION_APP_SETTINGS_PROPERTY, tuba_application_properties[TUBA_APPLICATION_APP_SETTINGS_PROPERTY] = g_param_spec_object ("app-settings", "app-settings", "app-settings", TUBA_TYPE_SETTINGS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_APPLICATION_APP_ACCOUNTS_PROPERTY, tuba_application_properties[TUBA_APPLICATION_APP_ACCOUNTS_PROPERTY] = g_param_spec_object ("app-accounts", "app-accounts", "app-accounts", TUBA_TYPE_ACCOUNT_STORE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_APPLICATION_APP_NETWORK_PROPERTY, tuba_application_properties[TUBA_APPLICATION_APP_NETWORK_PROPERTY] = g_param_spec_object ("app-network", "app-network", "app-network", TUBA_TYPE_NETWORK, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_APPLICATION_APP_STREAMS_PROPERTY, tuba_application_properties[TUBA_APPLICATION_APP_STREAMS_PROPERTY] = g_param_spec_object ("app-streams", "app-streams", "app-streams", TUBA_TYPE_STREAMS, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	tuba_application_signals[TUBA_APPLICATION_REFRESH_SIGNAL] = g_signal_new ("refresh", TUBA_TYPE_APPLICATION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	tuba_application_signals[TUBA_APPLICATION_REFRESH_SCHEDULED_STATUSES_SIGNAL] = g_signal_new ("refresh-scheduled-statuses", TUBA_TYPE_APPLICATION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	tuba_application_signals[TUBA_APPLICATION_REFRESH_FEATURED_SIGNAL] = g_signal_new ("refresh-featured", TUBA_TYPE_APPLICATION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	tuba_application_signals[TUBA_APPLICATION_REMOVE_STATUS_WIDGET_SIGNAL] = g_signal_new ("remove-status-widget", TUBA_TYPE_APPLICATION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
	tuba_application_signals[TUBA_APPLICATION_RELATIONSHIP_INVALIDATED_SIGNAL] = g_signal_new ("relationship-invalidated", TUBA_TYPE_APPLICATION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, TUBA_API_TYPE_RELATIONSHIP);
	tuba_application_signals[TUBA_APPLICATION_REMOVE_USER_ID_SIGNAL] = g_signal_new ("remove-user-id", TUBA_TYPE_APPLICATION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
	tuba_application_signals[TUBA_APPLICATION_FAV_TAGS_CHANGED_SIGNAL] = g_signal_new ("fav-tags-changed", TUBA_TYPE_APPLICATION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING);
	tuba_application_signals[TUBA_APPLICATION_TIME_UPDATE_SIGNAL] = g_signal_new ("time-update", TUBA_TYPE_APPLICATION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
	tuba_application_signals[TUBA_APPLICATION_TOAST_SIGNAL] = g_signal_new ("toast", TUBA_TYPE_APPLICATION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_UINT_STRING_VARIANT_STRING, G_TYPE_NONE, 5, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_VARIANT, G_TYPE_STRING);
	tuba_application_signals[TUBA_APPLICATION_TOAST_OBJECT_SIGNAL] = g_signal_new ("toast-object", TUBA_TYPE_APPLICATION, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, adw_toast_get_type ());
}

static void
tuba_application_instance_init (TubaApplication * self,
                                gpointer klass)
{
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	const gchar* _tmp8_;
	const gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	const gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_;
	gchar* _tmp31_;
	gchar* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	gchar* _tmp35_;
	self->priv = tuba_application_get_instance_private (self);
	self->priv->_proxy = NULL;
	self->priv->_is_mobile = FALSE;
	self->priv->_is_online = TRUE;
	self->priv->to_share = NULL;
	self->priv->activated = FALSE;
	_tmp0_ = g_get_os_info ("NAME");
	_tmp1_ = _tmp0_;
	_tmp2_ = g_get_os_info ("VERSION");
	_tmp3_ = _tmp2_;
	_tmp4_ = bool_to_string (tuba_is_flatpak);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_strdup_printf ("\nlibgtksourceview: %u.%u.%u (%d.%d.%d)", gtk_source_get_major_version (), gtk_source_get_minor_version (), gtk_source_get_micro_version (), GTK_SOURCE_MAJOR_VERSION, GTK_SOURCE_MINOR_VERSION, GTK_SOURCE_MICRO_VERSION);
	_tmp7_ = _tmp6_;
	_tmp8_ = string_to_string (CLAPPER_VERSION_S);
	_tmp9_ = string_to_string (CLAPPER_GTK_VERSION_S);
	_tmp10_ = g_strconcat (_tmp8_, " (", _tmp9_, ")", NULL);
	_tmp11_ = _tmp10_;
	_tmp12_ = gst_version_string ();
	_tmp13_ = _tmp12_;
	_tmp14_ = string_to_string (_tmp13_);
	_tmp15_ = g_strdup_printf ("%i", GST_VERSION_MAJOR);
	_tmp16_ = _tmp15_;
	_tmp17_ = g_strdup_printf ("%i", GST_VERSION_MICRO);
	_tmp18_ = _tmp17_;
	_tmp19_ = g_strdup_printf ("%i", GST_VERSION_MINOR);
	_tmp20_ = _tmp19_;
	_tmp21_ = g_strdup_printf ("%i", GST_VERSION_NANO);
	_tmp22_ = _tmp21_;
	_tmp23_ = g_strconcat (_tmp14_, " (", _tmp16_, ".", _tmp18_, ".", _tmp20_, ".", _tmp22_, ")", NULL);
	_tmp24_ = _tmp23_;
	_tmp25_ = g_strdup_printf ("%i", gexiv2_get_version ());
	_tmp26_ = _tmp25_;
	_tmp27_ = g_strdup_printf ("%i", GEXIV2_MAJOR_VERSION);
	_tmp28_ = _tmp27_;
	_tmp29_ = g_strdup_printf ("%i", GEXIV2_MINOR_VERSION);
	_tmp30_ = _tmp29_;
	_tmp31_ = g_strdup_printf ("%i", GEXIV2_MICRO_VERSION);
	_tmp32_ = _tmp31_;
	_tmp33_ = g_strconcat (_tmp26_, " (", _tmp28_, ".", _tmp30_, ".", _tmp32_, ")", NULL);
	_tmp34_ = _tmp33_;
	_tmp35_ = g_strdup_printf ("os: %s %s\n" \
"prefix: %s\n" \
"flatpak: %s\n" \
"version: %s (%s)\n" \
"gtk: %u.%u.%u (%d.%d.%d)\n" \
"libadwaita: %u.%u.%u (%d.%d.%d)\n" \
"libsoup: %u.%u.%u (%d.%d.%d)%s\n" \
"libspelling: %s\n" \
"Clapper: %s\n" \
"GStreamer: %s\n" \
"GExiv2: %s", _tmp1_, _tmp3_, BUILD_PREFIX, _tmp5_, BUILD_VERSION, BUILD_PROFILE, gtk_get_major_version (), gtk_get_minor_version (), gtk_get_micro_version (), GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION, adw_get_major_version (), adw_get_minor_version (), adw_get_micro_version (), ADW_MAJOR_VERSION, ADW_MINOR_VERSION, ADW_MICRO_VERSION, soup_get_major_version (), soup_get_minor_version (), soup_get_micro_version (), SOUP_MAJOR_VERSION, SOUP_MINOR_VERSION, SOUP_MICRO_VERSION, _tmp7_, "true", _tmp11_, _tmp24_, _tmp34_);
	self->priv->troubleshooting = _tmp35_;
	_g_free0 (_tmp34_);
	_g_free0 (_tmp32_);
	_g_free0 (_tmp30_);
	_g_free0 (_tmp28_);
	_g_free0 (_tmp26_);
	_g_free0 (_tmp24_);
	_g_free0 (_tmp22_);
	_g_free0 (_tmp20_);
	_g_free0 (_tmp18_);
	_g_free0 (_tmp16_);
	_g_free0 (_tmp13_);
	_g_free0 (_tmp11_);
	_g_free0 (_tmp7_);
	_g_free0 (_tmp5_);
	_g_free0 (_tmp3_);
	_g_free0 (_tmp1_);
	self->priv->loaded_egg = FALSE;
}

static void
tuba_application_finalize (GObject * obj)
{
	TubaApplication * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_TYPE_APPLICATION, TubaApplication);
	_g_object_unref0 (self->priv->_proxy);
	_g_object_unref0 (self->priv->_main_window);
	_g_object_unref0 (self->priv->_add_account_window);
	_g_object_unref0 (self->priv->_app_locales);
	_tuba_utils_share_handler_share_result_free0 (self->priv->to_share);
	_g_free0 (self->priv->troubleshooting);
	G_OBJECT_CLASS (tuba_application_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_application_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaApplicationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_application_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaApplication), 0, (GInstanceInitFunc) tuba_application_instance_init, NULL };
	GType tuba_application_type_id;
	tuba_application_type_id = g_type_register_static (adw_application_get_type (), "TubaApplication", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaApplication_private_offset = g_type_add_instance_private (tuba_application_type_id, sizeof (TubaApplicationPrivate));
	return tuba_application_type_id;
}

GType
tuba_application_get_type (void)
{
	static GType tuba_application_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_application_type_id__once)) {
		GType tuba_application_type_id;
		tuba_application_type_id = tuba_application_get_type_once ();
		g_once_init_leave_pointer (&tuba_application_type_id__once, tuba_application_type_id);
	}
	return tuba_application_type_id__once;
}

static void
_vala_tuba_application_get_property (GObject * object,
                                     guint property_id,
                                     GValue * value,
                                     GParamSpec * pspec)
{
	TubaApplication * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_TYPE_APPLICATION, TubaApplication);
	switch (property_id) {
		case TUBA_APPLICATION_PROXY_PROPERTY:
		g_value_set_object (value, tuba_application_get_proxy (self));
		break;
		case TUBA_APPLICATION_MAIN_WINDOW_PROPERTY:
		g_value_set_object (value, tuba_application_get_main_window (self));
		break;
		case TUBA_APPLICATION_ADD_ACCOUNT_WINDOW_PROPERTY:
		g_value_set_object (value, tuba_application_get_add_account_window (self));
		break;
		case TUBA_APPLICATION_IS_MOBILE_PROPERTY:
		g_value_set_boolean (value, tuba_application_get_is_mobile (self));
		break;
		case TUBA_APPLICATION_IS_ONLINE_PROPERTY:
		g_value_set_boolean (value, tuba_application_get_is_online (self));
		break;
		case TUBA_APPLICATION_APP_LOCALES_PROPERTY:
		g_value_set_object (value, tuba_application_get_app_locales (self));
		break;
		case TUBA_APPLICATION_APP_SETTINGS_PROPERTY:
		g_value_set_object (value, tuba_application_get_app_settings (self));
		break;
		case TUBA_APPLICATION_APP_ACCOUNTS_PROPERTY:
		g_value_set_object (value, tuba_application_get_app_accounts (self));
		break;
		case TUBA_APPLICATION_APP_NETWORK_PROPERTY:
		g_value_set_object (value, tuba_application_get_app_network (self));
		break;
		case TUBA_APPLICATION_APP_STREAMS_PROPERTY:
		g_value_set_object (value, tuba_application_get_app_streams (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_application_set_property (GObject * object,
                                     guint property_id,
                                     const GValue * value,
                                     GParamSpec * pspec)
{
	TubaApplication * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_TYPE_APPLICATION, TubaApplication);
	switch (property_id) {
		case TUBA_APPLICATION_PROXY_PROPERTY:
		tuba_application_set_proxy (self, g_value_get_object (value));
		break;
		case TUBA_APPLICATION_MAIN_WINDOW_PROPERTY:
		tuba_application_set_main_window (self, g_value_get_object (value));
		break;
		case TUBA_APPLICATION_ADD_ACCOUNT_WINDOW_PROPERTY:
		tuba_application_set_add_account_window (self, g_value_get_object (value));
		break;
		case TUBA_APPLICATION_IS_MOBILE_PROPERTY:
		tuba_application_set_is_mobile (self, g_value_get_boolean (value));
		break;
		case TUBA_APPLICATION_IS_ONLINE_PROPERTY:
		tuba_application_set_is_online (self, g_value_get_boolean (value));
		break;
		case TUBA_APPLICATION_APP_LOCALES_PROPERTY:
		tuba_application_set_app_locales (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

void
tuba_toggle_css (GtkWidget* wdg,
                 gboolean state,
                 const gchar* style)
{
	g_return_if_fail (wdg != NULL);
	g_return_if_fail (style != NULL);
	if (state) {
		gtk_widget_add_css_class (wdg, style);
	} else {
		gtk_widget_remove_css_class (wdg, style);
	}
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

static gssize
_vala_array_length (gpointer array)
{
	gssize length;
	length = 0;
	if (array) {
		while (((gpointer*) array)[length]) {
			length++;
		}
	}
	return length;
}

