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

#include <glib-object.h>
#include <gtk/gtk.h>
#include <json-glib/json-glib.h>
#include <glib.h>
#include <stdlib.h>
#include <string.h>
#include <glib/gi18n-lib.h>
#include <gio/gio.h>
#include <libsoup/soup.h>
#include <gee.h>
#include <adwaita.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_TYPE_WIDGETIZABLE (tuba_widgetizable_get_type ())
#define TUBA_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizable))
#define TUBA_IS_WIDGETIZABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_TYPE_WIDGETIZABLE))
#define TUBA_WIDGETIZABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TUBA_TYPE_WIDGETIZABLE, TubaWidgetizableIface))

typedef struct _TubaWidgetizable TubaWidgetizable;
typedef struct _TubaWidgetizableIface TubaWidgetizableIface;

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

typedef struct _TubaEntity TubaEntity;
typedef struct _TubaEntityClass TubaEntityClass;

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

typedef struct _TubaAPIAccount TubaAPIAccount;
typedef struct _TubaAPIAccountClass TubaAPIAccountClass;

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

typedef struct _TubaInstanceAccount TubaInstanceAccount;
typedef struct _TubaInstanceAccountClass TubaInstanceAccountClass;
typedef struct _TubaEntityPrivate TubaEntityPrivate;

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

typedef struct _TubaAPIRelationship TubaAPIRelationship;
typedef struct _TubaAPIRelationshipClass TubaAPIRelationshipClass;
typedef struct _TubaAPIRelationshipPrivate TubaAPIRelationshipPrivate;
enum  {
	TUBA_API_RELATIONSHIP_0_PROPERTY,
	TUBA_API_RELATIONSHIP_TUBA_HAS_LOADED_PROPERTY,
	TUBA_API_RELATIONSHIP_ID_PROPERTY,
	TUBA_API_RELATIONSHIP_FOLLOWING_PROPERTY,
	TUBA_API_RELATIONSHIP_FOLLOWED_BY_PROPERTY,
	TUBA_API_RELATIONSHIP_SHOWING_REBLOGS_PROPERTY,
	TUBA_API_RELATIONSHIP_MUTING_PROPERTY,
	TUBA_API_RELATIONSHIP_MUTING_NOTIFICATIONS_PROPERTY,
	TUBA_API_RELATIONSHIP_REQUESTED_PROPERTY,
	TUBA_API_RELATIONSHIP_BLOCKING_PROPERTY,
	TUBA_API_RELATIONSHIP_BLOCKED_BY_PROPERTY,
	TUBA_API_RELATIONSHIP_DOMAIN_BLOCKING_PROPERTY,
	TUBA_API_RELATIONSHIP_NOTIFYING_PROPERTY,
	TUBA_API_RELATIONSHIP_ENDORSED_PROPERTY,
	TUBA_API_RELATIONSHIP_NOTE_PROPERTY,
	TUBA_API_RELATIONSHIP_NUM_PROPERTIES
};
static GParamSpec* tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_NUM_PROPERTIES];
typedef enum  {
	TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_NEVER,
	TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_HOUR_6,
	TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_HOUR_24,
	TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_7,
	TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_30
} TubaAPIRelationshipMuteExpiration;

#define TUBA_API_RELATIONSHIP_TYPE_MUTE_EXPIRATION (tuba_api_relationship_mute_expiration_get_type ())
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

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

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

#define TUBA_REQUEST_V2_TYPE_METHOD (tuba_request_v2_method_get_type ())

#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_OOPSIE (tuba_oopsie_get_type ())
typedef void (*TubaNetworkNodeCallback) (JsonNode* node, gpointer user_data, GError** error);
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _TubaApiRelationshipRequestRealData TubaApiRelationshipRequestRealData;
typedef struct _Block13Data Block13Data;
typedef struct _Block14Data Block14Data;
typedef struct _TubaApiRelationshipRequestManyData TubaApiRelationshipRequestManyData;

#define TUBA_API_RELATIONSHIP_TYPE_MODIFY_PARAM (tuba_api_relationship_modify_param_get_type ())
typedef struct _TubaAPIRelationshipModifyParam TubaAPIRelationshipModifyParam;

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

typedef struct _TubaNetwork TubaNetwork;
typedef struct _TubaNetworkClass TubaNetworkClass;
#define __vala_JsonNode_free0(var) ((var == NULL) ? NULL : (var = (_vala_JsonNode_free (var), NULL)))

#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;
typedef struct _TubaApiRelationshipModifyRealData TubaApiRelationshipModifyRealData;
typedef struct _TubaApiRelationshipModifyNoteRealSafeData TubaApiRelationshipModifyNoteRealSafeData;
typedef struct _TubaApiRelationshipModifyNoteRealData TubaApiRelationshipModifyNoteRealData;
typedef struct _Block15Data Block15Data;

#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_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;
typedef struct _Block16Data Block16Data;

#define TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER (tuba_api_relationship_mute_exp_wrapper_get_type ())
#define TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER, TubaAPIRelationshipMuteExpWrapper))
#define TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER, TubaAPIRelationshipMuteExpWrapperClass))
#define TUBA_API_RELATIONSHIP_IS_MUTE_EXP_WRAPPER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER))
#define TUBA_API_RELATIONSHIP_IS_MUTE_EXP_WRAPPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER))
#define TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER, TubaAPIRelationshipMuteExpWrapperClass))

typedef struct _TubaAPIRelationshipMuteExpWrapper TubaAPIRelationshipMuteExpWrapper;
typedef struct _TubaAPIRelationshipMuteExpWrapperClass TubaAPIRelationshipMuteExpWrapperClass;
#define _gtk_expression_unref0(var) ((var == NULL) ? NULL : (var = (gtk_expression_unref (var), NULL)))
typedef struct _TubaAPIRelationshipMuteExpWrapperPrivate TubaAPIRelationshipMuteExpWrapperPrivate;
enum  {
	TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_0_PROPERTY,
	TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_EXP_PROPERTY,
	TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_TITLE_PROPERTY,
	TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_NUM_PROPERTIES
};
static GParamSpec* tuba_api_relationship_mute_exp_wrapper_properties[TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_NUM_PROPERTIES];
enum  {
	TUBA_API_RELATIONSHIP_INVALIDATED_SIGNAL,
	TUBA_API_RELATIONSHIP_NUM_SIGNALS
};
static guint tuba_api_relationship_signals[TUBA_API_RELATIONSHIP_NUM_SIGNALS] = {0};

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

struct _TubaEntity {
	GObject parent_instance;
	TubaEntityPrivate * priv;
};

struct _TubaEntityClass {
	GObjectClass parent_class;
	gboolean (*is_local) (TubaEntity* self, TubaInstanceAccount* account);
	GType (*deserialize_array_type) (TubaEntity* self, const gchar* prop);
};

struct _TubaAPIRelationship {
	TubaEntity parent_instance;
	TubaAPIRelationshipPrivate * priv;
};

struct _TubaAPIRelationshipClass {
	TubaEntityClass parent_class;
};

struct _TubaAPIRelationshipPrivate {
	gboolean _tuba_has_loaded;
	gchar* _id;
	gboolean _following;
	gboolean _followed_by;
	gboolean _showing_reblogs;
	gboolean _muting;
	gboolean _muting_notifications;
	gboolean _requested;
	gboolean _blocking;
	gboolean _blocked_by;
	gboolean _domain_blocking;
	gboolean _notifying;
	gboolean _endorsed;
	gchar* _note;
};

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 _TubaApiRelationshipRequestRealData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	TubaAPIRelationship* self;
	TubaRequestV2* req;
	TubaAccountStore* _tmp0_;
	TubaInstanceAccount* _tmp1_;
	TubaInstanceAccount* _tmp2_;
	TubaInstanceAccount* _tmp3_;
	TubaRequestV2* _tmp4_;
	TubaRequestV2* _tmp5_;
	const gchar* _tmp6_;
	GInputStream* in_stream;
	TubaRequestV2* _tmp7_;
	GInputStream* _tmp8_;
	JsonParser* parser;
	GInputStream* _tmp9_;
	JsonParser* _tmp10_;
	JsonParser* _tmp11_;
	GError* e;
	GError* _tmp12_;
	gchar* _tmp13_;
	gchar* _tmp14_;
	GError* _tmp15_;
	const gchar* _tmp16_;
	const gchar* _tmp17_;
	gchar* _tmp18_;
	gchar* _tmp19_;
	GError* _inner_error0_;
};

struct _Block13Data {
	int _ref_count_;
	gchar* _result_;
	GeeArrayList* array;
	gchar* key;
};

struct _Block14Data {
	int _ref_count_;
	GeeHashMap* res;
	gpointer _async_data_;
};

struct _TubaApiRelationshipRequestManyData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	gchar** ids;
	gint ids_length1;
	GeeHashMap* result;
	Block14Data* _data14_;
	GeeHashMap* _tmp0_;
	gchar* id_array;
	gchar** _tmp1_;
	gint _tmp1__length1;
	GeeArrayList* _tmp2_;
	GeeArrayList* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	TubaRequestV2* req;
	const gchar* _tmp6_;
	const gchar* _tmp7_;
	gchar* _tmp8_;
	gchar* _tmp9_;
	TubaAccountStore* _tmp10_;
	TubaInstanceAccount* _tmp11_;
	TubaInstanceAccount* _tmp12_;
	TubaInstanceAccount* _tmp13_;
	TubaRequestV2* _tmp14_;
	TubaRequestV2* _tmp15_;
	GInputStream* in_stream;
	TubaRequestV2* _tmp16_;
	GInputStream* _tmp17_;
	JsonParser* parser;
	GInputStream* _tmp18_;
	JsonParser* _tmp19_;
	JsonParser* _tmp20_;
	GeeHashMap* _tmp21_;
	GeeHashMap* _tmp22_;
	GError* _inner_error0_;
};

struct _TubaAPIRelationshipModifyParam {
	gchar* param;
	gchar* val;
};

struct _TubaApiRelationshipModifyRealData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	TubaAPIRelationship* self;
	TubaRequestV2* req;
	gchar* operation;
	GInputStream* in_stream;
	GInputStream* _tmp0_;
	JsonParser* parser;
	GInputStream* _tmp1_;
	JsonParser* _tmp2_;
	JsonNode* node;
	TubaNetwork* _tmp3_;
	JsonParser* _tmp4_;
	JsonNode* _tmp5_;
	JsonNode* _tmp6_;
	const gchar* _tmp7_;
	const gchar* _tmp8_;
	const gchar* _tmp9_;
	gchar* _tmp10_;
	gchar* _tmp11_;
	TubaApplication* _tmp12_;
	const gchar* _tmp13_;
	TubaApplication* _tmp14_;
	GError* e;
	GError* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	GError* _tmp18_;
	const gchar* _tmp19_;
	const gchar* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	TubaApplication* _tmp23_;
	GError* _tmp24_;
	const gchar* _tmp25_;
	gchar* _tmp26_;
	gchar* _tmp27_;
	GError* _inner_error0_;
};

struct _TubaApiRelationshipModifyNoteRealSafeData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	TubaAPIRelationship* self;
	gchar* comment;
	GError* e;
	GError* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	GError* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	TubaApplication* _tmp8_;
	GError* _tmp9_;
	const gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	GError* _inner_error0_;
};

struct _TubaApiRelationshipModifyNoteRealData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	TubaAPIRelationship* self;
	gchar* comment;
	JsonBuilder* builder;
	JsonBuilder* _tmp0_;
	JsonBuilder* _tmp1_;
	JsonBuilder* _tmp2_;
	JsonBuilder* _tmp3_;
	JsonBuilder* _tmp4_;
	TubaRequestV2* req;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	TubaAccountStore* _tmp9_;
	TubaInstanceAccount* _tmp10_;
	TubaInstanceAccount* _tmp11_;
	TubaInstanceAccount* _tmp12_;
	TubaRequestV2* _tmp13_;
	TubaRequestV2* _tmp14_;
	TubaRequestV2* _tmp15_;
	JsonBuilder* _tmp16_;
	GInputStream* in_stream;
	TubaRequestV2* _tmp17_;
	GInputStream* _tmp18_;
	JsonParser* parser;
	GInputStream* _tmp19_;
	JsonParser* _tmp20_;
	JsonNode* node;
	TubaNetwork* _tmp21_;
	JsonParser* _tmp22_;
	JsonNode* _tmp23_;
	JsonNode* _tmp24_;
	const gchar* _tmp25_;
	const gchar* _tmp26_;
	gchar* _tmp27_;
	gchar* _tmp28_;
	GError* _inner_error0_;
};

struct _Block15Data {
	int _ref_count_;
	TubaAPIRelationship* self;
	gboolean block;
};

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

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

struct _TubaApplicationQuestionButtons {
	TubaApplicationQuestionButton yes;
	TubaApplicationQuestionButton no;
};

struct _Block16Data {
	int _ref_count_;
	TubaAPIRelationship* self;
	AdwSwitchRow* switch_row;
	AdwComboRow* exp_row;
};

struct _TubaAPIRelationshipMuteExpWrapper {
	GObject parent_instance;
	TubaAPIRelationshipMuteExpWrapperPrivate * priv;
};

struct _TubaAPIRelationshipMuteExpWrapperClass {
	GObjectClass parent_class;
};

struct _TubaAPIRelationshipMuteExpWrapperPrivate {
	TubaAPIRelationshipMuteExpiration _exp;
	gchar* _title;
};

static gint TubaAPIRelationship_private_offset;
static gpointer tuba_api_relationship_parent_class = NULL;
VALA_EXTERN TubaAccountStore* tuba_accounts;
VALA_EXTERN TubaNetwork* tuba_network;
VALA_EXTERN TubaApplication* tuba_app;
static gint TubaAPIRelationshipMuteExpWrapper_private_offset;
static gpointer tuba_api_relationship_mute_exp_wrapper_parent_class = NULL;

VALA_EXTERN GType tuba_entity_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaEntity, g_object_unref)
VALA_EXTERN GType tuba_api_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIAccount, g_object_unref)
VALA_EXTERN GType tuba_instance_account_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaInstanceAccount, g_object_unref)
VALA_EXTERN GType tuba_widgetizable_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaWidgetizable, g_object_unref)
VALA_EXTERN GType tuba_api_relationship_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIRelationship, g_object_unref)
static GType tuba_api_relationship_mute_expiration_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
static gchar* tuba_api_relationship_mute_expiration_to_string (TubaAPIRelationshipMuteExpiration self);
static gint tuba_api_relationship_mute_expiration_to_seconds (TubaAPIRelationshipMuteExpiration self);
VALA_EXTERN gchar* tuba_api_relationship_to_string (TubaAPIRelationship* self);
VALA_EXTERN gboolean tuba_api_relationship_get_requested (TubaAPIRelationship* self);
VALA_EXTERN gboolean tuba_api_relationship_get_followed_by (TubaAPIRelationship* self);
VALA_EXTERN gboolean tuba_api_relationship_get_following (TubaAPIRelationship* self);
VALA_EXTERN gboolean tuba_api_relationship_get_blocked_by (TubaAPIRelationship* self);
VALA_EXTERN TubaAPIRelationship* tuba_api_relationship_new_for_account (TubaAPIAccount* acc);
VALA_EXTERN TubaAPIRelationship* tuba_api_relationship_construct_for_account (GType object_type,
                                                                  TubaAPIAccount* acc);
VALA_EXTERN const gchar* tuba_api_account_get_id (TubaAPIAccount* self);
VALA_EXTERN void tuba_api_relationship_request (TubaAPIRelationship* self);
VALA_EXTERN TubaAPIRelationship* tuba_api_relationship_new_for_account_id (const gchar* t_id);
VALA_EXTERN TubaAPIRelationship* tuba_api_relationship_construct_for_account_id (GType object_type,
                                                                     const gchar* t_id);
static void tuba_api_relationship_request_real (TubaAPIRelationship* self,
                                         GAsyncReadyCallback _callback_,
                                         gpointer _user_data_);
static void tuba_api_relationship_request_real_finish (TubaAPIRelationship* self,
                                                GAsyncResult* _res_);
static void tuba_api_relationship_request_real_data_free (gpointer _data);
static gboolean tuba_api_relationship_request_real_co (TubaApiRelationshipRequestRealData* _data_);
VALA_EXTERN GType tuba_request_v2_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaRequestV2, g_object_unref)
VALA_EXTERN GType tuba_request_v2_method_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GType tuba_account_store_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAccountStore, g_object_unref)
VALA_EXTERN TubaInstanceAccount* tuba_account_store_get_active (TubaAccountStore* self);
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_parameter (TubaRequestV2* self,
                                    const gchar* key,
                                    const gchar* value);
VALA_EXTERN const gchar* tuba_api_relationship_get_id (TubaAPIRelationship* 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_api_relationship_request_real_ready (GObject* source_object,
                                               GAsyncResult* _res_,
                                               gpointer _user_data_);
VALA_EXTERN void tuba_network_get_parser_from_inputstream_async (GInputStream* in_stream,
                                                     GCancellable* cancellable,
                                                     GAsyncReadyCallback _callback_,
                                                     gpointer _user_data_);
VALA_EXTERN JsonParser* tuba_network_get_parser_from_inputstream_finish (GAsyncResult* _res_,
                                                             GError** error);
VALA_EXTERN void tuba_network_parse_array (JsonParser* parser,
                               TubaNetworkNodeCallback cb,
                               gpointer cb_target,
                               GDestroyNotify cb_target_destroy_notify,
                               GError** error);
static void ___lambda14_ (TubaAPIRelationship* self,
                   JsonNode* node,
                   GError** error);
static void tuba_api_relationship_invalidate (TubaAPIRelationship* self,
                                       JsonNode* node,
                                       GError** error);
static void ____lambda14__tuba_network_node_callback (JsonNode* node,
                                               gpointer self,
                                               GError** error);
VALA_EXTERN gchar* tuba_api_relationship_array2string (GeeArrayList* array,
                                           const gchar* key);
static Block13Data* block13_data_ref (Block13Data* _data13_);
static void block13_data_unref (void * _userdata_);
static gboolean __lambda15_ (Block13Data* _data13_,
                      gchar* i);
static gboolean ___lambda15__gee_forall_func (gpointer g,
                                       gpointer self);
static void tuba_api_relationship_request_many_data_free (gpointer _data);
VALA_EXTERN void tuba_api_relationship_request_many (gchar** ids,
                                         gint ids_length1,
                                         GAsyncReadyCallback _callback_,
                                         gpointer _user_data_);
VALA_EXTERN GeeHashMap* tuba_api_relationship_request_many_finish (GAsyncResult* _res_,
                                                       GError** error);
static gboolean tuba_api_relationship_request_many_co (TubaApiRelationshipRequestManyData* _data_);
static Block14Data* block14_data_ref (Block14Data* _data14_);
static void block14_data_unref (void * _userdata_);
static gchar** _vala_array_dup6 (gchar** self,
                          gssize length);
static void tuba_api_relationship_request_many_ready (GObject* source_object,
                                               GAsyncResult* _res_,
                                               gpointer _user_data_);
static void ___lambda16_ (Block14Data* _data14_,
                   JsonNode* node,
                   GError** error);
VALA_EXTERN TubaEntity* tuba_entity_from_json (GType type,
                                   JsonNode* node,
                                   GError** error);
VALA_EXTERN void tuba_api_relationship_set_tuba_has_loaded (TubaAPIRelationship* self,
                                                gboolean value);
static void ____lambda16__tuba_network_node_callback (JsonNode* node,
                                               gpointer self,
                                               GError** error);
VALA_EXTERN void tuba_entity_patch (TubaEntity* self,
                        GObject* with);
VALA_EXTERN GType tuba_api_relationship_modify_param_get_type (void) G_GNUC_CONST ;
VALA_EXTERN TubaAPIRelationshipModifyParam* tuba_api_relationship_modify_param_dup (const TubaAPIRelationshipModifyParam* self);
VALA_EXTERN void tuba_api_relationship_modify_param_free (TubaAPIRelationshipModifyParam* self);
VALA_EXTERN void tuba_api_relationship_modify_param_copy (const TubaAPIRelationshipModifyParam* self,
                                              TubaAPIRelationshipModifyParam* dest);
VALA_EXTERN void tuba_api_relationship_modify_param_destroy (TubaAPIRelationshipModifyParam* self);
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC (TubaAPIRelationshipModifyParam, tuba_api_relationship_modify_param_destroy)
VALA_EXTERN void tuba_api_relationship_modify (TubaAPIRelationship* self,
                                   const gchar* operation,
                                   TubaAPIRelationshipModifyParam* modify_params,
                                   gint modify_params_length1);
static void tuba_api_relationship_modify_real (TubaAPIRelationship* self,
                                        TubaRequestV2* req,
                                        const gchar* operation,
                                        GAsyncReadyCallback _callback_,
                                        gpointer _user_data_);
static void tuba_api_relationship_modify_real_finish (TubaAPIRelationship* self,
                                               GAsyncResult* _res_);
static void tuba_api_relationship_modify_real_data_free (gpointer _data);
static gboolean tuba_api_relationship_modify_real_co (TubaApiRelationshipModifyRealData* _data_);
static void tuba_api_relationship_modify_real_ready (GObject* source_object,
                                              GAsyncResult* _res_,
                                              gpointer _user_data_);
VALA_EXTERN GType tuba_network_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaNetwork, g_object_unref)
VALA_EXTERN JsonNode* tuba_network_parse_node (TubaNetwork* self,
                                   JsonParser* parser);
static void _vala_JsonNode_free (JsonNode* self);
static gboolean _vala_string_array_contains (const gchar* * stack,
                                      gssize stack_length,
                                      const const gchar* needle);
VALA_EXTERN GType tuba_application_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaApplication, g_object_unref)
VALA_EXTERN void tuba_api_relationship_modify_note (TubaAPIRelationship* self,
                                        const gchar* comment);
static void tuba_api_relationship_modify_note_real_safe (TubaAPIRelationship* self,
                                                  const gchar* comment,
                                                  GAsyncReadyCallback _callback_,
                                                  gpointer _user_data_);
static void tuba_api_relationship_modify_note_real_safe_finish (TubaAPIRelationship* self,
                                                         GAsyncResult* _res_);
static void tuba_api_relationship_modify_note_real_safe_data_free (gpointer _data);
static gboolean tuba_api_relationship_modify_note_real_safe_co (TubaApiRelationshipModifyNoteRealSafeData* _data_);
VALA_EXTERN void tuba_api_relationship_modify_note_real (TubaAPIRelationship* self,
                                             const gchar* comment,
                                             GAsyncReadyCallback _callback_,
                                             gpointer _user_data_);
VALA_EXTERN void tuba_api_relationship_modify_note_real_finish (TubaAPIRelationship* self,
                                                    GAsyncResult* _res_,
                                                    GError** error);
static void tuba_api_relationship_modify_note_real_safe_ready (GObject* source_object,
                                                        GAsyncResult* _res_,
                                                        gpointer _user_data_);
static void tuba_api_relationship_modify_note_real_data_free (gpointer _data);
static gboolean tuba_api_relationship_modify_note_real_co (TubaApiRelationshipModifyNoteRealData* _data_);
VALA_EXTERN void tuba_request_v2_set_body_from_json (TubaRequestV2* self,
                                         JsonBuilder* json_builder);
static void tuba_api_relationship_modify_note_real_ready (GObject* source_object,
                                                   GAsyncResult* _res_,
                                                   gpointer _user_data_);
VALA_EXTERN void tuba_api_relationship_question_modify_block (TubaAPIRelationship* self,
                                                  const gchar* handle,
                                                  gboolean block);
static Block15Data* block15_data_ref (Block15Data* _data15_);
static void block15_data_unref (void * _userdata_);
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_);
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 __lambda17_ (Block15Data* _data15_,
                  GObject* obj,
                  GAsyncResult* res);
VALA_EXTERN gboolean tuba_application_question_answer_truthy (TubaApplicationQuestionAnswer self);
static void ___lambda17__gasync_ready_callback (GObject* source_object,
                                         GAsyncResult* res,
                                         gpointer self);
VALA_EXTERN void tuba_api_relationship_question_modify_mute (TubaAPIRelationship* self,
                                                 const gchar* handle);
static Block16Data* block16_data_ref (Block16Data* _data16_);
static void block16_data_unref (void * _userdata_);
static GType tuba_api_relationship_mute_exp_wrapper_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (TubaAPIRelationshipMuteExpWrapper, g_object_unref)
static TubaAPIRelationshipMuteExpWrapper* tuba_api_relationship_mute_exp_wrapper_new (TubaAPIRelationshipMuteExpiration exp,
                                                                               const gchar* title);
static TubaAPIRelationshipMuteExpWrapper* tuba_api_relationship_mute_exp_wrapper_construct (GType object_type,
                                                                                     TubaAPIRelationshipMuteExpiration exp,
                                                                                     const gchar* title);
static void _vala_array_add2 (TubaAPIRelationshipMuteExpWrapper** * array,
                       gint* length,
                       gint* size,
                       TubaAPIRelationshipMuteExpWrapper* value);
static void __lambda18_ (Block16Data* _data16_,
                  GObject* obj,
                  GAsyncResult* res);
static TubaAPIRelationshipMuteExpiration tuba_api_relationship_mute_exp_wrapper_get_exp (TubaAPIRelationshipMuteExpWrapper* self);
static void _vala_TubaAPIRelationshipModifyParam_array_free (TubaAPIRelationshipModifyParam * array,
                                                      gssize array_length);
static void ___lambda18__gasync_ready_callback (GObject* source_object,
                                         GAsyncResult* res,
                                         gpointer self);
VALA_EXTERN TubaAPIRelationship* tuba_api_relationship_new (void);
VALA_EXTERN TubaAPIRelationship* tuba_api_relationship_construct (GType object_type);
VALA_EXTERN TubaEntity* tuba_entity_new (void);
VALA_EXTERN TubaEntity* tuba_entity_construct (GType object_type);
VALA_EXTERN gboolean tuba_api_relationship_get_tuba_has_loaded (TubaAPIRelationship* self);
VALA_EXTERN void tuba_api_relationship_set_id (TubaAPIRelationship* self,
                                   const gchar* value);
VALA_EXTERN void tuba_api_relationship_set_following (TubaAPIRelationship* self,
                                          gboolean value);
VALA_EXTERN void tuba_api_relationship_set_followed_by (TubaAPIRelationship* self,
                                            gboolean value);
VALA_EXTERN gboolean tuba_api_relationship_get_showing_reblogs (TubaAPIRelationship* self);
VALA_EXTERN void tuba_api_relationship_set_showing_reblogs (TubaAPIRelationship* self,
                                                gboolean value);
VALA_EXTERN gboolean tuba_api_relationship_get_muting (TubaAPIRelationship* self);
VALA_EXTERN void tuba_api_relationship_set_muting (TubaAPIRelationship* self,
                                       gboolean value);
VALA_EXTERN gboolean tuba_api_relationship_get_muting_notifications (TubaAPIRelationship* self);
VALA_EXTERN void tuba_api_relationship_set_muting_notifications (TubaAPIRelationship* self,
                                                     gboolean value);
VALA_EXTERN void tuba_api_relationship_set_requested (TubaAPIRelationship* self,
                                          gboolean value);
VALA_EXTERN gboolean tuba_api_relationship_get_blocking (TubaAPIRelationship* self);
VALA_EXTERN void tuba_api_relationship_set_blocking (TubaAPIRelationship* self,
                                         gboolean value);
VALA_EXTERN void tuba_api_relationship_set_blocked_by (TubaAPIRelationship* self,
                                           gboolean value);
VALA_EXTERN gboolean tuba_api_relationship_get_domain_blocking (TubaAPIRelationship* self);
VALA_EXTERN void tuba_api_relationship_set_domain_blocking (TubaAPIRelationship* self,
                                                gboolean value);
VALA_EXTERN gboolean tuba_api_relationship_get_notifying (TubaAPIRelationship* self);
VALA_EXTERN void tuba_api_relationship_set_notifying (TubaAPIRelationship* self,
                                          gboolean value);
VALA_EXTERN gboolean tuba_api_relationship_get_endorsed (TubaAPIRelationship* self);
VALA_EXTERN void tuba_api_relationship_set_endorsed (TubaAPIRelationship* self,
                                         gboolean value);
VALA_EXTERN const gchar* tuba_api_relationship_get_note (TubaAPIRelationship* self);
VALA_EXTERN void tuba_api_relationship_set_note (TubaAPIRelationship* self,
                                     const gchar* value);
static void tuba_api_relationship_mute_exp_wrapper_set_exp (TubaAPIRelationshipMuteExpWrapper* self,
                                                     TubaAPIRelationshipMuteExpiration value);
static void tuba_api_relationship_mute_exp_wrapper_set_title (TubaAPIRelationshipMuteExpWrapper* self,
                                                       const gchar* value);
static const gchar* tuba_api_relationship_mute_exp_wrapper_get_title (TubaAPIRelationshipMuteExpWrapper* self);
static void tuba_api_relationship_mute_exp_wrapper_finalize (GObject * obj);
static GType tuba_api_relationship_mute_exp_wrapper_get_type_once (void);
static void _vala_tuba_api_relationship_mute_exp_wrapper_get_property (GObject * object,
                                                                guint property_id,
                                                                GValue * value,
                                                                GParamSpec * pspec);
static void _vala_tuba_api_relationship_mute_exp_wrapper_set_property (GObject * object,
                                                                guint property_id,
                                                                const GValue * value,
                                                                GParamSpec * pspec);
static void tuba_api_relationship_finalize (GObject * obj);
static GType tuba_api_relationship_get_type_once (void);
static void _vala_tuba_api_relationship_get_property (GObject * object,
                                               guint property_id,
                                               GValue * value,
                                               GParamSpec * pspec);
static void _vala_tuba_api_relationship_set_property (GObject * object,
                                               guint property_id,
                                               const GValue * value,
                                               GParamSpec * pspec);
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 const gchar* TUBA_API_RELATIONSHIP_REQUIRES_USER_REMOVAL[3] = {"mute", "block", "unfollow"};
static const gchar* TUBA_API_RELATIONSHIP_REQUIRES_FEATURED_REFRESH[4] = {"endorse", "unendorse", "pin", "unpin"};
static const TubaAPIRelationshipMuteExpiration TUBA_API_RELATIONSHIP_ALL_MUTE_EXPS[4] = {TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_NEVER, TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_HOUR_24, TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_7, TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_30};

static inline gpointer
tuba_api_relationship_get_instance_private (TubaAPIRelationship* self)
{
	return G_STRUCT_MEMBER_P (self, TubaAPIRelationship_private_offset);
}

static gchar*
tuba_api_relationship_mute_expiration_to_string (TubaAPIRelationshipMuteExpiration self)
{
	gchar* result;
	switch (self) {
		case TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_NEVER:
		{
			gchar* _tmp0_;
			_tmp0_ = g_strdup (_ ("Never"));
			result = _tmp0_;
			return result;
		}
		case TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_HOUR_6:
		{
			gchar* _tmp1_;
			_tmp1_ = g_strdup_printf (ngettext ("%d Hour", "%d Hours", (gulong) 6), 6);
			result = _tmp1_;
			return result;
		}
		case TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_HOUR_24:
		{
			gchar* _tmp2_;
			_tmp2_ = g_strdup_printf (ngettext ("%d Hour", "%d Hours", (gulong) 24), 24);
			result = _tmp2_;
			return result;
		}
		case TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_7:
		{
			gchar* _tmp3_;
			_tmp3_ = g_strdup_printf (ngettext ("%d Day", "%d Days", (gulong) 7), 7);
			result = _tmp3_;
			return result;
		}
		case TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_30:
		{
			gchar* _tmp4_;
			_tmp4_ = g_strdup_printf (ngettext ("%d Day", "%d Days", (gulong) 30), 30);
			result = _tmp4_;
			return result;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
}

static gint
tuba_api_relationship_mute_expiration_to_seconds (TubaAPIRelationshipMuteExpiration self)
{
	gint result;
	switch (self) {
		case TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_NEVER:
		{
			result = 0;
			return result;
		}
		case TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_HOUR_6:
		{
			result = 3600 * 6;
			return result;
		}
		case TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_HOUR_24:
		{
			result = 3600 * 24;
			return result;
		}
		case TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_7:
		{
			result = (3600 * 24) * 7;
			return result;
		}
		case TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_30:
		{
			result = (3600 * 24) * 30;
			return result;
		}
		default:
		{
			g_assert_not_reached ();
		}
	}
}

 G_GNUC_NO_INLINE static GType
tuba_api_relationship_mute_expiration_get_type_once (void)
{
	static const GEnumValue values[] = {{TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_NEVER, "TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_NEVER", "never"}, {TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_HOUR_6, "TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_HOUR_6", "hour-6"}, {TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_HOUR_24, "TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_HOUR_24", "hour-24"}, {TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_7, "TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_7", "day-7"}, {TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_30, "TUBA_API_RELATIONSHIP_MUTE_EXPIRATION_DAY_30", "day-30"}, {0, NULL, NULL}};
	GType tuba_api_relationship_mute_expiration_type_id;
	tuba_api_relationship_mute_expiration_type_id = g_enum_register_static ("TubaAPIRelationshipMuteExpiration", values);
	return tuba_api_relationship_mute_expiration_type_id;
}

static GType
tuba_api_relationship_mute_expiration_get_type (void)
{
	static GType tuba_api_relationship_mute_expiration_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_relationship_mute_expiration_type_id__once)) {
		GType tuba_api_relationship_mute_expiration_type_id;
		tuba_api_relationship_mute_expiration_type_id = tuba_api_relationship_mute_expiration_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_relationship_mute_expiration_type_id__once, tuba_api_relationship_mute_expiration_type_id);
	}
	return tuba_api_relationship_mute_expiration_type_id__once;
}

gchar*
tuba_api_relationship_to_string (TubaAPIRelationship* self)
{
	gchar* label = NULL;
	gchar* _tmp0_;
	gboolean _tmp1_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_strdup ("");
	label = _tmp0_;
	_tmp1_ = self->priv->_requested;
	if (_tmp1_) {
		gchar* _tmp2_;
		_tmp2_ = g_strdup (_ ("Sent follow request"));
		_g_free0 (label);
		label = _tmp2_;
	} else {
		gboolean _tmp3_ = FALSE;
		gboolean _tmp4_;
		_tmp4_ = self->priv->_followed_by;
		if (_tmp4_) {
			gboolean _tmp5_;
			_tmp5_ = self->priv->_following;
			_tmp3_ = _tmp5_;
		} else {
			_tmp3_ = FALSE;
		}
		if (_tmp3_) {
			gchar* _tmp6_;
			_tmp6_ = g_strdup (_ ("Mutuals"));
			_g_free0 (label);
			label = _tmp6_;
		} else {
			gboolean _tmp7_;
			_tmp7_ = self->priv->_followed_by;
			if (_tmp7_) {
				gchar* _tmp8_;
				_tmp8_ = g_strdup (_ ("Follows you"));
				_g_free0 (label);
				label = _tmp8_;
			} else {
				gboolean _tmp9_;
				_tmp9_ = self->priv->_blocked_by;
				if (_tmp9_) {
					gchar* _tmp10_;
					_tmp10_ = g_strdup (_ ("Blocks you"));
					_g_free0 (label);
					label = _tmp10_;
				}
			}
		}
	}
	result = label;
	return result;
}

TubaAPIRelationship*
tuba_api_relationship_construct_for_account (GType object_type,
                                             TubaAPIAccount* acc)
{
	TubaAPIRelationship * self = NULL;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	g_return_val_if_fail (acc != NULL, NULL);
	_tmp0_ = tuba_api_account_get_id (acc);
	_tmp1_ = _tmp0_;
	self = (TubaAPIRelationship*) g_object_new (object_type, "id", _tmp1_, NULL);
	tuba_api_relationship_request (self);
	return self;
}

TubaAPIRelationship*
tuba_api_relationship_new_for_account (TubaAPIAccount* acc)
{
	return tuba_api_relationship_construct_for_account (TUBA_API_TYPE_RELATIONSHIP, acc);
}

TubaAPIRelationship*
tuba_api_relationship_construct_for_account_id (GType object_type,
                                                const gchar* t_id)
{
	TubaAPIRelationship * self = NULL;
	g_return_val_if_fail (t_id != NULL, NULL);
	self = (TubaAPIRelationship*) g_object_new (object_type, "id", t_id, NULL);
	tuba_api_relationship_request (self);
	return self;
}

TubaAPIRelationship*
tuba_api_relationship_new_for_account_id (const gchar* t_id)
{
	return tuba_api_relationship_construct_for_account_id (TUBA_API_TYPE_RELATIONSHIP, t_id);
}

void
tuba_api_relationship_request (TubaAPIRelationship* self)
{
	g_return_if_fail (self != NULL);
	tuba_api_relationship_request_real (self, NULL, NULL);
}

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

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

static void
tuba_api_relationship_request_real (TubaAPIRelationship* self,
                                    GAsyncReadyCallback _callback_,
                                    gpointer _user_data_)
{
	TubaApiRelationshipRequestRealData* _data_;
	TubaAPIRelationship* _tmp0_;
	g_return_if_fail (self != NULL);
	_data_ = g_slice_new0 (TubaApiRelationshipRequestRealData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_api_relationship_request_real_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	tuba_api_relationship_request_real_co (_data_);
}

static void
tuba_api_relationship_request_real_finish (TubaAPIRelationship* self,
                                           GAsyncResult* _res_)
{
	TubaApiRelationshipRequestRealData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static void
tuba_api_relationship_request_real_ready (GObject* source_object,
                                          GAsyncResult* _res_,
                                          gpointer _user_data_)
{
	TubaApiRelationshipRequestRealData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_api_relationship_request_real_co (_data_);
}

static void
___lambda14_ (TubaAPIRelationship* self,
              JsonNode* node,
              GError** error)
{
	GError* _inner_error0_ = NULL;
	g_return_if_fail (node != NULL);
	tuba_api_relationship_invalidate (self, node, &_inner_error0_);
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
}

static void
____lambda14__tuba_network_node_callback (JsonNode* node,
                                          gpointer self,
                                          GError** error)
{
	___lambda14_ ((TubaAPIRelationship*) self, node, error);
}

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

static gboolean
tuba_api_relationship_request_real_co (TubaApiRelationshipRequestRealData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = tuba_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/accounts/relationships", TUBA_REQUEST_V2_METHOD_GET);
	tuba_request_v2_set_account (_data_->_tmp4_, _data_->_tmp3_);
	_g_object_unref0 (_data_->_tmp3_);
	_data_->req = _data_->_tmp4_;
	_data_->_tmp5_ = _data_->req;
	_data_->_tmp6_ = _data_->self->priv->_id;
	tuba_request_v2_add_parameter (_data_->_tmp5_, "id[]", _data_->_tmp6_);
	{
		_data_->_tmp7_ = _data_->req;
		_data_->_state_ = 1;
		tuba_request_v2_exec (_data_->_tmp7_, tuba_api_relationship_request_real_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp8_ = tuba_request_v2_exec_finish (_data_->_tmp7_, _data_->_res_, NULL, &_data_->_inner_error0_);
		_data_->in_stream = _data_->_tmp8_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __catch0_g_error;
		}
		_data_->_tmp9_ = _data_->in_stream;
		_data_->_state_ = 2;
		tuba_network_get_parser_from_inputstream_async (_data_->_tmp9_, NULL, tuba_api_relationship_request_real_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp10_ = tuba_network_get_parser_from_inputstream_finish (_data_->_res_, &_data_->_inner_error0_);
		_data_->parser = _data_->_tmp10_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->in_stream);
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __catch0_g_error;
		}
		_data_->_tmp11_ = _data_->parser;
		tuba_network_parse_array (_data_->_tmp11_, ____lambda14__tuba_network_node_callback, g_object_ref (_data_->self), g_object_unref, &_data_->_inner_error0_);
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->parser);
			_g_object_unref0 (_data_->in_stream);
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __catch0_g_error;
		}
		_g_object_unref0 (_data_->parser);
		_g_object_unref0 (_data_->in_stream);
	}
	goto __finally0;
	__catch0_g_io_error_cancelled:
	{
		g_clear_error (&_data_->_inner_error0_);
		g_debug ("Relationship.vala:61: Message is cancelled.");
	}
	goto __finally0;
	__catch0_g_error:
	{
		_data_->e = _data_->_inner_error0_;
		_data_->_inner_error0_ = NULL;
		_data_->_tmp12_ = _data_->e;
		_data_->_tmp13_ = g_strdup_printf ("%i", _data_->_tmp12_->code);
		_data_->_tmp14_ = _data_->_tmp13_;
		_data_->_tmp15_ = _data_->e;
		_data_->_tmp16_ = _data_->_tmp15_->message;
		_data_->_tmp17_ = string_to_string (_data_->_tmp16_);
		_data_->_tmp18_ = g_strconcat ("Error while requesting relationship: ", _data_->_tmp14_, " ", _data_->_tmp17_, NULL);
		_data_->_tmp19_ = _data_->_tmp18_;
		g_warning ("Relationship.vala:63: %s", _data_->_tmp19_);
		_g_free0 (_data_->_tmp19_);
		_g_free0 (_data_->_tmp14_);
		_g_error_free0 (_data_->e);
	}
	__finally0:
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
		_g_object_unref0 (_data_->req);
		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);
	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 Block13Data*
block13_data_ref (Block13Data* _data13_)
{
	g_atomic_int_inc (&_data13_->_ref_count_);
	return _data13_;
}

static void
block13_data_unref (void * _userdata_)
{
	Block13Data* _data13_;
	_data13_ = (Block13Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data13_->_ref_count_)) {
		_g_free0 (_data13_->_result_);
		_g_object_unref0 (_data13_->array);
		_g_free0 (_data13_->key);
		g_slice_free (Block13Data, _data13_);
	}
}

static gboolean
__lambda15_ (Block13Data* _data13_,
             gchar* i)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gint _tmp6_;
	gboolean result;
	g_return_val_if_fail (i != NULL, FALSE);
	_tmp0_ = string_to_string (_data13_->key);
	_tmp1_ = string_to_string (i);
	_tmp2_ = g_strconcat (_tmp0_, "[]=", _tmp1_, NULL);
	_tmp3_ = _tmp2_;
	_tmp4_ = g_strconcat (_data13_->_result_, _tmp3_, NULL);
	_g_free0 (_data13_->_result_);
	_data13_->_result_ = _tmp4_;
	_g_free0 (_tmp3_);
	_tmp5_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _data13_->array);
	_tmp6_ = _tmp5_;
	if ((gee_abstract_list_index_of ((GeeAbstractList*) _data13_->array, i) + 1) != _tmp6_) {
		gchar* _tmp7_;
		_tmp7_ = g_strconcat (_data13_->_result_, "&", NULL);
		_g_free0 (_data13_->_result_);
		_data13_->_result_ = _tmp7_;
	}
	result = TRUE;
	_g_free0 (i);
	return result;
}

static gboolean
___lambda15__gee_forall_func (gpointer g,
                              gpointer self)
{
	gboolean result;
	result = __lambda15_ (self, (gchar*) g);
	return result;
}

gchar*
tuba_api_relationship_array2string (GeeArrayList* array,
                                    const gchar* key)
{
	Block13Data* _data13_;
	GeeArrayList* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* result;
	g_return_val_if_fail (array != NULL, NULL);
	g_return_val_if_fail (key != NULL, NULL);
	_data13_ = g_slice_new0 (Block13Data);
	_data13_->_ref_count_ = 1;
	_tmp0_ = _g_object_ref0 (array);
	_g_object_unref0 (_data13_->array);
	_data13_->array = _tmp0_;
	_tmp1_ = g_strdup (key);
	_g_free0 (_data13_->key);
	_data13_->key = _tmp1_;
	_tmp2_ = g_strdup ("");
	_data13_->_result_ = _tmp2_;
	gee_abstract_collection_foreach ((GeeAbstractCollection*) _data13_->array, ___lambda15__gee_forall_func, _data13_);
	_tmp3_ = g_strdup (_data13_->_result_);
	result = _tmp3_;
	block13_data_unref (_data13_);
	_data13_ = NULL;
	return result;
}

static void
tuba_api_relationship_request_many_data_free (gpointer _data)
{
	TubaApiRelationshipRequestManyData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->result);
	g_slice_free (TubaApiRelationshipRequestManyData, _data_);
}

void
tuba_api_relationship_request_many (gchar** ids,
                                    gint ids_length1,
                                    GAsyncReadyCallback _callback_,
                                    gpointer _user_data_)
{
	TubaApiRelationshipRequestManyData* _data_;
	_data_ = g_slice_new0 (TubaApiRelationshipRequestManyData);
	_data_->_async_result = g_task_new (NULL, NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_api_relationship_request_many_data_free);
	_data_->ids = ids;
	_data_->ids_length1 = ids_length1;
	tuba_api_relationship_request_many_co (_data_);
}

GeeHashMap*
tuba_api_relationship_request_many_finish (GAsyncResult* _res_,
                                           GError** error)
{
	GeeHashMap* result;
	TubaApiRelationshipRequestManyData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return NULL;
	}
	result = _data_->result;
	_data_->result = NULL;
	return result;
}

static Block14Data*
block14_data_ref (Block14Data* _data14_)
{
	g_atomic_int_inc (&_data14_->_ref_count_);
	return _data14_;
}

static void
block14_data_unref (void * _userdata_)
{
	Block14Data* _data14_;
	_data14_ = (Block14Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data14_->_ref_count_)) {
		_g_object_unref0 (_data14_->res);
		g_slice_free (Block14Data, _data14_);
	}
}

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

static void
tuba_api_relationship_request_many_ready (GObject* source_object,
                                          GAsyncResult* _res_,
                                          gpointer _user_data_)
{
	TubaApiRelationshipRequestManyData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_api_relationship_request_many_co (_data_);
}

static void
___lambda16_ (Block14Data* _data14_,
              JsonNode* node,
              GError** error)
{
	TubaEntity* _tmp0_ = NULL;
	TubaEntity* _tmp1_;
	TubaAPIRelationship* entity = NULL;
	TubaAPIRelationship* _tmp2_;
	TubaAPIRelationship* _tmp3_;
	GeeHashMap* _tmp4_;
	TubaAPIRelationship* _tmp5_;
	const gchar* _tmp6_;
	TubaAPIRelationship* _tmp7_;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (node != NULL);
	_tmp1_ = tuba_entity_from_json (TUBA_API_TYPE_RELATIONSHIP, node, &_inner_error0_);
	_tmp0_ = _tmp1_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	_tmp2_ = _g_object_ref0 (TUBA_API_IS_RELATIONSHIP (_tmp0_) ? ((TubaAPIRelationship*) _tmp0_) : NULL);
	entity = _tmp2_;
	_tmp3_ = entity;
	tuba_api_relationship_set_tuba_has_loaded (_tmp3_, TRUE);
	_tmp4_ = _data14_->res;
	_tmp5_ = entity;
	_tmp6_ = _tmp5_->priv->_id;
	_tmp7_ = entity;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp4_, _tmp6_, _tmp7_);
	_g_object_unref0 (entity);
	_g_object_unref0 (_tmp0_);
}

static void
____lambda16__tuba_network_node_callback (JsonNode* node,
                                          gpointer self,
                                          GError** error)
{
	___lambda16_ (self, node, error);
}

static gboolean
tuba_api_relationship_request_many_co (TubaApiRelationshipRequestManyData* _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_->_data14_ = g_slice_new0 (Block14Data);
	_data_->_data14_->_ref_count_ = 1;
	_data_->_data14_->_async_data_ = _data_;
	_data_->_tmp0_ = gee_hash_map_new (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, TUBA_API_TYPE_RELATIONSHIP, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	_data_->_data14_->res = _data_->_tmp0_;
	_data_->_tmp1_ = (_data_->ids != NULL) ? _vala_array_dup6 (_data_->ids, _data_->ids_length1) : _data_->ids;
	_data_->_tmp1__length1 = _data_->ids_length1;
	_data_->_tmp2_ = gee_array_list_new_wrap (G_TYPE_STRING, (GBoxedCopyFunc) g_strdup, (GDestroyNotify) g_free, _data_->_tmp1_, _data_->_tmp1__length1, NULL, NULL, NULL);
	_data_->_tmp3_ = _data_->_tmp2_;
	_data_->_tmp4_ = tuba_api_relationship_array2string (_data_->_tmp3_, "id");
	_data_->_tmp5_ = _data_->_tmp4_;
	_g_object_unref0 (_data_->_tmp3_);
	_data_->id_array = _data_->_tmp5_;
	_data_->_tmp6_ = _data_->id_array;
	_data_->_tmp7_ = string_to_string (_data_->_tmp6_);
	_data_->_tmp8_ = g_strconcat ("/api/v1/accounts/relationships?", _data_->_tmp7_, NULL);
	_data_->_tmp9_ = _data_->_tmp8_;
	_data_->_tmp10_ = tuba_accounts;
	_data_->_tmp11_ = tuba_account_store_get_active (_data_->_tmp10_);
	_data_->_tmp12_ = _data_->_tmp11_;
	_data_->_tmp13_ = _g_object_ref0 (_data_->_tmp12_);
	_data_->_tmp14_ = NULL;
	_data_->_tmp14_ = tuba_request_v2_new (_data_->_tmp9_, TUBA_REQUEST_V2_METHOD_GET);
	tuba_request_v2_set_account (_data_->_tmp14_, _data_->_tmp13_);
	_g_object_unref0 (_data_->_tmp13_);
	_data_->_tmp15_ = _data_->_tmp14_;
	_g_free0 (_data_->_tmp9_);
	_data_->req = _data_->_tmp15_;
	{
		_data_->_tmp16_ = _data_->req;
		_data_->_state_ = 1;
		tuba_request_v2_exec (_data_->_tmp16_, tuba_api_relationship_request_many_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp17_ = tuba_request_v2_exec_finish (_data_->_tmp16_, _data_->_res_, NULL, &_data_->_inner_error0_);
		_data_->in_stream = _data_->_tmp17_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __finally0;
		}
		_data_->_tmp18_ = _data_->in_stream;
		_data_->_state_ = 2;
		tuba_network_get_parser_from_inputstream_async (_data_->_tmp18_, NULL, tuba_api_relationship_request_many_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp19_ = tuba_network_get_parser_from_inputstream_finish (_data_->_res_, &_data_->_inner_error0_);
		_data_->parser = _data_->_tmp19_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->in_stream);
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __finally0;
		}
		_data_->_tmp20_ = _data_->parser;
		tuba_network_parse_array (_data_->_tmp20_, ____lambda16__tuba_network_node_callback, block14_data_ref (_data_->_data14_), block14_data_unref, &_data_->_inner_error0_);
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->parser);
			_g_object_unref0 (_data_->in_stream);
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __finally0;
		}
		_g_object_unref0 (_data_->parser);
		_g_object_unref0 (_data_->in_stream);
	}
	goto __finally0;
	__catch0_g_io_error_cancelled:
	{
		g_clear_error (&_data_->_inner_error0_);
		g_debug ("Relationship.vala:94: Message is cancelled.");
	}
	__finally0:
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
		g_task_return_error (_data_->_async_result, _data_->_inner_error0_);
		_g_object_unref0 (_data_->req);
		_g_free0 (_data_->id_array);
		block14_data_unref (_data_->_data14_);
		_data_->_data14_ = NULL;
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_data_->_tmp21_ = _data_->_data14_->res;
	_data_->_tmp22_ = _g_object_ref0 (_data_->_tmp21_);
	_data_->result = _data_->_tmp22_;
	_g_object_unref0 (_data_->req);
	_g_free0 (_data_->id_array);
	block14_data_unref (_data_->_data14_);
	_data_->_data14_ = 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_api_relationship_invalidate (TubaAPIRelationship* self,
                                  JsonNode* node,
                                  GError** error)
{
	TubaEntity* _tmp0_ = NULL;
	TubaEntity* _tmp1_;
	TubaAPIRelationship* rs = NULL;
	TubaAPIRelationship* _tmp2_;
	TubaAPIRelationship* _tmp3_;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (node != NULL);
	_tmp1_ = tuba_entity_from_json (TUBA_API_TYPE_RELATIONSHIP, node, &_inner_error0_);
	_tmp0_ = _tmp1_;
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_propagate_error (error, _inner_error0_);
		return;
	}
	_tmp2_ = _g_object_ref0 (TUBA_API_IS_RELATIONSHIP (_tmp0_) ? ((TubaAPIRelationship*) _tmp0_) : NULL);
	rs = _tmp2_;
	_tmp3_ = rs;
	tuba_entity_patch ((TubaEntity*) self, (GObject*) _tmp3_);
	tuba_api_relationship_set_tuba_has_loaded (self, TRUE);
	g_signal_emit (self, tuba_api_relationship_signals[TUBA_API_RELATIONSHIP_INVALIDATED_SIGNAL], 0);
	_g_object_unref0 (rs);
	_g_object_unref0 (_tmp0_);
}

void
tuba_api_relationship_modify (TubaAPIRelationship* self,
                              const gchar* operation,
                              TubaAPIRelationshipModifyParam* modify_params,
                              gint modify_params_length1)
{
	TubaRequestV2* req = NULL;
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	TubaAccountStore* _tmp5_;
	TubaInstanceAccount* _tmp6_;
	TubaInstanceAccount* _tmp7_;
	TubaInstanceAccount* _tmp8_;
	TubaRequestV2* _tmp9_ = NULL;
	TubaRequestV2* _tmp10_;
	TubaRequestV2* _tmp18_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (operation != NULL);
	_tmp0_ = self->priv->_id;
	_tmp1_ = string_to_string (_tmp0_);
	_tmp2_ = string_to_string (operation);
	_tmp3_ = g_strconcat ("/api/v1/accounts/", _tmp1_, "/", _tmp2_, NULL);
	_tmp4_ = _tmp3_;
	_tmp5_ = tuba_accounts;
	_tmp6_ = tuba_account_store_get_active (_tmp5_);
	_tmp7_ = _tmp6_;
	_tmp8_ = _g_object_ref0 (_tmp7_);
	_tmp9_ = tuba_request_v2_new (_tmp4_, TUBA_REQUEST_V2_METHOD_POST);
	tuba_request_v2_set_account (_tmp9_, _tmp8_);
	_g_object_unref0 (_tmp8_);
	_tmp10_ = _tmp9_;
	_g_free0 (_tmp4_);
	req = _tmp10_;
	if (modify_params != NULL) {
		{
			TubaAPIRelationshipModifyParam* modify_param_collection = NULL;
			gint modify_param_collection_length1 = 0;
			gint _modify_param_collection_size_ = 0;
			gint modify_param_it = 0;
			modify_param_collection = modify_params;
			modify_param_collection_length1 = modify_params_length1;
			for (modify_param_it = 0; modify_param_it < modify_param_collection_length1; modify_param_it = modify_param_it + 1) {
				TubaAPIRelationshipModifyParam _tmp11_;
				TubaAPIRelationshipModifyParam _tmp12_ = {0};
				TubaAPIRelationshipModifyParam modify_param = {0};
				_tmp11_ = modify_param_collection[modify_param_it];
				tuba_api_relationship_modify_param_copy (&_tmp11_, &_tmp12_);
				modify_param = _tmp12_;
				{
					TubaRequestV2* _tmp13_;
					TubaAPIRelationshipModifyParam _tmp14_;
					const gchar* _tmp15_;
					TubaAPIRelationshipModifyParam _tmp16_;
					const gchar* _tmp17_;
					_tmp13_ = req;
					_tmp14_ = modify_param;
					_tmp15_ = _tmp14_.param;
					_tmp16_ = modify_param;
					_tmp17_ = _tmp16_.val;
					tuba_request_v2_add_parameter (_tmp13_, _tmp15_, _tmp17_);
					tuba_api_relationship_modify_param_destroy (&modify_param);
				}
			}
		}
	}
	_tmp18_ = req;
	tuba_api_relationship_modify_real (self, _tmp18_, operation, NULL, NULL);
	_g_object_unref0 (req);
}

static void
tuba_api_relationship_modify_real_data_free (gpointer _data)
{
	TubaApiRelationshipModifyRealData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->req);
	_g_free0 (_data_->operation);
	_g_object_unref0 (_data_->self);
	g_slice_free (TubaApiRelationshipModifyRealData, _data_);
}

static void
tuba_api_relationship_modify_real (TubaAPIRelationship* self,
                                   TubaRequestV2* req,
                                   const gchar* operation,
                                   GAsyncReadyCallback _callback_,
                                   gpointer _user_data_)
{
	TubaApiRelationshipModifyRealData* _data_;
	TubaAPIRelationship* _tmp0_;
	TubaRequestV2* _tmp1_;
	gchar* _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (req != NULL);
	g_return_if_fail (operation != NULL);
	_data_ = g_slice_new0 (TubaApiRelationshipModifyRealData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_api_relationship_modify_real_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (req);
	_g_object_unref0 (_data_->req);
	_data_->req = _tmp1_;
	_tmp2_ = g_strdup (operation);
	_g_free0 (_data_->operation);
	_data_->operation = _tmp2_;
	tuba_api_relationship_modify_real_co (_data_);
}

static void
tuba_api_relationship_modify_real_finish (TubaAPIRelationship* self,
                                          GAsyncResult* _res_)
{
	TubaApiRelationshipModifyRealData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static void
tuba_api_relationship_modify_real_ready (GObject* source_object,
                                         GAsyncResult* _res_,
                                         gpointer _user_data_)
{
	TubaApiRelationshipModifyRealData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_api_relationship_modify_real_co (_data_);
}

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

static gboolean
_vala_string_array_contains (const gchar* * stack,
                             gssize stack_length,
                             const const gchar* needle)
{
	gssize i;
	for (i = 0; i < stack_length; i++) {
		if (g_strcmp0 (stack[i], needle) == 0) {
			return TRUE;
		}
	}
	return FALSE;
}

static gboolean
tuba_api_relationship_modify_real_co (TubaApiRelationshipModifyRealData* _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_->_state_ = 1;
		tuba_request_v2_exec (_data_->req, tuba_api_relationship_modify_real_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp0_ = tuba_request_v2_exec_finish (_data_->req, _data_->_res_, NULL, &_data_->_inner_error0_);
		_data_->in_stream = _data_->_tmp0_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __catch0_g_error;
		}
		_data_->_tmp1_ = _data_->in_stream;
		_data_->_state_ = 2;
		tuba_network_get_parser_from_inputstream_async (_data_->_tmp1_, NULL, tuba_api_relationship_modify_real_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp2_ = tuba_network_get_parser_from_inputstream_finish (_data_->_res_, &_data_->_inner_error0_);
		_data_->parser = _data_->_tmp2_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->in_stream);
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __catch0_g_error;
		}
		_data_->_tmp3_ = tuba_network;
		_data_->_tmp4_ = _data_->parser;
		_data_->_tmp5_ = tuba_network_parse_node (_data_->_tmp3_, _data_->_tmp4_);
		_data_->node = _data_->_tmp5_;
		_data_->_tmp6_ = _data_->node;
		tuba_api_relationship_invalidate (_data_->self, _data_->_tmp6_, &_data_->_inner_error0_);
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			__vala_JsonNode_free0 (_data_->node);
			_g_object_unref0 (_data_->parser);
			_g_object_unref0 (_data_->in_stream);
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __catch0_g_error;
		}
		_data_->_tmp7_ = string_to_string (_data_->operation);
		_data_->_tmp8_ = _data_->self->priv->_id;
		_data_->_tmp9_ = string_to_string (_data_->_tmp8_);
		_data_->_tmp10_ = g_strconcat ("Performed \"", _data_->_tmp7_, "\" on Relationship ", _data_->_tmp9_, NULL);
		_data_->_tmp11_ = _data_->_tmp10_;
		g_debug ("Relationship.vala:133: %s", _data_->_tmp11_);
		_g_free0 (_data_->_tmp11_);
		if (_vala_string_array_contains (TUBA_API_RELATIONSHIP_REQUIRES_USER_REMOVAL, G_N_ELEMENTS (TUBA_API_RELATIONSHIP_REQUIRES_USER_REMOVAL), _data_->operation)) {
			_data_->_tmp12_ = tuba_app;
			_data_->_tmp13_ = _data_->self->priv->_id;
			g_signal_emit_by_name (_data_->_tmp12_, "remove-user-id", _data_->_tmp13_);
		} else {
			if (_vala_string_array_contains (TUBA_API_RELATIONSHIP_REQUIRES_FEATURED_REFRESH, G_N_ELEMENTS (TUBA_API_RELATIONSHIP_REQUIRES_FEATURED_REFRESH), _data_->operation)) {
				_data_->_tmp14_ = tuba_app;
				g_signal_emit_by_name (_data_->_tmp14_, "refresh-featured");
			}
		}
		__vala_JsonNode_free0 (_data_->node);
		_g_object_unref0 (_data_->parser);
		_g_object_unref0 (_data_->in_stream);
	}
	goto __finally0;
	__catch0_g_io_error_cancelled:
	{
		g_clear_error (&_data_->_inner_error0_);
		g_debug ("Relationship.vala:138: Message is cancelled.");
	}
	goto __finally0;
	__catch0_g_error:
	{
		_data_->e = _data_->_inner_error0_;
		_data_->_inner_error0_ = NULL;
		_data_->_tmp15_ = _data_->e;
		_data_->_tmp16_ = g_strdup_printf ("%i", _data_->_tmp15_->code);
		_data_->_tmp17_ = _data_->_tmp16_;
		_data_->_tmp18_ = _data_->e;
		_data_->_tmp19_ = _data_->_tmp18_->message;
		_data_->_tmp20_ = string_to_string (_data_->_tmp19_);
		_data_->_tmp21_ = g_strconcat ("Error while modifying relationship: ", _data_->_tmp17_, " ", _data_->_tmp20_, NULL);
		_data_->_tmp22_ = _data_->_tmp21_;
		g_warning ("Relationship.vala:140: %s", _data_->_tmp22_);
		_g_free0 (_data_->_tmp22_);
		_g_free0 (_data_->_tmp17_);
		_data_->_tmp23_ = tuba_app;
		_data_->_tmp24_ = _data_->e;
		_data_->_tmp25_ = _data_->_tmp24_->message;
		_data_->_tmp26_ = g_strdup_printf ("%s: %s", _ ("Error"), _data_->_tmp25_);
		_data_->_tmp27_ = _data_->_tmp26_;
		g_signal_emit_by_name (_data_->_tmp23_, "toast", _data_->_tmp27_, (guint) 5, NULL, NULL, NULL);
		_g_free0 (_data_->_tmp27_);
		_g_error_free0 (_data_->e);
	}
	__finally0:
	if (G_UNLIKELY (_data_->_inner_error0_ != 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_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

void
tuba_api_relationship_modify_note (TubaAPIRelationship* self,
                                   const gchar* comment)
{
	g_return_if_fail (self != NULL);
	g_return_if_fail (comment != NULL);
	tuba_api_relationship_modify_note_real_safe (self, comment, NULL, NULL);
}

static void
tuba_api_relationship_modify_note_real_safe_data_free (gpointer _data)
{
	TubaApiRelationshipModifyNoteRealSafeData* _data_;
	_data_ = _data;
	_g_free0 (_data_->comment);
	_g_object_unref0 (_data_->self);
	g_slice_free (TubaApiRelationshipModifyNoteRealSafeData, _data_);
}

static void
tuba_api_relationship_modify_note_real_safe (TubaAPIRelationship* self,
                                             const gchar* comment,
                                             GAsyncReadyCallback _callback_,
                                             gpointer _user_data_)
{
	TubaApiRelationshipModifyNoteRealSafeData* _data_;
	TubaAPIRelationship* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (comment != NULL);
	_data_ = g_slice_new0 (TubaApiRelationshipModifyNoteRealSafeData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_api_relationship_modify_note_real_safe_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (comment);
	_g_free0 (_data_->comment);
	_data_->comment = _tmp1_;
	tuba_api_relationship_modify_note_real_safe_co (_data_);
}

static void
tuba_api_relationship_modify_note_real_safe_finish (TubaAPIRelationship* self,
                                                    GAsyncResult* _res_)
{
	TubaApiRelationshipModifyNoteRealSafeData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static void
tuba_api_relationship_modify_note_real_safe_ready (GObject* source_object,
                                                   GAsyncResult* _res_,
                                                   gpointer _user_data_)
{
	TubaApiRelationshipModifyNoteRealSafeData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_api_relationship_modify_note_real_safe_co (_data_);
}

static gboolean
tuba_api_relationship_modify_note_real_safe_co (TubaApiRelationshipModifyNoteRealSafeData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	{
		_data_->_state_ = 1;
		tuba_api_relationship_modify_note_real (_data_->self, _data_->comment, tuba_api_relationship_modify_note_real_safe_ready, _data_);
		return FALSE;
		_state_1:
		tuba_api_relationship_modify_note_real_finish (_data_->self, _data_->_res_, &_data_->_inner_error0_);
		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_->_tmp0_ = _data_->e;
		_data_->_tmp1_ = g_strdup_printf ("%i", _data_->_tmp0_->code);
		_data_->_tmp2_ = _data_->_tmp1_;
		_data_->_tmp3_ = _data_->e;
		_data_->_tmp4_ = _data_->_tmp3_->message;
		_data_->_tmp5_ = string_to_string (_data_->_tmp4_);
		_data_->_tmp6_ = g_strconcat ("Error while writing note: ", _data_->_tmp2_, " ", _data_->_tmp5_, NULL);
		_data_->_tmp7_ = _data_->_tmp6_;
		g_warning ("Relationship.vala:153: %s", _data_->_tmp7_);
		_g_free0 (_data_->_tmp7_);
		_g_free0 (_data_->_tmp2_);
		_data_->_tmp8_ = tuba_app;
		_data_->_tmp9_ = _data_->e;
		_data_->_tmp10_ = _data_->_tmp9_->message;
		_data_->_tmp11_ = g_strdup_printf ("%s: %s", _ ("Error"), _data_->_tmp10_);
		_data_->_tmp12_ = _data_->_tmp11_;
		g_signal_emit_by_name (_data_->_tmp8_, "toast", _data_->_tmp12_, (guint) 5, NULL, NULL, NULL);
		_g_free0 (_data_->_tmp12_);
		_g_error_free0 (_data_->e);
	}
	__finally0:
	if (G_UNLIKELY (_data_->_inner_error0_ != 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_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_api_relationship_modify_note_real_data_free (gpointer _data)
{
	TubaApiRelationshipModifyNoteRealData* _data_;
	_data_ = _data;
	_g_free0 (_data_->comment);
	_g_object_unref0 (_data_->self);
	g_slice_free (TubaApiRelationshipModifyNoteRealData, _data_);
}

void
tuba_api_relationship_modify_note_real (TubaAPIRelationship* self,
                                        const gchar* comment,
                                        GAsyncReadyCallback _callback_,
                                        gpointer _user_data_)
{
	TubaApiRelationshipModifyNoteRealData* _data_;
	TubaAPIRelationship* _tmp0_;
	gchar* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (comment != NULL);
	_data_ = g_slice_new0 (TubaApiRelationshipModifyNoteRealData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, tuba_api_relationship_modify_note_real_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = g_strdup (comment);
	_g_free0 (_data_->comment);
	_data_->comment = _tmp1_;
	tuba_api_relationship_modify_note_real_co (_data_);
}

void
tuba_api_relationship_modify_note_real_finish (TubaAPIRelationship* self,
                                               GAsyncResult* _res_,
                                               GError** error)
{
	TubaApiRelationshipModifyNoteRealData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), error);
	if (NULL == _data_) {
		return;
	}
}

static void
tuba_api_relationship_modify_note_real_ready (GObject* source_object,
                                              GAsyncResult* _res_,
                                              gpointer _user_data_)
{
	TubaApiRelationshipModifyNoteRealData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	tuba_api_relationship_modify_note_real_co (_data_);
}

static gboolean
tuba_api_relationship_modify_note_real_co (TubaApiRelationshipModifyNoteRealData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = json_builder_new ();
	_data_->builder = _data_->_tmp0_;
	_data_->_tmp1_ = _data_->builder;
	json_builder_begin_object (_data_->_tmp1_);
	_data_->_tmp2_ = _data_->builder;
	json_builder_set_member_name (_data_->_tmp2_, "comment");
	_data_->_tmp3_ = _data_->builder;
	json_builder_add_string_value (_data_->_tmp3_, _data_->comment);
	_data_->_tmp4_ = _data_->builder;
	json_builder_end_object (_data_->_tmp4_);
	_data_->_tmp5_ = _data_->self->priv->_id;
	_data_->_tmp6_ = string_to_string (_data_->_tmp5_);
	_data_->_tmp7_ = g_strconcat ("/api/v1/accounts/", _data_->_tmp6_, "/note", NULL);
	_data_->_tmp8_ = _data_->_tmp7_;
	_data_->_tmp9_ = tuba_accounts;
	_data_->_tmp10_ = tuba_account_store_get_active (_data_->_tmp9_);
	_data_->_tmp11_ = _data_->_tmp10_;
	_data_->_tmp12_ = _g_object_ref0 (_data_->_tmp11_);
	_data_->_tmp13_ = NULL;
	_data_->_tmp13_ = tuba_request_v2_new (_data_->_tmp8_, TUBA_REQUEST_V2_METHOD_POST);
	tuba_request_v2_set_account (_data_->_tmp13_, _data_->_tmp12_);
	_g_object_unref0 (_data_->_tmp12_);
	_data_->_tmp14_ = _data_->_tmp13_;
	_g_free0 (_data_->_tmp8_);
	_data_->req = _data_->_tmp14_;
	_data_->_tmp15_ = _data_->req;
	_data_->_tmp16_ = _data_->builder;
	tuba_request_v2_set_body_from_json (_data_->_tmp15_, _data_->_tmp16_);
	{
		_data_->_tmp17_ = _data_->req;
		_data_->_state_ = 1;
		tuba_request_v2_exec (_data_->_tmp17_, tuba_api_relationship_modify_note_real_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp18_ = tuba_request_v2_exec_finish (_data_->_tmp17_, _data_->_res_, NULL, &_data_->_inner_error0_);
		_data_->in_stream = _data_->_tmp18_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __finally0;
		}
		_data_->_tmp19_ = _data_->in_stream;
		_data_->_state_ = 2;
		tuba_network_get_parser_from_inputstream_async (_data_->_tmp19_, NULL, tuba_api_relationship_modify_note_real_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp20_ = tuba_network_get_parser_from_inputstream_finish (_data_->_res_, &_data_->_inner_error0_);
		_data_->parser = _data_->_tmp20_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->in_stream);
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __finally0;
		}
		_data_->_tmp21_ = tuba_network;
		_data_->_tmp22_ = _data_->parser;
		_data_->_tmp23_ = tuba_network_parse_node (_data_->_tmp21_, _data_->_tmp22_);
		_data_->node = _data_->_tmp23_;
		_data_->_tmp24_ = _data_->node;
		tuba_api_relationship_invalidate (_data_->self, _data_->_tmp24_, &_data_->_inner_error0_);
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			__vala_JsonNode_free0 (_data_->node);
			_g_object_unref0 (_data_->parser);
			_g_object_unref0 (_data_->in_stream);
			if (g_error_matches (_data_->_inner_error0_, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
				goto __catch0_g_io_error_cancelled;
			}
			goto __finally0;
		}
		_data_->_tmp25_ = _data_->self->priv->_id;
		_data_->_tmp26_ = string_to_string (_data_->_tmp25_);
		_data_->_tmp27_ = g_strconcat ("Performed \"note\" on Relationship ", _data_->_tmp26_, NULL);
		_data_->_tmp28_ = _data_->_tmp27_;
		g_debug ("Relationship.vala:175: %s", _data_->_tmp28_);
		_g_free0 (_data_->_tmp28_);
		__vala_JsonNode_free0 (_data_->node);
		_g_object_unref0 (_data_->parser);
		_g_object_unref0 (_data_->in_stream);
	}
	goto __finally0;
	__catch0_g_io_error_cancelled:
	{
		g_clear_error (&_data_->_inner_error0_);
		g_debug ("Relationship.vala:177: Message is cancelled.");
	}
	__finally0:
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
		g_task_return_error (_data_->_async_result, _data_->_inner_error0_);
		_g_object_unref0 (_data_->req);
		_g_object_unref0 (_data_->builder);
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	_g_object_unref0 (_data_->req);
	_g_object_unref0 (_data_->builder);
	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 Block15Data*
block15_data_ref (Block15Data* _data15_)
{
	g_atomic_int_inc (&_data15_->_ref_count_);
	return _data15_;
}

static void
block15_data_unref (void * _userdata_)
{
	Block15Data* _data15_;
	_data15_ = (Block15Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data15_->_ref_count_)) {
		TubaAPIRelationship* self;
		self = _data15_->self;
		_g_object_unref0 (self);
		g_slice_free (Block15Data, _data15_);
	}
}

static void
__lambda17_ (Block15Data* _data15_,
             GObject* obj,
             GAsyncResult* res)
{
	TubaAPIRelationship* self;
	TubaApplication* _tmp0_;
	self = _data15_->self;
	g_return_if_fail (res != NULL);
	_tmp0_ = tuba_app;
	if (tuba_application_question_answer_truthy (tuba_application_question_finish (_tmp0_, res))) {
		const gchar* _tmp1_ = NULL;
		if (_data15_->block) {
			_tmp1_ = "block";
		} else {
			_tmp1_ = "unblock";
		}
		tuba_api_relationship_modify (self, _tmp1_, NULL, (gint) 0);
	}
}

static void
___lambda17__gasync_ready_callback (GObject* source_object,
                                    GAsyncResult* res,
                                    gpointer self)
{
	__lambda17_ (self, source_object, res);
	block15_data_unref (self);
}

void
tuba_api_relationship_question_modify_block (TubaAPIRelationship* self,
                                             const gchar* handle,
                                             gboolean block)
{
	Block15Data* _data15_;
	const gchar* _tmp0_ = NULL;
	gchar* q = NULL;
	gchar* _tmp1_;
	const gchar* _tmp2_ = NULL;
	TubaApplication* _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	TubaApplicationQuestionText _tmp7_ = {0};
	TubaApplication* _tmp8_;
	TubaDialogsMainWindow* _tmp9_;
	TubaDialogsMainWindow* _tmp10_;
	TubaApplicationQuestionButtons _tmp11_ = {0};
	g_return_if_fail (self != NULL);
	g_return_if_fail (handle != NULL);
	_data15_ = g_slice_new0 (Block15Data);
	_data15_->_ref_count_ = 1;
	_data15_->self = g_object_ref (self);
	_data15_->block = block;
	if (_data15_->block) {
		_tmp0_ = _ ("Block \"%s\"?");
	} else {
		_tmp0_ = _ ("Unblock \"%s\"?");
	}
	_tmp1_ = g_strdup (_tmp0_);
	q = _tmp1_;
	if (_data15_->block) {
		_tmp2_ = _ ("Block");
	} else {
		_tmp2_ = _ ("Unblock");
	}
	_tmp3_ = tuba_app;
	_tmp4_ = q;
	_tmp5_ = g_strdup_printf (_tmp4_, handle);
	_tmp6_ = _tmp5_;
	_g_free0 (_tmp7_.text);
	_tmp7_.text = _tmp6_;
	_tmp7_.use_markup = FALSE;
	_tmp8_ = tuba_app;
	_tmp9_ = tuba_application_get_main_window (_tmp8_);
	_tmp10_ = _tmp9_;
	tuba_application_question_button_destroy (&_tmp11_.yes);
	_tmp11_.yes = (TubaApplicationQuestionButton) {_tmp2_, ADW_RESPONSE_DESTRUCTIVE};
	tuba_application_question_button_destroy (&_tmp11_.no);
	_tmp11_.no = (TubaApplicationQuestionButton) {_ ("Cancel"), ADW_RESPONSE_DEFAULT};
	tuba_application_question (_tmp3_, &_tmp7_, NULL, (GtkWidget*) _tmp10_, &_tmp11_, NULL, FALSE, ___lambda17__gasync_ready_callback, block15_data_ref (_data15_));
	_g_free0 (_tmp6_);
	_g_free0 (q);
	block15_data_unref (_data15_);
	_data15_ = NULL;
}

static Block16Data*
block16_data_ref (Block16Data* _data16_)
{
	g_atomic_int_inc (&_data16_->_ref_count_);
	return _data16_;
}

static void
block16_data_unref (void * _userdata_)
{
	Block16Data* _data16_;
	_data16_ = (Block16Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data16_->_ref_count_)) {
		TubaAPIRelationship* self;
		self = _data16_->self;
		_g_object_unref0 (_data16_->exp_row);
		_g_object_unref0 (_data16_->switch_row);
		_g_object_unref0 (self);
		g_slice_free (Block16Data, _data16_);
	}
}

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

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 void
_vala_TubaAPIRelationshipModifyParam_array_free (TubaAPIRelationshipModifyParam * array,
                                                 gssize array_length)
{
	if (array != NULL) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			tuba_api_relationship_modify_param_destroy (&array[i]);
		}
	}
	g_free (array);
}

static void
__lambda18_ (Block16Data* _data16_,
             GObject* obj,
             GAsyncResult* res)
{
	TubaAPIRelationship* self;
	TubaApplication* _tmp0_;
	self = _data16_->self;
	g_return_if_fail (res != NULL);
	_tmp0_ = tuba_app;
	if (tuba_application_question_answer_truthy (tuba_application_question_finish (_tmp0_, res))) {
		gchar* _tmp1_;
		AdwSwitchRow* _tmp2_;
		gboolean _tmp3_;
		gboolean _tmp4_;
		gchar* _tmp5_;
		TubaAPIRelationshipModifyParam _tmp6_ = {0};
		gchar* _tmp7_;
		GObject* _tmp8_;
		GObject* _tmp9_;
		TubaAPIRelationshipMuteExpiration _tmp10_;
		TubaAPIRelationshipMuteExpiration _tmp11_;
		gchar* _tmp12_;
		TubaAPIRelationshipModifyParam _tmp13_ = {0};
		TubaAPIRelationshipModifyParam* _tmp14_;
		TubaAPIRelationshipModifyParam* _tmp15_;
		gint _tmp15__length1;
		_tmp1_ = g_strdup ("notifications");
		_tmp2_ = _data16_->switch_row;
		_tmp3_ = adw_switch_row_get_active (_tmp2_);
		_tmp4_ = _tmp3_;
		_tmp5_ = bool_to_string (_tmp4_);
		memset (&_tmp6_, 0, sizeof (TubaAPIRelationshipModifyParam));
		_g_free0 (_tmp6_.param);
		_tmp6_.param = _tmp1_;
		_g_free0 (_tmp6_.val);
		_tmp6_.val = _tmp5_;
		_tmp7_ = g_strdup ("duration");
		_tmp8_ = adw_combo_row_get_selected_item (_data16_->exp_row);
		_tmp9_ = _tmp8_;
		_tmp10_ = tuba_api_relationship_mute_exp_wrapper_get_exp (G_TYPE_CHECK_INSTANCE_CAST (_tmp9_, TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER, TubaAPIRelationshipMuteExpWrapper));
		_tmp11_ = _tmp10_;
		_tmp12_ = g_strdup_printf ("%i", tuba_api_relationship_mute_expiration_to_seconds (_tmp11_));
		memset (&_tmp13_, 0, sizeof (TubaAPIRelationshipModifyParam));
		_g_free0 (_tmp13_.param);
		_tmp13_.param = _tmp7_;
		_g_free0 (_tmp13_.val);
		_tmp13_.val = _tmp12_;
		_tmp14_ = g_new0 (TubaAPIRelationshipModifyParam, 2);
		_tmp14_[0] = _tmp6_;
		_tmp14_[1] = _tmp13_;
		_tmp15_ = _tmp14_;
		_tmp15__length1 = 2;
		tuba_api_relationship_modify (self, "mute", _tmp15_, (gint) 2);
		_tmp15_ = (_vala_TubaAPIRelationshipModifyParam_array_free (_tmp15_, _tmp15__length1), NULL);
	}
}

static void
___lambda18__gasync_ready_callback (GObject* source_object,
                                    GAsyncResult* res,
                                    gpointer self)
{
	__lambda18_ (self, source_object, res);
	block16_data_unref (self);
}

void
tuba_api_relationship_question_modify_mute (TubaAPIRelationship* self,
                                            const gchar* handle)
{
	Block16Data* _data16_;
	gchar* _tmp0_;
	AdwSwitchRow* _tmp1_ = NULL;
	GListStore* model = NULL;
	GListStore* _tmp2_;
	TubaAPIRelationshipMuteExpWrapper** to_add = NULL;
	TubaAPIRelationshipMuteExpWrapper** _tmp3_;
	gint to_add_length1;
	gint _to_add_size_;
	GListStore* _tmp7_;
	TubaAPIRelationshipMuteExpWrapper** _tmp8_;
	gint _tmp8__length1;
	GtkPropertyExpression* _tmp9_;
	GListStore* _tmp10_;
	GListModel* _tmp11_;
	gchar* _tmp12_;
	AdwComboRow* _tmp13_ = NULL;
	GtkListBox* list_box = NULL;
	gchar* _tmp14_;
	gchar** _tmp15_;
	GtkListBox* _tmp16_ = NULL;
	AdwSwitchRow* _tmp17_;
	TubaApplication* _tmp18_;
	gchar* _tmp19_;
	gchar* _tmp20_;
	TubaApplicationQuestionText _tmp21_ = {0};
	TubaApplication* _tmp22_;
	TubaDialogsMainWindow* _tmp23_;
	TubaDialogsMainWindow* _tmp24_;
	TubaApplicationQuestionButtons _tmp25_ = {0};
	g_return_if_fail (self != NULL);
	g_return_if_fail (handle != NULL);
	_data16_ = g_slice_new0 (Block16Data);
	_data16_->_ref_count_ = 1;
	_data16_->self = g_object_ref (self);
	_tmp0_ = g_strdup (_ ("Hide from Notifications"));
	_tmp1_ = (AdwSwitchRow*) adw_switch_row_new ();
	adw_preferences_row_set_title ((AdwPreferencesRow*) _tmp1_, _tmp0_);
	_g_free0 (_tmp0_);
	adw_switch_row_set_active (_tmp1_, TRUE);
	g_object_ref_sink (_tmp1_);
	_data16_->switch_row = _tmp1_;
	_tmp2_ = g_list_store_new (TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER);
	model = _tmp2_;
	_tmp3_ = g_new0 (TubaAPIRelationshipMuteExpWrapper*, 0 + 1);
	to_add = _tmp3_;
	to_add_length1 = 0;
	_to_add_size_ = to_add_length1;
	{
		TubaAPIRelationshipMuteExpiration* exp_collection = NULL;
		gint exp_collection_length1 = 0;
		gint _exp_collection_size_ = 0;
		gint exp_it = 0;
		exp_collection = TUBA_API_RELATIONSHIP_ALL_MUTE_EXPS;
		exp_collection_length1 = G_N_ELEMENTS (TUBA_API_RELATIONSHIP_ALL_MUTE_EXPS);
		for (exp_it = 0; exp_it < exp_collection_length1; exp_it = exp_it + 1) {
			TubaAPIRelationshipMuteExpiration exp = 0;
			exp = exp_collection[exp_it];
			{
				gchar* _tmp4_;
				gchar* _tmp5_;
				TubaAPIRelationshipMuteExpWrapper* _tmp6_;
				_tmp4_ = tuba_api_relationship_mute_expiration_to_string (exp);
				_tmp5_ = _tmp4_;
				_tmp6_ = tuba_api_relationship_mute_exp_wrapper_new (exp, _tmp5_);
				_vala_array_add2 (&to_add, &to_add_length1, &_to_add_size_, _tmp6_);
				_g_free0 (_tmp5_);
			}
		}
	}
	_tmp7_ = model;
	_tmp8_ = to_add;
	_tmp8__length1 = to_add_length1;
	g_list_store_splice (_tmp7_, (guint) 0, (guint) 0, _tmp8_, (guint) _tmp8__length1);
	_tmp9_ = (GtkPropertyExpression*) gtk_property_expression_new (TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER, NULL, "title");
	_tmp10_ = model;
	_tmp11_ = _g_object_ref0 ((GListModel*) _tmp10_);
	_tmp12_ = g_strdup (_ ("Expire In"));
	_tmp13_ = (AdwComboRow*) adw_combo_row_new ();
	adw_combo_row_set_expression (_tmp13_, (GtkExpression*) _tmp9_);
	_gtk_expression_unref0 (_tmp9_);
	adw_combo_row_set_model (_tmp13_, _tmp11_);
	_g_object_unref0 (_tmp11_);
	adw_preferences_row_set_title ((AdwPreferencesRow*) _tmp13_, _tmp12_);
	_g_free0 (_tmp12_);
	g_object_ref_sink (_tmp13_);
	_data16_->exp_row = _tmp13_;
	_tmp14_ = g_strdup ("boxed-list");
	_tmp15_ = g_new0 (gchar*, 1 + 1);
	_tmp15_[0] = _tmp14_;
	_tmp16_ = (GtkListBox*) gtk_list_box_new ();
	gtk_list_box_set_selection_mode (_tmp16_, GTK_SELECTION_NONE);
	gtk_widget_set_css_classes ((GtkWidget*) _tmp16_, _tmp15_);
	_tmp15_ = (_vala_array_free (_tmp15_, 1, (GDestroyNotify) g_free), NULL);
	g_object_ref_sink (_tmp16_);
	list_box = _tmp16_;
	gtk_list_box_append (list_box, (GtkWidget*) _data16_->exp_row);
	_tmp17_ = _data16_->switch_row;
	gtk_list_box_append (list_box, (GtkWidget*) _tmp17_);
	_tmp18_ = tuba_app;
	_tmp19_ = g_strdup_printf (_ ("Mute \"%s\"?"), handle);
	_tmp20_ = _tmp19_;
	_g_free0 (_tmp21_.text);
	_tmp21_.text = _tmp20_;
	_tmp21_.use_markup = FALSE;
	_tmp22_ = tuba_app;
	_tmp23_ = tuba_application_get_main_window (_tmp22_);
	_tmp24_ = _tmp23_;
	tuba_application_question_button_destroy (&_tmp25_.yes);
	_tmp25_.yes = (TubaApplicationQuestionButton) {_ ("Mute"), ADW_RESPONSE_DESTRUCTIVE};
	tuba_application_question_button_destroy (&_tmp25_.no);
	_tmp25_.no = (TubaApplicationQuestionButton) {_ ("Cancel"), ADW_RESPONSE_DEFAULT};
	tuba_application_question (_tmp18_, &_tmp21_, NULL, (GtkWidget*) _tmp24_, &_tmp25_, (GtkWidget*) list_box, FALSE, ___lambda18__gasync_ready_callback, block16_data_ref (_data16_));
	_g_free0 (_tmp20_);
	_g_object_unref0 (list_box);
	to_add = (_vala_array_free (to_add, to_add_length1, (GDestroyNotify) g_object_unref), NULL);
	_g_object_unref0 (model);
	block16_data_unref (_data16_);
	_data16_ = NULL;
}

TubaAPIRelationship*
tuba_api_relationship_construct (GType object_type)
{
	TubaAPIRelationship * self = NULL;
	self = (TubaAPIRelationship*) tuba_entity_construct (object_type);
	return self;
}

TubaAPIRelationship*
tuba_api_relationship_new (void)
{
	return tuba_api_relationship_construct (TUBA_API_TYPE_RELATIONSHIP);
}

gboolean
tuba_api_relationship_get_tuba_has_loaded (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_tuba_has_loaded;
	return result;
}

void
tuba_api_relationship_set_tuba_has_loaded (TubaAPIRelationship* self,
                                           gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_tuba_has_loaded (self);
	if (old_value != value) {
		self->priv->_tuba_has_loaded = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_TUBA_HAS_LOADED_PROPERTY]);
	}
}

const gchar*
tuba_api_relationship_get_id (TubaAPIRelationship* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_id;
	result = _tmp0_;
	return result;
}

void
tuba_api_relationship_set_id (TubaAPIRelationship* self,
                              const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_id (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_id);
		self->priv->_id = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_ID_PROPERTY]);
	}
}

gboolean
tuba_api_relationship_get_following (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_following;
	return result;
}

void
tuba_api_relationship_set_following (TubaAPIRelationship* self,
                                     gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_following (self);
	if (old_value != value) {
		self->priv->_following = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_FOLLOWING_PROPERTY]);
	}
}

gboolean
tuba_api_relationship_get_followed_by (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_followed_by;
	return result;
}

void
tuba_api_relationship_set_followed_by (TubaAPIRelationship* self,
                                       gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_followed_by (self);
	if (old_value != value) {
		self->priv->_followed_by = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_FOLLOWED_BY_PROPERTY]);
	}
}

gboolean
tuba_api_relationship_get_showing_reblogs (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_showing_reblogs;
	return result;
}

void
tuba_api_relationship_set_showing_reblogs (TubaAPIRelationship* self,
                                           gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_showing_reblogs (self);
	if (old_value != value) {
		self->priv->_showing_reblogs = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_SHOWING_REBLOGS_PROPERTY]);
	}
}

gboolean
tuba_api_relationship_get_muting (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_muting;
	return result;
}

void
tuba_api_relationship_set_muting (TubaAPIRelationship* self,
                                  gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_muting (self);
	if (old_value != value) {
		self->priv->_muting = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_MUTING_PROPERTY]);
	}
}

gboolean
tuba_api_relationship_get_muting_notifications (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_muting_notifications;
	return result;
}

void
tuba_api_relationship_set_muting_notifications (TubaAPIRelationship* self,
                                                gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_muting_notifications (self);
	if (old_value != value) {
		self->priv->_muting_notifications = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_MUTING_NOTIFICATIONS_PROPERTY]);
	}
}

gboolean
tuba_api_relationship_get_requested (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_requested;
	return result;
}

void
tuba_api_relationship_set_requested (TubaAPIRelationship* self,
                                     gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_requested (self);
	if (old_value != value) {
		self->priv->_requested = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_REQUESTED_PROPERTY]);
	}
}

gboolean
tuba_api_relationship_get_blocking (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_blocking;
	return result;
}

void
tuba_api_relationship_set_blocking (TubaAPIRelationship* self,
                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_blocking (self);
	if (old_value != value) {
		self->priv->_blocking = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_BLOCKING_PROPERTY]);
	}
}

gboolean
tuba_api_relationship_get_blocked_by (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_blocked_by;
	return result;
}

void
tuba_api_relationship_set_blocked_by (TubaAPIRelationship* self,
                                      gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_blocked_by (self);
	if (old_value != value) {
		self->priv->_blocked_by = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_BLOCKED_BY_PROPERTY]);
	}
}

gboolean
tuba_api_relationship_get_domain_blocking (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_domain_blocking;
	return result;
}

void
tuba_api_relationship_set_domain_blocking (TubaAPIRelationship* self,
                                           gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_domain_blocking (self);
	if (old_value != value) {
		self->priv->_domain_blocking = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_DOMAIN_BLOCKING_PROPERTY]);
	}
}

gboolean
tuba_api_relationship_get_notifying (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_notifying;
	return result;
}

void
tuba_api_relationship_set_notifying (TubaAPIRelationship* self,
                                     gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_notifying (self);
	if (old_value != value) {
		self->priv->_notifying = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_NOTIFYING_PROPERTY]);
	}
}

gboolean
tuba_api_relationship_get_endorsed (TubaAPIRelationship* self)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	result = self->priv->_endorsed;
	return result;
}

void
tuba_api_relationship_set_endorsed (TubaAPIRelationship* self,
                                    gboolean value)
{
	gboolean old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_endorsed (self);
	if (old_value != value) {
		self->priv->_endorsed = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_ENDORSED_PROPERTY]);
	}
}

const gchar*
tuba_api_relationship_get_note (TubaAPIRelationship* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_note;
	result = _tmp0_;
	return result;
}

void
tuba_api_relationship_set_note (TubaAPIRelationship* self,
                                const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_get_note (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_note);
		self->priv->_note = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_NOTE_PROPERTY]);
	}
}

static inline gpointer
tuba_api_relationship_mute_exp_wrapper_get_instance_private (TubaAPIRelationshipMuteExpWrapper* self)
{
	return G_STRUCT_MEMBER_P (self, TubaAPIRelationshipMuteExpWrapper_private_offset);
}

static TubaAPIRelationshipMuteExpWrapper*
tuba_api_relationship_mute_exp_wrapper_construct (GType object_type,
                                                  TubaAPIRelationshipMuteExpiration exp,
                                                  const gchar* title)
{
	TubaAPIRelationshipMuteExpWrapper * self = NULL;
	g_return_val_if_fail (title != NULL, NULL);
	self = (TubaAPIRelationshipMuteExpWrapper*) g_object_new (object_type, NULL);
	tuba_api_relationship_mute_exp_wrapper_set_exp (self, exp);
	tuba_api_relationship_mute_exp_wrapper_set_title (self, title);
	return self;
}

static TubaAPIRelationshipMuteExpWrapper*
tuba_api_relationship_mute_exp_wrapper_new (TubaAPIRelationshipMuteExpiration exp,
                                            const gchar* title)
{
	return tuba_api_relationship_mute_exp_wrapper_construct (TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER, exp, title);
}

static TubaAPIRelationshipMuteExpiration
tuba_api_relationship_mute_exp_wrapper_get_exp (TubaAPIRelationshipMuteExpWrapper* self)
{
	TubaAPIRelationshipMuteExpiration result;
	g_return_val_if_fail (self != NULL, 0);
	result = self->priv->_exp;
	return result;
}

static void
tuba_api_relationship_mute_exp_wrapper_set_exp (TubaAPIRelationshipMuteExpWrapper* self,
                                                TubaAPIRelationshipMuteExpiration value)
{
	TubaAPIRelationshipMuteExpiration old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_mute_exp_wrapper_get_exp (self);
	if (old_value != value) {
		self->priv->_exp = value;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_mute_exp_wrapper_properties[TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_EXP_PROPERTY]);
	}
}

static const gchar*
tuba_api_relationship_mute_exp_wrapper_get_title (TubaAPIRelationshipMuteExpWrapper* self)
{
	const gchar* result;
	const gchar* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_title;
	result = _tmp0_;
	return result;
}

static void
tuba_api_relationship_mute_exp_wrapper_set_title (TubaAPIRelationshipMuteExpWrapper* self,
                                                  const gchar* value)
{
	gchar* old_value;
	g_return_if_fail (self != NULL);
	old_value = tuba_api_relationship_mute_exp_wrapper_get_title (self);
	if (g_strcmp0 (value, old_value) != 0) {
		gchar* _tmp0_;
		_tmp0_ = g_strdup (value);
		_g_free0 (self->priv->_title);
		self->priv->_title = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, tuba_api_relationship_mute_exp_wrapper_properties[TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_TITLE_PROPERTY]);
	}
}

static void
tuba_api_relationship_mute_exp_wrapper_class_init (TubaAPIRelationshipMuteExpWrapperClass * klass,
                                                   gpointer klass_data)
{
	tuba_api_relationship_mute_exp_wrapper_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaAPIRelationshipMuteExpWrapper_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_api_relationship_mute_exp_wrapper_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_api_relationship_mute_exp_wrapper_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_api_relationship_mute_exp_wrapper_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_EXP_PROPERTY, tuba_api_relationship_mute_exp_wrapper_properties[TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_EXP_PROPERTY] = g_param_spec_enum ("exp", "exp", "exp", TUBA_API_RELATIONSHIP_TYPE_MUTE_EXPIRATION, 0, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_TITLE_PROPERTY, tuba_api_relationship_mute_exp_wrapper_properties[TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_TITLE_PROPERTY] = g_param_spec_string ("title", "title", "title", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
tuba_api_relationship_mute_exp_wrapper_instance_init (TubaAPIRelationshipMuteExpWrapper * self,
                                                      gpointer klass)
{
	self->priv = tuba_api_relationship_mute_exp_wrapper_get_instance_private (self);
}

static void
tuba_api_relationship_mute_exp_wrapper_finalize (GObject * obj)
{
	TubaAPIRelationshipMuteExpWrapper * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER, TubaAPIRelationshipMuteExpWrapper);
	_g_free0 (self->priv->_title);
	G_OBJECT_CLASS (tuba_api_relationship_mute_exp_wrapper_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_api_relationship_mute_exp_wrapper_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaAPIRelationshipMuteExpWrapperClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_api_relationship_mute_exp_wrapper_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaAPIRelationshipMuteExpWrapper), 0, (GInstanceInitFunc) tuba_api_relationship_mute_exp_wrapper_instance_init, NULL };
	GType tuba_api_relationship_mute_exp_wrapper_type_id;
	tuba_api_relationship_mute_exp_wrapper_type_id = g_type_register_static (G_TYPE_OBJECT, "TubaAPIRelationshipMuteExpWrapper", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaAPIRelationshipMuteExpWrapper_private_offset = g_type_add_instance_private (tuba_api_relationship_mute_exp_wrapper_type_id, sizeof (TubaAPIRelationshipMuteExpWrapperPrivate));
	return tuba_api_relationship_mute_exp_wrapper_type_id;
}

static GType
tuba_api_relationship_mute_exp_wrapper_get_type (void)
{
	static GType tuba_api_relationship_mute_exp_wrapper_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_relationship_mute_exp_wrapper_type_id__once)) {
		GType tuba_api_relationship_mute_exp_wrapper_type_id;
		tuba_api_relationship_mute_exp_wrapper_type_id = tuba_api_relationship_mute_exp_wrapper_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_relationship_mute_exp_wrapper_type_id__once, tuba_api_relationship_mute_exp_wrapper_type_id);
	}
	return tuba_api_relationship_mute_exp_wrapper_type_id__once;
}

static void
_vala_tuba_api_relationship_mute_exp_wrapper_get_property (GObject * object,
                                                           guint property_id,
                                                           GValue * value,
                                                           GParamSpec * pspec)
{
	TubaAPIRelationshipMuteExpWrapper * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER, TubaAPIRelationshipMuteExpWrapper);
	switch (property_id) {
		case TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_EXP_PROPERTY:
		g_value_set_enum (value, tuba_api_relationship_mute_exp_wrapper_get_exp (self));
		break;
		case TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_TITLE_PROPERTY:
		g_value_set_string (value, tuba_api_relationship_mute_exp_wrapper_get_title (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_api_relationship_mute_exp_wrapper_set_property (GObject * object,
                                                           guint property_id,
                                                           const GValue * value,
                                                           GParamSpec * pspec)
{
	TubaAPIRelationshipMuteExpWrapper * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_RELATIONSHIP_TYPE_MUTE_EXP_WRAPPER, TubaAPIRelationshipMuteExpWrapper);
	switch (property_id) {
		case TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_EXP_PROPERTY:
		tuba_api_relationship_mute_exp_wrapper_set_exp (self, g_value_get_enum (value));
		break;
		case TUBA_API_RELATIONSHIP_MUTE_EXP_WRAPPER_TITLE_PROPERTY:
		tuba_api_relationship_mute_exp_wrapper_set_title (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

void
tuba_api_relationship_modify_param_copy (const TubaAPIRelationshipModifyParam* self,
                                         TubaAPIRelationshipModifyParam* dest)
{
	const gchar* _tmp0_;
	gchar* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	_tmp0_ = (*self).param;
	_tmp1_ = g_strdup (_tmp0_);
	_g_free0 ((*dest).param);
	(*dest).param = _tmp1_;
	_tmp2_ = (*self).val;
	_tmp3_ = g_strdup (_tmp2_);
	_g_free0 ((*dest).val);
	(*dest).val = _tmp3_;
}

void
tuba_api_relationship_modify_param_destroy (TubaAPIRelationshipModifyParam* self)
{
	_g_free0 ((*self).param);
	_g_free0 ((*self).val);
}

TubaAPIRelationshipModifyParam*
tuba_api_relationship_modify_param_dup (const TubaAPIRelationshipModifyParam* self)
{
	TubaAPIRelationshipModifyParam* dup;
	dup = g_new0 (TubaAPIRelationshipModifyParam, 1);
	tuba_api_relationship_modify_param_copy (self, dup);
	return dup;
}

void
tuba_api_relationship_modify_param_free (TubaAPIRelationshipModifyParam* self)
{
	tuba_api_relationship_modify_param_destroy (self);
	g_free (self);
}

 G_GNUC_NO_INLINE static GType
tuba_api_relationship_modify_param_get_type_once (void)
{
	GType tuba_api_relationship_modify_param_type_id;
	tuba_api_relationship_modify_param_type_id = g_boxed_type_register_static ("TubaAPIRelationshipModifyParam", (GBoxedCopyFunc) tuba_api_relationship_modify_param_dup, (GBoxedFreeFunc) tuba_api_relationship_modify_param_free);
	return tuba_api_relationship_modify_param_type_id;
}

GType
tuba_api_relationship_modify_param_get_type (void)
{
	static GType tuba_api_relationship_modify_param_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_relationship_modify_param_type_id__once)) {
		GType tuba_api_relationship_modify_param_type_id;
		tuba_api_relationship_modify_param_type_id = tuba_api_relationship_modify_param_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_relationship_modify_param_type_id__once, tuba_api_relationship_modify_param_type_id);
	}
	return tuba_api_relationship_modify_param_type_id__once;
}

static void
tuba_api_relationship_class_init (TubaAPIRelationshipClass * klass,
                                  gpointer klass_data)
{
	tuba_api_relationship_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &TubaAPIRelationship_private_offset);
	G_OBJECT_CLASS (klass)->get_property = _vala_tuba_api_relationship_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_tuba_api_relationship_set_property;
	G_OBJECT_CLASS (klass)->finalize = tuba_api_relationship_finalize;
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_TUBA_HAS_LOADED_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_TUBA_HAS_LOADED_PROPERTY] = g_param_spec_boolean ("tuba-has-loaded", "tuba-has-loaded", "tuba-has-loaded", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_ID_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_ID_PROPERTY] = g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_FOLLOWING_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_FOLLOWING_PROPERTY] = g_param_spec_boolean ("following", "following", "following", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_FOLLOWED_BY_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_FOLLOWED_BY_PROPERTY] = g_param_spec_boolean ("followed-by", "followed-by", "followed-by", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_SHOWING_REBLOGS_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_SHOWING_REBLOGS_PROPERTY] = g_param_spec_boolean ("showing-reblogs", "showing-reblogs", "showing-reblogs", TRUE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_MUTING_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_MUTING_PROPERTY] = g_param_spec_boolean ("muting", "muting", "muting", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_MUTING_NOTIFICATIONS_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_MUTING_NOTIFICATIONS_PROPERTY] = g_param_spec_boolean ("muting-notifications", "muting-notifications", "muting-notifications", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_REQUESTED_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_REQUESTED_PROPERTY] = g_param_spec_boolean ("requested", "requested", "requested", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_BLOCKING_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_BLOCKING_PROPERTY] = g_param_spec_boolean ("blocking", "blocking", "blocking", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_BLOCKED_BY_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_BLOCKED_BY_PROPERTY] = g_param_spec_boolean ("blocked-by", "blocked-by", "blocked-by", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_DOMAIN_BLOCKING_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_DOMAIN_BLOCKING_PROPERTY] = g_param_spec_boolean ("domain-blocking", "domain-blocking", "domain-blocking", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_NOTIFYING_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_NOTIFYING_PROPERTY] = g_param_spec_boolean ("notifying", "notifying", "notifying", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_ENDORSED_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_ENDORSED_PROPERTY] = g_param_spec_boolean ("endorsed", "endorsed", "endorsed", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), TUBA_API_RELATIONSHIP_NOTE_PROPERTY, tuba_api_relationship_properties[TUBA_API_RELATIONSHIP_NOTE_PROPERTY] = g_param_spec_string ("note", "note", "note", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	tuba_api_relationship_signals[TUBA_API_RELATIONSHIP_INVALIDATED_SIGNAL] = g_signal_new ("invalidated", TUBA_API_TYPE_RELATIONSHIP, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}

static void
tuba_api_relationship_instance_init (TubaAPIRelationship * self,
                                     gpointer klass)
{
	gchar* _tmp0_;
	self->priv = tuba_api_relationship_get_instance_private (self);
	self->priv->_tuba_has_loaded = FALSE;
	_tmp0_ = g_strdup ("");
	self->priv->_id = _tmp0_;
	self->priv->_following = FALSE;
	self->priv->_followed_by = FALSE;
	self->priv->_showing_reblogs = TRUE;
	self->priv->_muting = FALSE;
	self->priv->_muting_notifications = FALSE;
	self->priv->_requested = FALSE;
	self->priv->_blocking = FALSE;
	self->priv->_blocked_by = FALSE;
	self->priv->_domain_blocking = FALSE;
	self->priv->_notifying = FALSE;
	self->priv->_endorsed = FALSE;
	self->priv->_note = NULL;
}

static void
tuba_api_relationship_finalize (GObject * obj)
{
	TubaAPIRelationship * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TUBA_API_TYPE_RELATIONSHIP, TubaAPIRelationship);
	_g_free0 (self->priv->_id);
	_g_free0 (self->priv->_note);
	G_OBJECT_CLASS (tuba_api_relationship_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
tuba_api_relationship_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (TubaAPIRelationshipClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) tuba_api_relationship_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TubaAPIRelationship), 0, (GInstanceInitFunc) tuba_api_relationship_instance_init, NULL };
	GType tuba_api_relationship_type_id;
	tuba_api_relationship_type_id = g_type_register_static (TUBA_TYPE_ENTITY, "TubaAPIRelationship", &g_define_type_info, G_TYPE_FLAG_NONE);
	TubaAPIRelationship_private_offset = g_type_add_instance_private (tuba_api_relationship_type_id, sizeof (TubaAPIRelationshipPrivate));
	return tuba_api_relationship_type_id;
}

GType
tuba_api_relationship_get_type (void)
{
	static GType tuba_api_relationship_type_id__once = 0;
	if (g_once_init_enter_pointer (&tuba_api_relationship_type_id__once)) {
		GType tuba_api_relationship_type_id;
		tuba_api_relationship_type_id = tuba_api_relationship_get_type_once ();
		g_once_init_leave_pointer (&tuba_api_relationship_type_id__once, tuba_api_relationship_type_id);
	}
	return tuba_api_relationship_type_id__once;
}

static void
_vala_tuba_api_relationship_get_property (GObject * object,
                                          guint property_id,
                                          GValue * value,
                                          GParamSpec * pspec)
{
	TubaAPIRelationship * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_TYPE_RELATIONSHIP, TubaAPIRelationship);
	switch (property_id) {
		case TUBA_API_RELATIONSHIP_TUBA_HAS_LOADED_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_tuba_has_loaded (self));
		break;
		case TUBA_API_RELATIONSHIP_ID_PROPERTY:
		g_value_set_string (value, tuba_api_relationship_get_id (self));
		break;
		case TUBA_API_RELATIONSHIP_FOLLOWING_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_following (self));
		break;
		case TUBA_API_RELATIONSHIP_FOLLOWED_BY_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_followed_by (self));
		break;
		case TUBA_API_RELATIONSHIP_SHOWING_REBLOGS_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_showing_reblogs (self));
		break;
		case TUBA_API_RELATIONSHIP_MUTING_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_muting (self));
		break;
		case TUBA_API_RELATIONSHIP_MUTING_NOTIFICATIONS_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_muting_notifications (self));
		break;
		case TUBA_API_RELATIONSHIP_REQUESTED_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_requested (self));
		break;
		case TUBA_API_RELATIONSHIP_BLOCKING_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_blocking (self));
		break;
		case TUBA_API_RELATIONSHIP_BLOCKED_BY_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_blocked_by (self));
		break;
		case TUBA_API_RELATIONSHIP_DOMAIN_BLOCKING_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_domain_blocking (self));
		break;
		case TUBA_API_RELATIONSHIP_NOTIFYING_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_notifying (self));
		break;
		case TUBA_API_RELATIONSHIP_ENDORSED_PROPERTY:
		g_value_set_boolean (value, tuba_api_relationship_get_endorsed (self));
		break;
		case TUBA_API_RELATIONSHIP_NOTE_PROPERTY:
		g_value_set_string (value, tuba_api_relationship_get_note (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_tuba_api_relationship_set_property (GObject * object,
                                          guint property_id,
                                          const GValue * value,
                                          GParamSpec * pspec)
{
	TubaAPIRelationship * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, TUBA_API_TYPE_RELATIONSHIP, TubaAPIRelationship);
	switch (property_id) {
		case TUBA_API_RELATIONSHIP_TUBA_HAS_LOADED_PROPERTY:
		tuba_api_relationship_set_tuba_has_loaded (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_ID_PROPERTY:
		tuba_api_relationship_set_id (self, g_value_get_string (value));
		break;
		case TUBA_API_RELATIONSHIP_FOLLOWING_PROPERTY:
		tuba_api_relationship_set_following (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_FOLLOWED_BY_PROPERTY:
		tuba_api_relationship_set_followed_by (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_SHOWING_REBLOGS_PROPERTY:
		tuba_api_relationship_set_showing_reblogs (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_MUTING_PROPERTY:
		tuba_api_relationship_set_muting (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_MUTING_NOTIFICATIONS_PROPERTY:
		tuba_api_relationship_set_muting_notifications (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_REQUESTED_PROPERTY:
		tuba_api_relationship_set_requested (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_BLOCKING_PROPERTY:
		tuba_api_relationship_set_blocking (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_BLOCKED_BY_PROPERTY:
		tuba_api_relationship_set_blocked_by (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_DOMAIN_BLOCKING_PROPERTY:
		tuba_api_relationship_set_domain_blocking (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_NOTIFYING_PROPERTY:
		tuba_api_relationship_set_notifying (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_ENDORSED_PROPERTY:
		tuba_api_relationship_set_endorsed (self, g_value_get_boolean (value));
		break;
		case TUBA_API_RELATIONSHIP_NOTE_PROPERTY:
		tuba_api_relationship_set_note (self, g_value_get_string (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

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

