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

#include <adwaita.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <gee.h>
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <glib/gi18n-lib.h>
#include <gio/gio.h>
#include <float.h>
#include <math.h>
#include <libsoup/soup.h>
#include <json-glib/json-glib.h>

#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_DIALOGS_TYPE_REPORT (tuba_dialogs_report_get_type ())
#define TUBA_DIALOGS_REPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_TYPE_REPORT, TubaDialogsReport))
#define TUBA_DIALOGS_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_TYPE_REPORT, TubaDialogsReportClass))
#define TUBA_DIALOGS_IS_REPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_TYPE_REPORT))
#define TUBA_DIALOGS_IS_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_TYPE_REPORT))
#define TUBA_DIALOGS_REPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_TYPE_REPORT, TubaDialogsReportClass))

typedef struct _TubaDialogsReport TubaDialogsReport;
typedef struct _TubaDialogsReportClass TubaDialogsReportClass;
typedef struct _TubaDialogsReportPrivate TubaDialogsReportPrivate;
typedef enum  {
	TUBA_DIALOGS_REPORT_CATEGORY_SPAM,
	TUBA_DIALOGS_REPORT_CATEGORY_VIOLATION,
	TUBA_DIALOGS_REPORT_CATEGORY_OTHER
} TubaDialogsReportCategory;

#define TUBA_DIALOGS_REPORT_TYPE_CATEGORY (tuba_dialogs_report_category_get_type ())
enum  {
	TUBA_DIALOGS_REPORT_0_PROPERTY,
	TUBA_DIALOGS_REPORT_NUM_PROPERTIES
};
static GParamSpec* tuba_dialogs_report_properties[TUBA_DIALOGS_REPORT_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (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_API_TYPE_MENTION (tuba_api_mention_get_type ())
#define TUBA_API_MENTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_MENTION, TubaAPIMention))
#define TUBA_API_MENTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_MENTION, TubaAPIMentionClass))
#define TUBA_API_IS_MENTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_MENTION))
#define TUBA_API_IS_MENTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_MENTION))
#define TUBA_API_MENTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_MENTION, TubaAPIMentionClass))

typedef struct _TubaAPIMention TubaAPIMention;
typedef struct _TubaAPIMentionClass TubaAPIMentionClass;

#define TUBA_API_TYPE_COLLECTION (tuba_api_collection_get_type ())
#define TUBA_API_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_COLLECTION, TubaAPICollection))
#define TUBA_API_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_COLLECTION, TubaAPICollectionClass))
#define TUBA_API_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_COLLECTION))
#define TUBA_API_IS_COLLECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_COLLECTION))
#define TUBA_API_COLLECTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_COLLECTION, TubaAPICollectionClass))

typedef struct _TubaAPICollection TubaAPICollection;
typedef struct _TubaAPICollectionClass TubaAPICollectionClass;

#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_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_API_INSTANCE_TYPE_RULE (tuba_api_instance_rule_get_type ())
#define TUBA_API_INSTANCE_RULE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_INSTANCE_TYPE_RULE, TubaAPIInstanceRule))
#define TUBA_API_INSTANCE_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_INSTANCE_TYPE_RULE, TubaAPIInstanceRuleClass))
#define TUBA_API_INSTANCE_IS_RULE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_INSTANCE_TYPE_RULE))
#define TUBA_API_INSTANCE_IS_RULE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_INSTANCE_TYPE_RULE))
#define TUBA_API_INSTANCE_RULE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_INSTANCE_TYPE_RULE, TubaAPIInstanceRuleClass))

typedef struct _TubaAPIInstanceRule TubaAPIInstanceRule;
typedef struct _TubaAPIInstanceRuleClass TubaAPIInstanceRuleClass;

#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_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 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;
typedef struct _Block33Data Block33Data;

#define TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS (tuba_api_instance_v2_api_versions_get_type ())
#define TUBA_API_INSTANCE_V2_API_VERSIONS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS, TubaAPIInstanceV2APIVersions))
#define TUBA_API_INSTANCE_V2_API_VERSIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS, TubaAPIInstanceV2APIVersionsClass))
#define TUBA_API_INSTANCE_V2_IS_API_VERSIONS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS))
#define TUBA_API_INSTANCE_V2_IS_API_VERSIONS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS))
#define TUBA_API_INSTANCE_V2_API_VERSIONS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_INSTANCE_V2_TYPE_API_VERSIONS, TubaAPIInstanceV2APIVersionsClass))

typedef struct _TubaAPIInstanceV2APIVersions TubaAPIInstanceV2APIVersions;
typedef struct _TubaAPIInstanceV2APIVersionsClass TubaAPIInstanceV2APIVersionsClass;

#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 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 ())

#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 struct _Block34Data Block34Data;
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 _Block35Data Block35Data;

#define TUBA_TYPE_OOPSIE (tuba_oopsie_get_type ())
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _TubaDialogsReportSubmitData TubaDialogsReportSubmitData;
typedef struct _Block36Data Block36Data;
typedef struct _Block37Data Block37Data;
typedef void (*TubaNetworkNodeCallback) (JsonNode* node, gpointer user_data, GError** error);

#define TUBA_API_TYPE_STATUS (tuba_api_status_get_type ())
#define TUBA_API_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_STATUS, TubaAPIStatus))
#define TUBA_API_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_STATUS, TubaAPIStatusClass))
#define TUBA_API_IS_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_STATUS))
#define TUBA_API_IS_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_STATUS))
#define TUBA_API_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_STATUS, TubaAPIStatusClass))

typedef struct _TubaAPIStatus TubaAPIStatus;
typedef struct _TubaAPIStatusClass TubaAPIStatusClass;

#define TUBA_API_TYPE_PREVIEW_CARD (tuba_api_preview_card_get_type ())
#define TUBA_API_PREVIEW_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_TYPE_PREVIEW_CARD, TubaAPIPreviewCard))
#define TUBA_API_PREVIEW_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_TYPE_PREVIEW_CARD, TubaAPIPreviewCardClass))
#define TUBA_API_IS_PREVIEW_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_TYPE_PREVIEW_CARD))
#define TUBA_API_IS_PREVIEW_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_TYPE_PREVIEW_CARD))
#define TUBA_API_PREVIEW_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_TYPE_PREVIEW_CARD, TubaAPIPreviewCardClass))

typedef struct _TubaAPIPreviewCard TubaAPIPreviewCard;
typedef struct _TubaAPIPreviewCardClass TubaAPIPreviewCardClass;

#define TUBA_WIDGETS_TYPE_STATUS (tuba_widgets_status_get_type ())
#define TUBA_WIDGETS_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_STATUS, TubaWidgetsStatus))
#define TUBA_WIDGETS_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_STATUS, TubaWidgetsStatusClass))
#define TUBA_WIDGETS_IS_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_STATUS))
#define TUBA_WIDGETS_IS_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_STATUS))
#define TUBA_WIDGETS_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_STATUS, TubaWidgetsStatusClass))

typedef struct _TubaWidgetsStatus TubaWidgetsStatus;
typedef struct _TubaWidgetsStatusClass TubaWidgetsStatusClass;

#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;
typedef struct _TubaWidgetsStatusPrivate TubaWidgetsStatusPrivate;
typedef void (*TubaDialogsComposerDialogSuccessCallback) (TubaAPIStatus* cb_status, gpointer user_data);

#define TUBA_WIDGETS_TYPE_RICH_LABEL (tuba_widgets_rich_label_get_type ())
#define TUBA_WIDGETS_RICH_LABEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabel))
#define TUBA_WIDGETS_RICH_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabelClass))
#define TUBA_WIDGETS_IS_RICH_LABEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_RICH_LABEL))
#define TUBA_WIDGETS_IS_RICH_LABEL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_RICH_LABEL))
#define TUBA_WIDGETS_RICH_LABEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_RICH_LABEL, TubaWidgetsRichLabelClass))

typedef struct _TubaWidgetsRichLabel TubaWidgetsRichLabel;
typedef struct _TubaWidgetsRichLabelClass TubaWidgetsRichLabelClass;

#define TUBA_WIDGETS_TYPE_AVATAR (tuba_widgets_avatar_get_type ())
#define TUBA_WIDGETS_AVATAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_AVATAR, TubaWidgetsAvatar))
#define TUBA_WIDGETS_AVATAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_AVATAR, TubaWidgetsAvatarClass))
#define TUBA_WIDGETS_IS_AVATAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_AVATAR))
#define TUBA_WIDGETS_IS_AVATAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_AVATAR))
#define TUBA_WIDGETS_AVATAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_AVATAR, TubaWidgetsAvatarClass))

typedef struct _TubaWidgetsAvatar TubaWidgetsAvatar;
typedef struct _TubaWidgetsAvatarClass TubaWidgetsAvatarClass;

#define TUBA_WIDGETS_TYPE_MARKUP_VIEW (tuba_widgets_markup_view_get_type ())
#define TUBA_WIDGETS_MARKUP_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_MARKUP_VIEW, TubaWidgetsMarkupView))
#define TUBA_WIDGETS_MARKUP_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_MARKUP_VIEW, TubaWidgetsMarkupViewClass))
#define TUBA_WIDGETS_IS_MARKUP_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_MARKUP_VIEW))
#define TUBA_WIDGETS_IS_MARKUP_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_MARKUP_VIEW))
#define TUBA_WIDGETS_MARKUP_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_MARKUP_VIEW, TubaWidgetsMarkupViewClass))

typedef struct _TubaWidgetsMarkupView TubaWidgetsMarkupView;
typedef struct _TubaWidgetsMarkupViewClass TubaWidgetsMarkupViewClass;

#define TUBA_WIDGETS_TYPE_FADE_BIN (tuba_widgets_fade_bin_get_type ())
#define TUBA_WIDGETS_FADE_BIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_FADE_BIN, TubaWidgetsFadeBin))
#define TUBA_WIDGETS_FADE_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_FADE_BIN, TubaWidgetsFadeBinClass))
#define TUBA_WIDGETS_IS_FADE_BIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_FADE_BIN))
#define TUBA_WIDGETS_IS_FADE_BIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_FADE_BIN))
#define TUBA_WIDGETS_FADE_BIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_FADE_BIN, TubaWidgetsFadeBinClass))

typedef struct _TubaWidgetsFadeBin TubaWidgetsFadeBin;
typedef struct _TubaWidgetsFadeBinClass TubaWidgetsFadeBinClass;

#define TUBA_WIDGETS_TYPE_PREVIEW_CARD (tuba_widgets_preview_card_get_type ())
#define TUBA_WIDGETS_PREVIEW_CARD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_PREVIEW_CARD, TubaWidgetsPreviewCard))
#define TUBA_WIDGETS_PREVIEW_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_PREVIEW_CARD, TubaWidgetsPreviewCardClass))
#define TUBA_WIDGETS_IS_PREVIEW_CARD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_PREVIEW_CARD))
#define TUBA_WIDGETS_IS_PREVIEW_CARD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_PREVIEW_CARD))
#define TUBA_WIDGETS_PREVIEW_CARD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_PREVIEW_CARD, TubaWidgetsPreviewCardClass))

typedef struct _TubaWidgetsPreviewCard TubaWidgetsPreviewCard;
typedef struct _TubaWidgetsPreviewCardClass TubaWidgetsPreviewCardClass;

#define TUBA_WIDGETS_TYPE_VOTE_BOX (tuba_widgets_vote_box_get_type ())
#define TUBA_WIDGETS_VOTE_BOX(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_WIDGETS_TYPE_VOTE_BOX, TubaWidgetsVoteBox))
#define TUBA_WIDGETS_VOTE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_WIDGETS_TYPE_VOTE_BOX, TubaWidgetsVoteBoxClass))
#define TUBA_WIDGETS_IS_VOTE_BOX(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_WIDGETS_TYPE_VOTE_BOX))
#define TUBA_WIDGETS_IS_VOTE_BOX_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_WIDGETS_TYPE_VOTE_BOX))
#define TUBA_WIDGETS_VOTE_BOX_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_WIDGETS_TYPE_VOTE_BOX, TubaWidgetsVoteBoxClass))

typedef struct _TubaWidgetsVoteBox TubaWidgetsVoteBox;
typedef struct _TubaWidgetsVoteBoxClass TubaWidgetsVoteBoxClass;

#define TUBA_DIALOGS_REPORT_TYPE_STATUS_ROW (tuba_dialogs_report_status_row_get_type ())
#define TUBA_DIALOGS_REPORT_STATUS_ROW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_DIALOGS_REPORT_TYPE_STATUS_ROW, TubaDialogsReportStatusRow))
#define TUBA_DIALOGS_REPORT_STATUS_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_DIALOGS_REPORT_TYPE_STATUS_ROW, TubaDialogsReportStatusRowClass))
#define TUBA_DIALOGS_REPORT_IS_STATUS_ROW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_DIALOGS_REPORT_TYPE_STATUS_ROW))
#define TUBA_DIALOGS_REPORT_IS_STATUS_ROW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_DIALOGS_REPORT_TYPE_STATUS_ROW))
#define TUBA_DIALOGS_REPORT_STATUS_ROW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_DIALOGS_REPORT_TYPE_STATUS_ROW, TubaDialogsReportStatusRowClass))

typedef struct _TubaDialogsReportStatusRow TubaDialogsReportStatusRow;
typedef struct _TubaDialogsReportStatusRowClass TubaDialogsReportStatusRowClass;
typedef struct _TubaDialogsReportPopulatePostsData TubaDialogsReportPopulatePostsData;
typedef struct _TubaDialogsReportStatusRowPrivate TubaDialogsReportStatusRowPrivate;
enum  {
	TUBA_DIALOGS_REPORT_STATUS_ROW_0_PROPERTY,
	TUBA_DIALOGS_REPORT_STATUS_ROW_CHECK_BUTTON_PROPERTY,
	TUBA_DIALOGS_REPORT_STATUS_ROW_NUM_PROPERTIES
};
static GParamSpec* tuba_dialogs_report_status_row_properties[TUBA_DIALOGS_REPORT_STATUS_ROW_NUM_PROPERTIES];

struct _TubaDialogsReport {
	AdwDialog parent_instance;
	TubaDialogsReportPrivate * priv;
};

struct _TubaDialogsReportClass {
	AdwDialogClass parent_class;
};

struct _TubaDialogsReportPrivate {
	AdwCarousel* carousel;
	GtkStack* page_3_stack;
	AdwStatusPage* page_3_error;
	GtkButton* next_button;
	GtkButton* back_button;
	AdwPreferencesGroup* group_3;
	AdwPreferencesPage* page_2;
	AdwPreferencesPage* page_3;
	AdwPreferencesPage* page_4;
	AdwEntryRow* additional_info;
	GeeHashMap* forward_switches;
	GeeHashMap* check_buttons;
	GeeHashMap* rules_buttons;
	GeeHashMap* status_buttons;
	TubaDialogsReportCategory* categories;
	gint categories_length1;
	gint _categories_size_;
	gchar* account_id;
	gchar* status_id;
	gchar* collection_id;
	gboolean has_rules;
	gchar* account_domain;
};

struct _Block33Data {
	int _ref_count_;
	TubaDialogsReport* self;
	AdwPreferencesGroup* group_4;
};

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

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

struct _TubaApplicationQuestionButtons {
	TubaApplicationQuestionButton yes;
	TubaApplicationQuestionButton no;
};

struct _Block34Data {
	int _ref_count_;
	TubaDialogsReport* self;
	TubaRequestV2* msg;
	TubaDialogsReportCategory category;
	gpointer _async_data_;
};

struct _Block35Data {
	int _ref_count_;
	Block34Data * _data34_;
	gboolean has_forward;
};

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 _TubaDialogsReportSubmitData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	TubaDialogsReport* self;
	Block34Data* _data34_;
	TubaAccountStore* _tmp0_;
	TubaInstanceAccount* _tmp1_;
	TubaInstanceAccount* _tmp2_;
	TubaInstanceAccount* _tmp3_;
	TubaRequestV2* _tmp4_;
	TubaRequestV2* _tmp5_;
	const gchar* _tmp6_;
	gboolean _tmp7_;
	GeeHashMap* _tmp8_;
	gint _tmp9_;
	gint _tmp10_;
	GeeHashMap* _tmp11_;
	const gchar* _tmp12_;
	TubaRequestV2* _tmp13_;
	GeeHashMap* _tmp14_;
	const gchar* _tmp15_;
	gpointer _tmp16_;
	AdwSwitchRow* _tmp17_;
	gboolean _tmp18_;
	gboolean _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	Block35Data* _data35_;
	GeeHashMap* _tmp22_;
	TubaRequestV2* _tmp23_;
	AdwEntryRow* _tmp24_;
	const gchar* _tmp25_;
	const gchar* _tmp26_;
	TubaRequestV2* _tmp27_;
	AdwEntryRow* _tmp28_;
	const gchar* _tmp29_;
	const gchar* _tmp30_;
	GeeHashMap* _tmp31_;
	TubaRequestV2* _tmp32_;
	gchar* _tmp33_;
	gchar* _tmp34_;
	GeeHashMap* _tmp35_;
	const gchar* _tmp36_;
	TubaRequestV2* _tmp37_;
	const gchar* _tmp38_;
	GeeHashMap* _tmp39_;
	const gchar* _tmp40_;
	TubaRequestV2* _tmp41_;
	const gchar* _tmp42_;
	TubaRequestV2* _tmp43_;
	GInputStream* _tmp44_;
	GInputStream* _tmp45_;
	GError* e;
	GError* _tmp46_;
	gchar* _tmp47_;
	gchar* _tmp48_;
	GError* _tmp49_;
	const gchar* _tmp50_;
	const gchar* _tmp51_;
	gchar* _tmp52_;
	gchar* _tmp53_;
	TubaApplication* _tmp54_;
	GError* _tmp55_;
	const gchar* _tmp56_;
	gchar* _tmp57_;
	gchar* _tmp58_;
	GError* _inner_error0_;
};

struct _Block36Data {
	int _ref_count_;
	TubaDialogsReport* self;
	gchar* status_id;
	gpointer _async_data_;
};

struct _Block37Data {
	int _ref_count_;
	Block36Data * _data36_;
	GtkListBox* listbox;
};

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

struct _TubaWidgetsStatus {
	GtkListBoxRow parent_instance;
	TubaWidgetsStatusPrivate * priv;
	TubaDialogsComposerDialogSuccessCallback reply_cb;
	gpointer reply_cb_target;
	GDestroyNotify reply_cb_target_destroy_notify;
	GtkBox* status_box;
	GtkBox* avatar_side;
	GtkBox* title_box;
	GtkBox* content_side;
	AdwWrapBox* name_wrapbox;
	GtkMenuButton* menu_button;
	GtkImage* header_icon;
	TubaWidgetsRichLabel* header_label;
	GtkButton* header_button;
	TubaWidgetsAvatar* avatar;
	GtkOverlay* avatar_overlay;
	GtkButton* name_button;
	TubaWidgetsRichLabel* name_label;
	GtkLabel* handle_label;
	GtkBox* indicators;
	GtkLabel* date_label;
	GtkImage* pin_indicator;
	GtkImage* edited_indicator;
	GtkImage* visibility_indicator;
	GtkBox* content_column;
	GtkStack* spoiler_stack;
	GtkBox* content_box;
	TubaWidgetsMarkupView* content;
	GtkButton* spoiler_button;
	GtkLabel* spoiler_label;
	GtkLabel* spoiler_label_rev;
	GtkBox* spoiler_status_con;
	TubaWidgetsFadeBin* fade_bin;
	GtkStack* filter_stack;
	GtkLabel* filter_label;
	GtkLabel* filter_author_label;
	TubaWidgetsPreviewCard* prev_card;
	TubaWidgetsVoteBox* poll;
};

struct _TubaWidgetsStatusClass {
	GtkListBoxRowClass parent_class;
	void (*on_open) (TubaWidgetsStatus* self);
	void (*change_kind) (TubaWidgetsStatus* self);
	void (*bind) (TubaWidgetsStatus* self);
};

struct _TubaDialogsReportPopulatePostsData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	TubaDialogsReport* self;
	gchar* account_id;
	gchar* status_id;
	Block36Data* _data36_;
	TubaRequestV2* req;
	const gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	TubaAccountStore* _tmp3_;
	TubaInstanceAccount* _tmp4_;
	TubaInstanceAccount* _tmp5_;
	TubaInstanceAccount* _tmp6_;
	TubaRequestV2* _tmp7_;
	TubaRequestV2* _tmp8_;
	TubaRequestV2* _tmp9_;
	TubaRequestV2* _tmp10_;
	Block37Data* _data37_;
	GInputStream* in_stream;
	TubaRequestV2* _tmp11_;
	GInputStream* _tmp12_;
	gchar* _tmp13_;
	gchar** _tmp14_;
	GtkListBox* _tmp15_;
	GtkListBox* _tmp16_;
	JsonParser* parser;
	GInputStream* _tmp17_;
	JsonParser* _tmp18_;
	JsonParser* _tmp19_;
	GeeHashMap* _tmp20_;
	gint _tmp21_;
	gint _tmp22_;
	AdwPreferencesPage* _tmp23_;
	AdwStatusPage* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	GtkStack* _tmp27_;
	AdwPreferencesGroup* _tmp28_;
	GtkListBox* _tmp29_;
	GtkStack* _tmp30_;
	GError* e;
	AdwStatusPage* _tmp31_;
	GError* _tmp32_;
	const gchar* _tmp33_;
	gchar* _tmp34_;
	gchar* _tmp35_;
	GtkStack* _tmp36_;
	GError* _inner_error0_;
};

struct _TubaDialogsReportStatusRow {
	GtkListBoxRow parent_instance;
	TubaDialogsReportStatusRowPrivate * priv;
};

struct _TubaDialogsReportStatusRowClass {
	GtkListBoxRowClass parent_class;
};

struct _TubaDialogsReportStatusRowPrivate {
	GtkCheckButton* _check_button;
};

static gint TubaDialogsReport_private_offset;
static gpointer tuba_dialogs_report_parent_class = NULL;
VALA_EXTERN TubaApplication* tuba_app;
VALA_EXTERN TubaAccountStore* tuba_accounts;
static gint TubaDialogsReportStatusRow_private_offset;
static gpointer tuba_dialogs_report_status_row_parent_class = NULL;

VALA_EXTERN GType tuba_dialogs_report_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsReport, g_object_unref)
static GType tuba_dialogs_report_category_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static gchar* tuba_dialogs_report_category_to_string (TubaDialogsReportCategory self);
static gchar* tuba_dialogs_report_category_to_title (TubaDialogsReportCategory self);
static gchar* tuba_dialogs_report_category_to_description (TubaDialogsReportCategory 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_api_mention_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIMention, g_object_unref)
VALA_EXTERN GType tuba_api_collection_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPICollection, g_object_unref)
VALA_EXTERN TubaDialogsReport* tuba_dialogs_report_new (TubaAPIAccount* account,
                                            const gchar* status_id,
                                            GeeArrayList* mentions,
                                            TubaAPICollection* collection);
VALA_EXTERN TubaDialogsReport* tuba_dialogs_report_construct (GType object_type,
                                                  TubaAPIAccount* account,
                                                  const gchar* status_id,
                                                  GeeArrayList* mentions,
                                                  TubaAPICollection* collection);
VALA_EXTERN gchar* tuba_api_account_get_domain (TubaAPIAccount* self);
VALA_EXTERN const gchar* tuba_api_account_get_username (TubaAPIAccount* self);
VALA_EXTERN const gchar* tuba_api_collection_get_name (TubaAPICollection* self);
VALA_EXTERN const gchar* tuba_api_collection_get_id (TubaAPICollection* self);
static void tuba_dialogs_report_populate_posts (TubaDialogsReport* self,
                                         const gchar* account_id,
                                         const gchar* status_id,
                                         GAsyncReadyCallback _callback_,
                                         gpointer _user_data_);
static void tuba_dialogs_report_populate_posts_finish (TubaDialogsReport* self,
                                                GAsyncResult* _res_);
VALA_EXTERN const gchar* tuba_api_account_get_id (TubaAPIAccount* self);
static void tuba_dialogs_report_install_page_1 (TubaDialogsReport* self);
static void tuba_dialogs_report_install_page_2 (TubaDialogsReport* self);
static void tuba_dialogs_report_install_page_3 (TubaDialogsReport* self);
static void tuba_dialogs_report_install_page_4 (TubaDialogsReport* self,
                                         GeeArrayList* mentions);
VALA_EXTERN GType tuba_application_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaApplication, 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 TubaDialogsMainWindow* tuba_application_get_main_window (TubaApplication* self);
static void tuba_dialogs_report_on_category_set (TubaDialogsReport* self);
static void _tuba_dialogs_report_on_category_set_gtk_check_button_toggled (GtkCheckButton* _sender,
                                                                    gpointer self);
VALA_EXTERN GType tuba_api_instance_rule_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIInstanceRule, 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_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 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 GeeArrayList* tuba_api_instance_get_rules (TubaAPIInstance* self);
static void tuba_dialogs_report_on_rule_set (TubaDialogsReport* self);
static void _tuba_dialogs_report_on_rule_set_gtk_check_button_toggled (GtkCheckButton* _sender,
                                                                gpointer self);
VALA_EXTERN const gchar* tuba_api_instance_rule_get_id (TubaAPIInstanceRule* self);
VALA_EXTERN const gchar* tuba_api_instance_rule_get_text (TubaAPIInstanceRule* self);
static Block33Data* block33_data_ref (Block33Data* _data33_);
static void block33_data_unref (void * _userdata_);
static void tuba_dialogs_report_on_additional_info_changed (TubaDialogsReport* self);
static void _tuba_dialogs_report_on_additional_info_changed_gtk_editable_changed (GtkEditable* _sender,
                                                                           gpointer self);
static inline void tuba_dialogs_report_add_forward_row (TubaDialogsReport* self,
                                          const gchar* temp_domain,
                                          AdwPreferencesGroup* group,
                                          gboolean active);
VALA_EXTERN GType tuba_api_instance_v2_api_versions_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIInstanceV2APIVersions, g_object_unref)
VALA_EXTERN TubaAPIInstanceV2APIVersions* tuba_instance_account_get_tuba_api_versions (TubaInstanceAccount* self);
VALA_EXTERN gint8 tuba_api_instance_v2_api_versions_get_mastodon (TubaAPIInstanceV2APIVersions* self);
static gboolean ___lambda129_ (Block33Data* _data33_,
                        TubaAPIMention* mention);
VALA_EXTERN const gchar* tuba_api_mention_get_acct (TubaAPIMention* self);
static gboolean ____lambda129__gee_forall_func (gpointer g,
                                         gpointer self);
static void tuba_dialogs_report_on_back (TubaDialogsReport* self);
static void tuba_dialogs_report_on_next (TubaDialogsReport* self);
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 GType tuba_application_question_answer_get_type (void) G_GNUC_CONST ;
VALA_EXTERN TubaApplicationQuestionAnswer tuba_application_question_finish (TubaApplication* self,
                                                                GAsyncResult* _res_);
static void ___lambda130_ (TubaDialogsReport* self,
                    GObject* obj,
                    GAsyncResult* res);
VALA_EXTERN gboolean tuba_application_question_answer_truthy (TubaApplicationQuestionAnswer self);
static void tuba_dialogs_report_submit (TubaDialogsReport* self,
                                 GAsyncReadyCallback _callback_,
                                 gpointer _user_data_);
static void tuba_dialogs_report_submit_finish (TubaDialogsReport* self,
                                        GAsyncResult* _res_);
static void ____lambda130__gasync_ready_callback (GObject* source_object,
                                           GAsyncResult* res,
                                           gpointer self);
static void tuba_dialogs_report_submit_data_free (gpointer _data);
static gboolean tuba_dialogs_report_submit_co (TubaDialogsReportSubmitData* _data_);
VALA_EXTERN GType tuba_request_v2_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaRequestV2, g_object_unref)
static Block34Data* block34_data_ref (Block34Data* _data34_);
static void block34_data_unref (void * _userdata_);
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);
VALA_EXTERN void tuba_request_v2_set_account (TubaRequestV2* self,
                                  TubaInstanceAccount* value);
VALA_EXTERN void tuba_request_v2_add_form_data (TubaRequestV2* self,
                                    const gchar* name,
                                    const gchar* val);
static Block35Data* block35_data_ref (Block35Data* _data35_);
static void block35_data_unref (void * _userdata_);
static gboolean ___lambda131_ (Block35Data* _data35_,
                        GeeMapEntry* e);
static gboolean ____lambda131__gee_forall_func (gpointer g,
                                         gpointer self);
static gboolean __lambda132_ (Block34Data* _data34_,
                       GeeMapEntry* e);
static gboolean ___lambda132__gee_forall_func (gpointer g,
                                        gpointer self);
static gboolean ___lambda133_ (Block34Data* _data34_,
                        GeeMapEntry* e);
static gboolean ____lambda133__gee_forall_func (gpointer g,
                                         gpointer self);
static gboolean __lambda134_ (Block34Data* _data34_,
                       GeeMapEntry* e);
static gboolean ___lambda134__gee_forall_func (gpointer g,
                                        gpointer self);
VALA_EXTERN void tuba_request_v2_exec (TubaRequestV2* self,
                           GAsyncReadyCallback _callback_,
                           gpointer _user_data_);
VALA_EXTERN GQuark tuba_oopsie_quark (void);
VALA_EXTERN GType tuba_oopsie_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GInputStream* tuba_request_v2_exec_finish (TubaRequestV2* self,
                                           GAsyncResult* _res_,
                                           SoupMessageHeaders** response_headers,
                                           GError** error);
static void tuba_dialogs_report_submit_ready (GObject* source_object,
                                       GAsyncResult* _res_,
                                       gpointer _user_data_);
static void tuba_dialogs_report_on_position_change (TubaDialogsReport* self);
static void tuba_dialogs_report_populate_posts_data_free (gpointer _data);
static gboolean tuba_dialogs_report_populate_posts_co (TubaDialogsReportPopulatePostsData* _data_);
static Block36Data* block36_data_ref (Block36Data* _data36_);
static void block36_data_unref (void * _userdata_);
VALA_EXTERN void tuba_request_v2_add_parameter (TubaRequestV2* self,
                                    const gchar* key,
                                    const gchar* value);
static Block37Data* block37_data_ref (Block37Data* _data37_);
static void block37_data_unref (void * _userdata_);
static void tuba_dialogs_report_populate_posts_ready (GObject* source_object,
                                               GAsyncResult* _res_,
                                               gpointer _user_data_);
static void tuba_dialogs_report_on_row_activated (TubaDialogsReport* self,
                                           GtkListBoxRow* row);
static void _tuba_dialogs_report_on_row_activated_gtk_list_box_row_activated (GtkListBox* _sender,
                                                                       GtkListBoxRow* row,
                                                                       gpointer self);
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 ___lambda126_ (Block37Data* _data37_,
                    JsonNode* node,
                    GError** error);
VALA_EXTERN GType tuba_api_status_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIStatus, g_object_unref)
VALA_EXTERN TubaAPIStatus* tuba_api_status_from (JsonNode* node,
                                     GError** error);
VALA_EXTERN const gchar* tuba_api_status_get_id (TubaAPIStatus* self);
VALA_EXTERN void tuba_api_status_set_spoiler_text (TubaAPIStatus* self,
                                       const gchar* value);
VALA_EXTERN void tuba_api_status_set_tuba_spoiler_revealed (TubaAPIStatus* self,
                                                gboolean value);
VALA_EXTERN void tuba_api_status_set_sensitive (TubaAPIStatus* self,
                                    gboolean value);
VALA_EXTERN GType tuba_api_preview_card_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIPreviewCard, g_object_unref)
VALA_EXTERN void tuba_api_status_set_card (TubaAPIStatus* self,
                               TubaAPIPreviewCard* value);
VALA_EXTERN GType tuba_widgets_status_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsStatus, g_object_unref)
VALA_EXTERN GType tuba_widgetizable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetizable, g_object_unref)
VALA_EXTERN GtkWidget* tuba_widgetizable_to_widget (TubaWidgetizable* self);
VALA_EXTERN GType tuba_widgets_rich_label_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsRichLabel, g_object_unref)
VALA_EXTERN GType tuba_widgets_avatar_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsAvatar, g_object_unref)
VALA_EXTERN GType tuba_widgets_markup_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsMarkupView, g_object_unref)
VALA_EXTERN GType tuba_widgets_fade_bin_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsFadeBin, g_object_unref)
VALA_EXTERN GType tuba_widgets_preview_card_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsPreviewCard, g_object_unref)
VALA_EXTERN GType tuba_widgets_vote_box_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetsVoteBox, g_object_unref)
VALA_EXTERN void tuba_widgets_status_toggle_actions_visibility (TubaWidgetsStatus* self,
                                                    gboolean visible);
static TubaDialogsReportStatusRow* tuba_dialogs_report_status_row_new (GtkCheckButton* btn,
                                                                TubaWidgetsStatus* widget_status);
static TubaDialogsReportStatusRow* tuba_dialogs_report_status_row_construct (GType object_type,
                                                                      GtkCheckButton* btn,
                                                                      TubaWidgetsStatus* widget_status);
static GType tuba_dialogs_report_status_row_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaDialogsReportStatusRow, g_object_unref)
static void ____lambda126__tuba_network_node_callback (JsonNode* node,
                                                gpointer self,
                                                GError** error);
static void tuba_dialogs_report_status_row_toggle (TubaDialogsReportStatusRow* self);
static gboolean __lambda127_ (TubaDialogsReport* self,
                       GeeMapEntry* e);
static gboolean ___lambda127__gee_forall_func (gpointer g,
                                        gpointer self);
static gboolean __lambda128_ (TubaDialogsReport* self,
                       GeeMapEntry* e);
static gboolean ___lambda128__gee_forall_func (gpointer g,
                                        gpointer self);
static void tuba_dialogs_report_status_row_set_check_button (TubaDialogsReportStatusRow* self,
                                                      GtkCheckButton* value);
static GtkCheckButton* tuba_dialogs_report_status_row_get_check_button (TubaDialogsReportStatusRow* self);
static void tuba_dialogs_report_status_row_finalize (GObject * obj);
static GType tuba_dialogs_report_status_row_get_type_once (void);
static void _vala_tuba_dialogs_report_status_row_get_property (GObject * object,
                                                        guint property_id,
                                                        GValue * value,
                                                        GParamSpec * pspec);
static void _vala_tuba_dialogs_report_status_row_set_property (GObject * object,
                                                        guint property_id,
                                                        const GValue * value,
                                                        GParamSpec * pspec);
static GObject * tuba_dialogs_report_constructor (GType type,
                                           guint n_construct_properties,
                                           GObjectConstructParam * construct_properties);
static void _vala_array_add36 (TubaDialogsReportCategory* * array,
                        gint* length,
                        gint* size,
                        TubaDialogsReportCategory value);
static void _vala_array_add37 (TubaDialogsReportCategory* * array,
                        gint* length,
                        gint* size,
                        TubaDialogsReportCategory value);
static void _tuba_dialogs_report_on_back_gtk_button_clicked (GtkButton* _sender,
                                                      gpointer self);
static void _tuba_dialogs_report_on_next_gtk_button_clicked (GtkButton* _sender,
                                                      gpointer self);
static void _tuba_dialogs_report_on_position_change_g_object_notify (GObject* _sender,
                                                              GParamSpec* pspec,
                                                              gpointer self);
static void _tuba_dialogs_report_on_back_adw_dialog_close_attempt (AdwDialog* _sender,
                                                            gpointer self);
static void tuba_dialogs_report_finalize (GObject * obj);
static GType tuba_dialogs_report_get_type_once (void);
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);

static inline gpointer
tuba_dialogs_report_get_instance_private (TubaDialogsReport* self)
{
	return G_STRUCT_MEMBER_P (self, TubaDialogsReport_private_offset);
}

static gchar*
tuba_dialogs_report_category_to_string (TubaDialogsReportCategory self)
{
	gchar* result;
	switch (self) {
		case TUBA_DIALOGS_REPORT_CATEGORY_SPAM:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup ("spam");
			result = _tmp0_;
			return result;
		}
		case TUBA_DIALOGS_REPORT_CATEGORY_VIOLATION:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup ("violation");
			result = _tmp1_;
			return result;
		}
		case TUBA_DIALOGS_REPORT_CATEGORY_OTHER:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup ("other");
			result = _tmp2_;
			return result;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
}

static gchar*
tuba_dialogs_report_category_to_title (TubaDialogsReportCategory self)
{
	gchar* result;
	switch (self) {
		case TUBA_DIALOGS_REPORT_CATEGORY_SPAM:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup (_ ("It's spam"));
			result = _tmp0_;
			return result;
		}
		case TUBA_DIALOGS_REPORT_CATEGORY_VIOLATION:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup (_ ("It violates server rules"));
			result = _tmp1_;
			return result;
		}
		case TUBA_DIALOGS_REPORT_CATEGORY_OTHER:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup (_ ("It's something else"));
			result = _tmp2_;
			return result;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
}

static gchar*
tuba_dialogs_report_category_to_description (TubaDialogsReportCategory self)
{
	gchar* result;
	switch (self) {
		case TUBA_DIALOGS_REPORT_CATEGORY_SPAM:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup (_ ("Malicious links, fake engagement, or repetitive replies"));
			result = _tmp0_;
			return result;
		}
		case TUBA_DIALOGS_REPORT_CATEGORY_VIOLATION:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup (_ ("You are aware that it breaks specific rules"));
			result = _tmp1_;
			return result;
		}
		case TUBA_DIALOGS_REPORT_CATEGORY_OTHER:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup (_ ("The issue does not fit into other categories"));
			result = _tmp2_;
			return result;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
}

 G_GNUC_NO_INLINE static GType
tuba_dialogs_report_category_get_type_once (void)
{
	static const GEnumValue values[] = {{TUBA_DIALOGS_REPORT_CATEGORY_SPAM, "TUBA_DIALOGS_REPORT_CATEGORY_SPAM", "spam"}, {TUBA_DIALOGS_REPORT_CATEGORY_VIOLATION, "TUBA_DIALOGS_REPORT_CATEGORY_VIOLATION", "violation"}, {TUBA_DIALOGS_REPORT_CATEGORY_OTHER, "TUBA_DIALOGS_REPORT_CATEGORY_OTHER", "other"}, {0, NULL, NULL}};
	GType tuba_dialogs_report_category_type_id;
	tuba_dialogs_report_category_type_id = g_enum_register_static ("TubaDialogsReportCategory", values);
	return tuba_dialogs_report_category_type_id;
}

static GType
tuba_dialogs_report_category_get_type (void)
{
	static GType tuba_dialogs_report_category_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_dialogs_report_category_type_id__once)) {
		GType tuba_dialogs_report_category_type_id;
		tuba_dialogs_report_category_type_id = tuba_dialogs_report_category_get_type_once ();
		g_once_init_leave_pointer (&tuba_dialogs_report_category_type_id__once, tuba_dialogs_report_category_type_id);
	}
	return tuba_dialogs_report_category_type_id__once;
}

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

TubaDialogsReport*
tuba_dialogs_report_construct (GType object_type,
                               TubaAPIAccount* account,
                               const gchar* status_id,
                               GeeArrayList* mentions,
                               TubaAPICollection* collection)
{
	TubaDialogsReport * self = NULL;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_ = NULL;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	const gchar* _tmp20_;
	const gchar* _tmp21_;
	gchar* _tmp22_;
	TubaApplication* _tmp23_;
	TubaDialogsMainWindow* _tmp24_;
	TubaDialogsMainWindow* _tmp25_;
	g_return_val_if_fail (account != NULL, NULL);
	self = (TubaDialogsReport*) g_object_new (object_type, NULL);
	_tmp0_ = tuba_api_account_get_domain (account);
	_tmp1_ = _tmp0_;
	_g_free0 (self->priv->account_domain);
	self->priv->account_domain = _tmp1_;
	if (collection == NULL) {
		const gchar* _tmp3_;
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		const gchar* _tmp6_;
		const gchar* _tmp7_;
		gchar* _tmp8_;
		_tmp3_ = tuba_api_account_get_username (account);
		_tmp4_ = _tmp3_;
		_tmp5_ = string_to_string (_tmp4_);
		_tmp6_ = self->priv->account_domain;
		_tmp7_ = string_to_string (_tmp6_);
		_tmp8_ = g_strconcat (_tmp5_, "@", _tmp7_, NULL);
		_g_free0 (_tmp2_);
		_tmp2_ = _tmp8_;
	} else {
		const gchar* _tmp9_;
		const gchar* _tmp10_;
		gchar* _tmp11_;
		_tmp9_ = tuba_api_collection_get_name (collection);
		_tmp10_ = _tmp9_;
		_tmp11_ = g_strdup (_tmp10_);
		_g_free0 (_tmp2_);
		_tmp2_ = _tmp11_;
	}
	_tmp12_ = g_strdup_printf (_ ("Reporting %s"), _tmp2_);
	_tmp13_ = _tmp12_;
	adw_dialog_set_title ((AdwDialog*) self, _tmp13_);
	_g_free0 (_tmp13_);
	_tmp14_ = g_strdup (status_id);
	_g_free0 (self->priv->status_id);
	self->priv->status_id = _tmp14_;
	if (collection != NULL) {
		const gchar* _tmp15_;
		const gchar* _tmp16_;
		gchar* _tmp17_;
		_tmp15_ = tuba_api_collection_get_id (collection);
		_tmp16_ = _tmp15_;
		_tmp17_ = g_strdup (_tmp16_);
		_g_free0 (self->priv->collection_id);
		self->priv->collection_id = _tmp17_;
	} else {
		const gchar* _tmp18_;
		const gchar* _tmp19_;
		_tmp18_ = tuba_api_account_get_id (account);
		_tmp19_ = _tmp18_;
		tuba_dialogs_report_populate_posts (self, _tmp19_, status_id, NULL, NULL);
	}
	_tmp20_ = tuba_api_account_get_id (account);
	_tmp21_ = _tmp20_;
	_tmp22_ = g_strdup (_tmp21_);
	_g_free0 (self->priv->account_id);
	self->priv->account_id = _tmp22_;
	tuba_dialogs_report_install_page_1 (self);
	if (self->priv->has_rules) {
		tuba_dialogs_report_install_page_2 (self);
	}
	if (collection == NULL) {
		tuba_dialogs_report_install_page_3 (self);
	}
	tuba_dialogs_report_install_page_4 (self, mentions);
	_tmp23_ = tuba_app;
	_tmp24_ = tuba_application_get_main_window (_tmp23_);
	_tmp25_ = _tmp24_;
	adw_dialog_present ((AdwDialog*) self, (GtkWidget*) _tmp25_);
	_g_free0 (_tmp2_);
	return self;
}

TubaDialogsReport*
tuba_dialogs_report_new (TubaAPIAccount* account,
                         const gchar* status_id,
                         GeeArrayList* mentions,
                         TubaAPICollection* collection)
{
	return tuba_dialogs_report_construct (TUBA_DIALOGS_TYPE_REPORT, account, status_id, mentions, collection);
}

static void
_tuba_dialogs_report_on_category_set_gtk_check_button_toggled (GtkCheckButton* _sender,
                                                               gpointer self)
{
	tuba_dialogs_report_on_category_set ((TubaDialogsReport*) self);
}

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

static void
tuba_dialogs_report_install_page_1 (TubaDialogsReport* self)
{
	AdwPreferencesPage* page_1 = NULL;
	AdwPreferencesPage* _tmp0_ = NULL;
	AdwPreferencesGroup* group_1 = NULL;
	AdwPreferencesGroup* _tmp1_;
	const gchar* _tmp2_;
	AdwPreferencesGroup* _tmp7_;
	GtkCheckButton* group = NULL;
	TubaDialogsReportCategory* _tmp8_;
	gint _tmp8__length1;
	AdwPreferencesPage* _tmp29_;
	AdwPreferencesGroup* _tmp30_;
	AdwCarousel* _tmp31_;
	AdwPreferencesPage* _tmp32_;
	g_return_if_fail (self != NULL);
	_tmp0_ = (AdwPreferencesPage*) adw_preferences_page_new ();
	gtk_widget_set_hexpand ((GtkWidget*) _tmp0_, TRUE);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp0_, TRUE);
	gtk_widget_set_valign ((GtkWidget*) _tmp0_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp0_);
	page_1 = _tmp0_;
	_tmp1_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp1_);
	group_1 = _tmp1_;
	_tmp2_ = self->priv->collection_id;
	if (_tmp2_ != NULL) {
		AdwPreferencesGroup* _tmp3_;
		_tmp3_ = group_1;
		adw_preferences_group_set_title (_tmp3_, _ ("Tell us what's going on with this collection"));
	} else {
		const gchar* _tmp4_;
		_tmp4_ = self->priv->status_id;
		if (_tmp4_ == NULL) {
			AdwPreferencesGroup* _tmp5_;
			_tmp5_ = group_1;
			adw_preferences_group_set_title (_tmp5_, _ ("Tell us what's going on with this account"));
		} else {
			AdwPreferencesGroup* _tmp6_;
			_tmp6_ = group_1;
			adw_preferences_group_set_title (_tmp6_, _ ("Tell us what's going on with this post"));
		}
	}
	_tmp7_ = group_1;
	adw_preferences_group_set_description (_tmp7_, _ ("Choose the best match"));
	group = NULL;
	_tmp8_ = self->priv->categories;
	_tmp8__length1 = self->priv->categories_length1;
	{
		TubaDialogsReportCategory* category_collection = NULL;
		gint category_collection_length1 = 0;
		gint _category_collection_size_ = 0;
		gint category_it = 0;
		category_collection = _tmp8_;
		category_collection_length1 = _tmp8__length1;
		for (category_it = 0; category_it < category_collection_length1; category_it = category_it + 1) {
			TubaDialogsReportCategory category = 0;
			category = category_collection[category_it];
			{
				GtkCheckButton* checkbutton = NULL;
				gchar* _tmp9_;
				gchar** _tmp10_;
				GtkCheckButton* _tmp11_ = NULL;
				GtkCheckButton* _tmp12_;
				GeeHashMap* _tmp13_;
				GtkCheckButton* _tmp14_;
				GtkCheckButton* _tmp15_;
				AdwActionRow* category_row = NULL;
				gchar* _tmp20_;
				gchar* _tmp21_;
				GtkCheckButton* _tmp22_;
				GtkWidget* _tmp23_;
				AdwActionRow* _tmp24_ = NULL;
				AdwActionRow* _tmp25_;
				GtkCheckButton* _tmp26_;
				AdwPreferencesGroup* _tmp27_;
				AdwActionRow* _tmp28_;
				_tmp9_ = g_strdup ("selection-mode");
				_tmp10_ = g_new0 (gchar*, 1 + 1);
				_tmp10_[0] = _tmp9_;
				_tmp11_ = (GtkCheckButton*) gtk_check_button_new ();
				gtk_widget_set_css_classes ((GtkWidget*) _tmp11_, _tmp10_);
				_tmp10_ = (_vala_array_free (_tmp10_, 1, (GDestroyNotify) g_free), NULL);
				g_object_ref_sink (_tmp11_);
				checkbutton = _tmp11_;
				_tmp12_ = checkbutton;
				g_signal_connect_object (_tmp12_, "toggled", (GCallback) _tuba_dialogs_report_on_category_set_gtk_check_button_toggled, self, 0);
				_tmp13_ = self->priv->check_buttons;
				_tmp14_ = checkbutton;
				gee_abstract_map_set ((GeeAbstractMap*) _tmp13_, (gpointer) ((gintptr) category), _tmp14_);
				_tmp15_ = group;
				if (_tmp15_ != NULL) {
					GtkCheckButton* _tmp16_;
					GtkCheckButton* _tmp17_;
					_tmp16_ = checkbutton;
					_tmp17_ = group;
					gtk_check_button_set_group (_tmp16_, _tmp17_);
				} else {
					GtkCheckButton* _tmp18_;
					GtkCheckButton* _tmp19_;
					_tmp18_ = checkbutton;
					_tmp19_ = _g_object_ref0 (_tmp18_);
					_g_object_unref0 (group);
					group = _tmp19_;
				}
				_tmp20_ = tuba_dialogs_report_category_to_title (category);
				_tmp21_ = tuba_dialogs_report_category_to_description (category);
				_tmp22_ = checkbutton;
				_tmp23_ = _g_object_ref0 ((GtkWidget*) _tmp22_);
				_tmp24_ = (AdwActionRow*) adw_action_row_new ();
				adw_preferences_row_set_title ((AdwPreferencesRow*) _tmp24_, _tmp20_);
				_g_free0 (_tmp20_);
				adw_action_row_set_subtitle (_tmp24_, _tmp21_);
				_g_free0 (_tmp21_);
				adw_action_row_set_activatable_widget (_tmp24_, _tmp23_);
				_g_object_unref0 (_tmp23_);
				adw_preferences_row_set_use_markup ((AdwPreferencesRow*) _tmp24_, FALSE);
				g_object_ref_sink (_tmp24_);
				category_row = _tmp24_;
				_tmp25_ = category_row;
				_tmp26_ = checkbutton;
				adw_action_row_add_prefix (_tmp25_, (GtkWidget*) _tmp26_);
				_tmp27_ = group_1;
				_tmp28_ = category_row;
				adw_preferences_group_add (_tmp27_, (GtkWidget*) _tmp28_);
				_g_object_unref0 (category_row);
				_g_object_unref0 (checkbutton);
			}
		}
	}
	_tmp29_ = page_1;
	_tmp30_ = group_1;
	adw_preferences_page_add (_tmp29_, _tmp30_);
	_tmp31_ = self->priv->carousel;
	_tmp32_ = page_1;
	adw_carousel_append (_tmp31_, (GtkWidget*) _tmp32_);
	_g_object_unref0 (group);
	_g_object_unref0 (group_1);
	_g_object_unref0 (page_1);
}

static void
_tuba_dialogs_report_on_rule_set_gtk_check_button_toggled (GtkCheckButton* _sender,
                                                           gpointer self)
{
	tuba_dialogs_report_on_rule_set ((TubaDialogsReport*) self);
}

static gchar*
string_strip (const gchar* self)
{
	gchar* _result_ = NULL;
	gchar* _tmp0_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_strdup (self);
	_result_ = _tmp0_;
	g_strstrip (_result_);
	result = _result_;
	return result;
}

static void
tuba_dialogs_report_install_page_2 (TubaDialogsReport* self)
{
	AdwPreferencesPage* _tmp0_ = NULL;
	AdwPreferencesGroup* group_2 = NULL;
	gchar* _tmp1_;
	AdwPreferencesGroup* _tmp2_ = NULL;
	AdwPreferencesGroup* _tmp3_;
	AdwPreferencesPage* _tmp41_;
	AdwPreferencesGroup* _tmp42_;
	AdwCarousel* _tmp43_;
	AdwPreferencesPage* _tmp44_;
	g_return_if_fail (self != NULL);
	_tmp0_ = (AdwPreferencesPage*) adw_preferences_page_new ();
	gtk_widget_set_hexpand ((GtkWidget*) _tmp0_, TRUE);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp0_, TRUE);
	gtk_widget_set_valign ((GtkWidget*) _tmp0_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->page_2);
	self->priv->page_2 = _tmp0_;
	_tmp1_ = g_strdup (_ ("Which rules are being violated?"));
	_tmp2_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	adw_preferences_group_set_title (_tmp2_, _tmp1_);
	_g_free0 (_tmp1_);
	g_object_ref_sink (_tmp2_);
	group_2 = _tmp2_;
	_tmp3_ = group_2;
	adw_preferences_group_set_description (_tmp3_, _ ("Select all that apply"));
	{
		GeeArrayList* _rule_list = NULL;
		TubaAccountStore* _tmp4_;
		TubaInstanceAccount* _tmp5_;
		TubaInstanceAccount* _tmp6_;
		TubaAPIInstance* _tmp7_;
		TubaAPIInstance* _tmp8_;
		GeeArrayList* _tmp9_;
		GeeArrayList* _tmp10_;
		gint _rule_size = 0;
		GeeArrayList* _tmp11_;
		gint _tmp12_;
		gint _tmp13_;
		gint _rule_index = 0;
		_tmp4_ = tuba_accounts;
		_tmp5_ = tuba_account_store_get_active (_tmp4_);
		_tmp6_ = _tmp5_;
		_tmp7_ = tuba_instance_account_get_instance_info (_tmp6_);
		_tmp8_ = _tmp7_;
		_tmp9_ = tuba_api_instance_get_rules (_tmp8_);
		_tmp10_ = _tmp9_;
		_rule_list = _tmp10_;
		_tmp11_ = _rule_list;
		_tmp12_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp11_);
		_tmp13_ = _tmp12_;
		_rule_size = _tmp13_;
		_rule_index = -1;
		while (TRUE) {
			gint _tmp14_;
			gint _tmp15_;
			TubaAPIInstanceRule* rule = NULL;
			GeeArrayList* _tmp16_;
			gpointer _tmp17_;
			GtkCheckButton* checkbutton = NULL;
			gchar* _tmp18_;
			gchar** _tmp19_;
			GtkCheckButton* _tmp20_ = NULL;
			GtkCheckButton* _tmp21_;
			GeeHashMap* _tmp22_;
			TubaAPIInstanceRule* _tmp23_;
			const gchar* _tmp24_;
			const gchar* _tmp25_;
			GtkCheckButton* _tmp26_;
			AdwActionRow* rule_row = NULL;
			TubaAPIInstanceRule* _tmp27_;
			const gchar* _tmp28_;
			const gchar* _tmp29_;
			gchar* _tmp30_;
			gchar* _tmp31_;
			gchar* _tmp32_;
			GtkCheckButton* _tmp33_;
			GtkWidget* _tmp34_;
			AdwActionRow* _tmp35_ = NULL;
			AdwActionRow* _tmp36_;
			AdwActionRow* _tmp37_;
			GtkCheckButton* _tmp38_;
			AdwPreferencesGroup* _tmp39_;
			AdwActionRow* _tmp40_;
			_rule_index = _rule_index + 1;
			_tmp14_ = _rule_index;
			_tmp15_ = _rule_size;
			if (!(_tmp14_ < _tmp15_)) {
				break;
			}
			_tmp16_ = _rule_list;
			_tmp17_ = gee_abstract_list_get ((GeeAbstractList*) _tmp16_, _rule_index);
			rule = (TubaAPIInstanceRule*) _tmp17_;
			_tmp18_ = g_strdup ("selection-mode");
			_tmp19_ = g_new0 (gchar*, 1 + 1);
			_tmp19_[0] = _tmp18_;
			_tmp20_ = (GtkCheckButton*) gtk_check_button_new ();
			gtk_widget_set_css_classes ((GtkWidget*) _tmp20_, _tmp19_);
			_tmp19_ = (_vala_array_free (_tmp19_, 1, (GDestroyNotify) g_free), NULL);
			g_object_ref_sink (_tmp20_);
			checkbutton = _tmp20_;
			_tmp21_ = checkbutton;
			g_signal_connect_object (_tmp21_, "toggled", (GCallback) _tuba_dialogs_report_on_rule_set_gtk_check_button_toggled, self, 0);
			_tmp22_ = self->priv->rules_buttons;
			_tmp23_ = rule;
			_tmp24_ = tuba_api_instance_rule_get_id (_tmp23_);
			_tmp25_ = _tmp24_;
			_tmp26_ = checkbutton;
			gee_abstract_map_set ((GeeAbstractMap*) _tmp22_, _tmp25_, _tmp26_);
			_tmp27_ = rule;
			_tmp28_ = tuba_api_instance_rule_get_text (_tmp27_);
			_tmp29_ = _tmp28_;
			_tmp30_ = g_markup_escape_text (_tmp29_, (gssize) -1);
			_tmp31_ = _tmp30_;
			_tmp32_ = string_strip (_tmp31_);
			_tmp33_ = checkbutton;
			_tmp34_ = _g_object_ref0 ((GtkWidget*) _tmp33_);
			_tmp35_ = (AdwActionRow*) adw_action_row_new ();
			adw_preferences_row_set_title ((AdwPreferencesRow*) _tmp35_, _tmp32_);
			_g_free0 (_tmp32_);
			adw_action_row_set_activatable_widget (_tmp35_, _tmp34_);
			_g_object_unref0 (_tmp34_);
			adw_preferences_row_set_use_markup ((AdwPreferencesRow*) _tmp35_, TRUE);
			g_object_ref_sink (_tmp35_);
			_tmp36_ = _tmp35_;
			_g_free0 (_tmp31_);
			rule_row = _tmp36_;
			_tmp37_ = rule_row;
			_tmp38_ = checkbutton;
			adw_action_row_add_prefix (_tmp37_, (GtkWidget*) _tmp38_);
			_tmp39_ = group_2;
			_tmp40_ = rule_row;
			adw_preferences_group_add (_tmp39_, (GtkWidget*) _tmp40_);
			_g_object_unref0 (rule_row);
			_g_object_unref0 (checkbutton);
			_g_object_unref0 (rule);
		}
	}
	_tmp41_ = self->priv->page_2;
	_tmp42_ = group_2;
	adw_preferences_page_add (_tmp41_, _tmp42_);
	_tmp43_ = self->priv->carousel;
	_tmp44_ = self->priv->page_2;
	adw_carousel_append (_tmp43_, (GtkWidget*) _tmp44_);
	_g_object_unref0 (group_2);
}

static void
tuba_dialogs_report_install_page_3 (TubaDialogsReport* self)
{
	AdwPreferencesPage* _tmp0_ = NULL;
	gchar* _tmp1_;
	AdwStatusPage* _tmp2_ = NULL;
	GtkStack* _tmp3_ = NULL;
	GtkStack* _tmp4_;
	AdwSpinner* _tmp5_ = NULL;
	AdwSpinner* _tmp6_;
	GtkStack* _tmp7_;
	AdwPreferencesPage* _tmp8_;
	GtkStack* _tmp9_;
	AdwStatusPage* _tmp10_;
	AdwPreferencesGroup* _tmp11_;
	const gchar* _tmp12_;
	AdwPreferencesGroup* _tmp15_;
	AdwPreferencesPage* _tmp16_;
	AdwPreferencesGroup* _tmp17_;
	AdwCarousel* _tmp18_;
	GtkStack* _tmp19_;
	g_return_if_fail (self != NULL);
	_tmp0_ = (AdwPreferencesPage*) adw_preferences_page_new ();
	gtk_widget_set_hexpand ((GtkWidget*) _tmp0_, TRUE);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp0_, TRUE);
	g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->page_3);
	self->priv->page_3 = _tmp0_;
	_tmp1_ = g_strdup (_ ("Couldn't fetch all user's posts"));
	_tmp2_ = (AdwStatusPage*) adw_status_page_new ();
	gtk_widget_set_vexpand ((GtkWidget*) _tmp2_, TRUE);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp2_, TRUE);
	adw_status_page_set_title (_tmp2_, _tmp1_);
	_g_free0 (_tmp1_);
	g_object_ref_sink (_tmp2_);
	_g_object_unref0 (self->priv->page_3_error);
	self->priv->page_3_error = _tmp2_;
	_tmp3_ = (GtkStack*) gtk_stack_new ();
	gtk_widget_set_vexpand ((GtkWidget*) _tmp3_, TRUE);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp3_, TRUE);
	gtk_widget_set_valign ((GtkWidget*) _tmp3_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp3_);
	_g_object_unref0 (self->priv->page_3_stack);
	self->priv->page_3_stack = _tmp3_;
	_tmp4_ = self->priv->page_3_stack;
	_tmp5_ = (AdwSpinner*) adw_spinner_new ();
	gtk_widget_set_halign ((GtkWidget*) _tmp5_, GTK_ALIGN_CENTER);
	gtk_widget_set_valign ((GtkWidget*) _tmp5_, GTK_ALIGN_CENTER);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp5_, TRUE);
	gtk_widget_set_hexpand ((GtkWidget*) _tmp5_, TRUE);
	g_object_set ((GtkWidget*) _tmp5_, "width-request", 32, NULL);
	g_object_set ((GtkWidget*) _tmp5_, "height-request", 32, NULL);
	g_object_ref_sink (_tmp5_);
	_tmp6_ = _tmp5_;
	gtk_stack_add_named (_tmp4_, (GtkWidget*) _tmp6_, "spinner");
	_g_object_unref0 (_tmp6_);
	_tmp7_ = self->priv->page_3_stack;
	_tmp8_ = self->priv->page_3;
	gtk_stack_add_named (_tmp7_, (GtkWidget*) _tmp8_, "main");
	_tmp9_ = self->priv->page_3_stack;
	_tmp10_ = self->priv->page_3_error;
	gtk_stack_add_named (_tmp9_, (GtkWidget*) _tmp10_, "error");
	_tmp11_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	g_object_ref_sink (_tmp11_);
	_g_object_unref0 (self->priv->group_3);
	self->priv->group_3 = _tmp11_;
	_tmp12_ = self->priv->status_id;
	if (_tmp12_ == NULL) {
		AdwPreferencesGroup* _tmp13_;
		_tmp13_ = self->priv->group_3;
		adw_preferences_group_set_title (_tmp13_, _ ("Are there any posts that back up this report?"));
	} else {
		AdwPreferencesGroup* _tmp14_;
		_tmp14_ = self->priv->group_3;
		adw_preferences_group_set_title (_tmp14_, _ ("Are there any other posts that back up this report?"));
	}
	_tmp15_ = self->priv->group_3;
	adw_preferences_group_set_description (_tmp15_, _ ("Select all that apply"));
	_tmp16_ = self->priv->page_3;
	_tmp17_ = self->priv->group_3;
	adw_preferences_page_add (_tmp16_, _tmp17_);
	_tmp18_ = self->priv->carousel;
	_tmp19_ = self->priv->page_3_stack;
	adw_carousel_append (_tmp18_, (GtkWidget*) _tmp19_);
}

static Block33Data*
block33_data_ref (Block33Data* _data33_)
{
	g_atomic_int_inc (&_data33_->_ref_count_);
	return _data33_;
}

static void
block33_data_unref (void * _userdata_)
{
	Block33Data* _data33_;
	_data33_ = (Block33Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data33_->_ref_count_)) {
		TubaDialogsReport* self;
		self = _data33_->self;
		_g_object_unref0 (_data33_->group_4);
		_g_object_unref0 (self);
		g_slice_free (Block33Data, _data33_);
	}
}

static void
_tuba_dialogs_report_on_additional_info_changed_gtk_editable_changed (GtkEditable* _sender,
                                                                      gpointer self)
{
	tuba_dialogs_report_on_additional_info_changed ((TubaDialogsReport*) self);
}

static gboolean
string_contains (const gchar* self,
                 const gchar* needle)
{
	gchar* _tmp0_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (needle != NULL, FALSE);
	_tmp0_ = strstr ((gchar*) self, (gchar*) needle);
	result = _tmp0_ != NULL;
	return result;
}

static gboolean
___lambda129_ (Block33Data* _data33_,
               TubaAPIMention* mention)
{
	TubaDialogsReport* self;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	const gchar* _tmp2_;
	const gchar* _tmp3_;
	gboolean result;
	self = _data33_->self;
	g_return_val_if_fail (mention != NULL, FALSE);
	_tmp2_ = tuba_api_mention_get_acct (mention);
	_tmp3_ = _tmp2_;
	if (_tmp3_ != NULL) {
		const gchar* _tmp4_;
		const gchar* _tmp5_;
		_tmp4_ = tuba_api_mention_get_acct (mention);
		_tmp5_ = _tmp4_;
		_tmp1_ = g_strcmp0 (_tmp5_, "") != 0;
	} else {
		_tmp1_ = FALSE;
	}
	if (_tmp1_) {
		const gchar* _tmp6_;
		const gchar* _tmp7_;
		_tmp6_ = tuba_api_mention_get_acct (mention);
		_tmp7_ = _tmp6_;
		_tmp0_ = string_contains (_tmp7_, "@");
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gchar** acct_parts = NULL;
		const gchar* _tmp8_;
		const gchar* _tmp9_;
		gchar** _tmp10_;
		gchar** _tmp11_;
		gint acct_parts_length1;
		gint _acct_parts_size_;
		gboolean _tmp12_ = FALSE;
		gboolean _tmp13_ = FALSE;
		gboolean _tmp14_ = FALSE;
		gchar** _tmp15_;
		gint _tmp15__length1;
		_tmp8_ = tuba_api_mention_get_acct (mention);
		_tmp9_ = _tmp8_;
		_tmp11_ = _tmp10_ = g_strsplit (_tmp9_, "@", 2);
		acct_parts = _tmp11_;
		acct_parts_length1 = _vala_array_length (_tmp10_);
		_acct_parts_size_ = acct_parts_length1;
		_tmp15_ = acct_parts;
		_tmp15__length1 = acct_parts_length1;
		if (_tmp15__length1 >= 2) {
			gchar** _tmp16_;
			gint _tmp16__length1;
			const gchar* _tmp17_;
			_tmp16_ = acct_parts;
			_tmp16__length1 = acct_parts_length1;
			_tmp17_ = _tmp16_[1];
			_tmp14_ = g_strcmp0 (_tmp17_, "") != 0;
		} else {
			_tmp14_ = FALSE;
		}
		if (_tmp14_) {
			gchar** _tmp18_;
			gint _tmp18__length1;
			const gchar* _tmp19_;
			const gchar* _tmp20_;
			_tmp18_ = acct_parts;
			_tmp18__length1 = acct_parts_length1;
			_tmp19_ = _tmp18_[1];
			_tmp20_ = self->priv->account_domain;
			_tmp13_ = g_strcmp0 (_tmp19_, _tmp20_) != 0;
		} else {
			_tmp13_ = FALSE;
		}
		if (_tmp13_) {
			GeeHashMap* _tmp21_;
			gchar** _tmp22_;
			gint _tmp22__length1;
			const gchar* _tmp23_;
			_tmp21_ = self->priv->forward_switches;
			_tmp22_ = acct_parts;
			_tmp22__length1 = acct_parts_length1;
			_tmp23_ = _tmp22_[1];
			_tmp12_ = !gee_abstract_map_has_key ((GeeAbstractMap*) _tmp21_, _tmp23_);
		} else {
			_tmp12_ = FALSE;
		}
		if (_tmp12_) {
			gchar** _tmp24_;
			gint _tmp24__length1;
			const gchar* _tmp25_;
			AdwPreferencesGroup* _tmp26_;
			_tmp24_ = acct_parts;
			_tmp24__length1 = acct_parts_length1;
			_tmp25_ = _tmp24_[1];
			_tmp26_ = _data33_->group_4;
			tuba_dialogs_report_add_forward_row (self, _tmp25_, _tmp26_, FALSE);
		}
		acct_parts = (_vala_array_free (acct_parts, acct_parts_length1, (GDestroyNotify) g_free), NULL);
	}
	result = TRUE;
	_g_object_unref0 (mention);
	return result;
}

static gboolean
____lambda129__gee_forall_func (gpointer g,
                                gpointer self)
{
	gboolean result;
	result = ___lambda129_ (self, (TubaAPIMention*) g);
	return result;
}

static void
tuba_dialogs_report_install_page_4 (TubaDialogsReport* self,
                                    GeeArrayList* mentions)
{
	Block33Data* _data33_;
	AdwPreferencesPage* _tmp0_ = NULL;
	gchar* _tmp1_;
	AdwPreferencesGroup* _tmp2_ = NULL;
	gchar* _tmp3_;
	AdwEntryRow* _tmp4_ = NULL;
	AdwEntryRow* _tmp5_;
	AdwPreferencesGroup* _tmp6_;
	AdwEntryRow* _tmp7_;
	TubaAccountStore* _tmp8_;
	TubaInstanceAccount* _tmp9_;
	TubaInstanceAccount* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	const gchar* _tmp14_;
	gboolean _tmp15_;
	gboolean _tmp18_ = FALSE;
	gboolean _tmp19_ = FALSE;
	gboolean _tmp20_ = FALSE;
	gboolean _tmp21_ = FALSE;
	TubaAccountStore* _tmp22_;
	TubaInstanceAccount* _tmp23_;
	TubaInstanceAccount* _tmp24_;
	TubaAPIInstanceV2APIVersions* _tmp25_;
	TubaAPIInstanceV2APIVersions* _tmp26_;
	gint8 _tmp27_;
	gint8 _tmp28_;
	AdwPreferencesPage* _tmp33_;
	AdwPreferencesGroup* _tmp34_;
	AdwCarousel* _tmp35_;
	AdwPreferencesPage* _tmp36_;
	g_return_if_fail (self != NULL);
	_data33_ = g_slice_new0 (Block33Data);
	_data33_->_ref_count_ = 1;
	_data33_->self = g_object_ref (self);
	_tmp0_ = (AdwPreferencesPage*) adw_preferences_page_new ();
	gtk_widget_set_hexpand ((GtkWidget*) _tmp0_, TRUE);
	gtk_widget_set_vexpand ((GtkWidget*) _tmp0_, TRUE);
	gtk_widget_set_valign ((GtkWidget*) _tmp0_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp0_);
	_g_object_unref0 (self->priv->page_4);
	self->priv->page_4 = _tmp0_;
	_tmp1_ = g_strdup (_ ("Is there anything else you think we should know?"));
	_tmp2_ = (AdwPreferencesGroup*) adw_preferences_group_new ();
	adw_preferences_group_set_title (_tmp2_, _tmp1_);
	_g_free0 (_tmp1_);
	g_object_ref_sink (_tmp2_);
	_data33_->group_4 = _tmp2_;
	_tmp3_ = g_strdup (_ ("Additional Comments"));
	_tmp4_ = (AdwEntryRow*) adw_entry_row_new ();
	adw_preferences_row_set_title ((AdwPreferencesRow*) _tmp4_, _tmp3_);
	_g_free0 (_tmp3_);
	g_object_ref_sink (_tmp4_);
	_g_object_unref0 (self->priv->additional_info);
	self->priv->additional_info = _tmp4_;
	_tmp5_ = self->priv->additional_info;
	g_signal_connect_object ((GtkEditable*) _tmp5_, "changed", (GCallback) _tuba_dialogs_report_on_additional_info_changed_gtk_editable_changed, self, 0);
	_tmp6_ = _data33_->group_4;
	_tmp7_ = self->priv->additional_info;
	adw_preferences_group_add (_tmp6_, (GtkWidget*) _tmp7_);
	_tmp8_ = tuba_accounts;
	_tmp9_ = tuba_account_store_get_active (_tmp8_);
	_tmp10_ = _tmp9_;
	_tmp11_ = tuba_api_account_get_domain ((TubaAPIAccount*) _tmp10_);
	_tmp12_ = _tmp11_;
	_tmp13_ = _tmp12_;
	_tmp14_ = self->priv->account_domain;
	_tmp15_ = g_strcmp0 (_tmp13_, _tmp14_) != 0;
	_g_free0 (_tmp13_);
	if (_tmp15_) {
		const gchar* _tmp16_;
		AdwPreferencesGroup* _tmp17_;
		_tmp16_ = self->priv->account_domain;
		_tmp17_ = _data33_->group_4;
		tuba_dialogs_report_add_forward_row (self, _tmp16_, _tmp17_, TRUE);
	}
	_tmp22_ = tuba_accounts;
	_tmp23_ = tuba_account_store_get_active (_tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = tuba_instance_account_get_tuba_api_versions (_tmp24_);
	_tmp26_ = _tmp25_;
	_tmp27_ = tuba_api_instance_v2_api_versions_get_mastodon (_tmp26_);
	_tmp28_ = _tmp27_;
	if (((gint) _tmp28_) >= 2) {
		const gchar* _tmp29_;
		_tmp29_ = self->priv->status_id;
		_tmp21_ = _tmp29_ != NULL;
	} else {
		_tmp21_ = FALSE;
	}
	if (_tmp21_) {
		const gchar* _tmp30_;
		_tmp30_ = self->priv->status_id;
		_tmp20_ = g_strcmp0 (_tmp30_, "") != 0;
	} else {
		_tmp20_ = FALSE;
	}
	if (_tmp20_) {
		_tmp19_ = mentions != NULL;
	} else {
		_tmp19_ = FALSE;
	}
	if (_tmp19_) {
		gint _tmp31_;
		gint _tmp32_;
		_tmp31_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) mentions);
		_tmp32_ = _tmp31_;
		_tmp18_ = _tmp32_ > 0;
	} else {
		_tmp18_ = FALSE;
	}
	if (_tmp18_) {
		gee_abstract_collection_foreach ((GeeAbstractCollection*) mentions, ____lambda129__gee_forall_func, _data33_);
	}
	_tmp33_ = self->priv->page_4;
	_tmp34_ = _data33_->group_4;
	adw_preferences_page_add (_tmp33_, _tmp34_);
	_tmp35_ = self->priv->carousel;
	_tmp36_ = self->priv->page_4;
	adw_carousel_append (_tmp35_, (GtkWidget*) _tmp36_);
	block33_data_unref (_data33_);
	_data33_ = NULL;
}

static inline void
tuba_dialogs_report_add_forward_row (TubaDialogsReport* self,
                                     const gchar* temp_domain,
                                     AdwPreferencesGroup* group,
                                     gboolean active)
{
	AdwSwitchRow* forward_switch = NULL;
	gchar* _tmp0_;
	AdwSwitchRow* _tmp1_ = NULL;
	GeeHashMap* _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (temp_domain != NULL);
	g_return_if_fail (group != NULL);
	_tmp0_ = g_strdup_printf (_ ("Forward to %s"), temp_domain);
	_tmp1_ = (AdwSwitchRow*) adw_switch_row_new ();
	adw_preferences_row_set_title ((AdwPreferencesRow*) _tmp1_, _tmp0_);
	_g_free0 (_tmp0_);
	adw_switch_row_set_active (_tmp1_, active);
	g_object_ref_sink (_tmp1_);
	forward_switch = _tmp1_;
	adw_preferences_group_add (group, (GtkWidget*) forward_switch);
	_tmp2_ = self->priv->forward_switches;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp2_, temp_domain, forward_switch);
	_g_object_unref0 (forward_switch);
}

static void
tuba_dialogs_report_on_back (TubaDialogsReport* self)
{
	guint car_pos = 0U;
	AdwCarousel* _tmp0_;
	gdouble _tmp1_;
	gdouble _tmp2_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->carousel;
	_tmp1_ = adw_carousel_get_position (_tmp0_);
	_tmp2_ = _tmp1_;
	car_pos = (guint) _tmp2_;
	if (car_pos >= ((guint) 1)) {
		guint pos = 0U;
		GtkWidget* page_to = NULL;
		AdwCarousel* _tmp3_;
		GtkWidget* _tmp4_;
		GtkWidget* _tmp5_;
		GtkButton* _tmp12_;
		AdwCarousel* _tmp13_;
		GtkWidget* _tmp14_;
		pos = car_pos - 1;
		_tmp3_ = self->priv->carousel;
		_tmp4_ = adw_carousel_get_nth_page (_tmp3_, pos);
		_tmp5_ = _g_object_ref0 (_tmp4_);
		page_to = _tmp5_;
		while (TRUE) {
			GtkWidget* _tmp6_;
			gboolean _tmp7_;
			gboolean _tmp8_;
			AdwCarousel* _tmp9_;
			GtkWidget* _tmp10_;
			GtkWidget* _tmp11_;
			_tmp6_ = page_to;
			_tmp7_ = gtk_widget_get_sensitive (_tmp6_);
			_tmp8_ = _tmp7_;
			if (!(_tmp8_ == FALSE)) {
				break;
			}
			pos -= (guint) 1;
			_tmp9_ = self->priv->carousel;
			_tmp10_ = adw_carousel_get_nth_page (_tmp9_, pos);
			_tmp11_ = _g_object_ref0 (_tmp10_);
			_g_object_unref0 (page_to);
			page_to = _tmp11_;
		}
		_tmp12_ = self->priv->next_button;
		gtk_widget_set_sensitive ((GtkWidget*) _tmp12_, TRUE);
		_tmp13_ = self->priv->carousel;
		_tmp14_ = page_to;
		adw_carousel_scroll_to (_tmp13_, _tmp14_, TRUE);
		_g_object_unref0 (page_to);
	} else {
		adw_dialog_force_close ((AdwDialog*) self);
	}
}

static void
___lambda130_ (TubaDialogsReport* self,
               GObject* obj,
               GAsyncResult* res)
{
	TubaApplication* _tmp0_;
	g_return_if_fail (res != NULL);
	_tmp0_ = tuba_app;
	if (tuba_application_question_answer_truthy (tuba_application_question_finish (_tmp0_, res))) {
		tuba_dialogs_report_submit (self, NULL, NULL);
		adw_dialog_force_close ((AdwDialog*) self);
	}
}

static void
____lambda130__gasync_ready_callback (GObject* source_object,
                                      GAsyncResult* res,
                                      gpointer self)
{
	___lambda130_ ((TubaDialogsReport*) self, source_object, res);
	g_object_unref (self);
}

static void
tuba_dialogs_report_on_next (TubaDialogsReport* self)
{
	guint car_pos = 0U;
	AdwCarousel* _tmp0_;
	gdouble _tmp1_;
	gdouble _tmp2_;
	AdwCarousel* _tmp3_;
	guint _tmp4_;
	guint _tmp5_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->carousel;
	_tmp1_ = adw_carousel_get_position (_tmp0_);
	_tmp2_ = _tmp1_;
	car_pos = (guint) _tmp2_;
	_tmp3_ = self->priv->carousel;
	_tmp4_ = adw_carousel_get_n_pages (_tmp3_);
	_tmp5_ = _tmp4_;
	if (car_pos < (_tmp5_ - 1)) {
		guint pos = 0U;
		GtkWidget* page_to = NULL;
		AdwCarousel* _tmp6_;
		GtkWidget* _tmp7_;
		GtkWidget* _tmp8_;
		GtkWidget* _tmp15_;
		AdwPreferencesPage* _tmp16_;
		GtkWidget* _tmp17_;
		AdwPreferencesPage* _tmp18_;
		AdwCarousel* _tmp19_;
		GtkWidget* _tmp20_;
		pos = car_pos + 1;
		_tmp6_ = self->priv->carousel;
		_tmp7_ = adw_carousel_get_nth_page (_tmp6_, pos);
		_tmp8_ = _g_object_ref0 (_tmp7_);
		page_to = _tmp8_;
		while (TRUE) {
			GtkWidget* _tmp9_;
			gboolean _tmp10_;
			gboolean _tmp11_;
			AdwCarousel* _tmp12_;
			GtkWidget* _tmp13_;
			GtkWidget* _tmp14_;
			_tmp9_ = page_to;
			_tmp10_ = gtk_widget_get_sensitive (_tmp9_);
			_tmp11_ = _tmp10_;
			if (!(_tmp11_ == FALSE)) {
				break;
			}
			pos += (guint) 1;
			_tmp12_ = self->priv->carousel;
			_tmp13_ = adw_carousel_get_nth_page (_tmp12_, pos);
			_tmp14_ = _g_object_ref0 (_tmp13_);
			_g_object_unref0 (page_to);
			page_to = _tmp14_;
		}
		_tmp15_ = page_to;
		_tmp16_ = self->priv->page_2;
		if (_tmp15_ == G_TYPE_CHECK_INSTANCE_CAST (_tmp16_, gtk_widget_get_type (), GtkWidget)) {
			tuba_dialogs_report_on_rule_set (self);
		}
		_tmp17_ = page_to;
		_tmp18_ = self->priv->page_4;
		if (_tmp17_ == G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, gtk_widget_get_type (), GtkWidget)) {
			tuba_dialogs_report_on_additional_info_changed (self);
		}
		_tmp19_ = self->priv->carousel;
		_tmp20_ = page_to;
		adw_carousel_scroll_to (_tmp19_, _tmp20_, TRUE);
		_g_object_unref0 (page_to);
	} else {
		TubaApplication* _tmp21_;
		TubaApplicationQuestionText _tmp22_ = {0};
		TubaApplicationQuestionButtons _tmp23_ = {0};
		_tmp21_ = tuba_app;
		_g_free0 (_tmp22_.text);
		_tmp22_.text = _ ("Submit Report?");
		_tmp22_.use_markup = FALSE;
		tuba_application_question_button_destroy (&_tmp23_.yes);
		_tmp23_.yes = (TubaApplicationQuestionButton) {_ ("Submit"), ADW_RESPONSE_SUGGESTED};
		tuba_application_question_button_destroy (&_tmp23_.no);
		_tmp23_.no = (TubaApplicationQuestionButton) {_ ("Cancel"), ADW_RESPONSE_DEFAULT};
		tuba_application_question (_tmp21_, &_tmp22_, NULL, (GtkWidget*) self, &_tmp23_, NULL, FALSE, ____lambda130__gasync_ready_callback, g_object_ref (self));
	}
}

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

static void
tuba_dialogs_report_submit (TubaDialogsReport* self,
                            GAsyncReadyCallback _callback_,
                            gpointer _user_data_)
{
	TubaDialogsReportSubmitData* _data_;
	TubaDialogsReport* _tmp0_;
	g_return_if_fail (self != NULL);
	_data_ = g_slice_new0 (TubaDialogsReportSubmitData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_dialogs_report_submit_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	tuba_dialogs_report_submit_co (_data_);
}

static void
tuba_dialogs_report_submit_finish (TubaDialogsReport* self,
                                   GAsyncResult* _res_)
{
	TubaDialogsReportSubmitData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static Block34Data*
block34_data_ref (Block34Data* _data34_)
{
	g_atomic_int_inc (&_data34_->_ref_count_);
	return _data34_;
}

static void
block34_data_unref (void * _userdata_)
{
	Block34Data* _data34_;
	_data34_ = (Block34Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data34_->_ref_count_)) {
		TubaDialogsReport* self;
		self = _data34_->self;
		_g_object_unref0 (_data34_->msg);
		_g_object_unref0 (self);
		g_slice_free (Block34Data, _data34_);
	}
}

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 Block35Data*
block35_data_ref (Block35Data* _data35_)
{
	g_atomic_int_inc (&_data35_->_ref_count_);
	return _data35_;
}

static void
block35_data_unref (void * _userdata_)
{
	Block35Data* _data35_;
	_data35_ = (Block35Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data35_->_ref_count_)) {
		TubaDialogsReport* self;
		self = _data35_->_data34_->self;
		block34_data_unref (_data35_->_data34_);
		_data35_->_data34_ = NULL;
		g_slice_free (Block35Data, _data35_);
	}
}

static gboolean
___lambda131_ (Block35Data* _data35_,
               GeeMapEntry* e)
{
	Block34Data* _data34_;
	TubaDialogsReport* self;
	gconstpointer _tmp0_;
	gconstpointer _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	gboolean result;
	_data34_ = _data35_->_data34_;
	self = _data34_->self;
	g_return_val_if_fail (e != NULL, FALSE);
	_tmp0_ = gee_map_entry_get_value (e);
	_tmp1_ = _tmp0_;
	_tmp2_ = adw_switch_row_get_active (G_TYPE_CHECK_INSTANCE_CAST ((AdwSwitchRow*) _tmp1_, adw_switch_row_get_type (), AdwSwitchRow));
	_tmp3_ = _tmp2_;
	if (_tmp3_) {
		TubaRequestV2* _tmp5_;
		gconstpointer _tmp6_;
		gconstpointer _tmp7_;
		if (!_data35_->has_forward) {
			TubaRequestV2* _tmp4_;
			_data35_->has_forward = TRUE;
			_tmp4_ = _data34_->msg;
			tuba_request_v2_add_form_data (_tmp4_, "forward", "true");
		}
		_tmp5_ = _data34_->msg;
		_tmp6_ = gee_map_entry_get_key (e);
		_tmp7_ = _tmp6_;
		tuba_request_v2_add_form_data (_tmp5_, "forward_to_domains[]", (const gchar*) ((const gchar*) _tmp7_));
	}
	result = TRUE;
	_g_object_unref0 (e);
	return result;
}

static gboolean
____lambda131__gee_forall_func (gpointer g,
                                gpointer self)
{
	gboolean result;
	result = ___lambda131_ (self, (GeeMapEntry*) g);
	return result;
}

static gboolean
__lambda132_ (Block34Data* _data34_,
              GeeMapEntry* e)
{
	TubaDialogsReport* self;
	gconstpointer _tmp0_;
	gconstpointer _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	gboolean result;
	self = _data34_->self;
	g_return_val_if_fail (e != NULL, FALSE);
	_tmp0_ = gee_map_entry_get_value (e);
	_tmp1_ = _tmp0_;
	_tmp2_ = gtk_check_button_get_active (G_TYPE_CHECK_INSTANCE_CAST ((GtkCheckButton*) _tmp1_, gtk_check_button_get_type (), GtkCheckButton));
	_tmp3_ = _tmp2_;
	if (_tmp3_) {
		gconstpointer _tmp4_;
		gconstpointer _tmp5_;
		_tmp4_ = gee_map_entry_get_key (e);
		_tmp5_ = _tmp4_;
		_data34_->category = (TubaDialogsReportCategory) ((TubaDialogsReportCategory) ((gintptr) _tmp5_));
		result = FALSE;
		_g_object_unref0 (e);
		return result;
	}
	result = TRUE;
	_g_object_unref0 (e);
	return result;
}

static gboolean
___lambda132__gee_forall_func (gpointer g,
                               gpointer self)
{
	gboolean result;
	result = __lambda132_ (self, (GeeMapEntry*) g);
	return result;
}

static gboolean
___lambda133_ (Block34Data* _data34_,
               GeeMapEntry* e)
{
	TubaDialogsReport* self;
	gconstpointer _tmp0_;
	gconstpointer _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	gboolean result;
	self = _data34_->self;
	g_return_val_if_fail (e != NULL, FALSE);
	_tmp0_ = gee_map_entry_get_value (e);
	_tmp1_ = _tmp0_;
	_tmp2_ = gtk_check_button_get_active (G_TYPE_CHECK_INSTANCE_CAST ((GtkCheckButton*) _tmp1_, gtk_check_button_get_type (), GtkCheckButton));
	_tmp3_ = _tmp2_;
	if (_tmp3_) {
		TubaRequestV2* _tmp4_;
		gconstpointer _tmp5_;
		gconstpointer _tmp6_;
		_tmp4_ = _data34_->msg;
		_tmp5_ = gee_map_entry_get_key (e);
		_tmp6_ = _tmp5_;
		tuba_request_v2_add_form_data (_tmp4_, "rule_ids[]", (const gchar*) ((const gchar*) _tmp6_));
	}
	result = TRUE;
	_g_object_unref0 (e);
	return result;
}

static gboolean
____lambda133__gee_forall_func (gpointer g,
                                gpointer self)
{
	gboolean result;
	result = ___lambda133_ (self, (GeeMapEntry*) g);
	return result;
}

static gboolean
__lambda134_ (Block34Data* _data34_,
              GeeMapEntry* e)
{
	TubaDialogsReport* self;
	gconstpointer _tmp0_;
	gconstpointer _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	gboolean result;
	self = _data34_->self;
	g_return_val_if_fail (e != NULL, FALSE);
	_tmp0_ = gee_map_entry_get_value (e);
	_tmp1_ = _tmp0_;
	_tmp2_ = gtk_check_button_get_active (G_TYPE_CHECK_INSTANCE_CAST ((GtkCheckButton*) _tmp1_, gtk_check_button_get_type (), GtkCheckButton));
	_tmp3_ = _tmp2_;
	if (_tmp3_) {
		TubaRequestV2* _tmp4_;
		gconstpointer _tmp5_;
		gconstpointer _tmp6_;
		_tmp4_ = _data34_->msg;
		_tmp5_ = gee_map_entry_get_key (e);
		_tmp6_ = _tmp5_;
		tuba_request_v2_add_form_data (_tmp4_, "status_ids[]", (const gchar*) ((const gchar*) _tmp6_));
	}
	result = TRUE;
	_g_object_unref0 (e);
	return result;
}

static gboolean
___lambda134__gee_forall_func (gpointer g,
                               gpointer self)
{
	gboolean result;
	result = __lambda134_ (self, (GeeMapEntry*) g);
	return result;
}

static void
tuba_dialogs_report_submit_ready (GObject* source_object,
                                  GAsyncResult* _res_,
                                  gpointer _user_data_)
{
	TubaDialogsReportSubmitData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_dialogs_report_submit_co (_data_);
}

static gboolean
tuba_dialogs_report_submit_co (TubaDialogsReportSubmitData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_data34_ = g_slice_new0 (Block34Data);
	_data_->_data34_->_ref_count_ = 1;
	_data_->_data34_->self = g_object_ref (_data_->self);
	_data_->_data34_->_async_data_ = _data_;
	_data_->_tmp0_ = tuba_accounts;
	_data_->_tmp1_ = tuba_account_store_get_active (_data_->_tmp0_);
	_data_->_tmp2_ = _data_->_tmp1_;
	_data_->_tmp3_ = _g_object_ref0 (_data_->_tmp2_);
	_data_->_tmp4_ = NULL;
	_data_->_tmp4_ = tuba_request_v2_new ("/api/v1/reports", TUBA_REQUEST_V2_METHOD_POST);
	tuba_request_v2_set_account (_data_->_tmp4_, _data_->_tmp3_);
	_g_object_unref0 (_data_->_tmp3_);
	_data_->_data34_->msg = _data_->_tmp4_;
	_data_->_tmp5_ = _data_->_data34_->msg;
	_data_->_tmp6_ = _data_->self->priv->account_id;
	tuba_request_v2_add_form_data (_data_->_tmp5_, "account_id", _data_->_tmp6_);
	_data_->_tmp8_ = _data_->self->priv->forward_switches;
	_data_->_tmp9_ = gee_abstract_map_get_size ((GeeAbstractMap*) _data_->_tmp8_);
	_data_->_tmp10_ = _data_->_tmp9_;
	if (_data_->_tmp10_ == 1) {
		_data_->_tmp11_ = _data_->self->priv->forward_switches;
		_data_->_tmp12_ = _data_->self->priv->account_domain;
		_data_->_tmp7_ = gee_abstract_map_has_key ((GeeAbstractMap*) _data_->_tmp11_, _data_->_tmp12_);
	} else {
		_data_->_tmp7_ = FALSE;
	}
	if (_data_->_tmp7_) {
		_data_->_tmp13_ = _data_->_data34_->msg;
		_data_->_tmp14_ = _data_->self->priv->forward_switches;
		_data_->_tmp15_ = _data_->self->priv->account_domain;
		_data_->_tmp16_ = gee_abstract_map_get ((GeeAbstractMap*) _data_->_tmp14_, _data_->_tmp15_);
		_data_->_tmp17_ = (AdwSwitchRow*) _data_->_tmp16_;
		_data_->_tmp18_ = adw_switch_row_get_active (_data_->_tmp17_);
		_data_->_tmp19_ = _data_->_tmp18_;
		_data_->_tmp20_ = bool_to_string (_data_->_tmp19_);
		_data_->_tmp21_ = _data_->_tmp20_;
		tuba_request_v2_add_form_data (_data_->_tmp13_, "forward", _data_->_tmp21_);
		_g_free0 (_data_->_tmp21_);
		_g_object_unref0 (_data_->_tmp17_);
	} else {
		_data_->_data35_ = g_slice_new0 (Block35Data);
		_data_->_data35_->_ref_count_ = 1;
		_data_->_data35_->_data34_ = block34_data_ref (_data_->_data34_);
		_data_->_data35_->has_forward = FALSE;
		_data_->_tmp22_ = _data_->self->priv->forward_switches;
		gee_abstract_map_foreach ((GeeAbstractMap*) _data_->_tmp22_, ____lambda131__gee_forall_func, _data_->_data35_);
		if (!_data_->_data35_->has_forward) {
			_data_->_tmp23_ = _data_->_data34_->msg;
			tuba_request_v2_add_form_data (_data_->_tmp23_, "forward", "false");
		}
		block35_data_unref (_data_->_data35_);
		_data_->_data35_ = NULL;
	}
	_data_->_tmp24_ = _data_->self->priv->additional_info;
	_data_->_tmp25_ = gtk_editable_get_text ((GtkEditable*) _data_->_tmp24_);
	_data_->_tmp26_ = _data_->_tmp25_;
	if (g_strcmp0 (_data_->_tmp26_, "") != 0) {
		_data_->_tmp27_ = _data_->_data34_->msg;
		_data_->_tmp28_ = _data_->self->priv->additional_info;
		_data_->_tmp29_ = gtk_editable_get_text ((GtkEditable*) _data_->_tmp28_);
		_data_->_tmp30_ = _data_->_tmp29_;
		tuba_request_v2_add_form_data (_data_->_tmp27_, "comment", _data_->_tmp30_);
	}
	_data_->_data34_->category = TUBA_DIALOGS_REPORT_CATEGORY_OTHER;
	_data_->_tmp31_ = _data_->self->priv->check_buttons;
	gee_abstract_map_foreach ((GeeAbstractMap*) _data_->_tmp31_, ___lambda132__gee_forall_func, _data_->_data34_);
	_data_->_tmp32_ = _data_->_data34_->msg;
	_data_->_tmp33_ = tuba_dialogs_report_category_to_string (_data_->_data34_->category);
	_data_->_tmp34_ = _data_->_tmp33_;
	tuba_request_v2_add_form_data (_data_->_tmp32_, "category", _data_->_tmp34_);
	_g_free0 (_data_->_tmp34_);
	if (_data_->_data34_->category == TUBA_DIALOGS_REPORT_CATEGORY_VIOLATION) {
		_data_->_tmp35_ = _data_->self->priv->rules_buttons;
		gee_abstract_map_foreach ((GeeAbstractMap*) _data_->_tmp35_, ____lambda133__gee_forall_func, _data_->_data34_);
	}
	_data_->_tmp36_ = _data_->self->priv->status_id;
	if (_data_->_tmp36_ != NULL) {
		_data_->_tmp37_ = _data_->_data34_->msg;
		_data_->_tmp38_ = _data_->self->priv->status_id;
		tuba_request_v2_add_form_data (_data_->_tmp37_, "status_ids[]", _data_->_tmp38_);
	}
	_data_->_tmp39_ = _data_->self->priv->status_buttons;
	gee_abstract_map_foreach ((GeeAbstractMap*) _data_->_tmp39_, ___lambda134__gee_forall_func, _data_->_data34_);
	_data_->_tmp40_ = _data_->self->priv->collection_id;
	if (_data_->_tmp40_ != NULL) {
		_data_->_tmp41_ = _data_->_data34_->msg;
		_data_->_tmp42_ = _data_->self->priv->collection_id;
		tuba_request_v2_add_form_data (_data_->_tmp41_, "collection_ids[]", _data_->_tmp42_);
	}
	{
		_data_->_tmp43_ = _data_->_data34_->msg;
		_data_->_state_ = 1;
		tuba_request_v2_exec (_data_->_tmp43_, tuba_dialogs_report_submit_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp44_ = tuba_request_v2_exec_finish (_data_->_tmp43_, _data_->_res_, NULL, &_data_->_inner_error0_);
		_data_->_tmp45_ = _data_->_tmp44_;
		_g_object_unref0 (_data_->_tmp45_);
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		_data_->e = _data_->_inner_error0_;
		_data_->_inner_error0_ = NULL;
		_data_->_tmp46_ = _data_->e;
		_data_->_tmp47_ = g_strdup_printf ("%i", _data_->_tmp46_->code);
		_data_->_tmp48_ = _data_->_tmp47_;
		_data_->_tmp49_ = _data_->e;
		_data_->_tmp50_ = _data_->_tmp49_->message;
		_data_->_tmp51_ = string_to_string (_data_->_tmp50_);
		_data_->_tmp52_ = g_strconcat ("Error while submitting report: ", _data_->_tmp48_, " ", _data_->_tmp51_, NULL);
		_data_->_tmp53_ = _data_->_tmp52_;
		g_warning ("Report.vala:429: %s", _data_->_tmp53_);
		_g_free0 (_data_->_tmp53_);
		_g_free0 (_data_->_tmp48_);
		_data_->_tmp54_ = tuba_app;
		_data_->_tmp55_ = _data_->e;
		_data_->_tmp56_ = _data_->_tmp55_->message;
		_data_->_tmp57_ = g_strdup_printf (_ ("Couldn't submit report: %s"), _data_->_tmp56_);
		_data_->_tmp58_ = _data_->_tmp57_;
		g_signal_emit_by_name (_data_->_tmp54_, "toast", _data_->_tmp58_, (guint) 0, NULL, NULL, NULL);
		_g_free0 (_data_->_tmp58_);
		_g_error_free0 (_data_->e);
	}
	__finally0:
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
		block34_data_unref (_data_->_data34_);
		_data_->_data34_ = NULL;
		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;
	}
	block34_data_unref (_data_->_data34_);
	_data_->_data34_ = NULL;
	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_dialogs_report_on_additional_info_changed (TubaDialogsReport* self)
{
	AdwEntryRow* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->additional_info;
	_tmp1_ = gtk_editable_get_text ((GtkEditable*) _tmp0_);
	_tmp2_ = _tmp1_;
	_tmp3_ = strlen (_tmp2_);
	_tmp4_ = _tmp3_;
	if (_tmp4_ > 1000) {
		AdwEntryRow* _tmp5_;
		GtkButton* _tmp6_;
		_tmp5_ = self->priv->additional_info;
		gtk_widget_add_css_class ((GtkWidget*) _tmp5_, "error");
		_tmp6_ = self->priv->next_button;
		gtk_widget_set_sensitive ((GtkWidget*) _tmp6_, FALSE);
	} else {
		AdwEntryRow* _tmp7_;
		GtkButton* _tmp8_;
		_tmp7_ = self->priv->additional_info;
		gtk_widget_remove_css_class ((GtkWidget*) _tmp7_, "error");
		_tmp8_ = self->priv->next_button;
		gtk_widget_set_sensitive ((GtkWidget*) _tmp8_, TRUE);
	}
}

static void
tuba_dialogs_report_on_position_change (TubaDialogsReport* self)
{
	AdwCarousel* _tmp0_;
	gdouble _tmp1_;
	gdouble _tmp2_;
	AdwCarousel* _tmp5_;
	gdouble _tmp6_;
	gdouble _tmp7_;
	AdwCarousel* _tmp8_;
	guint _tmp9_;
	guint _tmp10_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->carousel;
	_tmp1_ = adw_carousel_get_position (_tmp0_);
	_tmp2_ = _tmp1_;
	if (_tmp2_ == ((gdouble) 0)) {
		GtkButton* _tmp3_;
		_tmp3_ = self->priv->back_button;
		gtk_button_set_label (_tmp3_, _ ("Cancel"));
	} else {
		GtkButton* _tmp4_;
		_tmp4_ = self->priv->back_button;
		gtk_button_set_label (_tmp4_, _ ("Back"));
	}
	_tmp5_ = self->priv->carousel;
	_tmp6_ = adw_carousel_get_position (_tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = self->priv->carousel;
	_tmp9_ = adw_carousel_get_n_pages (_tmp8_);
	_tmp10_ = _tmp9_;
	if (_tmp7_ == ((gdouble) (_tmp10_ - 1))) {
		GtkButton* _tmp11_;
		_tmp11_ = self->priv->next_button;
		gtk_button_set_label (_tmp11_, _ ("Submit"));
	} else {
		GtkButton* _tmp12_;
		_tmp12_ = self->priv->next_button;
		gtk_button_set_label (_tmp12_, _ ("Next"));
	}
}

static void
tuba_dialogs_report_populate_posts_data_free (gpointer _data)
{
	TubaDialogsReportPopulatePostsData* _data_;
	_data_ = _data;
	_g_free0 (_data_->account_id);
	_g_object_unref0 (_data_->self);
	g_slice_free (TubaDialogsReportPopulatePostsData, _data_);
}

static void
tuba_dialogs_report_populate_posts (TubaDialogsReport* self,
                                    const gchar* account_id,
                                    const gchar* status_id,
                                    GAsyncReadyCallback _callback_,
                                    gpointer _user_data_)
{
	TubaDialogsReportPopulatePostsData* _data_;
	TubaDialogsReport* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (account_id != NULL);
	_data_ = g_slice_new0 (TubaDialogsReportPopulatePostsData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_dialogs_report_populate_posts_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (account_id);
	_g_free0 (_data_->account_id);
	_data_->account_id = _tmp1_;
	_tmp2_ = g_strdup (status_id);
	_g_free0 (_data_->status_id);
	_data_->status_id = _tmp2_;
	tuba_dialogs_report_populate_posts_co (_data_);
}

static void
tuba_dialogs_report_populate_posts_finish (TubaDialogsReport* self,
                                           GAsyncResult* _res_)
{
	TubaDialogsReportPopulatePostsData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static Block36Data*
block36_data_ref (Block36Data* _data36_)
{
	g_atomic_int_inc (&_data36_->_ref_count_);
	return _data36_;
}

static void
block36_data_unref (void * _userdata_)
{
	Block36Data* _data36_;
	_data36_ = (Block36Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data36_->_ref_count_)) {
		TubaDialogsReport* self;
		self = _data36_->self;
		_g_free0 (_data36_->status_id);
		_g_object_unref0 (self);
		g_slice_free (Block36Data, _data36_);
	}
}

static Block37Data*
block37_data_ref (Block37Data* _data37_)
{
	g_atomic_int_inc (&_data37_->_ref_count_);
	return _data37_;
}

static void
block37_data_unref (void * _userdata_)
{
	Block37Data* _data37_;
	_data37_ = (Block37Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data37_->_ref_count_)) {
		TubaDialogsReport* self;
		self = _data37_->_data36_->self;
		_g_object_unref0 (_data37_->listbox);
		block36_data_unref (_data37_->_data36_);
		_data37_->_data36_ = NULL;
		g_slice_free (Block37Data, _data37_);
	}
}

static void
tuba_dialogs_report_populate_posts_ready (GObject* source_object,
                                          GAsyncResult* _res_,
                                          gpointer _user_data_)
{
	TubaDialogsReportPopulatePostsData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_dialogs_report_populate_posts_co (_data_);
}

static void
_tuba_dialogs_report_on_row_activated_gtk_list_box_row_activated (GtkListBox* _sender,
                                                                  GtkListBoxRow* row,
                                                                  gpointer self)
{
	tuba_dialogs_report_on_row_activated ((TubaDialogsReport*) self, row);
}

static void
___lambda126_ (Block37Data* _data37_,
               JsonNode* node,
               GError** error)
{
	Block36Data* _data36_;
	TubaDialogsReport* self;
	TubaAPIStatus* status = NULL;
	TubaAPIStatus* _tmp0_;
	gboolean _tmp1_ = FALSE;
	TubaAPIStatus* _tmp5_;
	TubaAPIStatus* _tmp6_;
	TubaAPIStatus* _tmp7_;
	TubaAPIStatus* _tmp8_;
	TubaWidgetsStatus* widget_status = NULL;
	TubaAPIStatus* _tmp9_;
	GtkWidget* _tmp10_;
	TubaWidgetsStatus* _tmp11_;
	TubaWidgetsStatus* _tmp12_;
	GtkCheckButton* checkbutton = NULL;
	gchar* _tmp13_;
	gchar** _tmp14_;
	GtkCheckButton* _tmp15_ = NULL;
	GeeHashMap* _tmp16_;
	TubaAPIStatus* _tmp17_;
	const gchar* _tmp18_;
	const gchar* _tmp19_;
	GtkCheckButton* _tmp20_;
	TubaWidgetsStatus* _tmp21_;
	TubaWidgetsStatus* _tmp22_;
	GtkBox* _tmp23_;
	TubaWidgetsStatus* _tmp24_;
	TubaWidgetsStatus* _tmp25_;
	TubaWidgetsStatus* _tmp26_;
	TubaWidgetsStatus* _tmp27_;
	TubaWidgetsStatus* _tmp28_;
	GtkListBox* _tmp29_;
	GtkCheckButton* _tmp30_;
	TubaWidgetsStatus* _tmp31_;
	TubaDialogsReportStatusRow* _tmp32_;
	TubaDialogsReportStatusRow* _tmp33_;
	GError* _inner_error0_ = NULL;
	_data36_ = _data37_->_data36_;
	self = _data36_->self;
	g_return_if_fail (node != NULL);
	_tmp0_ = tuba_api_status_from (node, &_inner_error0_);
	status = _tmp0_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	if (_data36_->status_id != NULL) {
		TubaAPIStatus* _tmp2_;
		const gchar* _tmp3_;
		const gchar* _tmp4_;
		_tmp2_ = status;
		_tmp3_ = tuba_api_status_get_id (_tmp2_);
		_tmp4_ = _tmp3_;
		_tmp1_ = g_strcmp0 (_tmp4_, _data36_->status_id) == 0;
	} else {
		_tmp1_ = FALSE;
	}
	if (_tmp1_) {
		_g_object_unref0 (status);
		return;
	}
	_tmp5_ = status;
	tuba_api_status_set_spoiler_text (_tmp5_, NULL);
	_tmp6_ = status;
	tuba_api_status_set_tuba_spoiler_revealed (_tmp6_, TRUE);
	_tmp7_ = status;
	tuba_api_status_set_sensitive (_tmp7_, FALSE);
	_tmp8_ = status;
	tuba_api_status_set_card (_tmp8_, NULL);
	_tmp9_ = status;
	_tmp10_ = tuba_widgetizable_to_widget ((TubaWidgetizable*) _tmp9_);
	_tmp11_ = TUBA_WIDGETS_IS_STATUS (_tmp10_) ? ((TubaWidgetsStatus*) _tmp10_) : NULL;
	if (_tmp11_ == NULL) {
		_g_object_unref0 (_tmp10_);
	}
	widget_status = _tmp11_;
	_tmp12_ = widget_status;
	if (_tmp12_ == NULL) {
		_g_object_unref0 (widget_status);
		_g_object_unref0 (status);
		return;
	}
	_tmp13_ = g_strdup ("selection-mode");
	_tmp14_ = g_new0 (gchar*, 1 + 1);
	_tmp14_[0] = _tmp13_;
	_tmp15_ = (GtkCheckButton*) gtk_check_button_new ();
	gtk_widget_set_css_classes ((GtkWidget*) _tmp15_, _tmp14_);
	_tmp14_ = (_vala_array_free (_tmp14_, 1, (GDestroyNotify) g_free), NULL);
	gtk_widget_set_valign ((GtkWidget*) _tmp15_, GTK_ALIGN_CENTER);
	g_object_ref_sink (_tmp15_);
	checkbutton = _tmp15_;
	_tmp16_ = self->priv->status_buttons;
	_tmp17_ = status;
	_tmp18_ = tuba_api_status_get_id (_tmp17_);
	_tmp19_ = _tmp18_;
	_tmp20_ = checkbutton;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp16_, _tmp19_, _tmp20_);
	_tmp21_ = widget_status;
	gtk_widget_set_hexpand ((GtkWidget*) _tmp21_, TRUE);
	_tmp22_ = widget_status;
	_tmp23_ = _tmp22_->indicators;
	gtk_widget_set_visible ((GtkWidget*) _tmp23_, FALSE);
	_tmp24_ = widget_status;
	gtk_widget_set_can_focus ((GtkWidget*) _tmp24_, FALSE);
	_tmp25_ = widget_status;
	gtk_widget_set_can_target ((GtkWidget*) _tmp25_, FALSE);
	_tmp26_ = widget_status;
	gtk_widget_set_focusable ((GtkWidget*) _tmp26_, FALSE);
	_tmp27_ = widget_status;
	tuba_widgets_status_toggle_actions_visibility (_tmp27_, FALSE);
	_tmp28_ = widget_status;
	gtk_list_box_row_set_activatable ((GtkListBoxRow*) _tmp28_, FALSE);
	_tmp29_ = _data37_->listbox;
	_tmp30_ = checkbutton;
	_tmp31_ = widget_status;
	_tmp32_ = tuba_dialogs_report_status_row_new (_tmp30_, _tmp31_);
	g_object_ref_sink (_tmp32_);
	_tmp33_ = _tmp32_;
	gtk_list_box_append (_tmp29_, (GtkWidget*) _tmp33_);
	_g_object_unref0 (_tmp33_);
	_g_object_unref0 (checkbutton);
	_g_object_unref0 (widget_status);
	_g_object_unref0 (status);
}

static void
____lambda126__tuba_network_node_callback (JsonNode* node,
                                           gpointer self,
                                           GError** error)
{
	___lambda126_ (self, node, error);
}

static gboolean
tuba_dialogs_report_populate_posts_co (TubaDialogsReportPopulatePostsData* _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_->_data36_ = g_slice_new0 (Block36Data);
	_data_->_data36_->_ref_count_ = 1;
	_data_->_data36_->self = g_object_ref (_data_->self);
	_g_free0 (_data_->_data36_->status_id);
	_data_->_data36_->status_id = _data_->status_id;
	_data_->_data36_->_async_data_ = _data_;
	_data_->_tmp0_ = string_to_string (_data_->account_id);
	_data_->_tmp1_ = g_strconcat ("/api/v1/accounts/", _data_->_tmp0_, "/statuses", NULL);
	_data_->_tmp2_ = _data_->_tmp1_;
	_data_->_tmp3_ = tuba_accounts;
	_data_->_tmp4_ = tuba_account_store_get_active (_data_->_tmp3_);
	_data_->_tmp5_ = _data_->_tmp4_;
	_data_->_tmp6_ = _g_object_ref0 (_data_->_tmp5_);
	_data_->_tmp7_ = NULL;
	_data_->_tmp7_ = tuba_request_v2_new (_data_->_tmp2_, TUBA_REQUEST_V2_METHOD_GET);
	tuba_request_v2_set_account (_data_->_tmp7_, _data_->_tmp6_);
	_g_object_unref0 (_data_->_tmp6_);
	_data_->_tmp8_ = _data_->_tmp7_;
	_g_free0 (_data_->_tmp2_);
	_data_->req = _data_->_tmp8_;
	_data_->_tmp9_ = _data_->req;
	tuba_request_v2_add_parameter (_data_->_tmp9_, "exclude_replies", "false");
	_data_->_tmp10_ = _data_->req;
	tuba_request_v2_add_parameter (_data_->_tmp10_, "exclude_reblogs", "true");
	{
		_data_->_data37_ = g_slice_new0 (Block37Data);
		_data_->_data37_->_ref_count_ = 1;
		_data_->_data37_->_data36_ = block36_data_ref (_data_->_data36_);
		_data_->_tmp11_ = _data_->req;
		_data_->_state_ = 1;
		tuba_request_v2_exec (_data_->_tmp11_, tuba_dialogs_report_populate_posts_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp12_ = tuba_request_v2_exec_finish (_data_->_tmp11_, _data_->_res_, NULL, &_data_->_inner_error0_);
		_data_->in_stream = _data_->_tmp12_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			block37_data_unref (_data_->_data37_);
			_data_->_data37_ = NULL;
			goto __catch0_g_error;
		}
		_data_->_tmp13_ = g_strdup ("boxed-list");
		_data_->_tmp14_ = g_new0 (gchar*, 1 + 1);
		_data_->_tmp14_[0] = _data_->_tmp13_;
		_data_->_tmp15_ = NULL;
		_data_->_tmp15_ = (GtkListBox*) gtk_list_box_new ();
		gtk_list_box_set_selection_mode (_data_->_tmp15_, GTK_SELECTION_NONE);
		gtk_widget_set_css_classes ((GtkWidget*) _data_->_tmp15_, _data_->_tmp14_);
		_data_->_tmp14_ = (_vala_array_free (_data_->_tmp14_, 1, (GDestroyNotify) g_free), NULL);
		g_object_ref_sink (_data_->_tmp15_);
		_data_->_data37_->listbox = _data_->_tmp15_;
		_data_->_tmp16_ = _data_->_data37_->listbox;
		g_signal_connect_object (_data_->_tmp16_, "row-activated", (GCallback) _tuba_dialogs_report_on_row_activated_gtk_list_box_row_activated, _data_->self, 0);
		_data_->_tmp17_ = _data_->in_stream;
		_data_->_state_ = 2;
		tuba_network_get_parser_from_inputstream_async (_data_->_tmp17_, NULL, tuba_dialogs_report_populate_posts_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp18_ = tuba_network_get_parser_from_inputstream_finish (_data_->_res_, &_data_->_inner_error0_);
		_data_->parser = _data_->_tmp18_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->in_stream);
			block37_data_unref (_data_->_data37_);
			_data_->_data37_ = NULL;
			goto __catch0_g_error;
		}
		_data_->_tmp19_ = _data_->parser;
		tuba_network_parse_array (_data_->_tmp19_, ____lambda126__tuba_network_node_callback, block37_data_ref (_data_->_data37_), block37_data_unref, &_data_->_inner_error0_);
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->parser);
			_g_object_unref0 (_data_->in_stream);
			block37_data_unref (_data_->_data37_);
			_data_->_data37_ = NULL;
			goto __catch0_g_error;
		}
		_data_->_tmp20_ = _data_->self->priv->status_buttons;
		_data_->_tmp21_ = gee_abstract_map_get_size ((GeeAbstractMap*) _data_->_tmp20_);
		_data_->_tmp22_ = _data_->_tmp21_;
		if (_data_->_tmp22_ == 0) {
			_data_->_tmp23_ = _data_->self->priv->page_3;
			gtk_widget_set_visible ((GtkWidget*) _data_->_tmp23_, FALSE);
			_data_->_tmp24_ = _data_->self->priv->page_3_error;
			_data_->_tmp25_ = g_strdup_printf (_ ("%s. You can continue with the report however."), _ ("No posts found"));
			_data_->_tmp26_ = _data_->_tmp25_;
			adw_status_page_set_description (_data_->_tmp24_, _data_->_tmp26_);
			_g_free0 (_data_->_tmp26_);
			_data_->_tmp27_ = _data_->self->priv->page_3_stack;
			gtk_stack_set_visible_child_name (_data_->_tmp27_, "error");
			_g_object_unref0 (_data_->parser);
			_g_object_unref0 (_data_->in_stream);
			block37_data_unref (_data_->_data37_);
			_data_->_data37_ = NULL;
			_g_object_unref0 (_data_->req);
			block36_data_unref (_data_->_data36_);
			_data_->_data36_ = NULL;
			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_->_tmp28_ = _data_->self->priv->group_3;
		_data_->_tmp29_ = _data_->_data37_->listbox;
		adw_preferences_group_add (_data_->_tmp28_, (GtkWidget*) _data_->_tmp29_);
		_data_->_tmp30_ = _data_->self->priv->page_3_stack;
		gtk_stack_set_visible_child_name (_data_->_tmp30_, "main");
		_g_object_unref0 (_data_->parser);
		_g_object_unref0 (_data_->in_stream);
		block37_data_unref (_data_->_data37_);
		_data_->_data37_ = NULL;
	}
	goto __finally0;
	__catch0_g_error:
	{
		_data_->e = _data_->_inner_error0_;
		_data_->_inner_error0_ = NULL;
		_data_->_tmp31_ = _data_->self->priv->page_3_error;
		_data_->_tmp32_ = _data_->e;
		_data_->_tmp33_ = _data_->_tmp32_->message;
		_data_->_tmp34_ = g_strdup_printf (_ ("%s. You can continue with the report however."), _data_->_tmp33_);
		_data_->_tmp35_ = _data_->_tmp34_;
		adw_status_page_set_description (_data_->_tmp31_, _data_->_tmp35_);
		_g_free0 (_data_->_tmp35_);
		_data_->_tmp36_ = _data_->self->priv->page_3_stack;
		gtk_stack_set_visible_child_name (_data_->_tmp36_, "error");
		_g_error_free0 (_data_->e);
	}
	__finally0:
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
		_g_object_unref0 (_data_->req);
		block36_data_unref (_data_->_data36_);
		_data_->_data36_ = NULL;
		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_->req);
	block36_data_unref (_data_->_data36_);
	_data_->_data36_ = NULL;
	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_dialogs_report_on_row_activated (TubaDialogsReport* self,
                                      GtkListBoxRow* row)
{
	g_return_if_fail (self != NULL);
	g_return_if_fail (row != NULL);
	tuba_dialogs_report_status_row_toggle (G_TYPE_CHECK_INSTANCE_CAST (row, TUBA_DIALOGS_REPORT_TYPE_STATUS_ROW, TubaDialogsReportStatusRow));
}

static gboolean
__lambda127_ (TubaDialogsReport* self,
              GeeMapEntry* e)
{
	gconstpointer _tmp0_;
	gconstpointer _tmp1_;
	gboolean result;
	g_return_val_if_fail (e != NULL, FALSE);
	_tmp0_ = gee_map_entry_get_key (e);
	_tmp1_ = _tmp0_;
	if (((TubaDialogsReportCategory) ((TubaDialogsReportCategory) ((gintptr) _tmp1_))) == TUBA_DIALOGS_REPORT_CATEGORY_VIOLATION) {
		AdwPreferencesPage* _tmp2_;
		gconstpointer _tmp3_;
		gconstpointer _tmp4_;
		gboolean _tmp5_;
		gboolean _tmp6_;
		_tmp2_ = self->priv->page_2;
		_tmp3_ = gee_map_entry_get_value (e);
		_tmp4_ = _tmp3_;
		_tmp5_ = gtk_check_button_get_active (G_TYPE_CHECK_INSTANCE_CAST ((GtkCheckButton*) _tmp4_, gtk_check_button_get_type (), GtkCheckButton));
		_tmp6_ = _tmp5_;
		gtk_widget_set_sensitive ((GtkWidget*) _tmp2_, _tmp6_);
		result = FALSE;
		_g_object_unref0 (e);
		return result;
	}
	result = TRUE;
	_g_object_unref0 (e);
	return result;
}

static gboolean
___lambda127__gee_forall_func (gpointer g,
                               gpointer self)
{
	gboolean result;
	result = __lambda127_ ((TubaDialogsReport*) self, (GeeMapEntry*) g);
	return result;
}

static void
tuba_dialogs_report_on_category_set (TubaDialogsReport* self)
{
	GtkButton* _tmp0_;
	GeeHashMap* _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->next_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp0_, TRUE);
	_tmp1_ = self->priv->check_buttons;
	gee_abstract_map_foreach ((GeeAbstractMap*) _tmp1_, ___lambda127__gee_forall_func, self);
}

static gboolean
__lambda128_ (TubaDialogsReport* self,
              GeeMapEntry* e)
{
	gconstpointer _tmp0_;
	gconstpointer _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	GtkButton* _tmp5_;
	gboolean result;
	g_return_val_if_fail (e != NULL, FALSE);
	_tmp0_ = gee_map_entry_get_value (e);
	_tmp1_ = _tmp0_;
	_tmp2_ = gtk_check_button_get_active (G_TYPE_CHECK_INSTANCE_CAST ((GtkCheckButton*) _tmp1_, gtk_check_button_get_type (), GtkCheckButton));
	_tmp3_ = _tmp2_;
	if (_tmp3_) {
		GtkButton* _tmp4_;
		_tmp4_ = self->priv->next_button;
		gtk_widget_set_sensitive ((GtkWidget*) _tmp4_, TRUE);
		result = FALSE;
		_g_object_unref0 (e);
		return result;
	}
	_tmp5_ = self->priv->next_button;
	gtk_widget_set_sensitive ((GtkWidget*) _tmp5_, FALSE);
	result = TRUE;
	_g_object_unref0 (e);
	return result;
}

static gboolean
___lambda128__gee_forall_func (gpointer g,
                               gpointer self)
{
	gboolean result;
	result = __lambda128_ ((TubaDialogsReport*) self, (GeeMapEntry*) g);
	return result;
}

static void
tuba_dialogs_report_on_rule_set (TubaDialogsReport* self)
{
	GeeHashMap* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->rules_buttons;
	gee_abstract_map_foreach ((GeeAbstractMap*) _tmp0_, ___lambda128__gee_forall_func, self);
}

static inline gpointer
tuba_dialogs_report_status_row_get_instance_private (TubaDialogsReportStatusRow* self)
{
	return G_STRUCT_MEMBER_P (self, TubaDialogsReportStatusRow_private_offset);
}

static TubaDialogsReportStatusRow*
tuba_dialogs_report_status_row_construct (GType object_type,
                                          GtkCheckButton* btn,
                                          TubaWidgetsStatus* widget_status)
{
	TubaDialogsReportStatusRow * self = NULL;
	GtkBox* status_row_box = NULL;
	GtkBox* _tmp0_ = NULL;
	GtkCheckButton* _tmp1_;
	g_return_val_if_fail (btn != NULL, NULL);
	g_return_val_if_fail (widget_status != NULL, NULL);
	self = (TubaDialogsReportStatusRow*) g_object_new (object_type, NULL);
	tuba_dialogs_report_status_row_set_check_button (self, btn);
	gtk_list_box_row_set_activatable ((GtkListBoxRow*) self, TRUE);
	_tmp0_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
	gtk_widget_set_margin_start ((GtkWidget*) _tmp0_, 6);
	gtk_widget_set_margin_end ((GtkWidget*) _tmp0_, 6);
	g_object_ref_sink (_tmp0_);
	status_row_box = _tmp0_;
	_tmp1_ = self->priv->_check_button;
	gtk_box_append (status_row_box, (GtkWidget*) _tmp1_);
	gtk_box_append (status_row_box, (GtkWidget*) widget_status);
	gtk_list_box_row_set_child ((GtkListBoxRow*) self, (GtkWidget*) status_row_box);
	_g_object_unref0 (status_row_box);
	return self;
}

static TubaDialogsReportStatusRow*
tuba_dialogs_report_status_row_new (GtkCheckButton* btn,
                                    TubaWidgetsStatus* widget_status)
{
	return tuba_dialogs_report_status_row_construct (TUBA_DIALOGS_REPORT_TYPE_STATUS_ROW, btn, widget_status);
}

static void
tuba_dialogs_report_status_row_toggle (TubaDialogsReportStatusRow* self)
{
	GtkCheckButton* _tmp0_;
	GtkCheckButton* _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_check_button;
	_tmp1_ = self->priv->_check_button;
	_tmp2_ = gtk_check_button_get_active (_tmp1_);
	_tmp3_ = _tmp2_;
	gtk_check_button_set_active (_tmp0_, !_tmp3_);
}

static GtkCheckButton*
tuba_dialogs_report_status_row_get_check_button (TubaDialogsReportStatusRow* self)
{
	GtkCheckButton* result;
	GtkCheckButton* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_check_button;
	result = _tmp0_;
	return result;
}

static void
tuba_dialogs_report_status_row_set_check_button (TubaDialogsReportStatusRow* self,
                                                 GtkCheckButton* value)
{
	GtkCheckButton* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_dialogs_report_status_row_get_check_button (self);
	if (old_value != value) {
		GtkCheckButton* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_check_button);
		self->priv->_check_button = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_dialogs_report_status_row_properties[TUBA_DIALOGS_REPORT_STATUS_ROW_CHECK_BUTTON_PROPERTY]);
	}
}

static void
tuba_dialogs_report_status_row_class_init (TubaDialogsReportStatusRowClass * klass,
                                           gpointer klass_data)
{
	tuba_dialogs_report_status_row_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaDialogsReportStatusRow_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_dialogs_report_status_row_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_dialogs_report_status_row_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_dialogs_report_status_row_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_DIALOGS_REPORT_STATUS_ROW_CHECK_BUTTON_PROPERTY, tuba_dialogs_report_status_row_properties[TUBA_DIALOGS_REPORT_STATUS_ROW_CHECK_BUTTON_PROPERTY] = g_param_spec_object ("check-button", "check-button", "check-button", gtk_check_button_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
}

static void
tuba_dialogs_report_status_row_instance_init (TubaDialogsReportStatusRow * self,
                                              gpointer klass)
{
	self->priv = tuba_dialogs_report_status_row_get_instance_private (self);
}

static void
tuba_dialogs_report_status_row_finalize (GObject * obj)
{
	TubaDialogsReportStatusRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_DIALOGS_REPORT_TYPE_STATUS_ROW, TubaDialogsReportStatusRow);
	_g_object_unref0 (self->priv->_check_button);
	G_OBJECT_CLASS (tuba_dialogs_report_status_row_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_dialogs_report_status_row_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaDialogsReportStatusRowClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_dialogs_report_status_row_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaDialogsReportStatusRow), 0, (GInstanceInitFunc) tuba_dialogs_report_status_row_instance_init, NULL };
	GType tuba_dialogs_report_status_row_type_id;
	tuba_dialogs_report_status_row_type_id = g_type_register_static (gtk_list_box_row_get_type (), "TubaDialogsReportStatusRow", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaDialogsReportStatusRow_private_offset = g_type_add_instance_private (tuba_dialogs_report_status_row_type_id, sizeof (TubaDialogsReportStatusRowPrivate));
	return tuba_dialogs_report_status_row_type_id;
}

static GType
tuba_dialogs_report_status_row_get_type (void)
{
	static GType tuba_dialogs_report_status_row_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_dialogs_report_status_row_type_id__once)) {
		GType tuba_dialogs_report_status_row_type_id;
		tuba_dialogs_report_status_row_type_id = tuba_dialogs_report_status_row_get_type_once ();
		g_once_init_leave_pointer (&tuba_dialogs_report_status_row_type_id__once, tuba_dialogs_report_status_row_type_id);
	}
	return tuba_dialogs_report_status_row_type_id__once;
}

static void
_vala_tuba_dialogs_report_status_row_get_property (GObject * object,
                                                   guint property_id,
                                                   GValue * value,
                                                   GParamSpec * pspec)
{
	TubaDialogsReportStatusRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_DIALOGS_REPORT_TYPE_STATUS_ROW, TubaDialogsReportStatusRow);
	switch (property_id) {
		case TUBA_DIALOGS_REPORT_STATUS_ROW_CHECK_BUTTON_PROPERTY:
		g_value_set_object (value, tuba_dialogs_report_status_row_get_check_button (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_dialogs_report_status_row_set_property (GObject * object,
                                                   guint property_id,
                                                   const GValue * value,
                                                   GParamSpec * pspec)
{
	TubaDialogsReportStatusRow * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_DIALOGS_REPORT_TYPE_STATUS_ROW, TubaDialogsReportStatusRow);
	switch (property_id) {
		case TUBA_DIALOGS_REPORT_STATUS_ROW_CHECK_BUTTON_PROPERTY:
		tuba_dialogs_report_status_row_set_check_button (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

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

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

static void
_tuba_dialogs_report_on_back_gtk_button_clicked (GtkButton* _sender,
                                                 gpointer self)
{
	tuba_dialogs_report_on_back ((TubaDialogsReport*) self);
}

static void
_tuba_dialogs_report_on_next_gtk_button_clicked (GtkButton* _sender,
                                                 gpointer self)
{
	tuba_dialogs_report_on_next ((TubaDialogsReport*) self);
}

static void
_tuba_dialogs_report_on_position_change_g_object_notify (GObject* _sender,
                                                         GParamSpec* pspec,
                                                         gpointer self)
{
	tuba_dialogs_report_on_position_change ((TubaDialogsReport*) self);
}

static void
_tuba_dialogs_report_on_back_adw_dialog_close_attempt (AdwDialog* _sender,
                                                       gpointer self)
{
	tuba_dialogs_report_on_back ((TubaDialogsReport*) self);
}

static GObject *
tuba_dialogs_report_constructor (GType type,
                                 guint n_construct_properties,
                                 GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	TubaDialogsReport * self;
	gboolean _tmp0_ = FALSE;
	TubaAccountStore* _tmp1_;
	TubaInstanceAccount* _tmp2_;
	TubaInstanceAccount* _tmp3_;
	TubaAPIInstance* _tmp4_;
	TubaAPIInstance* _tmp5_;
	GeeArrayList* _tmp6_;
	GeeArrayList* _tmp7_;
	AdwToolbarView* toolbarview = NULL;
	AdwToolbarView* _tmp17_;
	AdwHeaderBar* headerbar = NULL;
	AdwHeaderBar* _tmp18_ = NULL;
	GtkButton* _tmp19_;
	GtkButton* _tmp20_;
	gchar* _tmp21_;
	gchar** _tmp22_;
	GtkButton* _tmp23_ = NULL;
	GtkButton* _tmp24_;
	AdwHeaderBar* _tmp25_;
	GtkButton* _tmp26_;
	AdwHeaderBar* _tmp27_;
	GtkButton* _tmp28_;
	AdwToolbarView* _tmp29_;
	AdwHeaderBar* _tmp30_;
	AdwCarousel* _tmp31_ = NULL;
	AdwCarousel* _tmp32_;
	AdwToolbarView* _tmp33_;
	AdwCarousel* _tmp34_;
	AdwToolbarView* _tmp35_;
	AdwCarousel* _tmp36_;
	AdwCarousel* _tmp37_;
	AdwCarouselIndicatorDots* _tmp38_ = NULL;
	AdwCarouselIndicatorDots* _tmp39_;
	AdwToolbarView* _tmp40_;
	parent_class = G_OBJECT_CLASS (tuba_dialogs_report_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_DIALOGS_TYPE_REPORT, TubaDialogsReport);
	_tmp1_ = tuba_accounts;
	_tmp2_ = tuba_account_store_get_active (_tmp1_);
	_tmp3_ = _tmp2_;
	_tmp4_ = tuba_instance_account_get_instance_info (_tmp3_);
	_tmp5_ = _tmp4_;
	_tmp6_ = tuba_api_instance_get_rules (_tmp5_);
	_tmp7_ = _tmp6_;
	if (_tmp7_ != NULL) {
		TubaAccountStore* _tmp8_;
		TubaInstanceAccount* _tmp9_;
		TubaInstanceAccount* _tmp10_;
		TubaAPIInstance* _tmp11_;
		TubaAPIInstance* _tmp12_;
		GeeArrayList* _tmp13_;
		GeeArrayList* _tmp14_;
		gint _tmp15_;
		gint _tmp16_;
		_tmp8_ = tuba_accounts;
		_tmp9_ = tuba_account_store_get_active (_tmp8_);
		_tmp10_ = _tmp9_;
		_tmp11_ = tuba_instance_account_get_instance_info (_tmp10_);
		_tmp12_ = _tmp11_;
		_tmp13_ = tuba_api_instance_get_rules (_tmp12_);
		_tmp14_ = _tmp13_;
		_tmp15_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp14_);
		_tmp16_ = _tmp15_;
		_tmp0_ = _tmp16_ > 0;
	} else {
		_tmp0_ = FALSE;
	}
	self->priv->has_rules = _tmp0_;
	if (self->priv->has_rules) {
		_vala_array_add36 (&self->priv->categories, &self->priv->categories_length1, &self->priv->_categories_size_, TUBA_DIALOGS_REPORT_CATEGORY_VIOLATION);
	}
	_vala_array_add37 (&self->priv->categories, &self->priv->categories_length1, &self->priv->_categories_size_, TUBA_DIALOGS_REPORT_CATEGORY_OTHER);
	adw_dialog_set_content_height ((AdwDialog*) self, 520);
	adw_dialog_set_content_width ((AdwDialog*) self, 460);
	adw_dialog_set_can_close ((AdwDialog*) self, FALSE);
	_tmp17_ = (AdwToolbarView*) adw_toolbar_view_new ();
	g_object_ref_sink (_tmp17_);
	toolbarview = _tmp17_;
	_tmp18_ = (AdwHeaderBar*) adw_header_bar_new ();
	adw_header_bar_set_show_end_title_buttons (_tmp18_, FALSE);
	adw_header_bar_set_show_start_title_buttons (_tmp18_, FALSE);
	g_object_ref_sink (_tmp18_);
	headerbar = _tmp18_;
	_tmp19_ = (GtkButton*) gtk_button_new_with_label (_ ("Cancel"));
	g_object_ref_sink (_tmp19_);
	_g_object_unref0 (self->priv->back_button);
	self->priv->back_button = _tmp19_;
	_tmp20_ = self->priv->back_button;
	g_signal_connect_object (_tmp20_, "clicked", (GCallback) _tuba_dialogs_report_on_back_gtk_button_clicked, self, 0);
	_tmp21_ = g_strdup ("suggested-action");
	_tmp22_ = g_new0 (gchar*, 1 + 1);
	_tmp22_[0] = _tmp21_;
	_tmp23_ = (GtkButton*) gtk_button_new_with_label (_ ("Next"));
	gtk_widget_set_css_classes ((GtkWidget*) _tmp23_, _tmp22_);
	_tmp22_ = (_vala_array_free (_tmp22_, 1, (GDestroyNotify) g_free), NULL);
	gtk_widget_set_sensitive ((GtkWidget*) _tmp23_, FALSE);
	g_object_ref_sink (_tmp23_);
	_g_object_unref0 (self->priv->next_button);
	self->priv->next_button = _tmp23_;
	_tmp24_ = self->priv->next_button;
	g_signal_connect_object (_tmp24_, "clicked", (GCallback) _tuba_dialogs_report_on_next_gtk_button_clicked, self, 0);
	_tmp25_ = headerbar;
	_tmp26_ = self->priv->back_button;
	adw_header_bar_pack_start (_tmp25_, (GtkWidget*) _tmp26_);
	_tmp27_ = headerbar;
	_tmp28_ = self->priv->next_button;
	adw_header_bar_pack_end (_tmp27_, (GtkWidget*) _tmp28_);
	_tmp29_ = toolbarview;
	_tmp30_ = headerbar;
	adw_toolbar_view_add_top_bar (_tmp29_, (GtkWidget*) _tmp30_);
	_tmp31_ = (AdwCarousel*) adw_carousel_new ();
	adw_carousel_set_allow_long_swipes (_tmp31_, FALSE);
	adw_carousel_set_allow_mouse_drag (_tmp31_, FALSE);
	adw_carousel_set_allow_scroll_wheel (_tmp31_, FALSE);
	adw_carousel_set_interactive (_tmp31_, FALSE);
	g_object_ref_sink (_tmp31_);
	_g_object_unref0 (self->priv->carousel);
	self->priv->carousel = _tmp31_;
	_tmp32_ = self->priv->carousel;
	g_signal_connect_object ((GObject*) _tmp32_, "notify::position", (GCallback) _tuba_dialogs_report_on_position_change_g_object_notify, self, 0);
	_tmp33_ = toolbarview;
	_tmp34_ = self->priv->carousel;
	adw_toolbar_view_set_content (_tmp33_, (GtkWidget*) _tmp34_);
	_tmp35_ = toolbarview;
	_tmp36_ = self->priv->carousel;
	_tmp37_ = _g_object_ref0 (_tmp36_);
	_tmp38_ = (AdwCarouselIndicatorDots*) adw_carousel_indicator_dots_new ();
	adw_carousel_indicator_dots_set_carousel (_tmp38_, _tmp37_);
	_g_object_unref0 (_tmp37_);
	g_object_ref_sink (_tmp38_);
	_tmp39_ = _tmp38_;
	adw_toolbar_view_add_bottom_bar (_tmp35_, (GtkWidget*) _tmp39_);
	_g_object_unref0 (_tmp39_);
	_tmp40_ = toolbarview;
	adw_dialog_set_child ((AdwDialog*) self, (GtkWidget*) _tmp40_);
	g_signal_connect_object ((AdwDialog*) self, "close-attempt", (GCallback) _tuba_dialogs_report_on_back_adw_dialog_close_attempt, self, 0);
	_g_object_unref0 (headerbar);
	_g_object_unref0 (toolbarview);
	return obj;
}

static void
tuba_dialogs_report_class_init (TubaDialogsReportClass * klass,
                                gpointer klass_data)
{
	tuba_dialogs_report_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaDialogsReport_private_offset);
	G_OBJECT_CLASS (klass)->constructor = tuba_dialogs_report_constructor;
	G_OBJECT_CLASS (klass)->finalize = tuba_dialogs_report_finalize;
}

static void
tuba_dialogs_report_instance_init (TubaDialogsReport * self,
                                   gpointer klass)
{
	GeeHashMap* _tmp0_;
	GeeHashMap* _tmp1_;
	GeeHashMap* _tmp2_;
	GeeHashMap* _tmp3_;
	TubaDialogsReportCategory* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	self->priv = tuba_dialogs_report_get_instance_private (self);
	_tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, adw_switch_row_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->forward_switches = _tmp0_;
	_tmp1_ = gee_hash_map_new (TUBA_DIALOGS_REPORT_TYPE_CATEGORY, NULL, NULL, gtk_check_button_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->check_buttons = _tmp1_;
	_tmp2_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, gtk_check_button_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->rules_buttons = _tmp2_;
	_tmp3_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, gtk_check_button_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->status_buttons = _tmp3_;
	_tmp4_ = g_new0 (TubaDialogsReportCategory, 1);
	_tmp4_[0] = TUBA_DIALOGS_REPORT_CATEGORY_SPAM;
	self->priv->categories = _tmp4_;
	self->priv->categories_length1 = 1;
	self->priv->_categories_size_ = self->priv->categories_length1;
	_tmp5_ = g_strdup ("");
	self->priv->account_id = _tmp5_;
	self->priv->status_id = NULL;
	self->priv->collection_id = NULL;
	self->priv->has_rules = FALSE;
	_tmp6_ = g_strdup ("");
	self->priv->account_domain = _tmp6_;
}

static void
tuba_dialogs_report_finalize (GObject * obj)
{
	TubaDialogsReport * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_DIALOGS_TYPE_REPORT, TubaDialogsReport);
	g_debug ("Report.vala:3: Destroying Report");
	_g_object_unref0 (self->priv->carousel);
	_g_object_unref0 (self->priv->page_3_stack);
	_g_object_unref0 (self->priv->page_3_error);
	_g_object_unref0 (self->priv->next_button);
	_g_object_unref0 (self->priv->back_button);
	_g_object_unref0 (self->priv->group_3);
	_g_object_unref0 (self->priv->page_2);
	_g_object_unref0 (self->priv->page_3);
	_g_object_unref0 (self->priv->page_4);
	_g_object_unref0 (self->priv->additional_info);
	_g_object_unref0 (self->priv->forward_switches);
	_g_object_unref0 (self->priv->check_buttons);
	_g_object_unref0 (self->priv->rules_buttons);
	_g_object_unref0 (self->priv->status_buttons);
	self->priv->categories = (g_free (self->priv->categories), NULL);
	_g_free0 (self->priv->account_id);
	_g_free0 (self->priv->status_id);
	_g_free0 (self->priv->collection_id);
	_g_free0 (self->priv->account_domain);
	G_OBJECT_CLASS (tuba_dialogs_report_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_dialogs_report_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaDialogsReportClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_dialogs_report_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaDialogsReport), 0, (GInstanceInitFunc) tuba_dialogs_report_instance_init, NULL };
	GType tuba_dialogs_report_type_id;
	tuba_dialogs_report_type_id = g_type_register_static (adw_dialog_get_type (), "TubaDialogsReport", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaDialogsReport_private_offset = g_type_add_instance_private (tuba_dialogs_report_type_id, sizeof (TubaDialogsReportPrivate));
	return tuba_dialogs_report_type_id;
}

GType
tuba_dialogs_report_get_type (void)
{
	static GType tuba_dialogs_report_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_dialogs_report_type_id__once)) {
		GType tuba_dialogs_report_type_id;
		tuba_dialogs_report_type_id = tuba_dialogs_report_get_type_once ();
		g_once_init_leave_pointer (&tuba_dialogs_report_type_id__once, tuba_dialogs_report_type_id);
	}
	return tuba_dialogs_report_type_id__once;
}

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;
}

