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

/*
 * Copyright (C) 2009-2011 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 */

#include <glib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include <stdlib.h>
#include <string.h>
#include <freesmartphone.h>
#include <fsobasics.h>
#include <fsotransport.h>
#include <gee.h>
#include <smsutil.h>
#include <conversions.h>
#include <util.h>


#define FSO_GSM_TYPE_MEDIATOR (fso_gsm_mediator_get_type ())
#define FSO_GSM_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_MEDIATOR, FsoGsmMediator))
#define FSO_GSM_IS_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_MEDIATOR))
#define FSO_GSM_MEDIATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_MEDIATOR, FsoGsmMediatorIface))

typedef struct _FsoGsmMediator FsoGsmMediator;
typedef struct _FsoGsmMediatorIface FsoGsmMediatorIface;

#define FSO_GSM_TYPE_ABSTRACT_MEDIATOR (fso_gsm_abstract_mediator_get_type ())
#define FSO_GSM_ABSTRACT_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ABSTRACT_MEDIATOR, FsoGsmAbstractMediator))
#define FSO_GSM_ABSTRACT_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_ABSTRACT_MEDIATOR, FsoGsmAbstractMediatorClass))
#define FSO_GSM_IS_ABSTRACT_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ABSTRACT_MEDIATOR))
#define FSO_GSM_IS_ABSTRACT_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_ABSTRACT_MEDIATOR))
#define FSO_GSM_ABSTRACT_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_ABSTRACT_MEDIATOR, FsoGsmAbstractMediatorClass))

typedef struct _FsoGsmAbstractMediator FsoGsmAbstractMediator;
typedef struct _FsoGsmAbstractMediatorClass FsoGsmAbstractMediatorClass;
typedef struct _FsoGsmAbstractMediatorPrivate FsoGsmAbstractMediatorPrivate;

#define FSO_GSM_TYPE_SIM_CHANGE_AUTH_CODE (fso_gsm_sim_change_auth_code_get_type ())
#define FSO_GSM_SIM_CHANGE_AUTH_CODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_CHANGE_AUTH_CODE, FsoGsmSimChangeAuthCode))
#define FSO_GSM_SIM_CHANGE_AUTH_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_CHANGE_AUTH_CODE, FsoGsmSimChangeAuthCodeClass))
#define FSO_GSM_IS_SIM_CHANGE_AUTH_CODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_CHANGE_AUTH_CODE))
#define FSO_GSM_IS_SIM_CHANGE_AUTH_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_CHANGE_AUTH_CODE))
#define FSO_GSM_SIM_CHANGE_AUTH_CODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_CHANGE_AUTH_CODE, FsoGsmSimChangeAuthCodeClass))

typedef struct _FsoGsmSimChangeAuthCode FsoGsmSimChangeAuthCode;
typedef struct _FsoGsmSimChangeAuthCodeClass FsoGsmSimChangeAuthCodeClass;
typedef struct _FsoGsmSimChangeAuthCodePrivate FsoGsmSimChangeAuthCodePrivate;

#define FSO_GSM_TYPE_AT_SIM_CHANGE_AUTH_CODE (fso_gsm_at_sim_change_auth_code_get_type ())
#define FSO_GSM_AT_SIM_CHANGE_AUTH_CODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_CHANGE_AUTH_CODE, FsoGsmAtSimChangeAuthCode))
#define FSO_GSM_AT_SIM_CHANGE_AUTH_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_CHANGE_AUTH_CODE, FsoGsmAtSimChangeAuthCodeClass))
#define FSO_GSM_IS_AT_SIM_CHANGE_AUTH_CODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_CHANGE_AUTH_CODE))
#define FSO_GSM_IS_AT_SIM_CHANGE_AUTH_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_CHANGE_AUTH_CODE))
#define FSO_GSM_AT_SIM_CHANGE_AUTH_CODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_CHANGE_AUTH_CODE, FsoGsmAtSimChangeAuthCodeClass))

typedef struct _FsoGsmAtSimChangeAuthCode FsoGsmAtSimChangeAuthCode;
typedef struct _FsoGsmAtSimChangeAuthCodeClass FsoGsmAtSimChangeAuthCodeClass;
typedef struct _FsoGsmAtSimChangeAuthCodePrivate FsoGsmAtSimChangeAuthCodePrivate;
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define FSO_GSM_TYPE_MODEM (fso_gsm_modem_get_type ())
#define FSO_GSM_MODEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_MODEM, FsoGsmModem))
#define FSO_GSM_IS_MODEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_MODEM))
#define FSO_GSM_MODEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_MODEM, FsoGsmModemIface))

typedef struct _FsoGsmModem FsoGsmModem;
typedef struct _FsoGsmModemIface FsoGsmModemIface;

#define FSO_GSM_TYPE_CHANNEL (fso_gsm_channel_get_type ())
#define FSO_GSM_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CHANNEL, FsoGsmChannel))
#define FSO_GSM_IS_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CHANNEL))
#define FSO_GSM_CHANNEL_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_CHANNEL, FsoGsmChannelIface))

typedef struct _FsoGsmChannel FsoGsmChannel;
typedef struct _FsoGsmChannelIface FsoGsmChannelIface;

#define FSO_GSM_MODEM_TYPE_STATUS (fso_gsm_modem_status_get_type ())

#define FSO_GSM_MODEM_TYPE_NETWORK_STATUS (fso_gsm_modem_network_status_get_type ())

#define FSO_GSM_TYPE_AT_COMMAND_SEQUENCE (fso_gsm_at_command_sequence_get_type ())
#define FSO_GSM_AT_COMMAND_SEQUENCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE, FsoGsmAtCommandSequence))
#define FSO_GSM_AT_COMMAND_SEQUENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE, FsoGsmAtCommandSequenceClass))
#define FSO_GSM_IS_AT_COMMAND_SEQUENCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE))
#define FSO_GSM_IS_AT_COMMAND_SEQUENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE))
#define FSO_GSM_AT_COMMAND_SEQUENCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE, FsoGsmAtCommandSequenceClass))

typedef struct _FsoGsmAtCommandSequence FsoGsmAtCommandSequence;
typedef struct _FsoGsmAtCommandSequenceClass FsoGsmAtCommandSequenceClass;

#define FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND (fso_gsm_at_command_queue_command_get_type ())
#define FSO_GSM_AT_COMMAND_QUEUE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND, FsoGsmAtCommandQueueCommand))
#define FSO_GSM_IS_AT_COMMAND_QUEUE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND))
#define FSO_GSM_AT_COMMAND_QUEUE_COMMAND_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND, FsoGsmAtCommandQueueCommandIface))

typedef struct _FsoGsmAtCommandQueueCommand FsoGsmAtCommandQueueCommand;
typedef struct _FsoGsmAtCommandQueueCommandIface FsoGsmAtCommandQueueCommandIface;

#define FSO_GSM_TYPE_AT_COMMAND (fso_gsm_at_command_get_type ())
#define FSO_GSM_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_COMMAND, FsoGsmAtCommand))
#define FSO_GSM_IS_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_COMMAND))
#define FSO_GSM_AT_COMMAND_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_AT_COMMAND, FsoGsmAtCommandIface))

typedef struct _FsoGsmAtCommand FsoGsmAtCommand;
typedef struct _FsoGsmAtCommandIface FsoGsmAtCommandIface;

#define FSO_GSM_CONSTANTS_TYPE_AT_RESPONSE (fso_gsm_constants_at_response_get_type ())

#define FSO_GSM_MODEM_TYPE_DATA (fso_gsm_modem_data_get_type ())
#define FSO_GSM_MODEM_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_MODEM_TYPE_DATA, FsoGsmModemData))
#define FSO_GSM_MODEM_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_MODEM_TYPE_DATA, FsoGsmModemDataClass))
#define FSO_GSM_MODEM_IS_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_MODEM_TYPE_DATA))
#define FSO_GSM_MODEM_IS_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_MODEM_TYPE_DATA))
#define FSO_GSM_MODEM_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_MODEM_TYPE_DATA, FsoGsmModemDataClass))

typedef struct _FsoGsmModemData FsoGsmModemData;
typedef struct _FsoGsmModemDataClass FsoGsmModemDataClass;

#define FSO_GSM_TYPE_CALL_HANDLER (fso_gsm_call_handler_get_type ())
#define FSO_GSM_CALL_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CALL_HANDLER, FsoGsmCallHandler))
#define FSO_GSM_IS_CALL_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CALL_HANDLER))
#define FSO_GSM_CALL_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_CALL_HANDLER, FsoGsmCallHandlerIface))

typedef struct _FsoGsmCallHandler FsoGsmCallHandler;
typedef struct _FsoGsmCallHandlerIface FsoGsmCallHandlerIface;

#define FSO_GSM_TYPE_CALL_INFO (fso_gsm_call_info_get_type ())
#define FSO_GSM_CALL_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CALL_INFO, FsoGsmCallInfo))
#define FSO_GSM_CALL_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_CALL_INFO, FsoGsmCallInfoClass))
#define FSO_GSM_IS_CALL_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CALL_INFO))
#define FSO_GSM_IS_CALL_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_CALL_INFO))
#define FSO_GSM_CALL_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_CALL_INFO, FsoGsmCallInfoClass))

typedef struct _FsoGsmCallInfo FsoGsmCallInfo;
typedef struct _FsoGsmCallInfoClass FsoGsmCallInfoClass;

#define FSO_GSM_TYPE_SMS_HANDLER (fso_gsm_sms_handler_get_type ())
#define FSO_GSM_SMS_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SMS_HANDLER, FsoGsmSmsHandler))
#define FSO_GSM_IS_SMS_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SMS_HANDLER))
#define FSO_GSM_SMS_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_SMS_HANDLER, FsoGsmSmsHandlerIface))

typedef struct _FsoGsmSmsHandler FsoGsmSmsHandler;
typedef struct _FsoGsmSmsHandlerIface FsoGsmSmsHandlerIface;

#define TYPE_WRAP_HEX_PDU (wrap_hex_pdu_get_type ())
#define WRAP_HEX_PDU(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WRAP_HEX_PDU, WrapHexPdu))
#define WRAP_HEX_PDU_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WRAP_HEX_PDU, WrapHexPduClass))
#define IS_WRAP_HEX_PDU(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WRAP_HEX_PDU))
#define IS_WRAP_HEX_PDU_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WRAP_HEX_PDU))
#define WRAP_HEX_PDU_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WRAP_HEX_PDU, WrapHexPduClass))

typedef struct _WrapHexPdu WrapHexPdu;
typedef struct _WrapHexPduClass WrapHexPduClass;

#define FSO_GSM_TYPE_ISMS_STORAGE (fso_gsm_isms_storage_get_type ())
#define FSO_GSM_ISMS_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ISMS_STORAGE, FsoGsmISmsStorage))
#define FSO_GSM_IS_ISMS_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ISMS_STORAGE))
#define FSO_GSM_ISMS_STORAGE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_ISMS_STORAGE, FsoGsmISmsStorageIface))

typedef struct _FsoGsmISmsStorage FsoGsmISmsStorage;
typedef struct _FsoGsmISmsStorageIface FsoGsmISmsStorageIface;

#define FSO_GSM_TYPE_PHONEBOOK_HANDLER (fso_gsm_phonebook_handler_get_type ())
#define FSO_GSM_PHONEBOOK_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PHONEBOOK_HANDLER, FsoGsmPhonebookHandler))
#define FSO_GSM_IS_PHONEBOOK_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PHONEBOOK_HANDLER))
#define FSO_GSM_PHONEBOOK_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_PHONEBOOK_HANDLER, FsoGsmPhonebookHandlerIface))

typedef struct _FsoGsmPhonebookHandler FsoGsmPhonebookHandler;
typedef struct _FsoGsmPhonebookHandlerIface FsoGsmPhonebookHandlerIface;

#define FSO_GSM_TYPE_PHONEBOOK_STORAGE (fso_gsm_phonebook_storage_get_type ())
#define FSO_GSM_PHONEBOOK_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PHONEBOOK_STORAGE, FsoGsmPhonebookStorage))
#define FSO_GSM_PHONEBOOK_STORAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PHONEBOOK_STORAGE, FsoGsmPhonebookStorageClass))
#define FSO_GSM_IS_PHONEBOOK_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PHONEBOOK_STORAGE))
#define FSO_GSM_IS_PHONEBOOK_STORAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PHONEBOOK_STORAGE))
#define FSO_GSM_PHONEBOOK_STORAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PHONEBOOK_STORAGE, FsoGsmPhonebookStorageClass))

typedef struct _FsoGsmPhonebookStorage FsoGsmPhonebookStorage;
typedef struct _FsoGsmPhonebookStorageClass FsoGsmPhonebookStorageClass;

#define FSO_GSM_TYPE_WATCH_DOG (fso_gsm_watch_dog_get_type ())
#define FSO_GSM_WATCH_DOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_WATCH_DOG, FsoGsmWatchDog))
#define FSO_GSM_IS_WATCH_DOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_WATCH_DOG))
#define FSO_GSM_WATCH_DOG_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_WATCH_DOG, FsoGsmWatchDogIface))

typedef struct _FsoGsmWatchDog FsoGsmWatchDog;
typedef struct _FsoGsmWatchDogIface FsoGsmWatchDogIface;

#define FSO_GSM_TYPE_IPDP_HANDLER (fso_gsm_ipdp_handler_get_type ())
#define FSO_GSM_IPDP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_IPDP_HANDLER, FsoGsmIPdpHandler))
#define FSO_GSM_IS_IPDP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_IPDP_HANDLER))
#define FSO_GSM_IPDP_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_IPDP_HANDLER, FsoGsmIPdpHandlerIface))

typedef struct _FsoGsmIPdpHandler FsoGsmIPdpHandler;
typedef struct _FsoGsmIPdpHandlerIface FsoGsmIPdpHandlerIface;

#define FSO_GSM_TYPE_ROUTE_INFO (fso_gsm_route_info_get_type ())
#define FSO_GSM_ROUTE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ROUTE_INFO, FsoGsmRouteInfo))
#define FSO_GSM_ROUTE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_ROUTE_INFO, FsoGsmRouteInfoClass))
#define FSO_GSM_IS_ROUTE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ROUTE_INFO))
#define FSO_GSM_IS_ROUTE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_ROUTE_INFO))
#define FSO_GSM_ROUTE_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_ROUTE_INFO, FsoGsmRouteInfoClass))

typedef struct _FsoGsmRouteInfo FsoGsmRouteInfo;
typedef struct _FsoGsmRouteInfoClass FsoGsmRouteInfoClass;

#define FSO_GSM_TYPE_ABSTRACT_AT_COMMAND (fso_gsm_abstract_at_command_get_type ())
#define FSO_GSM_ABSTRACT_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND, FsoGsmAbstractAtCommand))
#define FSO_GSM_ABSTRACT_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND, FsoGsmAbstractAtCommandClass))
#define FSO_GSM_IS_ABSTRACT_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND))
#define FSO_GSM_IS_ABSTRACT_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND))
#define FSO_GSM_ABSTRACT_AT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND, FsoGsmAbstractAtCommandClass))

typedef struct _FsoGsmAbstractAtCommand FsoGsmAbstractAtCommand;
typedef struct _FsoGsmAbstractAtCommandClass FsoGsmAbstractAtCommandClass;

#define FSO_GSM_TYPE_PLUS_CPWD (fso_gsm_plus_cpwd_get_type ())
#define FSO_GSM_PLUS_CPWD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CPWD, FsoGsmPlusCPWD))
#define FSO_GSM_PLUS_CPWD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CPWD, FsoGsmPlusCPWDClass))
#define FSO_GSM_IS_PLUS_CPWD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CPWD))
#define FSO_GSM_IS_PLUS_CPWD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CPWD))
#define FSO_GSM_PLUS_CPWD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CPWD, FsoGsmPlusCPWDClass))

typedef struct _FsoGsmPlusCPWD FsoGsmPlusCPWD;
typedef struct _FsoGsmPlusCPWDClass FsoGsmPlusCPWDClass;
typedef struct _FsoGsmAtSimChangeAuthCodeRunData FsoGsmAtSimChangeAuthCodeRunData;

#define FSO_GSM_TYPE_SIM_DELETE_ENTRY (fso_gsm_sim_delete_entry_get_type ())
#define FSO_GSM_SIM_DELETE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_DELETE_ENTRY, FsoGsmSimDeleteEntry))
#define FSO_GSM_SIM_DELETE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_DELETE_ENTRY, FsoGsmSimDeleteEntryClass))
#define FSO_GSM_IS_SIM_DELETE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_DELETE_ENTRY))
#define FSO_GSM_IS_SIM_DELETE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_DELETE_ENTRY))
#define FSO_GSM_SIM_DELETE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_DELETE_ENTRY, FsoGsmSimDeleteEntryClass))

typedef struct _FsoGsmSimDeleteEntry FsoGsmSimDeleteEntry;
typedef struct _FsoGsmSimDeleteEntryClass FsoGsmSimDeleteEntryClass;
typedef struct _FsoGsmSimDeleteEntryPrivate FsoGsmSimDeleteEntryPrivate;

#define FSO_GSM_TYPE_AT_SIM_DELETE_ENTRY (fso_gsm_at_sim_delete_entry_get_type ())
#define FSO_GSM_AT_SIM_DELETE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_DELETE_ENTRY, FsoGsmAtSimDeleteEntry))
#define FSO_GSM_AT_SIM_DELETE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_DELETE_ENTRY, FsoGsmAtSimDeleteEntryClass))
#define FSO_GSM_IS_AT_SIM_DELETE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_DELETE_ENTRY))
#define FSO_GSM_IS_AT_SIM_DELETE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_DELETE_ENTRY))
#define FSO_GSM_AT_SIM_DELETE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_DELETE_ENTRY, FsoGsmAtSimDeleteEntryClass))

typedef struct _FsoGsmAtSimDeleteEntry FsoGsmAtSimDeleteEntry;
typedef struct _FsoGsmAtSimDeleteEntryClass FsoGsmAtSimDeleteEntryClass;
typedef struct _FsoGsmAtSimDeleteEntryPrivate FsoGsmAtSimDeleteEntryPrivate;

#define FSO_GSM_TYPE_CONSTANTS (fso_gsm_constants_get_type ())
#define FSO_GSM_CONSTANTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CONSTANTS, FsoGsmConstants))
#define FSO_GSM_CONSTANTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_CONSTANTS, FsoGsmConstantsClass))
#define FSO_GSM_IS_CONSTANTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CONSTANTS))
#define FSO_GSM_IS_CONSTANTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_CONSTANTS))
#define FSO_GSM_CONSTANTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_CONSTANTS, FsoGsmConstantsClass))

typedef struct _FsoGsmConstants FsoGsmConstants;
typedef struct _FsoGsmConstantsClass FsoGsmConstantsClass;
#define _fso_gsm_constants_unref0(var) ((var == NULL) ? NULL : (var = (fso_gsm_constants_unref (var), NULL)))

#define FSO_GSM_TYPE_PLUS_CPBW (fso_gsm_plus_cpbw_get_type ())
#define FSO_GSM_PLUS_CPBW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CPBW, FsoGsmPlusCPBW))
#define FSO_GSM_PLUS_CPBW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CPBW, FsoGsmPlusCPBWClass))
#define FSO_GSM_IS_PLUS_CPBW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CPBW))
#define FSO_GSM_IS_PLUS_CPBW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CPBW))
#define FSO_GSM_PLUS_CPBW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CPBW, FsoGsmPlusCPBWClass))

typedef struct _FsoGsmPlusCPBW FsoGsmPlusCPBW;
typedef struct _FsoGsmPlusCPBWClass FsoGsmPlusCPBWClass;
typedef struct _FsoGsmAtSimDeleteEntryRunData FsoGsmAtSimDeleteEntryRunData;

#define FSO_GSM_TYPE_SIM_DELETE_MESSAGE (fso_gsm_sim_delete_message_get_type ())
#define FSO_GSM_SIM_DELETE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_DELETE_MESSAGE, FsoGsmSimDeleteMessage))
#define FSO_GSM_SIM_DELETE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_DELETE_MESSAGE, FsoGsmSimDeleteMessageClass))
#define FSO_GSM_IS_SIM_DELETE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_DELETE_MESSAGE))
#define FSO_GSM_IS_SIM_DELETE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_DELETE_MESSAGE))
#define FSO_GSM_SIM_DELETE_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_DELETE_MESSAGE, FsoGsmSimDeleteMessageClass))

typedef struct _FsoGsmSimDeleteMessage FsoGsmSimDeleteMessage;
typedef struct _FsoGsmSimDeleteMessageClass FsoGsmSimDeleteMessageClass;
typedef struct _FsoGsmSimDeleteMessagePrivate FsoGsmSimDeleteMessagePrivate;

#define FSO_GSM_TYPE_AT_SIM_DELETE_MESSAGE (fso_gsm_at_sim_delete_message_get_type ())
#define FSO_GSM_AT_SIM_DELETE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_DELETE_MESSAGE, FsoGsmAtSimDeleteMessage))
#define FSO_GSM_AT_SIM_DELETE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_DELETE_MESSAGE, FsoGsmAtSimDeleteMessageClass))
#define FSO_GSM_IS_AT_SIM_DELETE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_DELETE_MESSAGE))
#define FSO_GSM_IS_AT_SIM_DELETE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_DELETE_MESSAGE))
#define FSO_GSM_AT_SIM_DELETE_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_DELETE_MESSAGE, FsoGsmAtSimDeleteMessageClass))

typedef struct _FsoGsmAtSimDeleteMessage FsoGsmAtSimDeleteMessage;
typedef struct _FsoGsmAtSimDeleteMessageClass FsoGsmAtSimDeleteMessageClass;
typedef struct _FsoGsmAtSimDeleteMessagePrivate FsoGsmAtSimDeleteMessagePrivate;

#define FSO_GSM_TYPE_SIMPLE_AT_COMMAND (fso_gsm_simple_at_command_get_type ())
#define FSO_GSM_SIMPLE_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIMPLE_AT_COMMAND, FsoGsmSimpleAtCommand))
#define FSO_GSM_SIMPLE_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIMPLE_AT_COMMAND, FsoGsmSimpleAtCommandClass))
#define FSO_GSM_IS_SIMPLE_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIMPLE_AT_COMMAND))
#define FSO_GSM_IS_SIMPLE_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIMPLE_AT_COMMAND))
#define FSO_GSM_SIMPLE_AT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIMPLE_AT_COMMAND, FsoGsmSimpleAtCommandClass))

typedef struct _FsoGsmSimpleAtCommand FsoGsmSimpleAtCommand;
typedef struct _FsoGsmSimpleAtCommandClass FsoGsmSimpleAtCommandClass;

#define FSO_GSM_TYPE_PLUS_CMGD (fso_gsm_plus_cmgd_get_type ())
#define FSO_GSM_PLUS_CMGD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CMGD, FsoGsmPlusCMGD))
#define FSO_GSM_PLUS_CMGD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CMGD, FsoGsmPlusCMGDClass))
#define FSO_GSM_IS_PLUS_CMGD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CMGD))
#define FSO_GSM_IS_PLUS_CMGD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CMGD))
#define FSO_GSM_PLUS_CMGD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CMGD, FsoGsmPlusCMGDClass))

typedef struct _FsoGsmPlusCMGD FsoGsmPlusCMGD;
typedef struct _FsoGsmPlusCMGDClass FsoGsmPlusCMGDClass;
typedef struct _FsoGsmAtSimDeleteMessageRunData FsoGsmAtSimDeleteMessageRunData;

#define FSO_GSM_TYPE_SIM_GET_AUTH_STATUS (fso_gsm_sim_get_auth_status_get_type ())
#define FSO_GSM_SIM_GET_AUTH_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_GET_AUTH_STATUS, FsoGsmSimGetAuthStatus))
#define FSO_GSM_SIM_GET_AUTH_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_GET_AUTH_STATUS, FsoGsmSimGetAuthStatusClass))
#define FSO_GSM_IS_SIM_GET_AUTH_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_GET_AUTH_STATUS))
#define FSO_GSM_IS_SIM_GET_AUTH_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_GET_AUTH_STATUS))
#define FSO_GSM_SIM_GET_AUTH_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_GET_AUTH_STATUS, FsoGsmSimGetAuthStatusClass))

typedef struct _FsoGsmSimGetAuthStatus FsoGsmSimGetAuthStatus;
typedef struct _FsoGsmSimGetAuthStatusClass FsoGsmSimGetAuthStatusClass;
typedef struct _FsoGsmSimGetAuthStatusPrivate FsoGsmSimGetAuthStatusPrivate;

#define FSO_GSM_TYPE_AT_SIM_GET_AUTH_STATUS (fso_gsm_at_sim_get_auth_status_get_type ())
#define FSO_GSM_AT_SIM_GET_AUTH_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_GET_AUTH_STATUS, FsoGsmAtSimGetAuthStatus))
#define FSO_GSM_AT_SIM_GET_AUTH_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_GET_AUTH_STATUS, FsoGsmAtSimGetAuthStatusClass))
#define FSO_GSM_IS_AT_SIM_GET_AUTH_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_GET_AUTH_STATUS))
#define FSO_GSM_IS_AT_SIM_GET_AUTH_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_GET_AUTH_STATUS))
#define FSO_GSM_AT_SIM_GET_AUTH_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_GET_AUTH_STATUS, FsoGsmAtSimGetAuthStatusClass))

typedef struct _FsoGsmAtSimGetAuthStatus FsoGsmAtSimGetAuthStatus;
typedef struct _FsoGsmAtSimGetAuthStatusClass FsoGsmAtSimGetAuthStatusClass;
typedef struct _FsoGsmAtSimGetAuthStatusPrivate FsoGsmAtSimGetAuthStatusPrivate;

#define FSO_GSM_TYPE_PLUS_CPIN (fso_gsm_plus_cpin_get_type ())
#define FSO_GSM_PLUS_CPIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CPIN, FsoGsmPlusCPIN))
#define FSO_GSM_PLUS_CPIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CPIN, FsoGsmPlusCPINClass))
#define FSO_GSM_IS_PLUS_CPIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CPIN))
#define FSO_GSM_IS_PLUS_CPIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CPIN))
#define FSO_GSM_PLUS_CPIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CPIN, FsoGsmPlusCPINClass))

typedef struct _FsoGsmPlusCPIN FsoGsmPlusCPIN;
typedef struct _FsoGsmPlusCPINClass FsoGsmPlusCPINClass;
typedef struct _FsoGsmAbstractAtCommandPrivate FsoGsmAbstractAtCommandPrivate;
typedef struct _FsoGsmPlusCPINPrivate FsoGsmPlusCPINPrivate;
typedef struct _FsoGsmAtSimGetAuthStatusRunData FsoGsmAtSimGetAuthStatusRunData;

#define FSO_GSM_TYPE_SIM_GET_AUTH_CODE_REQUIRED (fso_gsm_sim_get_auth_code_required_get_type ())
#define FSO_GSM_SIM_GET_AUTH_CODE_REQUIRED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_GET_AUTH_CODE_REQUIRED, FsoGsmSimGetAuthCodeRequired))
#define FSO_GSM_SIM_GET_AUTH_CODE_REQUIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_GET_AUTH_CODE_REQUIRED, FsoGsmSimGetAuthCodeRequiredClass))
#define FSO_GSM_IS_SIM_GET_AUTH_CODE_REQUIRED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_GET_AUTH_CODE_REQUIRED))
#define FSO_GSM_IS_SIM_GET_AUTH_CODE_REQUIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_GET_AUTH_CODE_REQUIRED))
#define FSO_GSM_SIM_GET_AUTH_CODE_REQUIRED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_GET_AUTH_CODE_REQUIRED, FsoGsmSimGetAuthCodeRequiredClass))

typedef struct _FsoGsmSimGetAuthCodeRequired FsoGsmSimGetAuthCodeRequired;
typedef struct _FsoGsmSimGetAuthCodeRequiredClass FsoGsmSimGetAuthCodeRequiredClass;
typedef struct _FsoGsmSimGetAuthCodeRequiredPrivate FsoGsmSimGetAuthCodeRequiredPrivate;

#define FSO_GSM_TYPE_AT_SIM_GET_AUTH_CODE_REQUIRED (fso_gsm_at_sim_get_auth_code_required_get_type ())
#define FSO_GSM_AT_SIM_GET_AUTH_CODE_REQUIRED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_GET_AUTH_CODE_REQUIRED, FsoGsmAtSimGetAuthCodeRequired))
#define FSO_GSM_AT_SIM_GET_AUTH_CODE_REQUIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_GET_AUTH_CODE_REQUIRED, FsoGsmAtSimGetAuthCodeRequiredClass))
#define FSO_GSM_IS_AT_SIM_GET_AUTH_CODE_REQUIRED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_GET_AUTH_CODE_REQUIRED))
#define FSO_GSM_IS_AT_SIM_GET_AUTH_CODE_REQUIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_GET_AUTH_CODE_REQUIRED))
#define FSO_GSM_AT_SIM_GET_AUTH_CODE_REQUIRED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_GET_AUTH_CODE_REQUIRED, FsoGsmAtSimGetAuthCodeRequiredClass))

typedef struct _FsoGsmAtSimGetAuthCodeRequired FsoGsmAtSimGetAuthCodeRequired;
typedef struct _FsoGsmAtSimGetAuthCodeRequiredClass FsoGsmAtSimGetAuthCodeRequiredClass;
typedef struct _FsoGsmAtSimGetAuthCodeRequiredPrivate FsoGsmAtSimGetAuthCodeRequiredPrivate;

#define FSO_GSM_TYPE_PLUS_CLCK (fso_gsm_plus_clck_get_type ())
#define FSO_GSM_PLUS_CLCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CLCK, FsoGsmPlusCLCK))
#define FSO_GSM_PLUS_CLCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CLCK, FsoGsmPlusCLCKClass))
#define FSO_GSM_IS_PLUS_CLCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CLCK))
#define FSO_GSM_IS_PLUS_CLCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CLCK))
#define FSO_GSM_PLUS_CLCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CLCK, FsoGsmPlusCLCKClass))

typedef struct _FsoGsmPlusCLCK FsoGsmPlusCLCK;
typedef struct _FsoGsmPlusCLCKClass FsoGsmPlusCLCKClass;
typedef struct _FsoGsmPlusCLCKPrivate FsoGsmPlusCLCKPrivate;
typedef struct _FsoGsmAtSimGetAuthCodeRequiredRunData FsoGsmAtSimGetAuthCodeRequiredRunData;

#define FSO_GSM_TYPE_SIM_GET_INFORMATION (fso_gsm_sim_get_information_get_type ())
#define FSO_GSM_SIM_GET_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_GET_INFORMATION, FsoGsmSimGetInformation))
#define FSO_GSM_SIM_GET_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_GET_INFORMATION, FsoGsmSimGetInformationClass))
#define FSO_GSM_IS_SIM_GET_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_GET_INFORMATION))
#define FSO_GSM_IS_SIM_GET_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_GET_INFORMATION))
#define FSO_GSM_SIM_GET_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_GET_INFORMATION, FsoGsmSimGetInformationClass))

typedef struct _FsoGsmSimGetInformation FsoGsmSimGetInformation;
typedef struct _FsoGsmSimGetInformationClass FsoGsmSimGetInformationClass;
typedef struct _FsoGsmSimGetInformationPrivate FsoGsmSimGetInformationPrivate;

#define FSO_GSM_TYPE_AT_SIM_GET_INFORMATION (fso_gsm_at_sim_get_information_get_type ())
#define FSO_GSM_AT_SIM_GET_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_GET_INFORMATION, FsoGsmAtSimGetInformation))
#define FSO_GSM_AT_SIM_GET_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_GET_INFORMATION, FsoGsmAtSimGetInformationClass))
#define FSO_GSM_IS_AT_SIM_GET_INFORMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_GET_INFORMATION))
#define FSO_GSM_IS_AT_SIM_GET_INFORMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_GET_INFORMATION))
#define FSO_GSM_AT_SIM_GET_INFORMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_GET_INFORMATION, FsoGsmAtSimGetInformationClass))

typedef struct _FsoGsmAtSimGetInformation FsoGsmAtSimGetInformation;
typedef struct _FsoGsmAtSimGetInformationClass FsoGsmAtSimGetInformationClass;
typedef struct _FsoGsmAtSimGetInformationPrivate FsoGsmAtSimGetInformationPrivate;
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))

#define FSO_GSM_TYPE_PLUS_CGMR (fso_gsm_plus_cgmr_get_type ())
#define FSO_GSM_PLUS_CGMR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CGMR, FsoGsmPlusCGMR))
#define FSO_GSM_PLUS_CGMR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CGMR, FsoGsmPlusCGMRClass))
#define FSO_GSM_IS_PLUS_CGMR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CGMR))
#define FSO_GSM_IS_PLUS_CGMR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CGMR))
#define FSO_GSM_PLUS_CGMR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CGMR, FsoGsmPlusCGMRClass))

typedef struct _FsoGsmPlusCGMR FsoGsmPlusCGMR;
typedef struct _FsoGsmPlusCGMRClass FsoGsmPlusCGMRClass;
typedef struct _FsoGsmSimpleAtCommandPrivate FsoGsmSimpleAtCommandPrivate;
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))

#define FSO_GSM_TYPE_PLUS_CRSM (fso_gsm_plus_crsm_get_type ())
#define FSO_GSM_PLUS_CRSM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CRSM, FsoGsmPlusCRSM))
#define FSO_GSM_PLUS_CRSM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CRSM, FsoGsmPlusCRSMClass))
#define FSO_GSM_IS_PLUS_CRSM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CRSM))
#define FSO_GSM_IS_PLUS_CRSM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CRSM))
#define FSO_GSM_PLUS_CRSM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CRSM, FsoGsmPlusCRSMClass))

typedef struct _FsoGsmPlusCRSM FsoGsmPlusCRSM;
typedef struct _FsoGsmPlusCRSMClass FsoGsmPlusCRSMClass;

#define FSO_GSM_CONSTANTS_TYPE_SIM_FILESYSTEM_COMMAND (fso_gsm_constants_sim_filesystem_command_get_type ())
typedef struct _FsoGsmPlusCRSMPrivate FsoGsmPlusCRSMPrivate;
typedef struct _FsoGsmModemDataPrivate FsoGsmModemDataPrivate;

#define FSO_GSM_TYPE_PHONEBOOK_PARAMS (fso_gsm_phonebook_params_get_type ())
#define FSO_GSM_PHONEBOOK_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PHONEBOOK_PARAMS, FsoGsmPhonebookParams))
#define FSO_GSM_PHONEBOOK_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PHONEBOOK_PARAMS, FsoGsmPhonebookParamsClass))
#define FSO_GSM_IS_PHONEBOOK_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PHONEBOOK_PARAMS))
#define FSO_GSM_IS_PHONEBOOK_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PHONEBOOK_PARAMS))
#define FSO_GSM_PHONEBOOK_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PHONEBOOK_PARAMS, FsoGsmPhonebookParamsClass))

typedef struct _FsoGsmPhonebookParams FsoGsmPhonebookParams;
typedef struct _FsoGsmPhonebookParamsClass FsoGsmPhonebookParamsClass;

#define FSO_GSM_TYPE_CONTEXT_PARAMS (fso_gsm_context_params_get_type ())
#define FSO_GSM_CONTEXT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CONTEXT_PARAMS, FsoGsmContextParams))
#define FSO_GSM_CONTEXT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_CONTEXT_PARAMS, FsoGsmContextParamsClass))
#define FSO_GSM_IS_CONTEXT_PARAMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CONTEXT_PARAMS))
#define FSO_GSM_IS_CONTEXT_PARAMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_CONTEXT_PARAMS))
#define FSO_GSM_CONTEXT_PARAMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_CONTEXT_PARAMS, FsoGsmContextParamsClass))

typedef struct _FsoGsmContextParams FsoGsmContextParams;
typedef struct _FsoGsmContextParamsClass FsoGsmContextParamsClass;

#define FSO_GSM_TYPE_NETWORK_TIME_REPORT (fso_gsm_network_time_report_get_type ())
#define FSO_GSM_NETWORK_TIME_REPORT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_NETWORK_TIME_REPORT, FsoGsmNetworkTimeReport))
#define FSO_GSM_NETWORK_TIME_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_NETWORK_TIME_REPORT, FsoGsmNetworkTimeReportClass))
#define FSO_GSM_IS_NETWORK_TIME_REPORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_NETWORK_TIME_REPORT))
#define FSO_GSM_IS_NETWORK_TIME_REPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_NETWORK_TIME_REPORT))
#define FSO_GSM_NETWORK_TIME_REPORT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_NETWORK_TIME_REPORT, FsoGsmNetworkTimeReportClass))

typedef struct _FsoGsmNetworkTimeReport FsoGsmNetworkTimeReport;
typedef struct _FsoGsmNetworkTimeReportClass FsoGsmNetworkTimeReportClass;

#define FSO_GSM_TYPE_PLUS_CPBS (fso_gsm_plus_cpbs_get_type ())
#define FSO_GSM_PLUS_CPBS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CPBS, FsoGsmPlusCPBS))
#define FSO_GSM_PLUS_CPBS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CPBS, FsoGsmPlusCPBSClass))
#define FSO_GSM_IS_PLUS_CPBS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CPBS))
#define FSO_GSM_IS_PLUS_CPBS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CPBS))
#define FSO_GSM_PLUS_CPBS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CPBS, FsoGsmPlusCPBSClass))

typedef struct _FsoGsmPlusCPBS FsoGsmPlusCPBS;
typedef struct _FsoGsmPlusCPBSClass FsoGsmPlusCPBSClass;
typedef struct _FsoGsmPlusCPBSPrivate FsoGsmPlusCPBSPrivate;

#define FSO_GSM_TYPE_PLUS_CPMS (fso_gsm_plus_cpms_get_type ())
#define FSO_GSM_PLUS_CPMS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CPMS, FsoGsmPlusCPMS))
#define FSO_GSM_PLUS_CPMS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CPMS, FsoGsmPlusCPMSClass))
#define FSO_GSM_IS_PLUS_CPMS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CPMS))
#define FSO_GSM_IS_PLUS_CPMS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CPMS))
#define FSO_GSM_PLUS_CPMS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CPMS, FsoGsmPlusCPMSClass))

typedef struct _FsoGsmPlusCPMS FsoGsmPlusCPMS;
typedef struct _FsoGsmPlusCPMSClass FsoGsmPlusCPMSClass;
typedef struct _FsoGsmPlusCPMSPrivate FsoGsmPlusCPMSPrivate;
typedef struct _FsoGsmAtSimGetInformationRunData FsoGsmAtSimGetInformationRunData;

#define FSO_GSM_TYPE_SIM_GET_PHONEBOOK_INFO (fso_gsm_sim_get_phonebook_info_get_type ())
#define FSO_GSM_SIM_GET_PHONEBOOK_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_GET_PHONEBOOK_INFO, FsoGsmSimGetPhonebookInfo))
#define FSO_GSM_SIM_GET_PHONEBOOK_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_GET_PHONEBOOK_INFO, FsoGsmSimGetPhonebookInfoClass))
#define FSO_GSM_IS_SIM_GET_PHONEBOOK_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_GET_PHONEBOOK_INFO))
#define FSO_GSM_IS_SIM_GET_PHONEBOOK_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_GET_PHONEBOOK_INFO))
#define FSO_GSM_SIM_GET_PHONEBOOK_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_GET_PHONEBOOK_INFO, FsoGsmSimGetPhonebookInfoClass))

typedef struct _FsoGsmSimGetPhonebookInfo FsoGsmSimGetPhonebookInfo;
typedef struct _FsoGsmSimGetPhonebookInfoClass FsoGsmSimGetPhonebookInfoClass;
typedef struct _FsoGsmSimGetPhonebookInfoPrivate FsoGsmSimGetPhonebookInfoPrivate;

#define FSO_GSM_TYPE_AT_SIM_GET_PHONEBOOK_INFO (fso_gsm_at_sim_get_phonebook_info_get_type ())
#define FSO_GSM_AT_SIM_GET_PHONEBOOK_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_GET_PHONEBOOK_INFO, FsoGsmAtSimGetPhonebookInfo))
#define FSO_GSM_AT_SIM_GET_PHONEBOOK_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_GET_PHONEBOOK_INFO, FsoGsmAtSimGetPhonebookInfoClass))
#define FSO_GSM_IS_AT_SIM_GET_PHONEBOOK_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_GET_PHONEBOOK_INFO))
#define FSO_GSM_IS_AT_SIM_GET_PHONEBOOK_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_GET_PHONEBOOK_INFO))
#define FSO_GSM_AT_SIM_GET_PHONEBOOK_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_GET_PHONEBOOK_INFO, FsoGsmAtSimGetPhonebookInfoClass))

typedef struct _FsoGsmAtSimGetPhonebookInfo FsoGsmAtSimGetPhonebookInfo;
typedef struct _FsoGsmAtSimGetPhonebookInfoClass FsoGsmAtSimGetPhonebookInfoClass;
typedef struct _FsoGsmAtSimGetPhonebookInfoPrivate FsoGsmAtSimGetPhonebookInfoPrivate;
typedef struct _FsoGsmPlusCPBWPrivate FsoGsmPlusCPBWPrivate;
typedef struct _FsoGsmAtSimGetPhonebookInfoRunData FsoGsmAtSimGetPhonebookInfoRunData;

#define FSO_GSM_TYPE_SIM_GET_SERVICE_CENTER_NUMBER (fso_gsm_sim_get_service_center_number_get_type ())
#define FSO_GSM_SIM_GET_SERVICE_CENTER_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_GET_SERVICE_CENTER_NUMBER, FsoGsmSimGetServiceCenterNumber))
#define FSO_GSM_SIM_GET_SERVICE_CENTER_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_GET_SERVICE_CENTER_NUMBER, FsoGsmSimGetServiceCenterNumberClass))
#define FSO_GSM_IS_SIM_GET_SERVICE_CENTER_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_GET_SERVICE_CENTER_NUMBER))
#define FSO_GSM_IS_SIM_GET_SERVICE_CENTER_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_GET_SERVICE_CENTER_NUMBER))
#define FSO_GSM_SIM_GET_SERVICE_CENTER_NUMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_GET_SERVICE_CENTER_NUMBER, FsoGsmSimGetServiceCenterNumberClass))

typedef struct _FsoGsmSimGetServiceCenterNumber FsoGsmSimGetServiceCenterNumber;
typedef struct _FsoGsmSimGetServiceCenterNumberClass FsoGsmSimGetServiceCenterNumberClass;
typedef struct _FsoGsmSimGetServiceCenterNumberPrivate FsoGsmSimGetServiceCenterNumberPrivate;

#define FSO_GSM_TYPE_AT_SIM_GET_SERVICE_CENTER_NUMBER (fso_gsm_at_sim_get_service_center_number_get_type ())
#define FSO_GSM_AT_SIM_GET_SERVICE_CENTER_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_GET_SERVICE_CENTER_NUMBER, FsoGsmAtSimGetServiceCenterNumber))
#define FSO_GSM_AT_SIM_GET_SERVICE_CENTER_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_GET_SERVICE_CENTER_NUMBER, FsoGsmAtSimGetServiceCenterNumberClass))
#define FSO_GSM_IS_AT_SIM_GET_SERVICE_CENTER_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_GET_SERVICE_CENTER_NUMBER))
#define FSO_GSM_IS_AT_SIM_GET_SERVICE_CENTER_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_GET_SERVICE_CENTER_NUMBER))
#define FSO_GSM_AT_SIM_GET_SERVICE_CENTER_NUMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_GET_SERVICE_CENTER_NUMBER, FsoGsmAtSimGetServiceCenterNumberClass))

typedef struct _FsoGsmAtSimGetServiceCenterNumber FsoGsmAtSimGetServiceCenterNumber;
typedef struct _FsoGsmAtSimGetServiceCenterNumberClass FsoGsmAtSimGetServiceCenterNumberClass;
typedef struct _FsoGsmAtSimGetServiceCenterNumberPrivate FsoGsmAtSimGetServiceCenterNumberPrivate;

#define FSO_GSM_TYPE_PLUS_CSCA (fso_gsm_plus_csca_get_type ())
#define FSO_GSM_PLUS_CSCA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CSCA, FsoGsmPlusCSCA))
#define FSO_GSM_PLUS_CSCA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CSCA, FsoGsmPlusCSCAClass))
#define FSO_GSM_IS_PLUS_CSCA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CSCA))
#define FSO_GSM_IS_PLUS_CSCA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CSCA))
#define FSO_GSM_PLUS_CSCA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CSCA, FsoGsmPlusCSCAClass))

typedef struct _FsoGsmPlusCSCA FsoGsmPlusCSCA;
typedef struct _FsoGsmPlusCSCAClass FsoGsmPlusCSCAClass;
typedef struct _FsoGsmPlusCSCAPrivate FsoGsmPlusCSCAPrivate;
typedef struct _FsoGsmAtSimGetServiceCenterNumberRunData FsoGsmAtSimGetServiceCenterNumberRunData;

#define FSO_GSM_TYPE_SIM_GET_UNLOCK_COUNTERS (fso_gsm_sim_get_unlock_counters_get_type ())
#define FSO_GSM_SIM_GET_UNLOCK_COUNTERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_GET_UNLOCK_COUNTERS, FsoGsmSimGetUnlockCounters))
#define FSO_GSM_SIM_GET_UNLOCK_COUNTERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_GET_UNLOCK_COUNTERS, FsoGsmSimGetUnlockCountersClass))
#define FSO_GSM_IS_SIM_GET_UNLOCK_COUNTERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_GET_UNLOCK_COUNTERS))
#define FSO_GSM_IS_SIM_GET_UNLOCK_COUNTERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_GET_UNLOCK_COUNTERS))
#define FSO_GSM_SIM_GET_UNLOCK_COUNTERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_GET_UNLOCK_COUNTERS, FsoGsmSimGetUnlockCountersClass))

typedef struct _FsoGsmSimGetUnlockCounters FsoGsmSimGetUnlockCounters;
typedef struct _FsoGsmSimGetUnlockCountersClass FsoGsmSimGetUnlockCountersClass;
typedef struct _FsoGsmSimGetUnlockCountersPrivate FsoGsmSimGetUnlockCountersPrivate;

#define FSO_GSM_TYPE_AT_SIM_GET_UNLOCK_COUNTERS (fso_gsm_at_sim_get_unlock_counters_get_type ())
#define FSO_GSM_AT_SIM_GET_UNLOCK_COUNTERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_GET_UNLOCK_COUNTERS, FsoGsmAtSimGetUnlockCounters))
#define FSO_GSM_AT_SIM_GET_UNLOCK_COUNTERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_GET_UNLOCK_COUNTERS, FsoGsmAtSimGetUnlockCountersClass))
#define FSO_GSM_IS_AT_SIM_GET_UNLOCK_COUNTERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_GET_UNLOCK_COUNTERS))
#define FSO_GSM_IS_AT_SIM_GET_UNLOCK_COUNTERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_GET_UNLOCK_COUNTERS))
#define FSO_GSM_AT_SIM_GET_UNLOCK_COUNTERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_GET_UNLOCK_COUNTERS, FsoGsmAtSimGetUnlockCountersClass))

typedef struct _FsoGsmAtSimGetUnlockCounters FsoGsmAtSimGetUnlockCounters;
typedef struct _FsoGsmAtSimGetUnlockCountersClass FsoGsmAtSimGetUnlockCountersClass;
typedef struct _FsoGsmAtSimGetUnlockCountersPrivate FsoGsmAtSimGetUnlockCountersPrivate;
typedef struct _FsoGsmAtSimGetUnlockCountersRunData FsoGsmAtSimGetUnlockCountersRunData;

#define FSO_GSM_TYPE_SIM_RETRIEVE_MESSAGE (fso_gsm_sim_retrieve_message_get_type ())
#define FSO_GSM_SIM_RETRIEVE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_RETRIEVE_MESSAGE, FsoGsmSimRetrieveMessage))
#define FSO_GSM_SIM_RETRIEVE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_RETRIEVE_MESSAGE, FsoGsmSimRetrieveMessageClass))
#define FSO_GSM_IS_SIM_RETRIEVE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_RETRIEVE_MESSAGE))
#define FSO_GSM_IS_SIM_RETRIEVE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_RETRIEVE_MESSAGE))
#define FSO_GSM_SIM_RETRIEVE_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_RETRIEVE_MESSAGE, FsoGsmSimRetrieveMessageClass))

typedef struct _FsoGsmSimRetrieveMessage FsoGsmSimRetrieveMessage;
typedef struct _FsoGsmSimRetrieveMessageClass FsoGsmSimRetrieveMessageClass;
typedef struct _FsoGsmSimRetrieveMessagePrivate FsoGsmSimRetrieveMessagePrivate;

#define FSO_GSM_TYPE_AT_SIM_RETRIEVE_MESSAGE (fso_gsm_at_sim_retrieve_message_get_type ())
#define FSO_GSM_AT_SIM_RETRIEVE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_RETRIEVE_MESSAGE, FsoGsmAtSimRetrieveMessage))
#define FSO_GSM_AT_SIM_RETRIEVE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_RETRIEVE_MESSAGE, FsoGsmAtSimRetrieveMessageClass))
#define FSO_GSM_IS_AT_SIM_RETRIEVE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_RETRIEVE_MESSAGE))
#define FSO_GSM_IS_AT_SIM_RETRIEVE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_RETRIEVE_MESSAGE))
#define FSO_GSM_AT_SIM_RETRIEVE_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_RETRIEVE_MESSAGE, FsoGsmAtSimRetrieveMessageClass))

typedef struct _FsoGsmAtSimRetrieveMessage FsoGsmAtSimRetrieveMessage;
typedef struct _FsoGsmAtSimRetrieveMessageClass FsoGsmAtSimRetrieveMessageClass;
typedef struct _FsoGsmAtSimRetrieveMessagePrivate FsoGsmAtSimRetrieveMessagePrivate;

#define FSO_GSM_TYPE_PLUS_CMGR (fso_gsm_plus_cmgr_get_type ())
#define FSO_GSM_PLUS_CMGR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CMGR, FsoGsmPlusCMGR))
#define FSO_GSM_PLUS_CMGR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CMGR, FsoGsmPlusCMGRClass))
#define FSO_GSM_IS_PLUS_CMGR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CMGR))
#define FSO_GSM_IS_PLUS_CMGR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CMGR))
#define FSO_GSM_PLUS_CMGR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CMGR, FsoGsmPlusCMGRClass))

typedef struct _FsoGsmPlusCMGR FsoGsmPlusCMGR;
typedef struct _FsoGsmPlusCMGRClass FsoGsmPlusCMGRClass;
#define _sms_free0(var) ((var == NULL) ? NULL : (var = (sms_free (var), NULL)))
typedef struct _FsoGsmPlusCMGRPrivate FsoGsmPlusCMGRPrivate;

#define FSO_GSM_PLUS_CMGL_TYPE_MODE (fso_gsm_plus_cmgl_mode_get_type ())
#define _g_slist_free0(var) ((var == NULL) ? NULL : (var = (g_slist_free (var), NULL)))
typedef struct _FsoGsmAtSimRetrieveMessageRunData FsoGsmAtSimRetrieveMessageRunData;

#define FSO_GSM_TYPE_SIM_RETRIEVE_PHONEBOOK (fso_gsm_sim_retrieve_phonebook_get_type ())
#define FSO_GSM_SIM_RETRIEVE_PHONEBOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_RETRIEVE_PHONEBOOK, FsoGsmSimRetrievePhonebook))
#define FSO_GSM_SIM_RETRIEVE_PHONEBOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_RETRIEVE_PHONEBOOK, FsoGsmSimRetrievePhonebookClass))
#define FSO_GSM_IS_SIM_RETRIEVE_PHONEBOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_RETRIEVE_PHONEBOOK))
#define FSO_GSM_IS_SIM_RETRIEVE_PHONEBOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_RETRIEVE_PHONEBOOK))
#define FSO_GSM_SIM_RETRIEVE_PHONEBOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_RETRIEVE_PHONEBOOK, FsoGsmSimRetrievePhonebookClass))

typedef struct _FsoGsmSimRetrievePhonebook FsoGsmSimRetrievePhonebook;
typedef struct _FsoGsmSimRetrievePhonebookClass FsoGsmSimRetrievePhonebookClass;
typedef struct _FsoGsmSimRetrievePhonebookPrivate FsoGsmSimRetrievePhonebookPrivate;

#define FSO_GSM_TYPE_AT_SIM_RETRIEVE_PHONEBOOK (fso_gsm_at_sim_retrieve_phonebook_get_type ())
#define FSO_GSM_AT_SIM_RETRIEVE_PHONEBOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_RETRIEVE_PHONEBOOK, FsoGsmAtSimRetrievePhonebook))
#define FSO_GSM_AT_SIM_RETRIEVE_PHONEBOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_RETRIEVE_PHONEBOOK, FsoGsmAtSimRetrievePhonebookClass))
#define FSO_GSM_IS_AT_SIM_RETRIEVE_PHONEBOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_RETRIEVE_PHONEBOOK))
#define FSO_GSM_IS_AT_SIM_RETRIEVE_PHONEBOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_RETRIEVE_PHONEBOOK))
#define FSO_GSM_AT_SIM_RETRIEVE_PHONEBOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_RETRIEVE_PHONEBOOK, FsoGsmAtSimRetrievePhonebookClass))

typedef struct _FsoGsmAtSimRetrievePhonebook FsoGsmAtSimRetrievePhonebook;
typedef struct _FsoGsmAtSimRetrievePhonebookClass FsoGsmAtSimRetrievePhonebookClass;
typedef struct _FsoGsmAtSimRetrievePhonebookPrivate FsoGsmAtSimRetrievePhonebookPrivate;
typedef struct _FsoGsmAtSimRetrievePhonebookRunData FsoGsmAtSimRetrievePhonebookRunData;

#define FSO_GSM_TYPE_SIM_SET_AUTH_CODE_REQUIRED (fso_gsm_sim_set_auth_code_required_get_type ())
#define FSO_GSM_SIM_SET_AUTH_CODE_REQUIRED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_SET_AUTH_CODE_REQUIRED, FsoGsmSimSetAuthCodeRequired))
#define FSO_GSM_SIM_SET_AUTH_CODE_REQUIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_SET_AUTH_CODE_REQUIRED, FsoGsmSimSetAuthCodeRequiredClass))
#define FSO_GSM_IS_SIM_SET_AUTH_CODE_REQUIRED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_SET_AUTH_CODE_REQUIRED))
#define FSO_GSM_IS_SIM_SET_AUTH_CODE_REQUIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_SET_AUTH_CODE_REQUIRED))
#define FSO_GSM_SIM_SET_AUTH_CODE_REQUIRED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_SET_AUTH_CODE_REQUIRED, FsoGsmSimSetAuthCodeRequiredClass))

typedef struct _FsoGsmSimSetAuthCodeRequired FsoGsmSimSetAuthCodeRequired;
typedef struct _FsoGsmSimSetAuthCodeRequiredClass FsoGsmSimSetAuthCodeRequiredClass;
typedef struct _FsoGsmSimSetAuthCodeRequiredPrivate FsoGsmSimSetAuthCodeRequiredPrivate;

#define FSO_GSM_TYPE_AT_SIM_SET_AUTH_CODE_REQUIRED (fso_gsm_at_sim_set_auth_code_required_get_type ())
#define FSO_GSM_AT_SIM_SET_AUTH_CODE_REQUIRED(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_SET_AUTH_CODE_REQUIRED, FsoGsmAtSimSetAuthCodeRequired))
#define FSO_GSM_AT_SIM_SET_AUTH_CODE_REQUIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_SET_AUTH_CODE_REQUIRED, FsoGsmAtSimSetAuthCodeRequiredClass))
#define FSO_GSM_IS_AT_SIM_SET_AUTH_CODE_REQUIRED(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_SET_AUTH_CODE_REQUIRED))
#define FSO_GSM_IS_AT_SIM_SET_AUTH_CODE_REQUIRED_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_SET_AUTH_CODE_REQUIRED))
#define FSO_GSM_AT_SIM_SET_AUTH_CODE_REQUIRED_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_SET_AUTH_CODE_REQUIRED, FsoGsmAtSimSetAuthCodeRequiredClass))

typedef struct _FsoGsmAtSimSetAuthCodeRequired FsoGsmAtSimSetAuthCodeRequired;
typedef struct _FsoGsmAtSimSetAuthCodeRequiredClass FsoGsmAtSimSetAuthCodeRequiredClass;
typedef struct _FsoGsmAtSimSetAuthCodeRequiredPrivate FsoGsmAtSimSetAuthCodeRequiredPrivate;
typedef struct _FsoGsmAtSimSetAuthCodeRequiredRunData FsoGsmAtSimSetAuthCodeRequiredRunData;

#define FSO_GSM_TYPE_SIM_SEND_AUTH_CODE (fso_gsm_sim_send_auth_code_get_type ())
#define FSO_GSM_SIM_SEND_AUTH_CODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_SEND_AUTH_CODE, FsoGsmSimSendAuthCode))
#define FSO_GSM_SIM_SEND_AUTH_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_SEND_AUTH_CODE, FsoGsmSimSendAuthCodeClass))
#define FSO_GSM_IS_SIM_SEND_AUTH_CODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_SEND_AUTH_CODE))
#define FSO_GSM_IS_SIM_SEND_AUTH_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_SEND_AUTH_CODE))
#define FSO_GSM_SIM_SEND_AUTH_CODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_SEND_AUTH_CODE, FsoGsmSimSendAuthCodeClass))

typedef struct _FsoGsmSimSendAuthCode FsoGsmSimSendAuthCode;
typedef struct _FsoGsmSimSendAuthCodeClass FsoGsmSimSendAuthCodeClass;
typedef struct _FsoGsmSimSendAuthCodePrivate FsoGsmSimSendAuthCodePrivate;

#define FSO_GSM_TYPE_AT_SIM_SEND_AUTH_CODE (fso_gsm_at_sim_send_auth_code_get_type ())
#define FSO_GSM_AT_SIM_SEND_AUTH_CODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_SEND_AUTH_CODE, FsoGsmAtSimSendAuthCode))
#define FSO_GSM_AT_SIM_SEND_AUTH_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_SEND_AUTH_CODE, FsoGsmAtSimSendAuthCodeClass))
#define FSO_GSM_IS_AT_SIM_SEND_AUTH_CODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_SEND_AUTH_CODE))
#define FSO_GSM_IS_AT_SIM_SEND_AUTH_CODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_SEND_AUTH_CODE))
#define FSO_GSM_AT_SIM_SEND_AUTH_CODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_SEND_AUTH_CODE, FsoGsmAtSimSendAuthCodeClass))

typedef struct _FsoGsmAtSimSendAuthCode FsoGsmAtSimSendAuthCode;
typedef struct _FsoGsmAtSimSendAuthCodeClass FsoGsmAtSimSendAuthCodeClass;
typedef struct _FsoGsmAtSimSendAuthCodePrivate FsoGsmAtSimSendAuthCodePrivate;
typedef struct _FsoGsmAtSimSendAuthCodeRunData FsoGsmAtSimSendAuthCodeRunData;

#define FSO_GSM_TYPE_SIM_SEND_STORED_MESSAGE (fso_gsm_sim_send_stored_message_get_type ())
#define FSO_GSM_SIM_SEND_STORED_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_SEND_STORED_MESSAGE, FsoGsmSimSendStoredMessage))
#define FSO_GSM_SIM_SEND_STORED_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_SEND_STORED_MESSAGE, FsoGsmSimSendStoredMessageClass))
#define FSO_GSM_IS_SIM_SEND_STORED_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_SEND_STORED_MESSAGE))
#define FSO_GSM_IS_SIM_SEND_STORED_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_SEND_STORED_MESSAGE))
#define FSO_GSM_SIM_SEND_STORED_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_SEND_STORED_MESSAGE, FsoGsmSimSendStoredMessageClass))

typedef struct _FsoGsmSimSendStoredMessage FsoGsmSimSendStoredMessage;
typedef struct _FsoGsmSimSendStoredMessageClass FsoGsmSimSendStoredMessageClass;
typedef struct _FsoGsmSimSendStoredMessagePrivate FsoGsmSimSendStoredMessagePrivate;

#define FSO_GSM_TYPE_AT_SIM_SEND_STORED_MESSAGE (fso_gsm_at_sim_send_stored_message_get_type ())
#define FSO_GSM_AT_SIM_SEND_STORED_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_SEND_STORED_MESSAGE, FsoGsmAtSimSendStoredMessage))
#define FSO_GSM_AT_SIM_SEND_STORED_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_SEND_STORED_MESSAGE, FsoGsmAtSimSendStoredMessageClass))
#define FSO_GSM_IS_AT_SIM_SEND_STORED_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_SEND_STORED_MESSAGE))
#define FSO_GSM_IS_AT_SIM_SEND_STORED_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_SEND_STORED_MESSAGE))
#define FSO_GSM_AT_SIM_SEND_STORED_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_SEND_STORED_MESSAGE, FsoGsmAtSimSendStoredMessageClass))

typedef struct _FsoGsmAtSimSendStoredMessage FsoGsmAtSimSendStoredMessage;
typedef struct _FsoGsmAtSimSendStoredMessageClass FsoGsmAtSimSendStoredMessageClass;
typedef struct _FsoGsmAtSimSendStoredMessagePrivate FsoGsmAtSimSendStoredMessagePrivate;

#define FSO_GSM_TYPE_PLUS_CMSS (fso_gsm_plus_cmss_get_type ())
#define FSO_GSM_PLUS_CMSS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CMSS, FsoGsmPlusCMSS))
#define FSO_GSM_PLUS_CMSS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CMSS, FsoGsmPlusCMSSClass))
#define FSO_GSM_IS_PLUS_CMSS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CMSS))
#define FSO_GSM_IS_PLUS_CMSS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CMSS))
#define FSO_GSM_PLUS_CMSS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CMSS, FsoGsmPlusCMSSClass))

typedef struct _FsoGsmPlusCMSS FsoGsmPlusCMSS;
typedef struct _FsoGsmPlusCMSSClass FsoGsmPlusCMSSClass;
typedef struct _FsoGsmPlusCMSSPrivate FsoGsmPlusCMSSPrivate;
typedef struct _FsoGsmAtSimSendStoredMessageRunData FsoGsmAtSimSendStoredMessageRunData;

#define FSO_GSM_TYPE_SIM_SET_SERVICE_CENTER_NUMBER (fso_gsm_sim_set_service_center_number_get_type ())
#define FSO_GSM_SIM_SET_SERVICE_CENTER_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_SET_SERVICE_CENTER_NUMBER, FsoGsmSimSetServiceCenterNumber))
#define FSO_GSM_SIM_SET_SERVICE_CENTER_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_SET_SERVICE_CENTER_NUMBER, FsoGsmSimSetServiceCenterNumberClass))
#define FSO_GSM_IS_SIM_SET_SERVICE_CENTER_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_SET_SERVICE_CENTER_NUMBER))
#define FSO_GSM_IS_SIM_SET_SERVICE_CENTER_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_SET_SERVICE_CENTER_NUMBER))
#define FSO_GSM_SIM_SET_SERVICE_CENTER_NUMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_SET_SERVICE_CENTER_NUMBER, FsoGsmSimSetServiceCenterNumberClass))

typedef struct _FsoGsmSimSetServiceCenterNumber FsoGsmSimSetServiceCenterNumber;
typedef struct _FsoGsmSimSetServiceCenterNumberClass FsoGsmSimSetServiceCenterNumberClass;
typedef struct _FsoGsmSimSetServiceCenterNumberPrivate FsoGsmSimSetServiceCenterNumberPrivate;

#define FSO_GSM_TYPE_AT_SIM_SET_SERVICE_CENTER_NUMBER (fso_gsm_at_sim_set_service_center_number_get_type ())
#define FSO_GSM_AT_SIM_SET_SERVICE_CENTER_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_SET_SERVICE_CENTER_NUMBER, FsoGsmAtSimSetServiceCenterNumber))
#define FSO_GSM_AT_SIM_SET_SERVICE_CENTER_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_SET_SERVICE_CENTER_NUMBER, FsoGsmAtSimSetServiceCenterNumberClass))
#define FSO_GSM_IS_AT_SIM_SET_SERVICE_CENTER_NUMBER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_SET_SERVICE_CENTER_NUMBER))
#define FSO_GSM_IS_AT_SIM_SET_SERVICE_CENTER_NUMBER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_SET_SERVICE_CENTER_NUMBER))
#define FSO_GSM_AT_SIM_SET_SERVICE_CENTER_NUMBER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_SET_SERVICE_CENTER_NUMBER, FsoGsmAtSimSetServiceCenterNumberClass))

typedef struct _FsoGsmAtSimSetServiceCenterNumber FsoGsmAtSimSetServiceCenterNumber;
typedef struct _FsoGsmAtSimSetServiceCenterNumberClass FsoGsmAtSimSetServiceCenterNumberClass;
typedef struct _FsoGsmAtSimSetServiceCenterNumberPrivate FsoGsmAtSimSetServiceCenterNumberPrivate;
typedef struct _FsoGsmAtSimSetServiceCenterNumberRunData FsoGsmAtSimSetServiceCenterNumberRunData;

#define FSO_GSM_TYPE_SIM_STORE_MESSAGE (fso_gsm_sim_store_message_get_type ())
#define FSO_GSM_SIM_STORE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_STORE_MESSAGE, FsoGsmSimStoreMessage))
#define FSO_GSM_SIM_STORE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_STORE_MESSAGE, FsoGsmSimStoreMessageClass))
#define FSO_GSM_IS_SIM_STORE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_STORE_MESSAGE))
#define FSO_GSM_IS_SIM_STORE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_STORE_MESSAGE))
#define FSO_GSM_SIM_STORE_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_STORE_MESSAGE, FsoGsmSimStoreMessageClass))

typedef struct _FsoGsmSimStoreMessage FsoGsmSimStoreMessage;
typedef struct _FsoGsmSimStoreMessageClass FsoGsmSimStoreMessageClass;
typedef struct _FsoGsmSimStoreMessagePrivate FsoGsmSimStoreMessagePrivate;

#define FSO_GSM_TYPE_AT_SIM_STORE_MESSAGE (fso_gsm_at_sim_store_message_get_type ())
#define FSO_GSM_AT_SIM_STORE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_STORE_MESSAGE, FsoGsmAtSimStoreMessage))
#define FSO_GSM_AT_SIM_STORE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_STORE_MESSAGE, FsoGsmAtSimStoreMessageClass))
#define FSO_GSM_IS_AT_SIM_STORE_MESSAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_STORE_MESSAGE))
#define FSO_GSM_IS_AT_SIM_STORE_MESSAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_STORE_MESSAGE))
#define FSO_GSM_AT_SIM_STORE_MESSAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_STORE_MESSAGE, FsoGsmAtSimStoreMessageClass))

typedef struct _FsoGsmAtSimStoreMessage FsoGsmAtSimStoreMessage;
typedef struct _FsoGsmAtSimStoreMessageClass FsoGsmAtSimStoreMessageClass;
typedef struct _FsoGsmAtSimStoreMessagePrivate FsoGsmAtSimStoreMessagePrivate;

#define FSO_GSM_TYPE_PLUS_CMGW (fso_gsm_plus_cmgw_get_type ())
#define FSO_GSM_PLUS_CMGW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CMGW, FsoGsmPlusCMGW))
#define FSO_GSM_PLUS_CMGW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CMGW, FsoGsmPlusCMGWClass))
#define FSO_GSM_IS_PLUS_CMGW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CMGW))
#define FSO_GSM_IS_PLUS_CMGW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CMGW))
#define FSO_GSM_PLUS_CMGW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CMGW, FsoGsmPlusCMGWClass))

typedef struct _FsoGsmPlusCMGW FsoGsmPlusCMGW;
typedef struct _FsoGsmPlusCMGWClass FsoGsmPlusCMGWClass;
#define _wrap_hex_pdu_unref0(var) ((var == NULL) ? NULL : (var = (wrap_hex_pdu_unref (var), NULL)))
typedef struct _FsoGsmPlusCMGWPrivate FsoGsmPlusCMGWPrivate;
typedef struct _FsoGsmAtSimStoreMessageRunData FsoGsmAtSimStoreMessageRunData;

#define FSO_GSM_TYPE_SIM_UNLOCK (fso_gsm_sim_unlock_get_type ())
#define FSO_GSM_SIM_UNLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_UNLOCK, FsoGsmSimUnlock))
#define FSO_GSM_SIM_UNLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_UNLOCK, FsoGsmSimUnlockClass))
#define FSO_GSM_IS_SIM_UNLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_UNLOCK))
#define FSO_GSM_IS_SIM_UNLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_UNLOCK))
#define FSO_GSM_SIM_UNLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_UNLOCK, FsoGsmSimUnlockClass))

typedef struct _FsoGsmSimUnlock FsoGsmSimUnlock;
typedef struct _FsoGsmSimUnlockClass FsoGsmSimUnlockClass;
typedef struct _FsoGsmSimUnlockPrivate FsoGsmSimUnlockPrivate;

#define FSO_GSM_TYPE_AT_SIM_UNLOCK (fso_gsm_at_sim_unlock_get_type ())
#define FSO_GSM_AT_SIM_UNLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_UNLOCK, FsoGsmAtSimUnlock))
#define FSO_GSM_AT_SIM_UNLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_UNLOCK, FsoGsmAtSimUnlockClass))
#define FSO_GSM_IS_AT_SIM_UNLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_UNLOCK))
#define FSO_GSM_IS_AT_SIM_UNLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_UNLOCK))
#define FSO_GSM_AT_SIM_UNLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_UNLOCK, FsoGsmAtSimUnlockClass))

typedef struct _FsoGsmAtSimUnlock FsoGsmAtSimUnlock;
typedef struct _FsoGsmAtSimUnlockClass FsoGsmAtSimUnlockClass;
typedef struct _FsoGsmAtSimUnlockPrivate FsoGsmAtSimUnlockPrivate;
typedef struct _FsoGsmAtSimUnlockRunData FsoGsmAtSimUnlockRunData;

#define FSO_GSM_TYPE_SIM_WRITE_ENTRY (fso_gsm_sim_write_entry_get_type ())
#define FSO_GSM_SIM_WRITE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIM_WRITE_ENTRY, FsoGsmSimWriteEntry))
#define FSO_GSM_SIM_WRITE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIM_WRITE_ENTRY, FsoGsmSimWriteEntryClass))
#define FSO_GSM_IS_SIM_WRITE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIM_WRITE_ENTRY))
#define FSO_GSM_IS_SIM_WRITE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIM_WRITE_ENTRY))
#define FSO_GSM_SIM_WRITE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIM_WRITE_ENTRY, FsoGsmSimWriteEntryClass))

typedef struct _FsoGsmSimWriteEntry FsoGsmSimWriteEntry;
typedef struct _FsoGsmSimWriteEntryClass FsoGsmSimWriteEntryClass;
typedef struct _FsoGsmSimWriteEntryPrivate FsoGsmSimWriteEntryPrivate;

#define FSO_GSM_TYPE_AT_SIM_WRITE_ENTRY (fso_gsm_at_sim_write_entry_get_type ())
#define FSO_GSM_AT_SIM_WRITE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_SIM_WRITE_ENTRY, FsoGsmAtSimWriteEntry))
#define FSO_GSM_AT_SIM_WRITE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_SIM_WRITE_ENTRY, FsoGsmAtSimWriteEntryClass))
#define FSO_GSM_IS_AT_SIM_WRITE_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_SIM_WRITE_ENTRY))
#define FSO_GSM_IS_AT_SIM_WRITE_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_SIM_WRITE_ENTRY))
#define FSO_GSM_AT_SIM_WRITE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_SIM_WRITE_ENTRY, FsoGsmAtSimWriteEntryClass))

typedef struct _FsoGsmAtSimWriteEntry FsoGsmAtSimWriteEntry;
typedef struct _FsoGsmAtSimWriteEntryClass FsoGsmAtSimWriteEntryClass;
typedef struct _FsoGsmAtSimWriteEntryPrivate FsoGsmAtSimWriteEntryPrivate;
typedef struct _FsoGsmAtSimWriteEntryRunData FsoGsmAtSimWriteEntryRunData;

struct _FsoGsmMediatorIface {
	GTypeInterface parent_iface;
};

struct _FsoGsmAbstractMediator {
	GObject parent_instance;
	FsoGsmAbstractMediatorPrivate * priv;
};

struct _FsoGsmAbstractMediatorClass {
	GObjectClass parent_class;
};

struct _FsoGsmSimChangeAuthCode {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimChangeAuthCodePrivate * priv;
};

struct _FsoGsmSimChangeAuthCodeClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimChangeAuthCode* self, const gchar* oldpin, const gchar* newpin, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimChangeAuthCode* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimChangeAuthCode {
	FsoGsmSimChangeAuthCode parent_instance;
	FsoGsmAtSimChangeAuthCodePrivate * priv;
};

struct _FsoGsmAtSimChangeAuthCodeClass {
	FsoGsmSimChangeAuthCodeClass parent_class;
};

struct _FsoGsmChannelIface {
	GTypeInterface parent_iface;
	void (*injectResponse) (FsoGsmChannel* self, const gchar* response);
	void (*suspend) (FsoGsmChannel* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*suspend_finish) (FsoGsmChannel* self, GAsyncResult* _res_);
	void (*resume) (FsoGsmChannel* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*resume_finish) (FsoGsmChannel* self, GAsyncResult* _res_);
};

typedef enum  {
	FSO_GSM_MODEM_STATUS_UNKNOWN,
	FSO_GSM_MODEM_STATUS_CLOSED,
	FSO_GSM_MODEM_STATUS_INITIALIZING,
	FSO_GSM_MODEM_STATUS_ALIVE_NO_SIM,
	FSO_GSM_MODEM_STATUS_ALIVE_SIM_LOCKED,
	FSO_GSM_MODEM_STATUS_ALIVE_SIM_UNLOCKED,
	FSO_GSM_MODEM_STATUS_ALIVE_SIM_READY,
	FSO_GSM_MODEM_STATUS_ALIVE_REGISTERED,
	FSO_GSM_MODEM_STATUS_SUSPENDING,
	FSO_GSM_MODEM_STATUS_SUSPENDED,
	FSO_GSM_MODEM_STATUS_RESUMING,
	FSO_GSM_MODEM_STATUS_CLOSING
} FsoGsmModemStatus;

typedef enum  {
	FSO_GSM_MODEM_NETWORK_STATUS_UNKNOWN,
	FSO_GSM_MODEM_NETWORK_STATUS_UNREGISTERED,
	FSO_GSM_MODEM_NETWORK_STATUS_SEARCHING,
	FSO_GSM_MODEM_NETWORK_STATUS_REGISTERED
} FsoGsmModemNetworkStatus;

struct _FsoGsmAtCommandQueueCommandIface {
	GTypeInterface parent_iface;
	guint (*get_retry) (FsoGsmAtCommandQueueCommand* self);
	guint (*get_timeout) (FsoGsmAtCommandQueueCommand* self);
	gchar* (*get_prefix) (FsoGsmAtCommandQueueCommand* self);
	gchar* (*get_postfix) (FsoGsmAtCommandQueueCommand* self);
	gboolean (*is_valid_prefix) (FsoGsmAtCommandQueueCommand* self, const gchar* line);
};

typedef enum  {
	FSO_GSM_AT_COMMAND_ERROR_UNABLE_TO_PARSE
} FsoGsmAtCommandError;
#define FSO_GSM_AT_COMMAND_ERROR fso_gsm_at_command_error_quark ()
typedef enum  {
	FSO_GSM_CONSTANTS_AT_RESPONSE_VALID = 0,
	FSO_GSM_CONSTANTS_AT_RESPONSE_OK = 1,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CONNECT = 2,
	FSO_GSM_CONSTANTS_AT_RESPONSE_UNEXPECTED_LENGTH = 501,
	FSO_GSM_CONSTANTS_AT_RESPONSE_UNABLE_TO_PARSE = 502,
	FSO_GSM_CONSTANTS_AT_RESPONSE_ERROR = 503,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_START = 1000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_000_PHONE_FAILURE = 1000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_001_NO_CONNECTION_TO_PHONE = 1001,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_002_PHONE_ADAPTER_LINK_RESERVED = 1002,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_003_OPERATION_NOT_ALLOWED = 1003,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_004_OPERATION_NOT_SUPPORTED = 1004,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_005_PH_SIM_PIN_REQUIRED = 1005,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_006_PH_FSIM_PIN_REQUIRED = 1006,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_007_PH_FSIM_PUK_REQUIRED = 1007,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_010_SIM_NOT_INSERTED = 1010,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_011_SIM_PIN_REQUIRED = 1011,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_012_SIM_PUK_REQUIRED = 1012,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_013_SIM_FAILURE = 1013,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_014_SIM_BUSY = 1014,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_015_SIM_WRONG = 1015,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_016_INCORRECT_PASSWORD = 1016,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_017_SIM_PIN2_REQUIRED = 1017,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_018_SIM_PUK2_REQUIRED = 1018,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_020_MEMORY_FULL = 1020,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_021_INVALID_INDEX = 1021,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_022_NOT_FOUND = 1022,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_023_MEMORY_FAILURE = 1023,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_024_TEXT_STRING_TOO_LONG = 1024,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_025_INVALID_CHARACTERS_IN_TEXT_STRING = 1025,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_026_DIAL_STRING_TOO_LONG = 1026,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_027_INVALID_CHARACTERS_IN_DIAL_STRING = 1027,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_030_NO_NETWORK_SERVICE = 1030,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_031_NETWORK_TIMEOUT = 1031,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_032_NETWORK_NOT_ALLOWED_EMERGENCY_CALLS_ONLY = 1032,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_040_NETWORK_PERSONALIZATION_PIN_REQUIRED = 1040,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_041_NETWORK_PERSONALIZATION_PUK_REQUIRED = 1041,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_042_NETWORK_SUBSET_PERSONALIZATION_PIN_REQUIRED = 1042,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_043_NETWORK_SUBSET_PERSONALIZATION_PUK_REQUIRED = 1043,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_044_SERVICE_PROVIDER_PERSONALIZATION_PIN_REQUIRED = 1044,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_045_SERVICE_PROVIDER_PERSONALIZATION_PUK_REQUIRED = 1045,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_046_CORPORATE_PERSONALIZATION_PIN_REQUIRED = 1046,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_047_CORPORATE_PERSONALIZATION_PUK_REQUIRED = 1047,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_048_PH_SIM_PUK_REQUIRED = 1048,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_100_UNKNOWN_ERROR = 1100,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_103_GPRS_ILLEGAL_MS = 1103,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_106_GPRS_ILLEGAL_ME = 1106,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_107_GPRS_SERVICES_NOT_ALLOWED = 1107,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_111_GPRS_PLMN_NOT_ALLOWED = 1111,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_112_GPRS_LOCATION_AREA_NOT_ALLOWED = 1112,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_113_GPRS_ROAMING_NOT_ALLOWED_IN_THIS_LOCATION_AREA = 1113,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_126_GPRS_OPERATION_TEMPORARY_NOT_ALLOWED = 1126,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_132_GPRS_SERVICE_OPERATION_NOT_SUPPORTED = 1132,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_133_GPRS_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED = 1133,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_134_GPRS_SERVICE_OPTION_TEMPORARY_OUT_OF_ORDER = 1134,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_148_GPRS_UNSPECIFIED_ERROR = 1148,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_149_GPRS_PDP_AUTHENTICATION_FAILURE = 1149,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_150_GPRS_INVALID_MOBILE_CLASS = 1150,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_256_OPERATION_TEMPORARILY_NOT_ALLOWED = 1256,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_257_CALL_BARRED = 1257,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_258_PHONE_IS_BUSY = 1258,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_259_USER_ABORT = 1259,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_260_INVALID_DIAL_STRING = 1260,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_261_SS_NOT_EXECUTED = 1261,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_262_SIM_BLOCKED = 1262,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_263_INVALID_BLOCK = 1263,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_265_BUSY_TRY_AGAIN = 1265,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_512_FAILED_TO_ABORT_COMMAND = 1512,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_513_ACM_RESET_NEEDED = 1513,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_514_SIM_APPLICATION_TOOLKIT_BUSY = 1514,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_772_SIM_POWERED_DOWN = 1772,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_START = 2000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_001_UNASSIGNED_NUMBER = 2001,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_008_OPERATOR_DETERMINED_BARRING = 2008,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_010_CALL_BARED = 2010,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_021_SHORT_MESSAGE_TRANSFER_REJECTED = 2021,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_027_DESTINATION_OUT_OF_SERVICE = 2027,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_028_UNIDENTIFIED_SUBSCRIBER = 2028,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_029_FACILITY_REJECTED = 2029,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_030_UNKNOWN_SUBSCRIBER = 2030,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_038_NETWORK_OUT_OF_ORDER = 2038,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_041_TEMPORARY_FAILURE = 2041,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_042_CONGESTION = 2042,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_047_RECOURCES_UNAVAILABLE = 2047,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_050_REQUESTED_FACILITY_NOT_SUBSCRIBED = 2050,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_069_REQUESTED_FACILITY_NOT_IMPLEMENTED = 2069,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_081_INVALID_SHORT_MESSAGE_TRANSFER_REFERENCE_VALUE = 2081,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_095_INVALID_MESSAGE_UNSPECIFIED = 2095,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_096_INVALID_MANDATORY_INFORMATION = 2096,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_097_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 2097,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_098_MESSAGE_NOT_COMPATIBLE_WITH_SHORT_MESSAGE_PROTOCOL = 2098,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_099_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 2099,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_111_PROTOCOL_ERROR_UNSPECIFIED = 2111,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_127_INTERNETWORKING_UNSPECIFIED = 2127,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_128_TELEMATIC_INTERNETWORKING_NOT_SUPPORTED = 2128,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_129_SHORT_MESSAGE_TYPE_0_NOT_SUPPORTED = 2129,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_130_CANNOT_REPLACE_SHORT_MESSAGE = 2130,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_143_UNSPECIFIED_TP_PID_ERROR = 2143,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_144_DATA_CODE_SCHEME_NOT_SUPPORTED = 2144,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_145_MESSAGE_CLASS_NOT_SUPPORTED = 2145,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_159_UNSPECIFIED_TP_DCS_ERROR = 2159,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_160_COMMAND_CANNOT_BE_ACTIONED = 2160,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_161_COMMAND_UNSUPPORTED = 2161,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_175_UNSPECIFIED_TP_COMMAND_ERROR = 2175,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_176_TPDU_NOT_SUPPORTED = 2176,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_192_SC_BUSY = 2192,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_193_NO_SC_SUBSCRIPTION = 2193,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_194_SC_SYSTEM_FAILURE = 2194,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_195_INVALID_SME_ADDRESS = 2195,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_196_DESTINATION_SME_BARRED = 2196,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_197_SM_REJECTED_DUPLICATE_SM = 2197,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_198_TP_VPF_NOT_SUPPORTED = 2198,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_199_TP_VP_NOT_SUPPORTED = 2199,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_208_D0_SIM_SMS_STORAGE_FULL = 2208,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_209_NO_SMS_STORAGE_CAPABILITY_IN_SIM = 2209,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_210_ERROR_IN_MS = 2210,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_211_MEMORY_CAPACITY_EXCEEDED = 2211,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_212_SIM_APPLICATION_TOOLKIT_BUSY = 2212,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_213_SIM_DATA_DOWNLOAD_ERROR = 2213,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_255_UNSPECIFIED_ERROR_CAUSE = 2255,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_300_ME_FAILURE = 2300,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_301_SMS_SERVICE_OF_ME_RESERVED = 2301,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_302_OPERATION_NOT_ALLOWED = 2302,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_303_OPERATION_NOT_SUPPORTED = 2303,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_304_INVALID_PDU_MODE_PARAMETER = 2304,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_305_INVALID_TEXT_MODE_PARAMETER = 2305,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_310_SIM_NOT_INSERTED = 2310,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_311_SIM_PIN_REQUIRED = 2311,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_312_PH_SIM_PIN_REQUIRED = 2312,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_313_SIM_FAILURE = 2313,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_314_SIM_BUSY = 2314,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_315_SIM_WRONG = 2315,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_316_SIM_PUK_REQUIRED = 2316,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_317_SIM_PIN2_REQUIRED = 2317,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_318_SIM_PUK2_REQUIRED = 2318,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_320_MEMORY_FAILURE = 2320,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_321_INVALID_MEMORY_INDEX = 2321,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_322_MEMORY_FULL = 2322,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_330_SMSC_ADDRESS_UNKNOWN = 2330,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_331_NO_NETWORK_SERVICE = 2331,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_332_NETWORK_TIMEOUT = 2332,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_340_NO_CNMA_EXPECTED = 2340,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_500_UNKNOWN_ERROR = 2500,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_512_FAILED_TO_ABORT_COMMAND = 2512,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_513_ACM_RESET_NEEDED = 2513,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_514_INVALID_STATUS = 2514,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_515_DEVICE_BUSY_OR_INVALID_CHARACTER_IN_STRING = 2515,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_516_INVALID_LENGTH = 2516,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_517_INVALID_CHARACTER_IN_PDU = 2517,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_518_INVALID_PARAMETER = 2518,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_519_INVALID_LENGTH_OR_CHARACTER = 2519,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_520_INVALID_CHARACTER_IN_TEXT = 2520,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_521_TIMER_EXPIRED = 2521,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_522_OPERATION_TEMPORARY_NOT_ALLOWED = 2522,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_532_SIM_NOT_READY = 2532,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_534_CELL_BROADCAST_ERROR_UNKNOWN = 2534,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_535_PROTOCOL_STACK_BUSY = 2535,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_538_INVALID_PARAMETER = 2538,
	FSO_GSM_CONSTANTS_AT_RESPONSE_EXT_ERROR_START = 3000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_EXT_ERROR_0_INVALID_PARAMETERR = 3000
} FsoGsmConstantsAtResponse;

struct _FsoGsmAtCommandIface {
	GTypeInterface parent_iface;
	guint (*get_timeout) (FsoGsmAtCommand* self);
	guint (*get_retry) (FsoGsmAtCommand* self);
	gchar* (*get_prefix) (FsoGsmAtCommand* self);
	gchar* (*get_postfix) (FsoGsmAtCommand* self);
	gboolean (*is_valid_prefix) (FsoGsmAtCommand* self, const gchar* line);
	void (*parse) (FsoGsmAtCommand* self, const gchar* response, GError** error);
	void (*parseMulti) (FsoGsmAtCommand* self, gchar** response, int response_length1, GError** error);
	void (*parseTest) (FsoGsmAtCommand* self, const gchar* response, GError** error);
	gchar* (*encodeString) (FsoGsmAtCommand* self, const gchar* str);
	gchar* (*decodeString) (FsoGsmAtCommand* self, const gchar* str);
	FsoGsmConstantsAtResponse (*validate) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateTest) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateUrc) (FsoGsmAtCommand* self, const gchar* response);
	FsoGsmConstantsAtResponse (*validateUrcPdu) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateOk) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateMulti) (FsoGsmAtCommand* self, gchar** response, int response_length1);
};

struct _FsoGsmCallHandlerIface {
	GTypeInterface parent_iface;
	void (*handleIncomingCall) (FsoGsmCallHandler* self, FsoGsmCallInfo* call_info);
	void (*handleConnectingCall) (FsoGsmCallHandler* self, FsoGsmCallInfo* call_info);
	void (*handleEndingCall) (FsoGsmCallHandler* self, FsoGsmCallInfo* call_info);
	void (*addSupplementaryInformation) (FsoGsmCallHandler* self, const gchar* direction, const gchar* info);
	void (*activate) (FsoGsmCallHandler* self, gint id, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*activate_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*initiate) (FsoGsmCallHandler* self, const gchar* number, const gchar* ctype, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gint (*initiate_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*hold) (FsoGsmCallHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*hold_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*release) (FsoGsmCallHandler* self, gint id, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*release_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*releaseAll) (FsoGsmCallHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*releaseAll_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmISmsStorageIface {
	GTypeInterface parent_iface;
	void (*clean) (FsoGsmISmsStorage* self);
	gint (*addSms) (FsoGsmISmsStorage* self, struct sms* message);
	GeeArrayList* (*keys) (FsoGsmISmsStorage* self);
	void (*message) (FsoGsmISmsStorage* self, const gchar* key, gint index, FreeSmartphoneGSMSIMMessage* result);
	FreeSmartphoneGSMSIMMessage* (*messagebook) (FsoGsmISmsStorage* self, int* result_length1);
	guint16 (*lastReferenceNumber) (FsoGsmISmsStorage* self);
	guint16 (*increasingReferenceNumber) (FsoGsmISmsStorage* self);
	void (*storeTransactionIndizesForSentMessage) (FsoGsmISmsStorage* self, GeeArrayList* hexpdus);
	gint (*confirmReceivedMessage) (FsoGsmISmsStorage* self, gint netreference);
};

struct _FsoGsmSmsHandlerIface {
	GTypeInterface parent_iface;
	void (*handleIncomingSmsOnSim) (FsoGsmSmsHandler* self, guint index, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*handleIncomingSmsOnSim_finish) (FsoGsmSmsHandler* self, GAsyncResult* _res_);
	void (*handleIncomingSms) (FsoGsmSmsHandler* self, const gchar* hexpdu, gint tpdulen, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*handleIncomingSms_finish) (FsoGsmSmsHandler* self, GAsyncResult* _res_);
	void (*handleIncomingSmsReport) (FsoGsmSmsHandler* self, const gchar* hexpdu, gint tpdulen, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*handleIncomingSmsReport_finish) (FsoGsmSmsHandler* self, GAsyncResult* _res_);
	guint16 (*lastReferenceNumber) (FsoGsmSmsHandler* self);
	guint16 (*nextReferenceNumber) (FsoGsmSmsHandler* self);
	GeeArrayList* (*formatTextMessage) (FsoGsmSmsHandler* self, const gchar* number, const gchar* contents, gboolean requestReport);
	void (*storeTransactionIndizesForSentMessage) (FsoGsmSmsHandler* self, GeeArrayList* hexpdus);
	FsoGsmISmsStorage* (*get_storage) (FsoGsmSmsHandler* self);
	void (*set_storage) (FsoGsmSmsHandler* self, FsoGsmISmsStorage* value);
};

struct _FsoGsmPhonebookHandlerIface {
	GTypeInterface parent_iface;
	void (*syncWithSim) (FsoGsmPhonebookHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*syncWithSim_finish) (FsoGsmPhonebookHandler* self, GAsyncResult* _res_);
	FsoGsmPhonebookStorage* (*get_storage) (FsoGsmPhonebookHandler* self);
	void (*set_storage) (FsoGsmPhonebookHandler* self, FsoGsmPhonebookStorage* value);
};

struct _FsoGsmWatchDogIface {
	GTypeInterface parent_iface;
	void (*check) (FsoGsmWatchDog* self);
	void (*resetUnlockMarker) (FsoGsmWatchDog* self);
};

struct _FsoGsmIPdpHandlerIface {
	GTypeInterface parent_iface;
	void (*activate) (FsoGsmIPdpHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*activate_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_, GError** error);
	void (*deactivate) (FsoGsmIPdpHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*deactivate_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_, GError** error);
	void (*statusUpdate) (FsoGsmIPdpHandler* self, const gchar* status, GHashTable* properties, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*statusUpdate_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_);
	void (*connectedWithNewDefaultRoute) (FsoGsmIPdpHandler* self, FsoGsmRouteInfo* route, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*connectedWithNewDefaultRoute_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_);
	void (*disconnected) (FsoGsmIPdpHandler* self);
	void (*syncStatus) (FsoGsmIPdpHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*syncStatus_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_);
	FreeSmartphoneGSMContextStatus (*get_status) (FsoGsmIPdpHandler* self);
	void (*set_status) (FsoGsmIPdpHandler* self, FreeSmartphoneGSMContextStatus value);
	GHashTable* (*get_properties) (FsoGsmIPdpHandler* self);
	void (*set_properties) (FsoGsmIPdpHandler* self, GHashTable* value);
};

struct _FsoGsmModemIface {
	GTypeInterface parent_iface;
	void (*open) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*open_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*close) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*close_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*suspend) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*suspend_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*resume) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*resume_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*injectResponse) (FsoGsmModem* self, const gchar* command, const gchar* channel, GError** error);
	void (*setFunctionality) (FsoGsmModem* self, const gchar* level, gboolean autoregister, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*setFunctionality_finish) (FsoGsmModem* self, GAsyncResult* _res_, GError** error);
	void (*registerChannel) (FsoGsmModem* self, const gchar* name, FsoGsmChannel* channel);
	void (*advanceToState) (FsoGsmModem* self, FsoGsmModemStatus status, gboolean force);
	void (*advanceNetworkState) (FsoGsmModem* self, FsoGsmModemNetworkStatus status);
	FsoGsmAtCommandSequence* (*atCommandSequence) (FsoGsmModem* self, const gchar* channel, const gchar* purpose);
	gpointer (*createMediator) (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, GError** error);
	gpointer (*createAtCommand) (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, const gchar* command);
	gpointer (*theDevice) (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func);
	gchar* (*allocateDataPort) (FsoGsmModem* self);
	void (*releaseDataPort) (FsoGsmModem* self);
	void (*processAtCommandAsync) (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gchar** (*processAtCommandAsync_finish) (FsoGsmModem* self, GAsyncResult* _res_, int* result_length1);
	void (*processAtPduCommandAsync) (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gchar** (*processAtPduCommandAsync_finish) (FsoGsmModem* self, GAsyncResult* _res_, int* result_length1);
	void (*sendAtCommand) (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries);
	FsoGsmChannel* (*channel) (FsoGsmModem* self, const gchar* category);
	FsoGsmModemStatus (*status) (FsoGsmModem* self);
	FsoGsmModemNetworkStatus (*network_status) (FsoGsmModem* self);
	FreeSmartphoneGSMDeviceStatus (*externalStatus) (FsoGsmModem* self);
	FsoGsmModemData* (*data) (FsoGsmModem* self);
	void (*registerAtCommandSequence) (FsoGsmModem* self, const gchar* channel, const gchar* purpose, FsoGsmAtCommandSequence* sequence);
	gboolean (*isAlive) (FsoGsmModem* self);
	GObject* (*get_parent) (FsoGsmModem* self);
	void (*set_parent) (FsoGsmModem* self, GObject* value);
	FsoGsmCallHandler* (*get_callhandler) (FsoGsmModem* self);
	void (*set_callhandler) (FsoGsmModem* self, FsoGsmCallHandler* value);
	FsoGsmSmsHandler* (*get_smshandler) (FsoGsmModem* self);
	void (*set_smshandler) (FsoGsmModem* self, FsoGsmSmsHandler* value);
	FsoGsmPhonebookHandler* (*get_pbhandler) (FsoGsmModem* self);
	void (*set_pbhandler) (FsoGsmModem* self, FsoGsmPhonebookHandler* value);
	FsoGsmWatchDog* (*get_watchdog) (FsoGsmModem* self);
	void (*set_watchdog) (FsoGsmModem* self, FsoGsmWatchDog* value);
	FsoGsmIPdpHandler* (*get_pdphandler) (FsoGsmModem* self);
	void (*set_pdphandler) (FsoGsmModem* self, FsoGsmIPdpHandler* value);
};

struct _FsoGsmAtSimChangeAuthCodeRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimChangeAuthCode* self;
	gchar* oldpin;
	gchar* newpin;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCPWD* cmd;
	FsoGsmModem* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gint _tmp7_;
	gchar** _tmp8_;
	gchar** _tmp9_;
	gint _tmp9__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	GError * _inner_error_;
};

struct _FsoGsmSimDeleteEntry {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimDeleteEntryPrivate * priv;
};

struct _FsoGsmSimDeleteEntryClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimDeleteEntry* self, const gchar* category, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimDeleteEntry* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimDeleteEntry {
	FsoGsmSimDeleteEntry parent_instance;
	FsoGsmAtSimDeleteEntryPrivate * priv;
};

struct _FsoGsmAtSimDeleteEntryClass {
	FsoGsmSimDeleteEntryClass parent_class;
};

struct _FsoGsmAtSimDeleteEntryRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimDeleteEntry* self;
	gchar* category;
	gint index;
	FsoGsmConstants* _tmp0_;
	FsoGsmConstants* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* cat;
	const gchar* _tmp5_;
	GError* _tmp6_;
	FsoGsmModem* _tmp7_;
	gpointer _tmp8_;
	FsoGsmPlusCPBW* cmd;
	FsoGsmModem* _tmp9_;
	const gchar* _tmp10_;
	gint _tmp11_;
	gchar* _tmp12_;
	gchar* _tmp13_;
	gint _tmp14_;
	gchar** _tmp15_;
	gchar** _tmp16_;
	gint _tmp16__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmConstantsAtResponse* _tmp17_;
	FsoGsmConstantsAtResponse* _tmp18_;
	gint _tmp18__length1;
	FsoGsmModem* _tmp19_;
	FsoGsmPhonebookHandler* _tmp20_;
	FsoGsmPhonebookHandler* _tmp21_;
	GError * _inner_error_;
};

struct _FsoGsmSimDeleteMessage {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimDeleteMessagePrivate * priv;
};

struct _FsoGsmSimDeleteMessageClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimDeleteMessage* self, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimDeleteMessage* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimDeleteMessage {
	FsoGsmSimDeleteMessage parent_instance;
	FsoGsmAtSimDeleteMessagePrivate * priv;
};

struct _FsoGsmAtSimDeleteMessageClass {
	FsoGsmSimDeleteMessageClass parent_class;
};

struct _FsoGsmAtSimDeleteMessageRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimDeleteMessage* self;
	gint index;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCMGD* cmd;
	FsoGsmModem* _tmp2_;
	gint _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gint _tmp6_;
	gchar** _tmp7_;
	gchar** _tmp8_;
	gint _tmp8__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmConstantsAtResponse* _tmp9_;
	FsoGsmConstantsAtResponse* _tmp10_;
	gint _tmp10__length1;
	GError * _inner_error_;
};

struct _FsoGsmSimGetAuthStatus {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimGetAuthStatusPrivate * priv;
	FreeSmartphoneGSMSIMAuthStatus status;
};

struct _FsoGsmSimGetAuthStatusClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimGetAuthStatus* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimGetAuthStatus* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimGetAuthStatus {
	FsoGsmSimGetAuthStatus parent_instance;
	FsoGsmAtSimGetAuthStatusPrivate * priv;
};

struct _FsoGsmAtSimGetAuthStatusClass {
	FsoGsmSimGetAuthStatusClass parent_class;
};

struct _FsoGsmAbstractAtCommand {
	GObject parent_instance;
	FsoGsmAbstractAtCommandPrivate * priv;
	GRegex* re;
	GRegex* tere;
	GMatchInfo* mi;
	gchar** prefix;
	gint prefix_length1;
	gint length;
};

struct _FsoGsmAbstractAtCommandClass {
	GObjectClass parent_class;
	void (*parse) (FsoGsmAbstractAtCommand* self, const gchar* response, GError** error);
	void (*parseTest) (FsoGsmAbstractAtCommand* self, const gchar* response, GError** error);
	void (*parseMulti) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1, GError** error);
	FsoGsmConstantsAtResponse (*validateOk) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validate) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateTest) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateMulti) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateUrc) (FsoGsmAbstractAtCommand* self, const gchar* response);
	FsoGsmConstantsAtResponse (*validateUrcPdu) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	guint (*get_timeout) (FsoGsmAbstractAtCommand* self);
	guint (*get_retry) (FsoGsmAbstractAtCommand* self);
	gchar* (*get_prefix) (FsoGsmAbstractAtCommand* self);
	gchar* (*get_postfix) (FsoGsmAbstractAtCommand* self);
};

struct _FsoGsmPlusCPIN {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCPINPrivate * priv;
	FreeSmartphoneGSMSIMAuthStatus status;
};

struct _FsoGsmPlusCPINClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtSimGetAuthStatusRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimGetAuthStatus* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCPIN* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FreeSmartphoneGSMSIMAuthStatus _tmp8_;
	GError * _inner_error_;
};

struct _FsoGsmSimGetAuthCodeRequired {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimGetAuthCodeRequiredPrivate * priv;
	gboolean required;
};

struct _FsoGsmSimGetAuthCodeRequiredClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimGetAuthCodeRequired* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimGetAuthCodeRequired* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimGetAuthCodeRequired {
	FsoGsmSimGetAuthCodeRequired parent_instance;
	FsoGsmAtSimGetAuthCodeRequiredPrivate * priv;
};

struct _FsoGsmAtSimGetAuthCodeRequiredClass {
	FsoGsmSimGetAuthCodeRequiredClass parent_class;
};

struct _FsoGsmPlusCLCK {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCLCKPrivate * priv;
	gboolean enabled;
	gint klass;
	gchar* facilities;
};

struct _FsoGsmPlusCLCKClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtSimGetAuthCodeRequiredRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimGetAuthCodeRequired* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCLCK* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	gboolean _tmp8_;
	GError * _inner_error_;
};

struct _FsoGsmSimGetInformation {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimGetInformationPrivate * priv;
};

struct _FsoGsmSimGetInformationClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimGetInformation* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimGetInformation* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimGetInformation {
	FsoGsmSimGetInformation parent_instance;
	FsoGsmAtSimGetInformationPrivate * priv;
};

struct _FsoGsmAtSimGetInformationClass {
	FsoGsmSimGetInformationClass parent_class;
};

struct _FsoGsmSimpleAtCommand {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmSimpleAtCommandPrivate * priv;
	gpointer value;
	gchar* righthandside;
	gint min;
	gint max;
};

struct _FsoGsmSimpleAtCommandClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

typedef enum  {
	FSO_GSM_CONSTANTS_SIM_FILESYSTEM_COMMAND_READ_BINARY = 176,
	FSO_GSM_CONSTANTS_SIM_FILESYSTEM_COMMAND_READ_RECORD = 192,
	FSO_GSM_CONSTANTS_SIM_FILESYSTEM_COMMAND_UPDATE_BINARY = 214,
	FSO_GSM_CONSTANTS_SIM_FILESYSTEM_COMMAND_UPDATE_RECORD = 220,
	FSO_GSM_CONSTANTS_SIM_FILESYSTEM_COMMAND_STATUS = 242
} FsoGsmConstantsSimFilesystemCommand;

struct _FsoGsmPlusCRSM {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCRSMPrivate * priv;
	gchar* payload;
};

struct _FsoGsmPlusCRSMClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmModemData {
	GObject parent_instance;
	FsoGsmModemDataPrivate * priv;
	gint alarmCleared;
	gboolean simHasReadySignal;
	guint simReadyTimeout;
	gint speakerVolumeMinimum;
	gint speakerVolumeMaximum;
	FreeSmartphoneGSMSIMAuthStatus simAuthStatus;
	gboolean simBuffersSms;
	GeeHashMap* simPhonebooks;
	gchar* charset;
	GeeHashMap* cmdSequences;
	gchar* functionality;
	gchar* simPin;
	gboolean keepRegistration;
	gboolean supportsGSM;
	gboolean supportsCDMA;
	gboolean supportsVoice;
	gboolean supportsCSD;
	gchar* supportsPDP;
	gchar* supportsFAX;
	GHashTable* simOperatorbook;
	gchar* simIssuer;
	gchar* pppCommand;
	gchar* pppPort;
	gchar** pppOptions;
	gint pppOptions_length1;
	FsoGsmContextParams* contextParams;
	gboolean roamingAllowed;
	gchar* atCommandCancelOutgoing;
	gchar* atCommandRejectIncoming;
	FsoGsmNetworkTimeReport* networkTimeReport;
};

struct _FsoGsmModemDataClass {
	GObjectClass parent_class;
};

struct _FsoGsmPlusCPBS {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCPBSPrivate * priv;
	gchar** phonebooks;
	gint phonebooks_length1;
};

struct _FsoGsmPlusCPBSClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmPlusCPMS {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCPMSPrivate * priv;
	gint used;
	gint total;
};

struct _FsoGsmPlusCPMSClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtSimGetInformationRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimGetInformation* self;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	GHashTable* _tmp3_;
	GVariant* value;
	FsoGsmModem* _tmp4_;
	gpointer _tmp5_;
	FsoGsmPlusCGMR* cimi;
	FsoGsmModem* _tmp6_;
	FsoGsmPlusCGMR* _tmp7_;
	FsoGsmPlusCGMR* _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gint _tmp11_;
	gchar** _tmp12_;
	gchar** _tmp13_;
	gint _tmp13__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCGMR* _tmp14_;
	gchar** _tmp15_;
	gint _tmp15__length1;
	FsoGsmConstantsAtResponse _tmp16_;
	FsoGsmPlusCGMR* _tmp17_;
	gconstpointer _tmp18_;
	GVariant* _tmp19_;
	GHashTable* _tmp20_;
	GHashTable* _tmp21_;
	gchar* _tmp22_;
	GVariant* _tmp23_;
	GVariant* _tmp24_;
	GHashTable* _tmp25_;
	GHashTable* _tmp26_;
	gchar* _tmp27_;
	GVariant* _tmp28_;
	GVariant* _tmp29_;
	GHashTable* _tmp30_;
	GHashTable* _tmp31_;
	gchar* _tmp32_;
	GVariant* _tmp33_;
	FsoGsmModem* _tmp34_;
	gpointer _tmp35_;
	FsoGsmPlusCRSM* crsm;
	FsoGsmModem* _tmp36_;
	FsoGsmPlusCRSM* _tmp37_;
	FsoGsmPlusCRSM* _tmp38_;
	FsoGsmConstants* _tmp39_;
	FsoGsmConstants* _tmp40_;
	gint _tmp41_;
	gchar* _tmp42_;
	gchar* _tmp43_;
	gint _tmp44_;
	gchar** _tmp45_;
	FsoGsmPlusCRSM* _tmp46_;
	gchar** _tmp47_;
	gint _tmp47__length1;
	FsoGsmConstantsAtResponse _tmp48_;
	FsoGsmPlusCRSM* _tmp49_;
	const gchar* _tmp50_;
	gchar* _tmp51_;
	gchar* issuer;
	const gchar* _tmp52_;
	const gchar* _tmp53_;
	const gchar* _tmp54_;
	const gchar* _tmp55_;
	GVariant* _tmp56_;
	GHashTable* _tmp57_;
	GHashTable* _tmp58_;
	gchar* _tmp59_;
	GVariant* _tmp60_;
	GVariant* _tmp61_;
	GVariant* _tmp62_;
	const gchar* _tmp63_;
	FsoGsmModem* _tmp64_;
	gpointer _tmp65_;
	FsoGsmModem* _tmp66_;
	FsoGsmPlusCRSM* _tmp67_;
	FsoGsmPlusCRSM* _tmp68_;
	FsoGsmConstants* _tmp69_;
	FsoGsmConstants* _tmp70_;
	gint _tmp71_;
	gchar* _tmp72_;
	gchar* _tmp73_;
	gint _tmp74_;
	gchar** _tmp75_;
	FsoGsmPlusCRSM* _tmp76_;
	gchar** _tmp77_;
	gint _tmp77__length1;
	FsoGsmConstantsAtResponse _tmp78_;
	FsoGsmPlusCRSM* _tmp79_;
	const gchar* _tmp80_;
	gchar* _tmp81_;
	gchar* issuer2;
	const gchar* _tmp82_;
	const gchar* _tmp83_;
	const gchar* _tmp84_;
	const gchar* _tmp85_;
	GVariant* _tmp86_;
	GHashTable* _tmp87_;
	GHashTable* _tmp88_;
	gchar* _tmp89_;
	GVariant* _tmp90_;
	GVariant* _tmp91_;
	FsoGsmModem* _tmp92_;
	FsoGsmModemData* _tmp93_;
	FsoGsmModemData* _tmp94_;
	GVariant* _tmp95_;
	const gchar* _tmp96_;
	gchar* _tmp97_;
	FsoGsmModem* _tmp98_;
	gpointer _tmp99_;
	FsoGsmPlusCPBS* cpbs;
	FsoGsmModem* _tmp100_;
	FsoGsmPlusCPBS* _tmp101_;
	FsoGsmPlusCPBS* _tmp102_;
	gchar* _tmp103_;
	gchar* _tmp104_;
	gint _tmp105_;
	gchar** _tmp106_;
	gchar* _tmp107_;
	gchar* pbnames;
	FsoGsmPlusCPBS* _tmp108_;
	gchar** _tmp109_;
	gint _tmp109__length1;
	FsoGsmConstantsAtResponse _tmp110_;
	FsoGsmPlusCPBS* _tmp111_;
	gchar** _tmp112_;
	gint _tmp112__length1;
	gchar** pbcode_collection;
	gint pbcode_collection_length1;
	gint _pbcode_collection_size_;
	gint pbcode_it;
	gchar* _tmp113_;
	gchar* pbcode;
	const gchar* _tmp114_;
	FsoGsmConstants* _tmp115_;
	FsoGsmConstants* _tmp116_;
	const gchar* _tmp117_;
	gchar* _tmp118_;
	gchar* _tmp119_;
	gchar* _tmp120_;
	const gchar* _tmp121_;
	gchar* _tmp122_;
	GHashTable* _tmp123_;
	GHashTable* _tmp124_;
	gchar* _tmp125_;
	const gchar* _tmp126_;
	gchar* _tmp127_;
	GVariant* _tmp128_;
	FsoGsmModem* _tmp129_;
	gpointer _tmp130_;
	FsoGsmPlusCPMS* cpms;
	FsoGsmModem* _tmp131_;
	FsoGsmPlusCPMS* _tmp132_;
	FsoGsmPlusCPMS* _tmp133_;
	gchar* _tmp134_;
	gchar* _tmp135_;
	gint _tmp136_;
	gchar** _tmp137_;
	FsoGsmPlusCPMS* _tmp138_;
	gchar** _tmp139_;
	gint _tmp139__length1;
	FsoGsmConstantsAtResponse _tmp140_;
	GHashTable* _tmp141_;
	GHashTable* _tmp142_;
	gchar* _tmp143_;
	FsoGsmPlusCPMS* _tmp144_;
	gint _tmp145_;
	GVariant* _tmp146_;
	GHashTable* _tmp147_;
	GHashTable* _tmp148_;
	gchar* _tmp149_;
	FsoGsmPlusCPMS* _tmp150_;
	gint _tmp151_;
	GVariant* _tmp152_;
};

struct _FsoGsmSimGetPhonebookInfo {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimGetPhonebookInfoPrivate * priv;
};

struct _FsoGsmSimGetPhonebookInfoClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimGetPhonebookInfo* self, const gchar* category, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimGetPhonebookInfo* self, GAsyncResult* _res_, gint* slots, gint* numberlength, gint* namelength, GError** error);
};

struct _FsoGsmAtSimGetPhonebookInfo {
	FsoGsmSimGetPhonebookInfo parent_instance;
	FsoGsmAtSimGetPhonebookInfoPrivate * priv;
};

struct _FsoGsmAtSimGetPhonebookInfoClass {
	FsoGsmSimGetPhonebookInfoClass parent_class;
};

struct _FsoGsmPlusCPBW {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCPBWPrivate * priv;
	gint max;
	gint nlength;
	gint tlength;
};

struct _FsoGsmPlusCPBWClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtSimGetPhonebookInfoRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimGetPhonebookInfo* self;
	gchar* category;
	gint slots;
	gint numberlength;
	gint namelength;
	FsoGsmConstants* _tmp0_;
	FsoGsmConstants* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* cat;
	const gchar* _tmp5_;
	GError* _tmp6_;
	FsoGsmModem* _tmp7_;
	gpointer _tmp8_;
	FsoGsmPlusCPBW* cmd;
	FsoGsmModem* _tmp9_;
	const gchar* _tmp10_;
	gchar* _tmp11_;
	gchar* _tmp12_;
	gint _tmp13_;
	gchar** _tmp14_;
	gchar** _tmp15_;
	gint _tmp15__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	gint _tmp16_;
	gint _tmp17_;
	gint _tmp18_;
	GError * _inner_error_;
};

struct _FsoGsmSimGetServiceCenterNumber {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimGetServiceCenterNumberPrivate * priv;
	gchar* number;
};

struct _FsoGsmSimGetServiceCenterNumberClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimGetServiceCenterNumber* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimGetServiceCenterNumber* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimGetServiceCenterNumber {
	FsoGsmSimGetServiceCenterNumber parent_instance;
	FsoGsmAtSimGetServiceCenterNumberPrivate * priv;
};

struct _FsoGsmAtSimGetServiceCenterNumberClass {
	FsoGsmSimGetServiceCenterNumberClass parent_class;
};

struct _FsoGsmPlusCSCA {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCSCAPrivate * priv;
	gchar* number;
};

struct _FsoGsmPlusCSCAClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtSimGetServiceCenterNumberRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimGetServiceCenterNumber* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCSCA* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	const gchar* _tmp8_;
	gchar* _tmp9_;
	GError * _inner_error_;
};

struct _FsoGsmSimGetUnlockCounters {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimGetUnlockCountersPrivate * priv;
};

struct _FsoGsmSimGetUnlockCountersClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimGetUnlockCounters* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimGetUnlockCounters* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimGetUnlockCounters {
	FsoGsmSimGetUnlockCounters parent_instance;
	FsoGsmAtSimGetUnlockCountersPrivate * priv;
};

struct _FsoGsmAtSimGetUnlockCountersClass {
	FsoGsmSimGetUnlockCountersClass parent_class;
};

struct _FsoGsmAtSimGetUnlockCountersRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimGetUnlockCounters* self;
	GError* _tmp0_;
	GError * _inner_error_;
};

struct _FsoGsmSimRetrieveMessage {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimRetrieveMessagePrivate * priv;
};

struct _FsoGsmSimRetrieveMessageClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimRetrieveMessage* self, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimRetrieveMessage* self, GAsyncResult* _res_, gchar** status, gchar** number, gchar** contents, GHashTable** properties, GError** error);
};

struct _FsoGsmAtSimRetrieveMessage {
	FsoGsmSimRetrieveMessage parent_instance;
	FsoGsmAtSimRetrieveMessagePrivate * priv;
};

struct _FsoGsmAtSimRetrieveMessageClass {
	FsoGsmSimRetrieveMessageClass parent_class;
};

typedef enum  {
	FSO_GSM_PLUS_CMGL_MODE_INVALID = -1,
	FSO_GSM_PLUS_CMGL_MODE_REC_UNREAD = 0,
	FSO_GSM_PLUS_CMGL_MODE_REC_READ = 1,
	FSO_GSM_PLUS_CMGL_MODE_STO_UNSENT = 2,
	FSO_GSM_PLUS_CMGL_MODE_STO_SENT = 3,
	FSO_GSM_PLUS_CMGL_MODE_ALL = 4
} FsoGsmPlusCMGLMode;

struct _FsoGsmPlusCMGR {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCMGRPrivate * priv;
	FsoGsmPlusCMGLMode status;
	gchar* hexpdu;
	gint tpdulen;
};

struct _FsoGsmPlusCMGRClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtSimRetrieveMessageRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimRetrieveMessage* self;
	gint index;
	gchar* status;
	gchar* number;
	gchar* contents;
	GHashTable* properties;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	FsoGsmModem* _tmp3_;
	gpointer _tmp4_;
	FsoGsmPlusCMGR* cmgr;
	FsoGsmModem* _tmp5_;
	FsoGsmPlusCMGR* _tmp6_;
	FsoGsmPlusCMGR* _tmp7_;
	gint _tmp8_;
	gchar* _tmp9_;
	gchar* _tmp10_;
	gint _tmp11_;
	gchar** _tmp12_;
	gchar** _tmp13_;
	gint _tmp13__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCMGR* _tmp14_;
	gchar** _tmp15_;
	gint _tmp15__length1;
	FsoGsmPlusCMGR* _tmp16_;
	const gchar* _tmp17_;
	FsoGsmPlusCMGR* _tmp18_;
	gint _tmp19_;
	struct sms* _tmp20_;
	struct sms* sms;
	struct sms* _tmp21_;
	gint _tmp22_;
	gchar* _tmp23_;
	gchar* _tmp24_;
	gchar* _tmp25_;
	gchar* _tmp26_;
	GError* _tmp27_;
	GError* _tmp28_;
	FsoGsmConstants* _tmp29_;
	FsoGsmConstants* _tmp30_;
	FsoGsmPlusCMGR* _tmp31_;
	FsoGsmPlusCMGLMode _tmp32_;
	gchar* _tmp33_;
	struct sms* _tmp34_;
	gchar* _tmp35_;
	struct sms* _tmp36_;
	gchar* _tmp37_;
	struct sms* _tmp38_;
	GHashTable* _tmp39_;
	GError * _inner_error_;
};

struct _FsoGsmSimRetrievePhonebook {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimRetrievePhonebookPrivate * priv;
};

struct _FsoGsmSimRetrievePhonebookClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimRetrievePhonebook* self, const gchar* category, gint mindex, gint maxdex, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimRetrievePhonebook* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimRetrievePhonebook {
	FsoGsmSimRetrievePhonebook parent_instance;
	FsoGsmAtSimRetrievePhonebookPrivate * priv;
};

struct _FsoGsmAtSimRetrievePhonebookClass {
	FsoGsmSimRetrievePhonebookClass parent_class;
};

struct _FsoGsmAtSimRetrievePhonebookRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimRetrievePhonebook* self;
	gchar* category;
	gint mindex;
	gint maxdex;
	FsoGsmConstants* _tmp0_;
	FsoGsmConstants* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* cat;
	const gchar* _tmp5_;
	GError* _tmp6_;
	FsoGsmModem* _tmp7_;
	FsoGsmPhonebookHandler* _tmp8_;
	FsoGsmPhonebookHandler* _tmp9_;
	FsoGsmPhonebookStorage* _tmp10_;
	FsoGsmPhonebookStorage* _tmp11_;
	const gchar* _tmp12_;
	gint _tmp13_;
	gint _tmp14_;
	gint _tmp15_;
	FreeSmartphoneGSMSIMEntry* _tmp16_;
	FreeSmartphoneGSMSIMEntry* _tmp17_;
	gint _tmp17__length1;
	GError * _inner_error_;
};

struct _FsoGsmSimSetAuthCodeRequired {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimSetAuthCodeRequiredPrivate * priv;
};

struct _FsoGsmSimSetAuthCodeRequiredClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimSetAuthCodeRequired* self, gboolean required, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimSetAuthCodeRequired* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimSetAuthCodeRequired {
	FsoGsmSimSetAuthCodeRequired parent_instance;
	FsoGsmAtSimSetAuthCodeRequiredPrivate * priv;
};

struct _FsoGsmAtSimSetAuthCodeRequiredClass {
	FsoGsmSimSetAuthCodeRequiredClass parent_class;
};

struct _FsoGsmAtSimSetAuthCodeRequiredRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimSetAuthCodeRequired* self;
	gboolean required;
	gchar* pin;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCLCK* cmd;
	FsoGsmModem* _tmp2_;
	gboolean _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gint _tmp7_;
	gchar** _tmp8_;
	gchar** _tmp9_;
	gint _tmp9__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	GError * _inner_error_;
};

struct _FsoGsmSimSendAuthCode {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimSendAuthCodePrivate * priv;
};

struct _FsoGsmSimSendAuthCodeClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimSendAuthCode* self, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimSendAuthCode* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimSendAuthCode {
	FsoGsmSimSendAuthCode parent_instance;
	FsoGsmAtSimSendAuthCodePrivate * priv;
};

struct _FsoGsmAtSimSendAuthCodeClass {
	FsoGsmSimSendAuthCodeClass parent_class;
};

struct _FsoGsmAtSimSendAuthCodeRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimSendAuthCode* self;
	gchar* pin;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCPIN* cmd;
	FsoGsmModem* _tmp2_;
	FsoGsmPlusCPIN* _tmp3_;
	FsoGsmPlusCPIN* _tmp4_;
	const gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gint _tmp8_;
	gchar** _tmp9_;
	gchar** _tmp10_;
	gint _tmp10__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCPIN* _tmp11_;
	gchar** _tmp12_;
	gint _tmp12__length1;
	FsoGsmConstantsAtResponse* _tmp13_;
	FsoGsmConstantsAtResponse* _tmp14_;
	gint _tmp14__length1;
	FsoGsmConstantsAtResponse _tmp15_;
	FsoGsmConstantsAtResponse _tmp16_;
	FsoGsmConstantsAtResponse code;
	FsoGsmConstantsAtResponse _tmp17_;
	const gchar* _tmp18_;
	const gchar* _tmp19_;
	gchar* _tmp20_;
	gchar* _tmp21_;
	GError* _tmp22_;
	GError* _tmp23_;
	FsoGsmModem* _tmp24_;
	FsoGsmModemData* _tmp25_;
	FsoGsmModemData* _tmp26_;
	const gchar* _tmp27_;
	gchar* _tmp28_;
	GError * _inner_error_;
};

struct _FsoGsmSimSendStoredMessage {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimSendStoredMessagePrivate * priv;
};

struct _FsoGsmSimSendStoredMessageClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimSendStoredMessage* self, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimSendStoredMessage* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimSendStoredMessage {
	FsoGsmSimSendStoredMessage parent_instance;
	FsoGsmAtSimSendStoredMessagePrivate * priv;
};

struct _FsoGsmAtSimSendStoredMessageClass {
	FsoGsmSimSendStoredMessageClass parent_class;
};

struct _FsoGsmPlusCMSS {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCMSSPrivate * priv;
	gint refnum;
};

struct _FsoGsmPlusCMSSClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtSimSendStoredMessageRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimSendStoredMessage* self;
	gint index;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCMSS* cmd;
	FsoGsmModem* _tmp2_;
	gint _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gint _tmp6_;
	gchar** _tmp7_;
	gchar** _tmp8_;
	gint _tmp8__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	gint _tmp9_;
	GError * _inner_error_;
};

struct _FsoGsmSimSetServiceCenterNumber {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimSetServiceCenterNumberPrivate * priv;
};

struct _FsoGsmSimSetServiceCenterNumberClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimSetServiceCenterNumber* self, const gchar* number, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimSetServiceCenterNumber* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimSetServiceCenterNumber {
	FsoGsmSimSetServiceCenterNumber parent_instance;
	FsoGsmAtSimSetServiceCenterNumberPrivate * priv;
};

struct _FsoGsmAtSimSetServiceCenterNumberClass {
	FsoGsmSimSetServiceCenterNumberClass parent_class;
};

struct _FsoGsmAtSimSetServiceCenterNumberRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimSetServiceCenterNumber* self;
	gchar* number;
	const gchar* _tmp0_;
	FsoGsmModem* _tmp1_;
	gpointer _tmp2_;
	FsoGsmPlusCSCA* cmd;
	FsoGsmModem* _tmp3_;
	FsoGsmPlusCSCA* _tmp4_;
	FsoGsmPlusCSCA* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	gint _tmp9_;
	gchar** _tmp10_;
	gchar** _tmp11_;
	gint _tmp11__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCSCA* _tmp12_;
	gchar** _tmp13_;
	gint _tmp13__length1;
	GError * _inner_error_;
};

struct _FsoGsmSimStoreMessage {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimStoreMessagePrivate * priv;
};

struct _FsoGsmSimStoreMessageClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimStoreMessage* self, const gchar* recipient_number, const gchar* contents, gboolean want_report, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimStoreMessage* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimStoreMessage {
	FsoGsmSimStoreMessage parent_instance;
	FsoGsmAtSimStoreMessagePrivate * priv;
};

struct _FsoGsmAtSimStoreMessageClass {
	FsoGsmSimStoreMessageClass parent_class;
};

struct _FsoGsmPlusCMGW {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCMGWPrivate * priv;
	gint memory_index;
};

struct _FsoGsmPlusCMGWClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtSimStoreMessageRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimStoreMessage* self;
	gchar* recipient_number;
	gchar* contents;
	gboolean want_report;
	const gchar* _tmp0_;
	FsoGsmModem* _tmp1_;
	FsoGsmSmsHandler* _tmp2_;
	FsoGsmSmsHandler* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gboolean _tmp6_;
	GeeArrayList* _tmp7_;
	GeeArrayList* hexpdus;
	GeeArrayList* _tmp8_;
	gint _tmp9_;
	gint _tmp10_;
	GeeArrayList* _tmp11_;
	gint _tmp12_;
	gint _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gchar* _tmp16_;
	gchar* _tmp17_;
	GError* _tmp18_;
	GError* _tmp19_;
	GeeArrayList* _tmp20_;
	GeeArrayList* _tmp21_;
	GeeArrayList* _hexpdu_list;
	GeeArrayList* _tmp22_;
	gint _tmp23_;
	gint _tmp24_;
	gint _hexpdu_size;
	gint _hexpdu_index;
	gint _tmp25_;
	gint _tmp26_;
	gint _tmp27_;
	GeeArrayList* _tmp28_;
	gint _tmp29_;
	gpointer _tmp30_;
	WrapHexPdu* hexpdu;
	FsoGsmModem* _tmp31_;
	gpointer _tmp32_;
	FsoGsmPlusCMGW* cmd;
	FsoGsmModem* _tmp33_;
	FsoGsmPlusCMGW* _tmp34_;
	FsoGsmPlusCMGW* _tmp35_;
	WrapHexPdu* _tmp36_;
	gchar* _tmp37_;
	gchar* _tmp38_;
	gint _tmp39_;
	gchar** _tmp40_;
	gchar** _tmp41_;
	gint _tmp41__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCMGW* _tmp42_;
	gchar** _tmp43_;
	gint _tmp43__length1;
	FsoGsmPlusCMGW* _tmp44_;
	gint _tmp45_;
	GError * _inner_error_;
};

struct _FsoGsmSimUnlock {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimUnlockPrivate * priv;
};

struct _FsoGsmSimUnlockClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimUnlock* self, const gchar* puk, const gchar* newpin, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimUnlock* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimUnlock {
	FsoGsmSimUnlock parent_instance;
	FsoGsmAtSimUnlockPrivate * priv;
};

struct _FsoGsmAtSimUnlockClass {
	FsoGsmSimUnlockClass parent_class;
};

struct _FsoGsmAtSimUnlockRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimUnlock* self;
	gchar* puk;
	gchar* newpin;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCPIN* cmd;
	FsoGsmModem* _tmp2_;
	const gchar* _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gint _tmp7_;
	gchar** _tmp8_;
	gchar** _tmp9_;
	gint _tmp9__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	GError * _inner_error_;
};

struct _FsoGsmSimWriteEntry {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmSimWriteEntryPrivate * priv;
};

struct _FsoGsmSimWriteEntryClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmSimWriteEntry* self, const gchar* category, gint index, const gchar* number, const gchar* name, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmSimWriteEntry* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtSimWriteEntry {
	FsoGsmSimWriteEntry parent_instance;
	FsoGsmAtSimWriteEntryPrivate * priv;
};

struct _FsoGsmAtSimWriteEntryClass {
	FsoGsmSimWriteEntryClass parent_class;
};

struct _FsoGsmAtSimWriteEntryRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtSimWriteEntry* self;
	gchar* category;
	gint index;
	gchar* number;
	gchar* name;
	FsoGsmConstants* _tmp0_;
	FsoGsmConstants* _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* cat;
	const gchar* _tmp5_;
	GError* _tmp6_;
	FsoGsmModem* _tmp7_;
	gpointer _tmp8_;
	FsoGsmPlusCPBW* cmd;
	FsoGsmModem* _tmp9_;
	const gchar* _tmp10_;
	gint _tmp11_;
	const gchar* _tmp12_;
	const gchar* _tmp13_;
	gchar* _tmp14_;
	gchar* _tmp15_;
	gint _tmp16_;
	gchar** _tmp17_;
	gchar** _tmp18_;
	gint _tmp18__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	GError * _inner_error_;
};


static gpointer fso_gsm_at_sim_change_auth_code_parent_class = NULL;
extern FsoGsmModem* fso_gsm_theModem;
static gpointer fso_gsm_at_sim_delete_entry_parent_class = NULL;
static gpointer fso_gsm_at_sim_delete_message_parent_class = NULL;
static gpointer fso_gsm_at_sim_get_auth_status_parent_class = NULL;
static gpointer fso_gsm_at_sim_get_auth_code_required_parent_class = NULL;
static gpointer fso_gsm_at_sim_get_information_parent_class = NULL;
static gpointer fso_gsm_at_sim_get_phonebook_info_parent_class = NULL;
static gpointer fso_gsm_at_sim_get_service_center_number_parent_class = NULL;
static gpointer fso_gsm_at_sim_get_unlock_counters_parent_class = NULL;
static gpointer fso_gsm_at_sim_retrieve_message_parent_class = NULL;
static gpointer fso_gsm_at_sim_retrieve_phonebook_parent_class = NULL;
static gpointer fso_gsm_at_sim_set_auth_code_required_parent_class = NULL;
static gpointer fso_gsm_at_sim_send_auth_code_parent_class = NULL;
static gpointer fso_gsm_at_sim_send_stored_message_parent_class = NULL;
static gpointer fso_gsm_at_sim_set_service_center_number_parent_class = NULL;
static gpointer fso_gsm_at_sim_store_message_parent_class = NULL;
static gpointer fso_gsm_at_sim_unlock_parent_class = NULL;
static gpointer fso_gsm_at_sim_write_entry_parent_class = NULL;

GType fso_gsm_mediator_get_type (void) G_GNUC_CONST;
GType fso_gsm_abstract_mediator_get_type (void) G_GNUC_CONST;
GType fso_gsm_sim_change_auth_code_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_change_auth_code_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_CHANGE_AUTH_CODE_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_change_auth_code_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_change_auth_code_real_run (FsoGsmSimChangeAuthCode* base, const gchar* oldpin, const gchar* newpin, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_change_auth_code_real_run_co (FsoGsmAtSimChangeAuthCodeRunData* _data_);
GType fso_gsm_channel_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_status_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_network_status_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_at_command_sequence_ref (gpointer instance);
void fso_gsm_at_command_sequence_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_at_command_sequence (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_at_command_sequence (GValue* value, gpointer v_object);
void fso_gsm_value_take_at_command_sequence (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_at_command_sequence (const GValue* value);
GType fso_gsm_at_command_sequence_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_command_queue_command_get_type (void) G_GNUC_CONST;
GQuark fso_gsm_at_command_error_quark (void);
GType fso_gsm_constants_at_response_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_command_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_data_get_type (void) G_GNUC_CONST;
GType fso_gsm_call_info_get_type (void) G_GNUC_CONST;
GType fso_gsm_call_handler_get_type (void) G_GNUC_CONST;
gpointer wrap_hex_pdu_ref (gpointer instance);
void wrap_hex_pdu_unref (gpointer instance);
GParamSpec* param_spec_wrap_hex_pdu (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_wrap_hex_pdu (GValue* value, gpointer v_object);
void value_take_wrap_hex_pdu (GValue* value, gpointer v_object);
gpointer value_get_wrap_hex_pdu (const GValue* value);
GType wrap_hex_pdu_get_type (void) G_GNUC_CONST;
GType fso_gsm_isms_storage_get_type (void) G_GNUC_CONST;
GType fso_gsm_sms_handler_get_type (void) G_GNUC_CONST;
GType fso_gsm_phonebook_storage_get_type (void) G_GNUC_CONST;
GType fso_gsm_phonebook_handler_get_type (void) G_GNUC_CONST;
GType fso_gsm_watch_dog_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_route_info_ref (gpointer instance);
void fso_gsm_route_info_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_route_info (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_route_info (GValue* value, gpointer v_object);
void fso_gsm_value_take_route_info (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_route_info (const GValue* value);
GType fso_gsm_route_info_get_type (void) G_GNUC_CONST;
GType fso_gsm_ipdp_handler_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_modem_createAtCommand (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, const gchar* command);
GType fso_gsm_abstract_at_command_get_type (void) G_GNUC_CONST;
GType fso_gsm_plus_cpwd_get_type (void) G_GNUC_CONST;
void fso_gsm_modem_processAtCommandAsync (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries, GAsyncReadyCallback _callback_, gpointer _user_data_);
gchar** fso_gsm_modem_processAtCommandAsync_finish (FsoGsmModem* self, GAsyncResult* _res_, int* result_length1);
gchar* fso_gsm_plus_cpwd_issue (FsoGsmPlusCPWD* self, const gchar* facility, const gchar* p1, const gchar* p2);
#define FSO_GSM_MODEM_DEFAULT_RETRIES 3
static void fso_gsm_at_sim_change_auth_code_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_checkResponseOk (FsoGsmAtCommand* command, gchar** response, int response_length1, GError** error);
FsoGsmAtSimChangeAuthCode* fso_gsm_at_sim_change_auth_code_new (void);
FsoGsmAtSimChangeAuthCode* fso_gsm_at_sim_change_auth_code_construct (GType object_type);
FsoGsmSimChangeAuthCode* fso_gsm_sim_change_auth_code_construct (GType object_type);
GType fso_gsm_sim_delete_entry_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_delete_entry_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_DELETE_ENTRY_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_delete_entry_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_delete_entry_real_run (FsoGsmSimDeleteEntry* base, const gchar* category, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_delete_entry_real_run_co (FsoGsmAtSimDeleteEntryRunData* _data_);
gpointer fso_gsm_constants_ref (gpointer instance);
void fso_gsm_constants_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_constants (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_constants (GValue* value, gpointer v_object);
void fso_gsm_value_take_constants (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_constants (const GValue* value);
GType fso_gsm_constants_get_type (void) G_GNUC_CONST;
FsoGsmConstants* fso_gsm_constants_instance (void);
gchar* fso_gsm_constants_simPhonebookStringToCode (FsoGsmConstants* self, const gchar* category);
GType fso_gsm_plus_cpbw_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cpbw_issue (FsoGsmPlusCPBW* self, const gchar* cat, gint location, const gchar* number, const gchar* name);
static void fso_gsm_at_sim_delete_entry_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmConstantsAtResponse fso_gsm_checkResponseExpected (FsoGsmAtCommand* command, gchar** response, int response_length1, FsoGsmConstantsAtResponse* expected, int expected_length1, GError** error);
FsoGsmPhonebookHandler* fso_gsm_modem_get_pbhandler (FsoGsmModem* self);
void fso_gsm_phonebook_handler_syncWithSim (FsoGsmPhonebookHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
void fso_gsm_phonebook_handler_syncWithSim_finish (FsoGsmPhonebookHandler* self, GAsyncResult* _res_);
FsoGsmAtSimDeleteEntry* fso_gsm_at_sim_delete_entry_new (void);
FsoGsmAtSimDeleteEntry* fso_gsm_at_sim_delete_entry_construct (GType object_type);
FsoGsmSimDeleteEntry* fso_gsm_sim_delete_entry_construct (GType object_type);
GType fso_gsm_sim_delete_message_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_delete_message_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_DELETE_MESSAGE_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_delete_message_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_delete_message_real_run (FsoGsmSimDeleteMessage* base, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_delete_message_real_run_co (FsoGsmAtSimDeleteMessageRunData* _data_);
GType fso_gsm_simple_at_command_get_type (void) G_GNUC_CONST;
GType fso_gsm_plus_cmgd_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_simple_at_command_issue (FsoGsmSimpleAtCommand* self, gconstpointer val);
static void fso_gsm_at_sim_delete_message_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtSimDeleteMessage* fso_gsm_at_sim_delete_message_new (void);
FsoGsmAtSimDeleteMessage* fso_gsm_at_sim_delete_message_construct (GType object_type);
FsoGsmSimDeleteMessage* fso_gsm_sim_delete_message_construct (GType object_type);
GType fso_gsm_sim_get_auth_status_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_get_auth_status_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_GET_AUTH_STATUS_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_get_auth_status_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_get_auth_status_real_run (FsoGsmSimGetAuthStatus* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_get_auth_status_real_run_co (FsoGsmAtSimGetAuthStatusRunData* _data_);
GType fso_gsm_plus_cpin_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cpin_query (FsoGsmPlusCPIN* self);
static void fso_gsm_at_sim_get_auth_status_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_checkResponseValid (FsoGsmAtCommand* command, gchar** response, int response_length1, GError** error);
FsoGsmAtSimGetAuthStatus* fso_gsm_at_sim_get_auth_status_new (void);
FsoGsmAtSimGetAuthStatus* fso_gsm_at_sim_get_auth_status_construct (GType object_type);
FsoGsmSimGetAuthStatus* fso_gsm_sim_get_auth_status_construct (GType object_type);
GType fso_gsm_sim_get_auth_code_required_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_get_auth_code_required_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_GET_AUTH_CODE_REQUIRED_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_get_auth_code_required_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_get_auth_code_required_real_run (FsoGsmSimGetAuthCodeRequired* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_get_auth_code_required_real_run_co (FsoGsmAtSimGetAuthCodeRequiredRunData* _data_);
GType fso_gsm_plus_clck_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_clck_query (FsoGsmPlusCLCK* self, const gchar* facility);
static void fso_gsm_at_sim_get_auth_code_required_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtSimGetAuthCodeRequired* fso_gsm_at_sim_get_auth_code_required_new (void);
FsoGsmAtSimGetAuthCodeRequired* fso_gsm_at_sim_get_auth_code_required_construct (GType object_type);
FsoGsmSimGetAuthCodeRequired* fso_gsm_sim_get_auth_code_required_construct (GType object_type);
GType fso_gsm_sim_get_information_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_get_information_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_GET_INFORMATION_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_get_information_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_get_information_real_run (FsoGsmSimGetInformation* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_get_information_real_run_co (FsoGsmAtSimGetInformationRunData* _data_);
static void _g_free0_ (gpointer var);
static void _g_variant_unref0_ (gpointer var);
void fso_gsm_sim_get_information_set_info (FsoGsmSimGetInformation* self, GHashTable* value);
GType fso_gsm_plus_cgmr_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_simple_at_command_execute (FsoGsmSimpleAtCommand* self);
static void fso_gsm_at_sim_get_information_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmConstantsAtResponse fso_gsm_abstract_at_command_validate (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
static GVariant* _variant_new41 (const gchar* value);
GHashTable* fso_gsm_sim_get_information_get_info (FsoGsmSimGetInformation* self);
static GVariant* _variant_new42 (const gchar* value);
static GVariant* _variant_new43 (const gchar* value);
static GVariant* _variant_new44 (const gchar* value);
GType fso_gsm_plus_crsm_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_crsm_issue (FsoGsmPlusCRSM* self, gint command, gint p1, gint p2, gint offset, gint length);
GType fso_gsm_constants_sim_filesystem_command_get_type (void) G_GNUC_CONST;
gint fso_gsm_constants_simFilesystemEntryNameToCode (FsoGsmConstants* self, const gchar* name);
gchar* codec_hexToString (const gchar* hex, guint lowest, guint highest, gchar* subst);
static GVariant* _variant_new45 (const gchar* value);
static GVariant* _variant_new46 (const gchar* value);
FsoGsmModemData* fso_gsm_modem_data (FsoGsmModem* self);
gpointer fso_gsm_phonebook_params_ref (gpointer instance);
void fso_gsm_phonebook_params_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_phonebook_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_phonebook_params (GValue* value, gpointer v_object);
void fso_gsm_value_take_phonebook_params (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_phonebook_params (const GValue* value);
GType fso_gsm_phonebook_params_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_context_params_ref (gpointer instance);
void fso_gsm_context_params_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_context_params (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_context_params (GValue* value, gpointer v_object);
void fso_gsm_value_take_context_params (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_context_params (const GValue* value);
GType fso_gsm_context_params_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_network_time_report_ref (gpointer instance);
void fso_gsm_network_time_report_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_network_time_report (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_network_time_report (GValue* value, gpointer v_object);
void fso_gsm_value_take_network_time_report (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_network_time_report (const GValue* value);
GType fso_gsm_network_time_report_get_type (void) G_GNUC_CONST;
GType fso_gsm_plus_cpbs_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cpbs_test (FsoGsmPlusCPBS* self);
FsoGsmConstantsAtResponse fso_gsm_abstract_at_command_validateTest (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
gchar* fso_gsm_constants_simPhonebookCodeToString (FsoGsmConstants* self, const gchar* code);
static GVariant* _variant_new47 (gchar* value);
GType fso_gsm_plus_cpms_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cpms_query (FsoGsmPlusCPMS* self);
static GVariant* _variant_new48 (gint value);
static GVariant* _variant_new49 (gint value);
FsoGsmAtSimGetInformation* fso_gsm_at_sim_get_information_new (void);
FsoGsmAtSimGetInformation* fso_gsm_at_sim_get_information_construct (GType object_type);
FsoGsmSimGetInformation* fso_gsm_sim_get_information_construct (GType object_type);
GType fso_gsm_sim_get_phonebook_info_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_get_phonebook_info_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_GET_PHONEBOOK_INFO_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_get_phonebook_info_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_get_phonebook_info_real_run (FsoGsmSimGetPhonebookInfo* base, const gchar* category, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_get_phonebook_info_real_run_co (FsoGsmAtSimGetPhonebookInfoRunData* _data_);
gchar* fso_gsm_plus_cpbw_test (FsoGsmPlusCPBW* self, const gchar* cat);
static void fso_gsm_at_sim_get_phonebook_info_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_checkTestResponseValid (FsoGsmAtCommand* command, gchar** response, int response_length1, GError** error);
FsoGsmAtSimGetPhonebookInfo* fso_gsm_at_sim_get_phonebook_info_new (void);
FsoGsmAtSimGetPhonebookInfo* fso_gsm_at_sim_get_phonebook_info_construct (GType object_type);
FsoGsmSimGetPhonebookInfo* fso_gsm_sim_get_phonebook_info_construct (GType object_type);
GType fso_gsm_sim_get_service_center_number_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_get_service_center_number_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_GET_SERVICE_CENTER_NUMBER_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_get_service_center_number_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_get_service_center_number_real_run (FsoGsmSimGetServiceCenterNumber* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_get_service_center_number_real_run_co (FsoGsmAtSimGetServiceCenterNumberRunData* _data_);
GType fso_gsm_plus_csca_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_csca_query (FsoGsmPlusCSCA* self);
static void fso_gsm_at_sim_get_service_center_number_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtSimGetServiceCenterNumber* fso_gsm_at_sim_get_service_center_number_new (void);
FsoGsmAtSimGetServiceCenterNumber* fso_gsm_at_sim_get_service_center_number_construct (GType object_type);
FsoGsmSimGetServiceCenterNumber* fso_gsm_sim_get_service_center_number_construct (GType object_type);
GType fso_gsm_sim_get_unlock_counters_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_get_unlock_counters_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_GET_UNLOCK_COUNTERS_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_get_unlock_counters_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_get_unlock_counters_real_run (FsoGsmSimGetUnlockCounters* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_get_unlock_counters_real_run_co (FsoGsmAtSimGetUnlockCountersRunData* _data_);
FsoGsmAtSimGetUnlockCounters* fso_gsm_at_sim_get_unlock_counters_new (void);
FsoGsmAtSimGetUnlockCounters* fso_gsm_at_sim_get_unlock_counters_construct (GType object_type);
FsoGsmSimGetUnlockCounters* fso_gsm_sim_get_unlock_counters_construct (GType object_type);
GType fso_gsm_sim_retrieve_message_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_retrieve_message_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_RETRIEVE_MESSAGE_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_retrieve_message_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_retrieve_message_real_run (FsoGsmSimRetrieveMessage* base, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_retrieve_message_real_run_co (FsoGsmAtSimRetrieveMessageRunData* _data_);
GType fso_gsm_plus_cmgr_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cmgr_issue (FsoGsmPlusCMGR* self, guint index);
static void fso_gsm_at_sim_retrieve_message_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_checkMultiResponseValid (FsoGsmAtCommand* command, gchar** response, int response_length1, GError** error);
GType fso_gsm_plus_cmgl_mode_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_constants_simMessagebookStatusToString (FsoGsmConstants* self, gint code);
static GVariant* _variant_new50 (gint value);
static GVariant* _variant_new51 (gint value);
static GVariant* _variant_new52 (gboolean value);
static GVariant* _variant_new53 (gboolean value);
static GVariant* _variant_new54 (gboolean value);
static GVariant* _variant_new55 (gboolean value);
static GVariant* _variant_new56 (gboolean value);
static GVariant* _variant_new57 (guint8 value);
static GVariant* _variant_new58 (guint8 value);
static GVariant* _variant_new59 (guint8 value);
static GVariant* _variant_new60 (gchar* value);
static GVariant* _variant_new61 (gchar* value);
FsoGsmAtSimRetrieveMessage* fso_gsm_at_sim_retrieve_message_new (void);
FsoGsmAtSimRetrieveMessage* fso_gsm_at_sim_retrieve_message_construct (GType object_type);
FsoGsmSimRetrieveMessage* fso_gsm_sim_retrieve_message_construct (GType object_type);
GType fso_gsm_sim_retrieve_phonebook_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_retrieve_phonebook_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_RETRIEVE_PHONEBOOK_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_retrieve_phonebook_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_retrieve_phonebook_real_run (FsoGsmSimRetrievePhonebook* base, const gchar* category, gint mindex, gint maxdex, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_retrieve_phonebook_real_run_co (FsoGsmAtSimRetrievePhonebookRunData* _data_);
FsoGsmPhonebookStorage* fso_gsm_phonebook_handler_get_storage (FsoGsmPhonebookHandler* self);
FreeSmartphoneGSMSIMEntry* fso_gsm_phonebook_storage_phonebook (FsoGsmPhonebookStorage* self, const gchar* cat, gint mindex, gint maxdex, int* result_length1);
void fso_gsm_sim_retrieve_phonebook_set_phonebook (FsoGsmSimRetrievePhonebook* self, FreeSmartphoneGSMSIMEntry* value, int value_length1);
static void _vala_FreeSmartphoneGSMSIMEntry_array_free (FreeSmartphoneGSMSIMEntry* array, gint array_length);
FsoGsmAtSimRetrievePhonebook* fso_gsm_at_sim_retrieve_phonebook_new (void);
FsoGsmAtSimRetrievePhonebook* fso_gsm_at_sim_retrieve_phonebook_construct (GType object_type);
FsoGsmSimRetrievePhonebook* fso_gsm_sim_retrieve_phonebook_construct (GType object_type);
GType fso_gsm_sim_set_auth_code_required_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_set_auth_code_required_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_SET_AUTH_CODE_REQUIRED_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_set_auth_code_required_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_set_auth_code_required_real_run (FsoGsmSimSetAuthCodeRequired* base, gboolean required, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_set_auth_code_required_real_run_co (FsoGsmAtSimSetAuthCodeRequiredRunData* _data_);
gchar* fso_gsm_plus_clck_issue (FsoGsmPlusCLCK* self, const gchar* facility, gboolean enable, const gchar* pin);
static void fso_gsm_at_sim_set_auth_code_required_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtSimSetAuthCodeRequired* fso_gsm_at_sim_set_auth_code_required_new (void);
FsoGsmAtSimSetAuthCodeRequired* fso_gsm_at_sim_set_auth_code_required_construct (GType object_type);
FsoGsmSimSetAuthCodeRequired* fso_gsm_sim_set_auth_code_required_construct (GType object_type);
GType fso_gsm_sim_send_auth_code_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_send_auth_code_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_SEND_AUTH_CODE_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_send_auth_code_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_send_auth_code_real_run (FsoGsmSimSendAuthCode* base, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_send_auth_code_real_run_co (FsoGsmAtSimSendAuthCodeRunData* _data_);
gchar* fso_gsm_plus_cpin_issue (FsoGsmPlusCPIN* self, const gchar* pin, const gchar* new_pin);
static void fso_gsm_at_sim_send_auth_code_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_gatherSimStatusAndUpdate (GAsyncReadyCallback _callback_, gpointer _user_data_);
void fso_gsm_gatherSimStatusAndUpdate_finish (GAsyncResult* _res_, GError** error);
FsoGsmAtSimSendAuthCode* fso_gsm_at_sim_send_auth_code_new (void);
FsoGsmAtSimSendAuthCode* fso_gsm_at_sim_send_auth_code_construct (GType object_type);
FsoGsmSimSendAuthCode* fso_gsm_sim_send_auth_code_construct (GType object_type);
GType fso_gsm_sim_send_stored_message_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_send_stored_message_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_SEND_STORED_MESSAGE_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_send_stored_message_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_send_stored_message_real_run (FsoGsmSimSendStoredMessage* base, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_send_stored_message_real_run_co (FsoGsmAtSimSendStoredMessageRunData* _data_);
GType fso_gsm_plus_cmss_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cmss_issue (FsoGsmPlusCMSS* self, gint index);
static void fso_gsm_at_sim_send_stored_message_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_sim_send_stored_message_set_transaction_index (FsoGsmSimSendStoredMessage* self, gint value);
void fso_gsm_sim_send_stored_message_set_timestamp (FsoGsmSimSendStoredMessage* self, const gchar* value);
FsoGsmAtSimSendStoredMessage* fso_gsm_at_sim_send_stored_message_new (void);
FsoGsmAtSimSendStoredMessage* fso_gsm_at_sim_send_stored_message_construct (GType object_type);
FsoGsmSimSendStoredMessage* fso_gsm_sim_send_stored_message_construct (GType object_type);
GType fso_gsm_sim_set_service_center_number_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_set_service_center_number_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_SET_SERVICE_CENTER_NUMBER_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_set_service_center_number_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_set_service_center_number_real_run (FsoGsmSimSetServiceCenterNumber* base, const gchar* number, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_set_service_center_number_real_run_co (FsoGsmAtSimSetServiceCenterNumberRunData* _data_);
void fso_gsm_validatePhoneNumber (const gchar* number, GError** error);
gchar* fso_gsm_plus_csca_issue (FsoGsmPlusCSCA* self, const gchar* number);
static void fso_gsm_at_sim_set_service_center_number_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtSimSetServiceCenterNumber* fso_gsm_at_sim_set_service_center_number_new (void);
FsoGsmAtSimSetServiceCenterNumber* fso_gsm_at_sim_set_service_center_number_construct (GType object_type);
FsoGsmSimSetServiceCenterNumber* fso_gsm_sim_set_service_center_number_construct (GType object_type);
GType fso_gsm_sim_store_message_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_store_message_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_STORE_MESSAGE_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_store_message_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_store_message_real_run (FsoGsmSimStoreMessage* base, const gchar* recipient_number, const gchar* contents, gboolean want_report, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_store_message_real_run_co (FsoGsmAtSimStoreMessageRunData* _data_);
FsoGsmSmsHandler* fso_gsm_modem_get_smshandler (FsoGsmModem* self);
GeeArrayList* fso_gsm_sms_handler_formatTextMessage (FsoGsmSmsHandler* self, const gchar* number, const gchar* contents, gboolean requestReport);
GType fso_gsm_plus_cmgw_get_type (void) G_GNUC_CONST;
void fso_gsm_modem_processAtPduCommandAsync (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries, GAsyncReadyCallback _callback_, gpointer _user_data_);
gchar** fso_gsm_modem_processAtPduCommandAsync_finish (FsoGsmModem* self, GAsyncResult* _res_, int* result_length1);
gchar* fso_gsm_plus_cmgw_issue (FsoGsmPlusCMGW* self, WrapHexPdu* pdu);
static void fso_gsm_at_sim_store_message_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_sim_store_message_set_memory_index (FsoGsmSimStoreMessage* self, gint value);
FsoGsmAtSimStoreMessage* fso_gsm_at_sim_store_message_new (void);
FsoGsmAtSimStoreMessage* fso_gsm_at_sim_store_message_construct (GType object_type);
FsoGsmSimStoreMessage* fso_gsm_sim_store_message_construct (GType object_type);
GType fso_gsm_sim_unlock_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_unlock_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_UNLOCK_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_unlock_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_unlock_real_run (FsoGsmSimUnlock* base, const gchar* puk, const gchar* newpin, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_unlock_real_run_co (FsoGsmAtSimUnlockRunData* _data_);
static void fso_gsm_at_sim_unlock_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtSimUnlock* fso_gsm_at_sim_unlock_new (void);
FsoGsmAtSimUnlock* fso_gsm_at_sim_unlock_construct (GType object_type);
FsoGsmSimUnlock* fso_gsm_sim_unlock_construct (GType object_type);
GType fso_gsm_sim_write_entry_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_sim_write_entry_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_SIM_WRITE_ENTRY_DUMMY_PROPERTY
};
static void fso_gsm_at_sim_write_entry_real_run_data_free (gpointer _data);
static void fso_gsm_at_sim_write_entry_real_run (FsoGsmSimWriteEntry* base, const gchar* category, gint index, const gchar* number, const gchar* name, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_sim_write_entry_real_run_co (FsoGsmAtSimWriteEntryRunData* _data_);
static void fso_gsm_at_sim_write_entry_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtSimWriteEntry* fso_gsm_at_sim_write_entry_new (void);
FsoGsmAtSimWriteEntry* fso_gsm_at_sim_write_entry_construct (GType object_type);
FsoGsmSimWriteEntry* fso_gsm_sim_write_entry_construct (GType object_type);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


static void fso_gsm_at_sim_change_auth_code_real_run_data_free (gpointer _data) {
	FsoGsmAtSimChangeAuthCodeRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->oldpin);
	_g_free0 (_data_->newpin);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtSimChangeAuthCodeRunData, _data_);
}


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


static void fso_gsm_at_sim_change_auth_code_real_run (FsoGsmSimChangeAuthCode* base, const gchar* oldpin, const gchar* newpin, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimChangeAuthCode * self;
	FsoGsmAtSimChangeAuthCodeRunData* _data_;
	FsoGsmAtSimChangeAuthCode* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	self = (FsoGsmAtSimChangeAuthCode*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimChangeAuthCodeRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_change_auth_code_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_change_auth_code_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = oldpin;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->oldpin = _tmp2_;
	_tmp3_ = newpin;
	_tmp4_ = g_strdup (_tmp3_);
	_data_->newpin = _tmp4_;
	fso_gsm_at_sim_change_auth_code_real_run_co (_data_);
}


static void fso_gsm_at_sim_change_auth_code_real_run_finish (FsoGsmSimChangeAuthCode* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimChangeAuthCodeRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_change_auth_code_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimChangeAuthCodeRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_change_auth_code_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_change_auth_code_real_run_co (FsoGsmAtSimChangeAuthCodeRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CPWD, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CPWD");
	_data_->cmd = (FsoGsmPlusCPWD*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->oldpin;
	_data_->_tmp4_ = _data_->newpin;
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = fso_gsm_plus_cpwd_issue (_data_->cmd, "SC", _data_->_tmp3_, _data_->_tmp4_);
	_data_->_tmp6_ = _data_->_tmp5_;
	_data_->_tmp7_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp6_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_change_auth_code_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp8_ = NULL;
	_data_->_tmp8_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp7_);
	_data_->_tmp9_ = _data_->_tmp8_;
	_data_->_tmp9__length1 = _data_->_tmp7_;
	_g_free0 (_data_->_tmp6_);
	_data_->response = _data_->_tmp9_;
	_data_->response_length1 = _data_->_tmp9__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimChangeAuthCode* fso_gsm_at_sim_change_auth_code_construct (GType object_type) {
	FsoGsmAtSimChangeAuthCode * self = NULL;
	self = (FsoGsmAtSimChangeAuthCode*) fso_gsm_sim_change_auth_code_construct (object_type);
	return self;
}


FsoGsmAtSimChangeAuthCode* fso_gsm_at_sim_change_auth_code_new (void) {
	return fso_gsm_at_sim_change_auth_code_construct (FSO_GSM_TYPE_AT_SIM_CHANGE_AUTH_CODE);
}


static void fso_gsm_at_sim_change_auth_code_class_init (FsoGsmAtSimChangeAuthCodeClass * klass) {
	fso_gsm_at_sim_change_auth_code_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_CHANGE_AUTH_CODE_CLASS (klass)->run = fso_gsm_at_sim_change_auth_code_real_run;
	FSO_GSM_SIM_CHANGE_AUTH_CODE_CLASS (klass)->run_finish = fso_gsm_at_sim_change_auth_code_real_run_finish;
}


static void fso_gsm_at_sim_change_auth_code_instance_init (FsoGsmAtSimChangeAuthCode * self) {
}


/**
 * SIM Mediators
 **/
GType fso_gsm_at_sim_change_auth_code_get_type (void) {
	static volatile gsize fso_gsm_at_sim_change_auth_code_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_change_auth_code_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimChangeAuthCodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_change_auth_code_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimChangeAuthCode), 0, (GInstanceInitFunc) fso_gsm_at_sim_change_auth_code_instance_init, NULL };
		GType fso_gsm_at_sim_change_auth_code_type_id;
		fso_gsm_at_sim_change_auth_code_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_CHANGE_AUTH_CODE, "FsoGsmAtSimChangeAuthCode", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_change_auth_code_type_id__volatile, fso_gsm_at_sim_change_auth_code_type_id);
	}
	return fso_gsm_at_sim_change_auth_code_type_id__volatile;
}


static void fso_gsm_at_sim_delete_entry_real_run_data_free (gpointer _data) {
	FsoGsmAtSimDeleteEntryRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->category);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtSimDeleteEntryRunData, _data_);
}


static void fso_gsm_at_sim_delete_entry_real_run (FsoGsmSimDeleteEntry* base, const gchar* category, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimDeleteEntry * self;
	FsoGsmAtSimDeleteEntryRunData* _data_;
	FsoGsmAtSimDeleteEntry* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gint _tmp3_;
	self = (FsoGsmAtSimDeleteEntry*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimDeleteEntryRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_delete_entry_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_delete_entry_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = category;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->category = _tmp2_;
	_tmp3_ = index;
	_data_->index = _tmp3_;
	fso_gsm_at_sim_delete_entry_real_run_co (_data_);
}


static void fso_gsm_at_sim_delete_entry_real_run_finish (FsoGsmSimDeleteEntry* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimDeleteEntryRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_delete_entry_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimDeleteEntryRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_delete_entry_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_delete_entry_real_run_co (FsoGsmAtSimDeleteEntryRunData* _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_ = NULL;
	_data_->_tmp0_ = fso_gsm_constants_instance ();
	_data_->_tmp1_ = _data_->_tmp0_;
	_data_->_tmp2_ = _data_->category;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_constants_simPhonebookStringToCode (_data_->_tmp1_, _data_->_tmp2_);
	_data_->_tmp4_ = _data_->_tmp3_;
	_fso_gsm_constants_unref0 (_data_->_tmp1_);
	_data_->cat = _data_->_tmp4_;
	_data_->_tmp5_ = _data_->cat;
	if (g_strcmp0 (_data_->_tmp5_, "") == 0) {
		_data_->_tmp6_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_INVALID_PARAMETER, "Invalid category");
		_data_->_inner_error_ = _data_->_tmp6_;
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_g_free0 (_data_->cat);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_g_free0 (_data_->cat);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp7_ = fso_gsm_theModem;
	_data_->_tmp8_ = NULL;
	_data_->_tmp8_ = fso_gsm_modem_createAtCommand (_data_->_tmp7_, FSO_GSM_TYPE_PLUS_CPBW, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CPBW");
	_data_->cmd = (FsoGsmPlusCPBW*) _data_->_tmp8_;
	_data_->_tmp9_ = fso_gsm_theModem;
	_data_->_tmp10_ = _data_->cat;
	_data_->_tmp11_ = _data_->index;
	_data_->_tmp12_ = NULL;
	_data_->_tmp12_ = fso_gsm_plus_cpbw_issue (_data_->cmd, _data_->_tmp10_, _data_->_tmp11_, "", "");
	_data_->_tmp13_ = _data_->_tmp12_;
	_data_->_tmp14_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp9_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp13_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_delete_entry_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp15_ = NULL;
	_data_->_tmp15_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp9_, _data_->_res_, &_data_->_tmp14_);
	_data_->_tmp16_ = _data_->_tmp15_;
	_data_->_tmp16__length1 = _data_->_tmp14_;
	_g_free0 (_data_->_tmp13_);
	_data_->response = _data_->_tmp16_;
	_data_->response_length1 = _data_->_tmp16__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp17_ = NULL;
	_data_->_tmp17_ = g_new0 (FsoGsmConstantsAtResponse, 2);
	_data_->_tmp17_[0] = FSO_GSM_CONSTANTS_AT_RESPONSE_OK;
	_data_->_tmp17_[1] = FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_021_INVALID_INDEX;
	_data_->_tmp18_ = _data_->_tmp17_;
	_data_->_tmp18__length1 = 2;
	fso_gsm_checkResponseExpected ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, _data_->_tmp18_, 2, &_data_->_inner_error_);
	_data_->_tmp18_ = (g_free (_data_->_tmp18_), NULL);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			_g_free0 (_data_->cat);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			_g_free0 (_data_->cat);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp19_ = fso_gsm_theModem;
	_data_->_tmp20_ = fso_gsm_modem_get_pbhandler (_data_->_tmp19_);
	_data_->_tmp21_ = _data_->_tmp20_;
	_data_->_state_ = 2;
	fso_gsm_phonebook_handler_syncWithSim (_data_->_tmp21_, fso_gsm_at_sim_delete_entry_run_ready, _data_);
	return FALSE;
	_state_2:
	fso_gsm_phonebook_handler_syncWithSim_finish (_data_->_tmp21_, _data_->_res_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	_g_free0 (_data_->cat);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimDeleteEntry* fso_gsm_at_sim_delete_entry_construct (GType object_type) {
	FsoGsmAtSimDeleteEntry * self = NULL;
	self = (FsoGsmAtSimDeleteEntry*) fso_gsm_sim_delete_entry_construct (object_type);
	return self;
}


FsoGsmAtSimDeleteEntry* fso_gsm_at_sim_delete_entry_new (void) {
	return fso_gsm_at_sim_delete_entry_construct (FSO_GSM_TYPE_AT_SIM_DELETE_ENTRY);
}


static void fso_gsm_at_sim_delete_entry_class_init (FsoGsmAtSimDeleteEntryClass * klass) {
	fso_gsm_at_sim_delete_entry_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_DELETE_ENTRY_CLASS (klass)->run = fso_gsm_at_sim_delete_entry_real_run;
	FSO_GSM_SIM_DELETE_ENTRY_CLASS (klass)->run_finish = fso_gsm_at_sim_delete_entry_real_run_finish;
}


static void fso_gsm_at_sim_delete_entry_instance_init (FsoGsmAtSimDeleteEntry * self) {
}


GType fso_gsm_at_sim_delete_entry_get_type (void) {
	static volatile gsize fso_gsm_at_sim_delete_entry_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_delete_entry_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimDeleteEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_delete_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimDeleteEntry), 0, (GInstanceInitFunc) fso_gsm_at_sim_delete_entry_instance_init, NULL };
		GType fso_gsm_at_sim_delete_entry_type_id;
		fso_gsm_at_sim_delete_entry_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_DELETE_ENTRY, "FsoGsmAtSimDeleteEntry", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_delete_entry_type_id__volatile, fso_gsm_at_sim_delete_entry_type_id);
	}
	return fso_gsm_at_sim_delete_entry_type_id__volatile;
}


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


static void fso_gsm_at_sim_delete_message_real_run (FsoGsmSimDeleteMessage* base, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimDeleteMessage * self;
	FsoGsmAtSimDeleteMessageRunData* _data_;
	FsoGsmAtSimDeleteMessage* _tmp0_;
	gint _tmp1_;
	self = (FsoGsmAtSimDeleteMessage*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimDeleteMessageRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_delete_message_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_delete_message_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = index;
	_data_->index = _tmp1_;
	fso_gsm_at_sim_delete_message_real_run_co (_data_);
}


static void fso_gsm_at_sim_delete_message_real_run_finish (FsoGsmSimDeleteMessage* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimDeleteMessageRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_delete_message_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimDeleteMessageRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_delete_message_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_delete_message_real_run_co (FsoGsmAtSimDeleteMessageRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CMGD, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CMGD");
	_data_->cmd = (FsoGsmPlusCMGD*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->index;
	_data_->_tmp4_ = NULL;
	_data_->_tmp4_ = fso_gsm_simple_at_command_issue ((FsoGsmSimpleAtCommand*) _data_->cmd, GINT_TO_POINTER (_data_->_tmp3_));
	_data_->_tmp5_ = _data_->_tmp4_;
	_data_->_tmp6_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp5_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_delete_message_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp7_ = NULL;
	_data_->_tmp7_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp6_);
	_data_->_tmp8_ = _data_->_tmp7_;
	_data_->_tmp8__length1 = _data_->_tmp6_;
	_g_free0 (_data_->_tmp5_);
	_data_->response = _data_->_tmp8_;
	_data_->response_length1 = _data_->_tmp8__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp9_ = NULL;
	_data_->_tmp9_ = g_new0 (FsoGsmConstantsAtResponse, 2);
	_data_->_tmp9_[0] = FSO_GSM_CONSTANTS_AT_RESPONSE_OK;
	_data_->_tmp9_[1] = FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_321_INVALID_MEMORY_INDEX;
	_data_->_tmp10_ = _data_->_tmp9_;
	_data_->_tmp10__length1 = 2;
	fso_gsm_checkResponseExpected ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, _data_->_tmp10_, 2, &_data_->_inner_error_);
	_data_->_tmp10_ = (g_free (_data_->_tmp10_), NULL);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimDeleteMessage* fso_gsm_at_sim_delete_message_construct (GType object_type) {
	FsoGsmAtSimDeleteMessage * self = NULL;
	self = (FsoGsmAtSimDeleteMessage*) fso_gsm_sim_delete_message_construct (object_type);
	return self;
}


FsoGsmAtSimDeleteMessage* fso_gsm_at_sim_delete_message_new (void) {
	return fso_gsm_at_sim_delete_message_construct (FSO_GSM_TYPE_AT_SIM_DELETE_MESSAGE);
}


static void fso_gsm_at_sim_delete_message_class_init (FsoGsmAtSimDeleteMessageClass * klass) {
	fso_gsm_at_sim_delete_message_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_DELETE_MESSAGE_CLASS (klass)->run = fso_gsm_at_sim_delete_message_real_run;
	FSO_GSM_SIM_DELETE_MESSAGE_CLASS (klass)->run_finish = fso_gsm_at_sim_delete_message_real_run_finish;
}


static void fso_gsm_at_sim_delete_message_instance_init (FsoGsmAtSimDeleteMessage * self) {
}


GType fso_gsm_at_sim_delete_message_get_type (void) {
	static volatile gsize fso_gsm_at_sim_delete_message_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_delete_message_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimDeleteMessageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_delete_message_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimDeleteMessage), 0, (GInstanceInitFunc) fso_gsm_at_sim_delete_message_instance_init, NULL };
		GType fso_gsm_at_sim_delete_message_type_id;
		fso_gsm_at_sim_delete_message_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_DELETE_MESSAGE, "FsoGsmAtSimDeleteMessage", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_delete_message_type_id__volatile, fso_gsm_at_sim_delete_message_type_id);
	}
	return fso_gsm_at_sim_delete_message_type_id__volatile;
}


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


static void fso_gsm_at_sim_get_auth_status_real_run (FsoGsmSimGetAuthStatus* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimGetAuthStatus * self;
	FsoGsmAtSimGetAuthStatusRunData* _data_;
	FsoGsmAtSimGetAuthStatus* _tmp0_;
	self = (FsoGsmAtSimGetAuthStatus*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimGetAuthStatusRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_get_auth_status_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_get_auth_status_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_sim_get_auth_status_real_run_co (_data_);
}


static void fso_gsm_at_sim_get_auth_status_real_run_finish (FsoGsmSimGetAuthStatus* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimGetAuthStatusRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_get_auth_status_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimGetAuthStatusRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_get_auth_status_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_get_auth_status_real_run_co (FsoGsmAtSimGetAuthStatusRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CPIN, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CPIN");
	_data_->cmd = (FsoGsmPlusCPIN*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_plus_cpin_query (_data_->cmd);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_get_auth_status_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp8_ = _data_->cmd->status;
	((FsoGsmSimGetAuthStatus*) _data_->self)->status = _data_->_tmp8_;
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimGetAuthStatus* fso_gsm_at_sim_get_auth_status_construct (GType object_type) {
	FsoGsmAtSimGetAuthStatus * self = NULL;
	self = (FsoGsmAtSimGetAuthStatus*) fso_gsm_sim_get_auth_status_construct (object_type);
	return self;
}


FsoGsmAtSimGetAuthStatus* fso_gsm_at_sim_get_auth_status_new (void) {
	return fso_gsm_at_sim_get_auth_status_construct (FSO_GSM_TYPE_AT_SIM_GET_AUTH_STATUS);
}


static void fso_gsm_at_sim_get_auth_status_class_init (FsoGsmAtSimGetAuthStatusClass * klass) {
	fso_gsm_at_sim_get_auth_status_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_GET_AUTH_STATUS_CLASS (klass)->run = fso_gsm_at_sim_get_auth_status_real_run;
	FSO_GSM_SIM_GET_AUTH_STATUS_CLASS (klass)->run_finish = fso_gsm_at_sim_get_auth_status_real_run_finish;
}


static void fso_gsm_at_sim_get_auth_status_instance_init (FsoGsmAtSimGetAuthStatus * self) {
}


GType fso_gsm_at_sim_get_auth_status_get_type (void) {
	static volatile gsize fso_gsm_at_sim_get_auth_status_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_get_auth_status_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimGetAuthStatusClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_get_auth_status_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimGetAuthStatus), 0, (GInstanceInitFunc) fso_gsm_at_sim_get_auth_status_instance_init, NULL };
		GType fso_gsm_at_sim_get_auth_status_type_id;
		fso_gsm_at_sim_get_auth_status_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_GET_AUTH_STATUS, "FsoGsmAtSimGetAuthStatus", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_get_auth_status_type_id__volatile, fso_gsm_at_sim_get_auth_status_type_id);
	}
	return fso_gsm_at_sim_get_auth_status_type_id__volatile;
}


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


static void fso_gsm_at_sim_get_auth_code_required_real_run (FsoGsmSimGetAuthCodeRequired* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimGetAuthCodeRequired * self;
	FsoGsmAtSimGetAuthCodeRequiredRunData* _data_;
	FsoGsmAtSimGetAuthCodeRequired* _tmp0_;
	self = (FsoGsmAtSimGetAuthCodeRequired*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimGetAuthCodeRequiredRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_get_auth_code_required_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_get_auth_code_required_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_sim_get_auth_code_required_real_run_co (_data_);
}


static void fso_gsm_at_sim_get_auth_code_required_real_run_finish (FsoGsmSimGetAuthCodeRequired* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimGetAuthCodeRequiredRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_get_auth_code_required_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimGetAuthCodeRequiredRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_get_auth_code_required_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_get_auth_code_required_real_run_co (FsoGsmAtSimGetAuthCodeRequiredRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CLCK, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CLCK");
	_data_->cmd = (FsoGsmPlusCLCK*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_plus_clck_query (_data_->cmd, "SC");
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_get_auth_code_required_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp8_ = _data_->cmd->enabled;
	((FsoGsmSimGetAuthCodeRequired*) _data_->self)->required = _data_->_tmp8_;
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimGetAuthCodeRequired* fso_gsm_at_sim_get_auth_code_required_construct (GType object_type) {
	FsoGsmAtSimGetAuthCodeRequired * self = NULL;
	self = (FsoGsmAtSimGetAuthCodeRequired*) fso_gsm_sim_get_auth_code_required_construct (object_type);
	return self;
}


FsoGsmAtSimGetAuthCodeRequired* fso_gsm_at_sim_get_auth_code_required_new (void) {
	return fso_gsm_at_sim_get_auth_code_required_construct (FSO_GSM_TYPE_AT_SIM_GET_AUTH_CODE_REQUIRED);
}


static void fso_gsm_at_sim_get_auth_code_required_class_init (FsoGsmAtSimGetAuthCodeRequiredClass * klass) {
	fso_gsm_at_sim_get_auth_code_required_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_GET_AUTH_CODE_REQUIRED_CLASS (klass)->run = fso_gsm_at_sim_get_auth_code_required_real_run;
	FSO_GSM_SIM_GET_AUTH_CODE_REQUIRED_CLASS (klass)->run_finish = fso_gsm_at_sim_get_auth_code_required_real_run_finish;
}


static void fso_gsm_at_sim_get_auth_code_required_instance_init (FsoGsmAtSimGetAuthCodeRequired * self) {
}


GType fso_gsm_at_sim_get_auth_code_required_get_type (void) {
	static volatile gsize fso_gsm_at_sim_get_auth_code_required_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_get_auth_code_required_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimGetAuthCodeRequiredClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_get_auth_code_required_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimGetAuthCodeRequired), 0, (GInstanceInitFunc) fso_gsm_at_sim_get_auth_code_required_instance_init, NULL };
		GType fso_gsm_at_sim_get_auth_code_required_type_id;
		fso_gsm_at_sim_get_auth_code_required_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_GET_AUTH_CODE_REQUIRED, "FsoGsmAtSimGetAuthCodeRequired", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_get_auth_code_required_type_id__volatile, fso_gsm_at_sim_get_auth_code_required_type_id);
	}
	return fso_gsm_at_sim_get_auth_code_required_type_id__volatile;
}


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


static void fso_gsm_at_sim_get_information_real_run (FsoGsmSimGetInformation* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimGetInformation * self;
	FsoGsmAtSimGetInformationRunData* _data_;
	FsoGsmAtSimGetInformation* _tmp0_;
	self = (FsoGsmAtSimGetInformation*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimGetInformationRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_get_information_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_get_information_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_sim_get_information_real_run_co (_data_);
}


static void fso_gsm_at_sim_get_information_real_run_finish (FsoGsmSimGetInformation* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimGetInformationRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void _g_free0_ (gpointer var) {
	var = (g_free (var), NULL);
}


static void _g_variant_unref0_ (gpointer var) {
	(var == NULL) ? NULL : (var = (g_variant_unref (var), NULL));
}


static void fso_gsm_at_sim_get_information_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimGetInformationRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_get_information_real_run_co (_data_);
}


static GVariant* _variant_new41 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static gpointer _g_variant_ref0 (gpointer self) {
	return self ? g_variant_ref (self) : NULL;
}


static GVariant* _variant_new42 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new43 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new44 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new45 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new46 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


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


static GVariant* _variant_new47 (gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new48 (gint value) {
	return g_variant_ref_sink (g_variant_new_int32 (value));
}


static GVariant* _variant_new49 (gint value) {
	return g_variant_ref_sink (g_variant_new_int32 (value));
}


static gboolean fso_gsm_at_sim_get_information_real_run_co (FsoGsmAtSimGetInformationRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		case 3:
		goto _state_3;
		case 4:
		goto _state_4;
		case 5:
		goto _state_5;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = g_str_hash;
	_data_->_tmp1_ = g_str_equal;
	_data_->_tmp2_ = g_hash_table_new_full (_data_->_tmp0_, _data_->_tmp1_, _g_free0_, _g_variant_unref0_);
	_data_->_tmp3_ = _data_->_tmp2_;
	fso_gsm_sim_get_information_set_info ((FsoGsmSimGetInformation*) _data_->self, _data_->_tmp3_);
	_g_hash_table_unref0 (_data_->_tmp3_);
	_data_->_tmp4_ = fso_gsm_theModem;
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = fso_gsm_modem_createAtCommand (_data_->_tmp4_, FSO_GSM_TYPE_PLUS_CGMR, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CIMI");
	_data_->cimi = (FsoGsmPlusCGMR*) _data_->_tmp5_;
	_data_->_tmp6_ = fso_gsm_theModem;
	_data_->_tmp7_ = _data_->cimi;
	_data_->_tmp8_ = _data_->cimi;
	_data_->_tmp9_ = NULL;
	_data_->_tmp9_ = fso_gsm_simple_at_command_execute ((FsoGsmSimpleAtCommand*) _data_->_tmp8_);
	_data_->_tmp10_ = _data_->_tmp9_;
	_data_->_tmp11_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp6_, (FsoGsmAtCommand*) _data_->_tmp7_, _data_->_tmp10_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_get_information_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp12_ = NULL;
	_data_->_tmp12_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp6_, _data_->_res_, &_data_->_tmp11_);
	_data_->_tmp13_ = _data_->_tmp12_;
	_data_->_tmp13__length1 = _data_->_tmp11_;
	_g_free0 (_data_->_tmp10_);
	_data_->response = _data_->_tmp13_;
	_data_->response_length1 = _data_->_tmp13__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp14_ = _data_->cimi;
	_data_->_tmp15_ = _data_->response;
	_data_->_tmp15__length1 = _data_->response_length1;
	_data_->_tmp16_ = 0;
	_data_->_tmp16_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp14_, _data_->_tmp15_, _data_->_tmp15__length1);
	if (_data_->_tmp16_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp17_ = _data_->cimi;
		_data_->_tmp18_ = ((FsoGsmSimpleAtCommand*) _data_->_tmp17_)->value;
		_data_->_tmp19_ = _variant_new41 ((const gchar*) ((const gchar*) _data_->_tmp18_));
		_g_variant_unref0 (_data_->value);
		_data_->value = _data_->_tmp19_;
		_data_->_tmp20_ = fso_gsm_sim_get_information_get_info ((FsoGsmSimGetInformation*) _data_->self);
		_data_->_tmp21_ = _data_->_tmp20_;
		_data_->_tmp22_ = g_strdup ("imsi");
		_data_->_tmp23_ = _data_->value;
		_data_->_tmp24_ = _g_variant_ref0 (_data_->_tmp23_);
		g_hash_table_insert (_data_->_tmp21_, _data_->_tmp22_, _data_->_tmp24_);
	} else {
		_data_->_tmp25_ = fso_gsm_sim_get_information_get_info ((FsoGsmSimGetInformation*) _data_->self);
		_data_->_tmp26_ = _data_->_tmp25_;
		_data_->_tmp27_ = g_strdup ("imsi");
		_data_->_tmp28_ = _variant_new42 ("unknown");
		g_hash_table_insert (_data_->_tmp26_, _data_->_tmp27_, _data_->_tmp28_);
	}
	_data_->_tmp29_ = _variant_new43 ("unknown");
	_g_variant_unref0 (_data_->value);
	_data_->value = _data_->_tmp29_;
	_data_->_tmp30_ = fso_gsm_sim_get_information_get_info ((FsoGsmSimGetInformation*) _data_->self);
	_data_->_tmp31_ = _data_->_tmp30_;
	_data_->_tmp32_ = g_strdup ("issuer");
	_data_->_tmp33_ = _variant_new44 ("unknown");
	g_hash_table_insert (_data_->_tmp31_, _data_->_tmp32_, _data_->_tmp33_);
	_data_->_tmp34_ = fso_gsm_theModem;
	_data_->_tmp35_ = NULL;
	_data_->_tmp35_ = fso_gsm_modem_createAtCommand (_data_->_tmp34_, FSO_GSM_TYPE_PLUS_CRSM, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CRSM");
	_data_->crsm = (FsoGsmPlusCRSM*) _data_->_tmp35_;
	_data_->_tmp36_ = fso_gsm_theModem;
	_data_->_tmp37_ = _data_->crsm;
	_data_->_tmp38_ = _data_->crsm;
	_data_->_tmp39_ = NULL;
	_data_->_tmp39_ = fso_gsm_constants_instance ();
	_data_->_tmp40_ = _data_->_tmp39_;
	_data_->_tmp41_ = 0;
	_data_->_tmp41_ = fso_gsm_constants_simFilesystemEntryNameToCode (_data_->_tmp40_, "EFspn");
	_data_->_tmp42_ = NULL;
	_data_->_tmp42_ = fso_gsm_plus_crsm_issue (_data_->_tmp38_, (gint) FSO_GSM_CONSTANTS_SIM_FILESYSTEM_COMMAND_READ_BINARY, _data_->_tmp41_, 0, 0, 17);
	_data_->_tmp43_ = _data_->_tmp42_;
	_data_->_tmp44_ = 0;
	_data_->_state_ = 2;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp36_, (FsoGsmAtCommand*) _data_->_tmp37_, _data_->_tmp43_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_get_information_run_ready, _data_);
	return FALSE;
	_state_2:
	_data_->_tmp45_ = NULL;
	_data_->_tmp45_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp36_, _data_->_res_, &_data_->_tmp44_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_data_->response = _data_->_tmp45_;
	_data_->response_length1 = _data_->_tmp44_;
	_data_->_response_size_ = _data_->response_length1;
	_g_free0 (_data_->_tmp43_);
	_fso_gsm_constants_unref0 (_data_->_tmp40_);
	_data_->_tmp46_ = _data_->crsm;
	_data_->_tmp47_ = _data_->response;
	_data_->_tmp47__length1 = _data_->response_length1;
	_data_->_tmp48_ = 0;
	_data_->_tmp48_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp46_, _data_->_tmp47_, _data_->_tmp47__length1);
	if (_data_->_tmp48_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp49_ = _data_->crsm;
		_data_->_tmp50_ = _data_->_tmp49_->payload;
		_data_->_tmp51_ = NULL;
		_data_->_tmp51_ = codec_hexToString (_data_->_tmp50_, (guint) 0x20, (guint) 0x7f, NULL);
		_data_->issuer = _data_->_tmp51_;
		_data_->_tmp53_ = _data_->issuer;
		if (g_strcmp0 (_data_->_tmp53_, "") != 0) {
			_data_->_tmp54_ = _data_->issuer;
			_data_->_tmp52_ = _data_->_tmp54_;
		} else {
			_data_->_tmp52_ = "unknown";
		}
		_data_->_tmp55_ = _data_->_tmp52_;
		_data_->_tmp56_ = _variant_new45 (_data_->_tmp55_);
		_g_variant_unref0 (_data_->value);
		_data_->value = _data_->_tmp56_;
		_data_->_tmp57_ = fso_gsm_sim_get_information_get_info ((FsoGsmSimGetInformation*) _data_->self);
		_data_->_tmp58_ = _data_->_tmp57_;
		_data_->_tmp59_ = g_strdup ("issuer");
		_data_->_tmp60_ = _data_->value;
		_data_->_tmp61_ = _g_variant_ref0 (_data_->_tmp60_);
		g_hash_table_insert (_data_->_tmp58_, _data_->_tmp59_, _data_->_tmp61_);
		_g_free0 (_data_->issuer);
	}
	_data_->_tmp62_ = _data_->value;
	_data_->_tmp63_ = NULL;
	_data_->_tmp63_ = g_variant_get_string (_data_->_tmp62_, NULL);
	if (g_strcmp0 (_data_->_tmp63_, "unknown") == 0) {
		_data_->_tmp64_ = fso_gsm_theModem;
		_data_->_tmp65_ = NULL;
		_data_->_tmp65_ = fso_gsm_modem_createAtCommand (_data_->_tmp64_, FSO_GSM_TYPE_PLUS_CRSM, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CRSM");
		_g_object_unref0 (_data_->crsm);
		_data_->crsm = (FsoGsmPlusCRSM*) _data_->_tmp65_;
		_data_->_tmp66_ = fso_gsm_theModem;
		_data_->_tmp67_ = _data_->crsm;
		_data_->_tmp68_ = _data_->crsm;
		_data_->_tmp69_ = NULL;
		_data_->_tmp69_ = fso_gsm_constants_instance ();
		_data_->_tmp70_ = _data_->_tmp69_;
		_data_->_tmp71_ = 0;
		_data_->_tmp71_ = fso_gsm_constants_simFilesystemEntryNameToCode (_data_->_tmp70_, "EF_SPN_CPHS");
		_data_->_tmp72_ = NULL;
		_data_->_tmp72_ = fso_gsm_plus_crsm_issue (_data_->_tmp68_, (gint) FSO_GSM_CONSTANTS_SIM_FILESYSTEM_COMMAND_READ_BINARY, _data_->_tmp71_, 0, 0, 10);
		_data_->_tmp73_ = _data_->_tmp72_;
		_data_->_tmp74_ = 0;
		_data_->_state_ = 3;
		fso_gsm_modem_processAtCommandAsync (_data_->_tmp66_, (FsoGsmAtCommand*) _data_->_tmp67_, _data_->_tmp73_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_get_information_run_ready, _data_);
		return FALSE;
		_state_3:
		_data_->_tmp75_ = NULL;
		_data_->_tmp75_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp66_, _data_->_res_, &_data_->_tmp74_);
		_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
		_data_->response = _data_->_tmp75_;
		_data_->response_length1 = _data_->_tmp74_;
		_data_->_response_size_ = _data_->response_length1;
		_g_free0 (_data_->_tmp73_);
		_fso_gsm_constants_unref0 (_data_->_tmp70_);
		_data_->_tmp76_ = _data_->crsm;
		_data_->_tmp77_ = _data_->response;
		_data_->_tmp77__length1 = _data_->response_length1;
		_data_->_tmp78_ = 0;
		_data_->_tmp78_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp76_, _data_->_tmp77_, _data_->_tmp77__length1);
		if (_data_->_tmp78_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
			_data_->_tmp79_ = _data_->crsm;
			_data_->_tmp80_ = _data_->_tmp79_->payload;
			_data_->_tmp81_ = NULL;
			_data_->_tmp81_ = codec_hexToString (_data_->_tmp80_, (guint) 0x20, (guint) 0x7f, NULL);
			_data_->issuer2 = _data_->_tmp81_;
			_data_->_tmp83_ = _data_->issuer2;
			if (g_strcmp0 (_data_->_tmp83_, "") != 0) {
				_data_->_tmp84_ = _data_->issuer2;
				_data_->_tmp82_ = _data_->_tmp84_;
			} else {
				_data_->_tmp82_ = "unknown";
			}
			_data_->_tmp85_ = _data_->_tmp82_;
			_data_->_tmp86_ = _variant_new46 (_data_->_tmp85_);
			_g_variant_unref0 (_data_->value);
			_data_->value = _data_->_tmp86_;
			_data_->_tmp87_ = fso_gsm_sim_get_information_get_info ((FsoGsmSimGetInformation*) _data_->self);
			_data_->_tmp88_ = _data_->_tmp87_;
			_data_->_tmp89_ = g_strdup ("issuer");
			_data_->_tmp90_ = _data_->value;
			_data_->_tmp91_ = _g_variant_ref0 (_data_->_tmp90_);
			g_hash_table_insert (_data_->_tmp88_, _data_->_tmp89_, _data_->_tmp91_);
			_g_free0 (_data_->issuer2);
		}
	}
	_data_->_tmp92_ = fso_gsm_theModem;
	_data_->_tmp93_ = NULL;
	_data_->_tmp93_ = fso_gsm_modem_data (_data_->_tmp92_);
	_data_->_tmp94_ = _data_->_tmp93_;
	_data_->_tmp95_ = _data_->value;
	_data_->_tmp96_ = NULL;
	_data_->_tmp96_ = g_variant_get_string (_data_->_tmp95_, NULL);
	_data_->_tmp97_ = g_strdup (_data_->_tmp96_);
	_g_free0 (_data_->_tmp94_->simIssuer);
	_data_->_tmp94_->simIssuer = _data_->_tmp97_;
	_g_object_unref0 (_data_->_tmp94_);
	_data_->_tmp98_ = fso_gsm_theModem;
	_data_->_tmp99_ = NULL;
	_data_->_tmp99_ = fso_gsm_modem_createAtCommand (_data_->_tmp98_, FSO_GSM_TYPE_PLUS_CPBS, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CPBS");
	_data_->cpbs = (FsoGsmPlusCPBS*) _data_->_tmp99_;
	_data_->_tmp100_ = fso_gsm_theModem;
	_data_->_tmp101_ = _data_->cpbs;
	_data_->_tmp102_ = _data_->cpbs;
	_data_->_tmp103_ = NULL;
	_data_->_tmp103_ = fso_gsm_plus_cpbs_test (_data_->_tmp102_);
	_data_->_tmp104_ = _data_->_tmp103_;
	_data_->_tmp105_ = 0;
	_data_->_state_ = 4;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp100_, (FsoGsmAtCommand*) _data_->_tmp101_, _data_->_tmp104_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_get_information_run_ready, _data_);
	return FALSE;
	_state_4:
	_data_->_tmp106_ = NULL;
	_data_->_tmp106_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp100_, _data_->_res_, &_data_->_tmp105_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_data_->response = _data_->_tmp106_;
	_data_->response_length1 = _data_->_tmp105_;
	_data_->_response_size_ = _data_->response_length1;
	_g_free0 (_data_->_tmp104_);
	_data_->_tmp107_ = g_strdup ("");
	_data_->pbnames = _data_->_tmp107_;
	_data_->_tmp108_ = _data_->cpbs;
	_data_->_tmp109_ = _data_->response;
	_data_->_tmp109__length1 = _data_->response_length1;
	_data_->_tmp110_ = 0;
	_data_->_tmp110_ = fso_gsm_abstract_at_command_validateTest ((FsoGsmAbstractAtCommand*) _data_->_tmp108_, _data_->_tmp109_, _data_->_tmp109__length1);
	if (_data_->_tmp110_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp111_ = _data_->cpbs;
		_data_->_tmp112_ = _data_->_tmp111_->phonebooks;
		_data_->_tmp112__length1 = _data_->_tmp111_->phonebooks_length1;
		{
			_data_->pbcode_collection_length1 = 0;
			_data_->_pbcode_collection_size_ = 0;
			_data_->pbcode_collection = _data_->_tmp112_;
			_data_->pbcode_collection_length1 = _data_->_tmp112__length1;
			_data_->pbcode_it = 0;
			for (_data_->pbcode_it = 0; _data_->pbcode_it < _data_->_tmp112__length1; _data_->pbcode_it = _data_->pbcode_it + 1) {
				_data_->_tmp113_ = g_strdup (_data_->pbcode_collection[_data_->pbcode_it]);
				_data_->pbcode = _data_->_tmp113_;
				{
					_data_->_tmp114_ = _data_->pbnames;
					_data_->_tmp115_ = NULL;
					_data_->_tmp115_ = fso_gsm_constants_instance ();
					_data_->_tmp116_ = _data_->_tmp115_;
					_data_->_tmp117_ = _data_->pbcode;
					_data_->_tmp118_ = NULL;
					_data_->_tmp118_ = fso_gsm_constants_simPhonebookCodeToString (_data_->_tmp116_, _data_->_tmp117_);
					_data_->_tmp119_ = _data_->_tmp118_;
					_data_->_tmp120_ = g_strconcat (_data_->_tmp114_, _data_->_tmp119_, NULL);
					_g_free0 (_data_->pbnames);
					_data_->pbnames = _data_->_tmp120_;
					_g_free0 (_data_->_tmp119_);
					_fso_gsm_constants_unref0 (_data_->_tmp116_);
					_data_->_tmp121_ = _data_->pbnames;
					_data_->_tmp122_ = g_strconcat (_data_->_tmp121_, " ", NULL);
					_g_free0 (_data_->pbnames);
					_data_->pbnames = _data_->_tmp122_;
					_g_free0 (_data_->pbcode);
				}
			}
		}
	}
	_data_->_tmp123_ = fso_gsm_sim_get_information_get_info ((FsoGsmSimGetInformation*) _data_->self);
	_data_->_tmp124_ = _data_->_tmp123_;
	_data_->_tmp125_ = g_strdup ("phonebooks");
	_data_->_tmp126_ = _data_->pbnames;
	_data_->_tmp127_ = NULL;
	_data_->_tmp127_ = string_strip (_data_->_tmp126_);
	_data_->_tmp128_ = _variant_new47 (_data_->_tmp127_);
	g_hash_table_insert (_data_->_tmp124_, _data_->_tmp125_, _data_->_tmp128_);
	_data_->_tmp129_ = fso_gsm_theModem;
	_data_->_tmp130_ = NULL;
	_data_->_tmp130_ = fso_gsm_modem_createAtCommand (_data_->_tmp129_, FSO_GSM_TYPE_PLUS_CPMS, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CPMS");
	_data_->cpms = (FsoGsmPlusCPMS*) _data_->_tmp130_;
	_data_->_tmp131_ = fso_gsm_theModem;
	_data_->_tmp132_ = _data_->cpms;
	_data_->_tmp133_ = _data_->cpms;
	_data_->_tmp134_ = NULL;
	_data_->_tmp134_ = fso_gsm_plus_cpms_query (_data_->_tmp133_);
	_data_->_tmp135_ = _data_->_tmp134_;
	_data_->_tmp136_ = 0;
	_data_->_state_ = 5;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp131_, (FsoGsmAtCommand*) _data_->_tmp132_, _data_->_tmp135_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_get_information_run_ready, _data_);
	return FALSE;
	_state_5:
	_data_->_tmp137_ = NULL;
	_data_->_tmp137_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp131_, _data_->_res_, &_data_->_tmp136_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_data_->response = _data_->_tmp137_;
	_data_->response_length1 = _data_->_tmp136_;
	_data_->_response_size_ = _data_->response_length1;
	_g_free0 (_data_->_tmp135_);
	_data_->_tmp138_ = _data_->cpms;
	_data_->_tmp139_ = _data_->response;
	_data_->_tmp139__length1 = _data_->response_length1;
	_data_->_tmp140_ = 0;
	_data_->_tmp140_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp138_, _data_->_tmp139_, _data_->_tmp139__length1);
	if (_data_->_tmp140_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp141_ = fso_gsm_sim_get_information_get_info ((FsoGsmSimGetInformation*) _data_->self);
		_data_->_tmp142_ = _data_->_tmp141_;
		_data_->_tmp143_ = g_strdup ("slots");
		_data_->_tmp144_ = _data_->cpms;
		_data_->_tmp145_ = _data_->_tmp144_->total;
		_data_->_tmp146_ = _variant_new48 (_data_->_tmp145_);
		g_hash_table_insert (_data_->_tmp142_, _data_->_tmp143_, _data_->_tmp146_);
		_data_->_tmp147_ = fso_gsm_sim_get_information_get_info ((FsoGsmSimGetInformation*) _data_->self);
		_data_->_tmp148_ = _data_->_tmp147_;
		_data_->_tmp149_ = g_strdup ("used");
		_data_->_tmp150_ = _data_->cpms;
		_data_->_tmp151_ = _data_->_tmp150_->used;
		_data_->_tmp152_ = _variant_new49 (_data_->_tmp151_);
		g_hash_table_insert (_data_->_tmp148_, _data_->_tmp149_, _data_->_tmp152_);
	}
	_g_object_unref0 (_data_->cpms);
	_g_free0 (_data_->pbnames);
	_g_object_unref0 (_data_->cpbs);
	_g_object_unref0 (_data_->crsm);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cimi);
	_g_variant_unref0 (_data_->value);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimGetInformation* fso_gsm_at_sim_get_information_construct (GType object_type) {
	FsoGsmAtSimGetInformation * self = NULL;
	self = (FsoGsmAtSimGetInformation*) fso_gsm_sim_get_information_construct (object_type);
	return self;
}


FsoGsmAtSimGetInformation* fso_gsm_at_sim_get_information_new (void) {
	return fso_gsm_at_sim_get_information_construct (FSO_GSM_TYPE_AT_SIM_GET_INFORMATION);
}


static void fso_gsm_at_sim_get_information_class_init (FsoGsmAtSimGetInformationClass * klass) {
	fso_gsm_at_sim_get_information_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_GET_INFORMATION_CLASS (klass)->run = fso_gsm_at_sim_get_information_real_run;
	FSO_GSM_SIM_GET_INFORMATION_CLASS (klass)->run_finish = fso_gsm_at_sim_get_information_real_run_finish;
}


static void fso_gsm_at_sim_get_information_instance_init (FsoGsmAtSimGetInformation * self) {
}


GType fso_gsm_at_sim_get_information_get_type (void) {
	static volatile gsize fso_gsm_at_sim_get_information_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_get_information_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimGetInformationClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_get_information_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimGetInformation), 0, (GInstanceInitFunc) fso_gsm_at_sim_get_information_instance_init, NULL };
		GType fso_gsm_at_sim_get_information_type_id;
		fso_gsm_at_sim_get_information_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_GET_INFORMATION, "FsoGsmAtSimGetInformation", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_get_information_type_id__volatile, fso_gsm_at_sim_get_information_type_id);
	}
	return fso_gsm_at_sim_get_information_type_id__volatile;
}


static void fso_gsm_at_sim_get_phonebook_info_real_run_data_free (gpointer _data) {
	FsoGsmAtSimGetPhonebookInfoRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->category);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtSimGetPhonebookInfoRunData, _data_);
}


static void fso_gsm_at_sim_get_phonebook_info_real_run (FsoGsmSimGetPhonebookInfo* base, const gchar* category, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimGetPhonebookInfo * self;
	FsoGsmAtSimGetPhonebookInfoRunData* _data_;
	FsoGsmAtSimGetPhonebookInfo* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	self = (FsoGsmAtSimGetPhonebookInfo*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimGetPhonebookInfoRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_get_phonebook_info_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_get_phonebook_info_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = category;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->category = _tmp2_;
	fso_gsm_at_sim_get_phonebook_info_real_run_co (_data_);
}


static void fso_gsm_at_sim_get_phonebook_info_real_run_finish (FsoGsmSimGetPhonebookInfo* base, GAsyncResult* _res_, gint* slots, gint* numberlength, gint* namelength, GError** error) {
	FsoGsmAtSimGetPhonebookInfoRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
	if (slots) {
		*slots = _data_->slots;
	}
	if (numberlength) {
		*numberlength = _data_->numberlength;
	}
	if (namelength) {
		*namelength = _data_->namelength;
	}
}


static void fso_gsm_at_sim_get_phonebook_info_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimGetPhonebookInfoRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_get_phonebook_info_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_get_phonebook_info_real_run_co (FsoGsmAtSimGetPhonebookInfoRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = NULL;
	_data_->_tmp0_ = fso_gsm_constants_instance ();
	_data_->_tmp1_ = _data_->_tmp0_;
	_data_->_tmp2_ = _data_->category;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_constants_simPhonebookStringToCode (_data_->_tmp1_, _data_->_tmp2_);
	_data_->_tmp4_ = _data_->_tmp3_;
	_fso_gsm_constants_unref0 (_data_->_tmp1_);
	_data_->cat = _data_->_tmp4_;
	_data_->_tmp5_ = _data_->cat;
	if (g_strcmp0 (_data_->_tmp5_, "") == 0) {
		_data_->_tmp6_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_INVALID_PARAMETER, "Invalid category");
		_data_->_inner_error_ = _data_->_tmp6_;
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_g_free0 (_data_->cat);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_g_free0 (_data_->cat);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp7_ = fso_gsm_theModem;
	_data_->_tmp8_ = NULL;
	_data_->_tmp8_ = fso_gsm_modem_createAtCommand (_data_->_tmp7_, FSO_GSM_TYPE_PLUS_CPBW, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CPBW");
	_data_->cmd = (FsoGsmPlusCPBW*) _data_->_tmp8_;
	_data_->_tmp9_ = fso_gsm_theModem;
	_data_->_tmp10_ = _data_->cat;
	_data_->_tmp11_ = NULL;
	_data_->_tmp11_ = fso_gsm_plus_cpbw_test (_data_->cmd, _data_->_tmp10_);
	_data_->_tmp12_ = _data_->_tmp11_;
	_data_->_tmp13_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp9_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp12_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_get_phonebook_info_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp14_ = NULL;
	_data_->_tmp14_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp9_, _data_->_res_, &_data_->_tmp13_);
	_data_->_tmp15_ = _data_->_tmp14_;
	_data_->_tmp15__length1 = _data_->_tmp13_;
	_g_free0 (_data_->_tmp12_);
	_data_->response = _data_->_tmp15_;
	_data_->response_length1 = _data_->_tmp15__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkTestResponseValid ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			_g_free0 (_data_->cat);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			_g_free0 (_data_->cat);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp16_ = _data_->cmd->max;
	_data_->slots = _data_->_tmp16_;
	_data_->_tmp17_ = _data_->cmd->nlength;
	_data_->numberlength = _data_->_tmp17_;
	_data_->_tmp18_ = _data_->cmd->tlength;
	_data_->namelength = _data_->_tmp18_;
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	_g_free0 (_data_->cat);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimGetPhonebookInfo* fso_gsm_at_sim_get_phonebook_info_construct (GType object_type) {
	FsoGsmAtSimGetPhonebookInfo * self = NULL;
	self = (FsoGsmAtSimGetPhonebookInfo*) fso_gsm_sim_get_phonebook_info_construct (object_type);
	return self;
}


FsoGsmAtSimGetPhonebookInfo* fso_gsm_at_sim_get_phonebook_info_new (void) {
	return fso_gsm_at_sim_get_phonebook_info_construct (FSO_GSM_TYPE_AT_SIM_GET_PHONEBOOK_INFO);
}


static void fso_gsm_at_sim_get_phonebook_info_class_init (FsoGsmAtSimGetPhonebookInfoClass * klass) {
	fso_gsm_at_sim_get_phonebook_info_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_GET_PHONEBOOK_INFO_CLASS (klass)->run = fso_gsm_at_sim_get_phonebook_info_real_run;
	FSO_GSM_SIM_GET_PHONEBOOK_INFO_CLASS (klass)->run_finish = fso_gsm_at_sim_get_phonebook_info_real_run_finish;
}


static void fso_gsm_at_sim_get_phonebook_info_instance_init (FsoGsmAtSimGetPhonebookInfo * self) {
}


GType fso_gsm_at_sim_get_phonebook_info_get_type (void) {
	static volatile gsize fso_gsm_at_sim_get_phonebook_info_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_get_phonebook_info_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimGetPhonebookInfoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_get_phonebook_info_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimGetPhonebookInfo), 0, (GInstanceInitFunc) fso_gsm_at_sim_get_phonebook_info_instance_init, NULL };
		GType fso_gsm_at_sim_get_phonebook_info_type_id;
		fso_gsm_at_sim_get_phonebook_info_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_GET_PHONEBOOK_INFO, "FsoGsmAtSimGetPhonebookInfo", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_get_phonebook_info_type_id__volatile, fso_gsm_at_sim_get_phonebook_info_type_id);
	}
	return fso_gsm_at_sim_get_phonebook_info_type_id__volatile;
}


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


static void fso_gsm_at_sim_get_service_center_number_real_run (FsoGsmSimGetServiceCenterNumber* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimGetServiceCenterNumber * self;
	FsoGsmAtSimGetServiceCenterNumberRunData* _data_;
	FsoGsmAtSimGetServiceCenterNumber* _tmp0_;
	self = (FsoGsmAtSimGetServiceCenterNumber*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimGetServiceCenterNumberRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_get_service_center_number_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_get_service_center_number_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_sim_get_service_center_number_real_run_co (_data_);
}


static void fso_gsm_at_sim_get_service_center_number_real_run_finish (FsoGsmSimGetServiceCenterNumber* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimGetServiceCenterNumberRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_get_service_center_number_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimGetServiceCenterNumberRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_get_service_center_number_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_get_service_center_number_real_run_co (FsoGsmAtSimGetServiceCenterNumberRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CSCA, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CSCA");
	_data_->cmd = (FsoGsmPlusCSCA*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_plus_csca_query (_data_->cmd);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_get_service_center_number_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp8_ = _data_->cmd->number;
	_data_->_tmp9_ = g_strdup (_data_->_tmp8_);
	_g_free0 (((FsoGsmSimGetServiceCenterNumber*) _data_->self)->number);
	((FsoGsmSimGetServiceCenterNumber*) _data_->self)->number = _data_->_tmp9_;
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimGetServiceCenterNumber* fso_gsm_at_sim_get_service_center_number_construct (GType object_type) {
	FsoGsmAtSimGetServiceCenterNumber * self = NULL;
	self = (FsoGsmAtSimGetServiceCenterNumber*) fso_gsm_sim_get_service_center_number_construct (object_type);
	return self;
}


FsoGsmAtSimGetServiceCenterNumber* fso_gsm_at_sim_get_service_center_number_new (void) {
	return fso_gsm_at_sim_get_service_center_number_construct (FSO_GSM_TYPE_AT_SIM_GET_SERVICE_CENTER_NUMBER);
}


static void fso_gsm_at_sim_get_service_center_number_class_init (FsoGsmAtSimGetServiceCenterNumberClass * klass) {
	fso_gsm_at_sim_get_service_center_number_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_GET_SERVICE_CENTER_NUMBER_CLASS (klass)->run = fso_gsm_at_sim_get_service_center_number_real_run;
	FSO_GSM_SIM_GET_SERVICE_CENTER_NUMBER_CLASS (klass)->run_finish = fso_gsm_at_sim_get_service_center_number_real_run_finish;
}


static void fso_gsm_at_sim_get_service_center_number_instance_init (FsoGsmAtSimGetServiceCenterNumber * self) {
}


GType fso_gsm_at_sim_get_service_center_number_get_type (void) {
	static volatile gsize fso_gsm_at_sim_get_service_center_number_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_get_service_center_number_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimGetServiceCenterNumberClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_get_service_center_number_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimGetServiceCenterNumber), 0, (GInstanceInitFunc) fso_gsm_at_sim_get_service_center_number_instance_init, NULL };
		GType fso_gsm_at_sim_get_service_center_number_type_id;
		fso_gsm_at_sim_get_service_center_number_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_GET_SERVICE_CENTER_NUMBER, "FsoGsmAtSimGetServiceCenterNumber", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_get_service_center_number_type_id__volatile, fso_gsm_at_sim_get_service_center_number_type_id);
	}
	return fso_gsm_at_sim_get_service_center_number_type_id__volatile;
}


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


static void fso_gsm_at_sim_get_unlock_counters_real_run (FsoGsmSimGetUnlockCounters* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimGetUnlockCounters * self;
	FsoGsmAtSimGetUnlockCountersRunData* _data_;
	FsoGsmAtSimGetUnlockCounters* _tmp0_;
	self = (FsoGsmAtSimGetUnlockCounters*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimGetUnlockCountersRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_get_unlock_counters_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_get_unlock_counters_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_sim_get_unlock_counters_real_run_co (_data_);
}


static void fso_gsm_at_sim_get_unlock_counters_real_run_finish (FsoGsmSimGetUnlockCounters* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimGetUnlockCountersRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static gboolean fso_gsm_at_sim_get_unlock_counters_real_run_co (FsoGsmAtSimGetUnlockCountersRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_INTERNAL_ERROR, "Not yet implemented");
	_data_->_inner_error_ = _data_->_tmp0_;
	if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
		g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
		g_error_free (_data_->_inner_error_);
		if (_data_->_state_ == 0) {
			g_simple_async_result_complete_in_idle (_data_->_async_result);
		} else {
			g_simple_async_result_complete (_data_->_async_result);
		}
		g_object_unref (_data_->_async_result);
		return FALSE;
	} else {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
		g_clear_error (&_data_->_inner_error_);
		return FALSE;
	}
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimGetUnlockCounters* fso_gsm_at_sim_get_unlock_counters_construct (GType object_type) {
	FsoGsmAtSimGetUnlockCounters * self = NULL;
	self = (FsoGsmAtSimGetUnlockCounters*) fso_gsm_sim_get_unlock_counters_construct (object_type);
	return self;
}


FsoGsmAtSimGetUnlockCounters* fso_gsm_at_sim_get_unlock_counters_new (void) {
	return fso_gsm_at_sim_get_unlock_counters_construct (FSO_GSM_TYPE_AT_SIM_GET_UNLOCK_COUNTERS);
}


static void fso_gsm_at_sim_get_unlock_counters_class_init (FsoGsmAtSimGetUnlockCountersClass * klass) {
	fso_gsm_at_sim_get_unlock_counters_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_GET_UNLOCK_COUNTERS_CLASS (klass)->run = fso_gsm_at_sim_get_unlock_counters_real_run;
	FSO_GSM_SIM_GET_UNLOCK_COUNTERS_CLASS (klass)->run_finish = fso_gsm_at_sim_get_unlock_counters_real_run_finish;
}


static void fso_gsm_at_sim_get_unlock_counters_instance_init (FsoGsmAtSimGetUnlockCounters * self) {
}


GType fso_gsm_at_sim_get_unlock_counters_get_type (void) {
	static volatile gsize fso_gsm_at_sim_get_unlock_counters_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_get_unlock_counters_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimGetUnlockCountersClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_get_unlock_counters_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimGetUnlockCounters), 0, (GInstanceInitFunc) fso_gsm_at_sim_get_unlock_counters_instance_init, NULL };
		GType fso_gsm_at_sim_get_unlock_counters_type_id;
		fso_gsm_at_sim_get_unlock_counters_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_GET_UNLOCK_COUNTERS, "FsoGsmAtSimGetUnlockCounters", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_get_unlock_counters_type_id__volatile, fso_gsm_at_sim_get_unlock_counters_type_id);
	}
	return fso_gsm_at_sim_get_unlock_counters_type_id__volatile;
}


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


static void fso_gsm_at_sim_retrieve_message_real_run (FsoGsmSimRetrieveMessage* base, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimRetrieveMessage * self;
	FsoGsmAtSimRetrieveMessageRunData* _data_;
	FsoGsmAtSimRetrieveMessage* _tmp0_;
	gint _tmp1_;
	self = (FsoGsmAtSimRetrieveMessage*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimRetrieveMessageRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_retrieve_message_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_retrieve_message_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = index;
	_data_->index = _tmp1_;
	fso_gsm_at_sim_retrieve_message_real_run_co (_data_);
}


static void fso_gsm_at_sim_retrieve_message_real_run_finish (FsoGsmSimRetrieveMessage* base, GAsyncResult* _res_, gchar** status, gchar** number, gchar** contents, GHashTable** properties, GError** error) {
	FsoGsmAtSimRetrieveMessageRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
	if (status) {
		*status = _data_->status;
	} else {
		_g_free0 (_data_->status);
	}
	_data_->status = NULL;
	if (number) {
		*number = _data_->number;
	} else {
		_g_free0 (_data_->number);
	}
	_data_->number = NULL;
	if (contents) {
		*contents = _data_->contents;
	} else {
		_g_free0 (_data_->contents);
	}
	_data_->contents = NULL;
	if (properties) {
		*properties = _data_->properties;
	} else {
		_g_hash_table_unref0 (_data_->properties);
	}
	_data_->properties = NULL;
}


static void fso_gsm_at_sim_retrieve_message_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimRetrieveMessageRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_retrieve_message_real_run_co (_data_);
}


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


static struct sms* sms_newFromHexPdu (const gchar* hexpdu, gint tpdulen) {
	struct sms* result = NULL;
	glong items_written;
	gchar* _tmp0_ = NULL;
	gchar* binpdu;
	gint binpdu_length1;
	gint _binpdu_size_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gint _tmp2__length1;
	glong _tmp3_ = 0L;
	glong _tmp4_;
	struct sms* _tmp5_;
	struct sms* sms;
	gchar* _tmp6_;
	gint _tmp6__length1;
	gint _tmp7_;
	struct sms* _tmp8_;
	gboolean _tmp9_ = FALSE;
	gboolean res;
	gboolean _tmp10_;
	g_return_val_if_fail (hexpdu != NULL, NULL);
	items_written = (glong) (-1);
	_tmp0_ = g_new0 (gchar, 1024);
	binpdu = _tmp0_;
	binpdu_length1 = 1024;
	_binpdu_size_ = binpdu_length1;
	_tmp1_ = hexpdu;
	_tmp2_ = binpdu;
	_tmp2__length1 = binpdu_length1;
	decode_hex_own_buf (_tmp1_, (glong) (-1), &_tmp3_, (gchar) 0, _tmp2_);
	items_written = _tmp3_;
	_tmp4_ = items_written;
	g_assert (_tmp4_ != ((glong) (-1)));
	_tmp5_ = sms_new ();
	sms = _tmp5_;
	_tmp6_ = binpdu;
	_tmp6__length1 = binpdu_length1;
	_tmp7_ = tpdulen;
	_tmp8_ = sms;
	_tmp9_ = sms_decode (_tmp6_, _tmp6__length1, FALSE, _tmp7_, _tmp8_);
	res = _tmp9_;
	_tmp10_ = res;
	if (!_tmp10_) {
		gint _tmp11_;
		gchar* _tmp12_ = NULL;
		gchar* _tmp13_;
		const gchar* _tmp14_;
		const gchar* _tmp15_ = NULL;
		gchar* _tmp16_ = NULL;
		gchar* _tmp17_;
		_tmp11_ = tpdulen;
		_tmp12_ = g_strdup_printf ("%i", _tmp11_);
		_tmp13_ = _tmp12_;
		_tmp14_ = hexpdu;
		_tmp15_ = string_to_string (_tmp14_);
		_tmp16_ = g_strconcat ("Sms.Message::newFromHexPdu: could not decode message w/ tpdulen ", _tmp13_, " and hexpdu ", _tmp15_, NULL);
		_tmp17_ = _tmp16_;
		g_warning ("fsogsm3rdparty.vapi:602: %s", _tmp17_);
		_g_free0 (_tmp17_);
		_g_free0 (_tmp13_);
		result = NULL;
		_sms_free0 (sms);
		binpdu = (g_free (binpdu), NULL);
		return result;
	} else {
		result = sms;
		binpdu = (g_free (binpdu), NULL);
		return result;
	}
	_sms_free0 (sms);
	binpdu = (g_free (binpdu), NULL);
}


static gchar* sms_number (struct sms* self) {
	gchar* result = NULL;
	enum sms_type _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->type;
	switch (_tmp0_) {
		case SMS_TYPE_DELIVER:
		{
			const gchar* _tmp1_ = NULL;
			gchar* _tmp2_;
			_tmp1_ = sms_address_to_string (&self->deliver.oaddr);
			_tmp2_ = g_strdup (_tmp1_);
			result = _tmp2_;
			return result;
		}
		case SMS_TYPE_SUBMIT:
		{
			const gchar* _tmp3_ = NULL;
			gchar* _tmp4_;
			_tmp3_ = sms_address_to_string (&self->submit.daddr);
			_tmp4_ = g_strdup (_tmp3_);
			result = _tmp4_;
			return result;
		}
		case SMS_TYPE_COMMAND:
		{
			const gchar* _tmp5_ = NULL;
			gchar* _tmp6_;
			_tmp5_ = sms_address_to_string (&self->command.daddr);
			_tmp6_ = g_strdup (_tmp5_);
			result = _tmp6_;
			return result;
		}
		case SMS_TYPE_STATUS_REPORT:
		{
			const gchar* _tmp7_ = NULL;
			gchar* _tmp8_;
			_tmp7_ = sms_address_to_string (&self->status_report.raddr);
			_tmp8_ = g_strdup (_tmp7_);
			result = _tmp8_;
			return result;
		}
		default:
		{
			gchar* _tmp9_;
			_tmp9_ = g_strdup ("unknown");
			result = _tmp9_;
			return result;
		}
	}
}


static gchar* sms_to_string (struct sms* self) {
	gchar* result = NULL;
	GSList* list;
	GSList* _tmp0_;
	gchar* _tmp1_ = NULL;
	g_return_val_if_fail (self != NULL, NULL);
	list = NULL;
	list = g_slist_append (list, self);
	_tmp0_ = list;
	_tmp1_ = sms_decode_text (_tmp0_);
	result = _tmp1_;
	_g_slist_free0 (list);
	return result;
}


static GVariant* _variant_new50 (gint value) {
	return g_variant_ref_sink (g_variant_new_int32 (value));
}


static GVariant* _variant_new51 (gint value) {
	return g_variant_ref_sink (g_variant_new_int32 (value));
}


static GVariant* _variant_new52 (gboolean value) {
	return g_variant_ref_sink (g_variant_new_boolean (value));
}


static GVariant* _variant_new53 (gboolean value) {
	return g_variant_ref_sink (g_variant_new_boolean (value));
}


static GVariant* _variant_new54 (gboolean value) {
	return g_variant_ref_sink (g_variant_new_boolean (value));
}


static GVariant* _variant_new55 (gboolean value) {
	return g_variant_ref_sink (g_variant_new_boolean (value));
}


static GVariant* _variant_new56 (gboolean value) {
	return g_variant_ref_sink (g_variant_new_boolean (value));
}


static GVariant* _variant_new57 (guint8 value) {
	return g_variant_ref_sink (g_variant_new_byte (value));
}


static GVariant* _variant_new58 (guint8 value) {
	return g_variant_ref_sink (g_variant_new_byte (value));
}


static GVariant* _variant_new59 (guint8 value) {
	return g_variant_ref_sink (g_variant_new_byte (value));
}


static gchar* sms_scts_to_string (struct sms_scts *self) {
	gchar* result = NULL;
	gchar* _tmp0_ = NULL;
	gint8 _tmp1_;
	guint8 _tmp6_;
	guint8 _tmp7_;
	guint8 _tmp8_;
	guint8 _tmp9_;
	guint8 _tmp10_;
	guint8 _tmp11_;
	const gchar* _tmp12_;
	gchar* _tmp13_ = NULL;
	_tmp1_ = (*self).timezone;
	if (((gint) _tmp1_) > 0) {
		gint8 _tmp2_;
		gchar* _tmp3_ = NULL;
		_tmp2_ = (*self).timezone;
		_tmp3_ = g_strdup_printf ("+%02d", (gint) _tmp2_);
		_g_free0 (_tmp0_);
		_tmp0_ = _tmp3_;
	} else {
		gint8 _tmp4_;
		gchar* _tmp5_ = NULL;
		_tmp4_ = (*self).timezone;
		_tmp5_ = g_strdup_printf ("%02d", (gint) _tmp4_);
		_g_free0 (_tmp0_);
		_tmp0_ = _tmp5_;
	}
	_tmp6_ = (*self).year;
	_tmp7_ = (*self).month;
	_tmp8_ = (*self).day;
	_tmp9_ = (*self).hour;
	_tmp10_ = (*self).minute;
	_tmp11_ = (*self).second;
	_tmp12_ = _tmp0_;
	_tmp13_ = g_strdup_printf ("%02u/%02u/%02u,%02u:%02u:%02u%s", (guint) _tmp6_, (guint) _tmp7_, (guint) _tmp8_, (guint) _tmp9_, (guint) _tmp10_, (guint) _tmp11_, _tmp12_);
	result = _tmp13_;
	_g_free0 (_tmp0_);
	return result;
}


static GVariant* _variant_new60 (gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new61 (gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static void sms_deliver_addProperties (struct sms_deliver *self, GHashTable* props) {
	GHashTable* _tmp0_;
	gchar* _tmp1_;
	gboolean _tmp2_;
	GVariant* _tmp3_;
	GHashTable* _tmp4_;
	gchar* _tmp5_;
	gboolean _tmp6_;
	GVariant* _tmp7_;
	GHashTable* _tmp8_;
	gchar* _tmp9_;
	gboolean _tmp10_;
	GVariant* _tmp11_;
	GHashTable* _tmp12_;
	gchar* _tmp13_;
	gboolean _tmp14_;
	GVariant* _tmp15_;
	GHashTable* _tmp16_;
	gchar* _tmp17_;
	guint8 _tmp18_;
	GVariant* _tmp19_;
	GHashTable* _tmp20_;
	gchar* _tmp21_;
	guint8 _tmp22_;
	GVariant* _tmp23_;
	GHashTable* _tmp24_;
	gchar* _tmp25_;
	guint8 _tmp26_;
	GVariant* _tmp27_;
	GHashTable* _tmp28_;
	gchar* _tmp29_;
	gchar* _tmp30_ = NULL;
	GVariant* _tmp31_;
	gboolean _tmp32_;
	g_return_if_fail (props != NULL);
	_tmp0_ = props;
	_tmp1_ = g_strdup ("mms");
	_tmp2_ = (*self).mms;
	_tmp3_ = _variant_new53 (_tmp2_);
	g_hash_table_insert (_tmp0_, _tmp1_, _tmp3_);
	_tmp4_ = props;
	_tmp5_ = g_strdup ("sri");
	_tmp6_ = (*self).sri;
	_tmp7_ = _variant_new54 (_tmp6_);
	g_hash_table_insert (_tmp4_, _tmp5_, _tmp7_);
	_tmp8_ = props;
	_tmp9_ = g_strdup ("udhi");
	_tmp10_ = (*self).udhi;
	_tmp11_ = _variant_new55 (_tmp10_);
	g_hash_table_insert (_tmp8_, _tmp9_, _tmp11_);
	_tmp12_ = props;
	_tmp13_ = g_strdup ("rp");
	_tmp14_ = (*self).rp;
	_tmp15_ = _variant_new56 (_tmp14_);
	g_hash_table_insert (_tmp12_, _tmp13_, _tmp15_);
	_tmp16_ = props;
	_tmp17_ = g_strdup ("pid");
	_tmp18_ = (*self).pid;
	_tmp19_ = _variant_new57 (_tmp18_);
	g_hash_table_insert (_tmp16_, _tmp17_, _tmp19_);
	_tmp20_ = props;
	_tmp21_ = g_strdup ("dcs");
	_tmp22_ = (*self).dcs;
	_tmp23_ = _variant_new58 (_tmp22_);
	g_hash_table_insert (_tmp20_, _tmp21_, _tmp23_);
	_tmp24_ = props;
	_tmp25_ = g_strdup ("udl");
	_tmp26_ = (*self).udl;
	_tmp27_ = _variant_new59 (_tmp26_);
	g_hash_table_insert (_tmp24_, _tmp25_, _tmp27_);
	_tmp28_ = props;
	_tmp29_ = g_strdup ("timestamp");
	_tmp30_ = sms_scts_to_string (&(*self).scts);
	_tmp31_ = _variant_new60 (_tmp30_);
	g_hash_table_insert (_tmp28_, _tmp29_, _tmp31_);
	_tmp32_ = (*self).udhi;
	if (_tmp32_) {
		GHashTable* _tmp33_;
		gchar* _tmp34_;
		guint8 _tmp35_;
		guint8 _tmp36_;
		guint8 _tmp37_;
		guint8 _tmp38_;
		guint8 _tmp39_;
		guint8 _tmp40_;
		guint8 _tmp41_;
		gchar* _tmp42_ = NULL;
		GVariant* _tmp43_;
		_tmp33_ = props;
		_tmp34_ = g_strdup ("udh");
		_tmp35_ = (*self).ud[0];
		_tmp36_ = (*self).ud[1];
		_tmp37_ = (*self).ud[2];
		_tmp38_ = (*self).ud[4];
		_tmp39_ = (*self).ud[3];
		_tmp40_ = (*self).ud[6];
		_tmp41_ = (*self).ud[5];
		_tmp42_ = g_strdup_printf ("%02X %02X %02X %04X %04X", (guint) _tmp35_, (guint) _tmp36_, (guint) _tmp37_, (guint) (_tmp38_ + (_tmp39_ << 8)), (guint) (_tmp40_ + (_tmp41_ << 8)));
		_tmp43_ = _variant_new61 (_tmp42_);
		g_hash_table_insert (_tmp33_, _tmp34_, _tmp43_);
	}
}


static GHashTable* sms_properties (struct sms* self) {
	GHashTable* result = NULL;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	GHashTable* props;
	gint dst = 0;
	gint src = 0;
	gboolean is8bit = FALSE;
	gint _tmp3_ = 0;
	gint _tmp4_ = 0;
	gboolean _tmp5_ = FALSE;
	gboolean _tmp6_ = FALSE;
	gboolean hasAppPort;
	gboolean _tmp7_;
	enum sms_type _tmp20_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_str_hash;
	_tmp1_ = g_str_equal;
	_tmp2_ = g_hash_table_new_full (_tmp0_, _tmp1_, _g_free0_, _g_variant_unref0_);
	props = _tmp2_;
	_tmp6_ = sms_extract_app_port (self, &_tmp3_, &_tmp4_, &_tmp5_);
	dst = _tmp3_;
	src = _tmp4_;
	is8bit = _tmp5_;
	hasAppPort = _tmp6_;
	_tmp7_ = hasAppPort;
	if (_tmp7_) {
		GHashTable* _tmp8_;
		gchar* _tmp9_;
		gint _tmp10_;
		GVariant* _tmp11_;
		GHashTable* _tmp12_;
		gchar* _tmp13_;
		gint _tmp14_;
		GVariant* _tmp15_;
		GHashTable* _tmp16_;
		gchar* _tmp17_;
		gboolean _tmp18_;
		GVariant* _tmp19_;
		_tmp8_ = props;
		_tmp9_ = g_strdup ("app-port-src");
		_tmp10_ = src;
		_tmp11_ = _variant_new50 (_tmp10_);
		g_hash_table_insert (_tmp8_, _tmp9_, _tmp11_);
		_tmp12_ = props;
		_tmp13_ = g_strdup ("app-port-dst");
		_tmp14_ = dst;
		_tmp15_ = _variant_new51 (_tmp14_);
		g_hash_table_insert (_tmp12_, _tmp13_, _tmp15_);
		_tmp16_ = props;
		_tmp17_ = g_strdup ("app-port-8bit");
		_tmp18_ = is8bit;
		_tmp19_ = _variant_new52 (_tmp18_);
		g_hash_table_insert (_tmp16_, _tmp17_, _tmp19_);
	}
	_tmp20_ = self->type;
	switch (_tmp20_) {
		case SMS_TYPE_DELIVER:
		{
			GHashTable* _tmp21_;
			_tmp21_ = props;
			sms_deliver_addProperties (&self->deliver, _tmp21_);
		}
		default:
		{
			break;
		}
	}
	result = props;
	return result;
}


static gboolean fso_gsm_at_sim_retrieve_message_real_run_co (FsoGsmAtSimRetrieveMessageRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = g_str_hash;
	_data_->_tmp1_ = g_str_equal;
	_data_->_tmp2_ = g_hash_table_new_full (_data_->_tmp0_, _data_->_tmp1_, _g_free0_, _g_variant_unref0_);
	_g_hash_table_unref0 (_data_->properties);
	_data_->properties = _data_->_tmp2_;
	_data_->_tmp3_ = fso_gsm_theModem;
	_data_->_tmp4_ = NULL;
	_data_->_tmp4_ = fso_gsm_modem_createAtCommand (_data_->_tmp3_, FSO_GSM_TYPE_PLUS_CMGR, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CMGR");
	_data_->cmgr = (FsoGsmPlusCMGR*) _data_->_tmp4_;
	_data_->_tmp5_ = fso_gsm_theModem;
	_data_->_tmp6_ = _data_->cmgr;
	_data_->_tmp7_ = _data_->cmgr;
	_data_->_tmp8_ = _data_->index;
	_data_->_tmp9_ = NULL;
	_data_->_tmp9_ = fso_gsm_plus_cmgr_issue (_data_->_tmp7_, (guint) _data_->_tmp8_);
	_data_->_tmp10_ = _data_->_tmp9_;
	_data_->_tmp11_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp5_, (FsoGsmAtCommand*) _data_->_tmp6_, _data_->_tmp10_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_retrieve_message_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp12_ = NULL;
	_data_->_tmp12_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp5_, _data_->_res_, &_data_->_tmp11_);
	_data_->_tmp13_ = _data_->_tmp12_;
	_data_->_tmp13__length1 = _data_->_tmp11_;
	_g_free0 (_data_->_tmp10_);
	_data_->response = _data_->_tmp13_;
	_data_->response_length1 = _data_->_tmp13__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp14_ = _data_->cmgr;
	_data_->_tmp15_ = _data_->response;
	_data_->_tmp15__length1 = _data_->response_length1;
	fso_gsm_checkMultiResponseValid ((FsoGsmAtCommand*) _data_->_tmp14_, _data_->_tmp15_, _data_->_tmp15__length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmgr);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmgr);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp16_ = _data_->cmgr;
	_data_->_tmp17_ = _data_->_tmp16_->hexpdu;
	_data_->_tmp18_ = _data_->cmgr;
	_data_->_tmp19_ = _data_->_tmp18_->tpdulen;
	_data_->_tmp20_ = NULL;
	_data_->_tmp20_ = sms_newFromHexPdu (_data_->_tmp17_, _data_->_tmp19_);
	_data_->sms = _data_->_tmp20_;
	_data_->_tmp21_ = _data_->sms;
	if (_data_->_tmp21_ == NULL) {
		_data_->_tmp22_ = _data_->index;
		_data_->_tmp23_ = NULL;
		_data_->_tmp23_ = g_strdup_printf ("%i", _data_->_tmp22_);
		_data_->_tmp24_ = _data_->_tmp23_;
		_data_->_tmp25_ = NULL;
		_data_->_tmp25_ = g_strconcat ("Can't read SMS at index ", _data_->_tmp24_, NULL);
		_data_->_tmp26_ = _data_->_tmp25_;
		_data_->_tmp27_ = g_error_new_literal (FREE_SMARTPHONE_GSM_ERROR, FREE_SMARTPHONE_GSM_ERROR_DEVICE_FAILED, _data_->_tmp26_);
		_data_->_tmp28_ = _data_->_tmp27_;
		_g_free0 (_data_->_tmp26_);
		_g_free0 (_data_->_tmp24_);
		_data_->_inner_error_ = _data_->_tmp28_;
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_sms_free0 (_data_->sms);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmgr);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_sms_free0 (_data_->sms);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmgr);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp29_ = NULL;
	_data_->_tmp29_ = fso_gsm_constants_instance ();
	_data_->_tmp30_ = _data_->_tmp29_;
	_data_->_tmp31_ = _data_->cmgr;
	_data_->_tmp32_ = _data_->_tmp31_->status;
	_data_->_tmp33_ = NULL;
	_data_->_tmp33_ = fso_gsm_constants_simMessagebookStatusToString (_data_->_tmp30_, (gint) _data_->_tmp32_);
	_g_free0 (_data_->status);
	_data_->status = _data_->_tmp33_;
	_fso_gsm_constants_unref0 (_data_->_tmp30_);
	_data_->_tmp34_ = _data_->sms;
	_data_->_tmp35_ = NULL;
	_data_->_tmp35_ = sms_number (_data_->_tmp34_);
	_g_free0 (_data_->number);
	_data_->number = _data_->_tmp35_;
	_data_->_tmp36_ = _data_->sms;
	_data_->_tmp37_ = NULL;
	_data_->_tmp37_ = sms_to_string (_data_->_tmp36_);
	_g_free0 (_data_->contents);
	_data_->contents = _data_->_tmp37_;
	_data_->_tmp38_ = _data_->sms;
	_data_->_tmp39_ = NULL;
	_data_->_tmp39_ = sms_properties (_data_->_tmp38_);
	_g_hash_table_unref0 (_data_->properties);
	_data_->properties = _data_->_tmp39_;
	_sms_free0 (_data_->sms);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmgr);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimRetrieveMessage* fso_gsm_at_sim_retrieve_message_construct (GType object_type) {
	FsoGsmAtSimRetrieveMessage * self = NULL;
	self = (FsoGsmAtSimRetrieveMessage*) fso_gsm_sim_retrieve_message_construct (object_type);
	return self;
}


FsoGsmAtSimRetrieveMessage* fso_gsm_at_sim_retrieve_message_new (void) {
	return fso_gsm_at_sim_retrieve_message_construct (FSO_GSM_TYPE_AT_SIM_RETRIEVE_MESSAGE);
}


static void fso_gsm_at_sim_retrieve_message_class_init (FsoGsmAtSimRetrieveMessageClass * klass) {
	fso_gsm_at_sim_retrieve_message_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_RETRIEVE_MESSAGE_CLASS (klass)->run = fso_gsm_at_sim_retrieve_message_real_run;
	FSO_GSM_SIM_RETRIEVE_MESSAGE_CLASS (klass)->run_finish = fso_gsm_at_sim_retrieve_message_real_run_finish;
}


static void fso_gsm_at_sim_retrieve_message_instance_init (FsoGsmAtSimRetrieveMessage * self) {
}


GType fso_gsm_at_sim_retrieve_message_get_type (void) {
	static volatile gsize fso_gsm_at_sim_retrieve_message_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_retrieve_message_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimRetrieveMessageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_retrieve_message_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimRetrieveMessage), 0, (GInstanceInitFunc) fso_gsm_at_sim_retrieve_message_instance_init, NULL };
		GType fso_gsm_at_sim_retrieve_message_type_id;
		fso_gsm_at_sim_retrieve_message_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_RETRIEVE_MESSAGE, "FsoGsmAtSimRetrieveMessage", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_retrieve_message_type_id__volatile, fso_gsm_at_sim_retrieve_message_type_id);
	}
	return fso_gsm_at_sim_retrieve_message_type_id__volatile;
}


static void fso_gsm_at_sim_retrieve_phonebook_real_run_data_free (gpointer _data) {
	FsoGsmAtSimRetrievePhonebookRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->category);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtSimRetrievePhonebookRunData, _data_);
}


static void fso_gsm_at_sim_retrieve_phonebook_real_run (FsoGsmSimRetrievePhonebook* base, const gchar* category, gint mindex, gint maxdex, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimRetrievePhonebook * self;
	FsoGsmAtSimRetrievePhonebookRunData* _data_;
	FsoGsmAtSimRetrievePhonebook* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gint _tmp3_;
	gint _tmp4_;
	self = (FsoGsmAtSimRetrievePhonebook*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimRetrievePhonebookRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_retrieve_phonebook_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_retrieve_phonebook_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = category;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->category = _tmp2_;
	_tmp3_ = mindex;
	_data_->mindex = _tmp3_;
	_tmp4_ = maxdex;
	_data_->maxdex = _tmp4_;
	fso_gsm_at_sim_retrieve_phonebook_real_run_co (_data_);
}


static void fso_gsm_at_sim_retrieve_phonebook_real_run_finish (FsoGsmSimRetrievePhonebook* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimRetrievePhonebookRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void _vala_FreeSmartphoneGSMSIMEntry_array_free (FreeSmartphoneGSMSIMEntry* array, gint array_length) {
	if (array != NULL) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			free_smartphone_gsm_sim_entry_destroy (&array[i]);
		}
	}
	g_free (array);
}


static gboolean fso_gsm_at_sim_retrieve_phonebook_real_run_co (FsoGsmAtSimRetrievePhonebookRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = NULL;
	_data_->_tmp0_ = fso_gsm_constants_instance ();
	_data_->_tmp1_ = _data_->_tmp0_;
	_data_->_tmp2_ = _data_->category;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_constants_simPhonebookStringToCode (_data_->_tmp1_, _data_->_tmp2_);
	_data_->_tmp4_ = _data_->_tmp3_;
	_fso_gsm_constants_unref0 (_data_->_tmp1_);
	_data_->cat = _data_->_tmp4_;
	_data_->_tmp5_ = _data_->cat;
	if (g_strcmp0 (_data_->_tmp5_, "") == 0) {
		_data_->_tmp6_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_INVALID_PARAMETER, "Invalid Category");
		_data_->_inner_error_ = _data_->_tmp6_;
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_g_free0 (_data_->cat);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_g_free0 (_data_->cat);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp7_ = fso_gsm_theModem;
	_data_->_tmp8_ = fso_gsm_modem_get_pbhandler (_data_->_tmp7_);
	_data_->_tmp9_ = _data_->_tmp8_;
	_data_->_tmp10_ = fso_gsm_phonebook_handler_get_storage (_data_->_tmp9_);
	_data_->_tmp11_ = _data_->_tmp10_;
	_data_->_tmp12_ = _data_->cat;
	_data_->_tmp13_ = _data_->mindex;
	_data_->_tmp14_ = _data_->maxdex;
	_data_->_tmp15_ = 0;
	_data_->_tmp16_ = NULL;
	_data_->_tmp16_ = fso_gsm_phonebook_storage_phonebook (_data_->_tmp11_, _data_->_tmp12_, _data_->_tmp13_, _data_->_tmp14_, &_data_->_tmp15_);
	_data_->_tmp17_ = _data_->_tmp16_;
	_data_->_tmp17__length1 = _data_->_tmp15_;
	fso_gsm_sim_retrieve_phonebook_set_phonebook ((FsoGsmSimRetrievePhonebook*) _data_->self, _data_->_tmp17_, _data_->_tmp15_);
	_data_->_tmp17_ = (_vala_FreeSmartphoneGSMSIMEntry_array_free (_data_->_tmp17_, _data_->_tmp17__length1), NULL);
	_g_free0 (_data_->cat);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimRetrievePhonebook* fso_gsm_at_sim_retrieve_phonebook_construct (GType object_type) {
	FsoGsmAtSimRetrievePhonebook * self = NULL;
	self = (FsoGsmAtSimRetrievePhonebook*) fso_gsm_sim_retrieve_phonebook_construct (object_type);
	return self;
}


FsoGsmAtSimRetrievePhonebook* fso_gsm_at_sim_retrieve_phonebook_new (void) {
	return fso_gsm_at_sim_retrieve_phonebook_construct (FSO_GSM_TYPE_AT_SIM_RETRIEVE_PHONEBOOK);
}


static void fso_gsm_at_sim_retrieve_phonebook_class_init (FsoGsmAtSimRetrievePhonebookClass * klass) {
	fso_gsm_at_sim_retrieve_phonebook_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_RETRIEVE_PHONEBOOK_CLASS (klass)->run = fso_gsm_at_sim_retrieve_phonebook_real_run;
	FSO_GSM_SIM_RETRIEVE_PHONEBOOK_CLASS (klass)->run_finish = fso_gsm_at_sim_retrieve_phonebook_real_run_finish;
}


static void fso_gsm_at_sim_retrieve_phonebook_instance_init (FsoGsmAtSimRetrievePhonebook * self) {
}


GType fso_gsm_at_sim_retrieve_phonebook_get_type (void) {
	static volatile gsize fso_gsm_at_sim_retrieve_phonebook_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_retrieve_phonebook_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimRetrievePhonebookClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_retrieve_phonebook_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimRetrievePhonebook), 0, (GInstanceInitFunc) fso_gsm_at_sim_retrieve_phonebook_instance_init, NULL };
		GType fso_gsm_at_sim_retrieve_phonebook_type_id;
		fso_gsm_at_sim_retrieve_phonebook_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_RETRIEVE_PHONEBOOK, "FsoGsmAtSimRetrievePhonebook", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_retrieve_phonebook_type_id__volatile, fso_gsm_at_sim_retrieve_phonebook_type_id);
	}
	return fso_gsm_at_sim_retrieve_phonebook_type_id__volatile;
}


static void fso_gsm_at_sim_set_auth_code_required_real_run_data_free (gpointer _data) {
	FsoGsmAtSimSetAuthCodeRequiredRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->pin);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtSimSetAuthCodeRequiredRunData, _data_);
}


static void fso_gsm_at_sim_set_auth_code_required_real_run (FsoGsmSimSetAuthCodeRequired* base, gboolean required, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimSetAuthCodeRequired * self;
	FsoGsmAtSimSetAuthCodeRequiredRunData* _data_;
	FsoGsmAtSimSetAuthCodeRequired* _tmp0_;
	gboolean _tmp1_;
	const gchar* _tmp2_;
	gchar* _tmp3_;
	self = (FsoGsmAtSimSetAuthCodeRequired*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimSetAuthCodeRequiredRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_set_auth_code_required_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_set_auth_code_required_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = required;
	_data_->required = _tmp1_;
	_tmp2_ = pin;
	_tmp3_ = g_strdup (_tmp2_);
	_data_->pin = _tmp3_;
	fso_gsm_at_sim_set_auth_code_required_real_run_co (_data_);
}


static void fso_gsm_at_sim_set_auth_code_required_real_run_finish (FsoGsmSimSetAuthCodeRequired* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimSetAuthCodeRequiredRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_set_auth_code_required_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimSetAuthCodeRequiredRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_set_auth_code_required_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_set_auth_code_required_real_run_co (FsoGsmAtSimSetAuthCodeRequiredRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CLCK, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CLCK");
	_data_->cmd = (FsoGsmPlusCLCK*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->required;
	_data_->_tmp4_ = _data_->pin;
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = fso_gsm_plus_clck_issue (_data_->cmd, "SC", _data_->_tmp3_, _data_->_tmp4_);
	_data_->_tmp6_ = _data_->_tmp5_;
	_data_->_tmp7_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp6_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_set_auth_code_required_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp8_ = NULL;
	_data_->_tmp8_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp7_);
	_data_->_tmp9_ = _data_->_tmp8_;
	_data_->_tmp9__length1 = _data_->_tmp7_;
	_g_free0 (_data_->_tmp6_);
	_data_->response = _data_->_tmp9_;
	_data_->response_length1 = _data_->_tmp9__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimSetAuthCodeRequired* fso_gsm_at_sim_set_auth_code_required_construct (GType object_type) {
	FsoGsmAtSimSetAuthCodeRequired * self = NULL;
	self = (FsoGsmAtSimSetAuthCodeRequired*) fso_gsm_sim_set_auth_code_required_construct (object_type);
	return self;
}


FsoGsmAtSimSetAuthCodeRequired* fso_gsm_at_sim_set_auth_code_required_new (void) {
	return fso_gsm_at_sim_set_auth_code_required_construct (FSO_GSM_TYPE_AT_SIM_SET_AUTH_CODE_REQUIRED);
}


static void fso_gsm_at_sim_set_auth_code_required_class_init (FsoGsmAtSimSetAuthCodeRequiredClass * klass) {
	fso_gsm_at_sim_set_auth_code_required_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_SET_AUTH_CODE_REQUIRED_CLASS (klass)->run = fso_gsm_at_sim_set_auth_code_required_real_run;
	FSO_GSM_SIM_SET_AUTH_CODE_REQUIRED_CLASS (klass)->run_finish = fso_gsm_at_sim_set_auth_code_required_real_run_finish;
}


static void fso_gsm_at_sim_set_auth_code_required_instance_init (FsoGsmAtSimSetAuthCodeRequired * self) {
}


GType fso_gsm_at_sim_set_auth_code_required_get_type (void) {
	static volatile gsize fso_gsm_at_sim_set_auth_code_required_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_set_auth_code_required_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimSetAuthCodeRequiredClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_set_auth_code_required_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimSetAuthCodeRequired), 0, (GInstanceInitFunc) fso_gsm_at_sim_set_auth_code_required_instance_init, NULL };
		GType fso_gsm_at_sim_set_auth_code_required_type_id;
		fso_gsm_at_sim_set_auth_code_required_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_SET_AUTH_CODE_REQUIRED, "FsoGsmAtSimSetAuthCodeRequired", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_set_auth_code_required_type_id__volatile, fso_gsm_at_sim_set_auth_code_required_type_id);
	}
	return fso_gsm_at_sim_set_auth_code_required_type_id__volatile;
}


static void fso_gsm_at_sim_send_auth_code_real_run_data_free (gpointer _data) {
	FsoGsmAtSimSendAuthCodeRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->pin);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtSimSendAuthCodeRunData, _data_);
}


static void fso_gsm_at_sim_send_auth_code_real_run (FsoGsmSimSendAuthCode* base, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimSendAuthCode * self;
	FsoGsmAtSimSendAuthCodeRunData* _data_;
	FsoGsmAtSimSendAuthCode* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	self = (FsoGsmAtSimSendAuthCode*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimSendAuthCodeRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_send_auth_code_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_send_auth_code_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = pin;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->pin = _tmp2_;
	fso_gsm_at_sim_send_auth_code_real_run_co (_data_);
}


static void fso_gsm_at_sim_send_auth_code_real_run_finish (FsoGsmSimSendAuthCode* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimSendAuthCodeRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_send_auth_code_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimSendAuthCodeRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_send_auth_code_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_send_auth_code_real_run_co (FsoGsmAtSimSendAuthCodeRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CPIN, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CPIN");
	_data_->cmd = (FsoGsmPlusCPIN*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->cmd;
	_data_->_tmp4_ = _data_->cmd;
	_data_->_tmp5_ = _data_->pin;
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_plus_cpin_issue (_data_->_tmp4_, _data_->_tmp5_, NULL);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp8_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->_tmp3_, _data_->_tmp7_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_send_auth_code_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp9_ = NULL;
	_data_->_tmp9_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp8_);
	_data_->_tmp10_ = _data_->_tmp9_;
	_data_->_tmp10__length1 = _data_->_tmp8_;
	_g_free0 (_data_->_tmp7_);
	_data_->response = _data_->_tmp10_;
	_data_->response_length1 = _data_->_tmp10__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp11_ = _data_->cmd;
	_data_->_tmp12_ = _data_->response;
	_data_->_tmp12__length1 = _data_->response_length1;
	_data_->_tmp13_ = NULL;
	_data_->_tmp13_ = g_new0 (FsoGsmConstantsAtResponse, 2);
	_data_->_tmp13_[0] = FSO_GSM_CONSTANTS_AT_RESPONSE_OK;
	_data_->_tmp13_[1] = FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_016_INCORRECT_PASSWORD;
	_data_->_tmp14_ = _data_->_tmp13_;
	_data_->_tmp14__length1 = 2;
	_data_->_tmp15_ = 0;
	_data_->_tmp15_ = fso_gsm_checkResponseExpected ((FsoGsmAtCommand*) _data_->_tmp11_, _data_->_tmp12_, _data_->_tmp12__length1, _data_->_tmp14_, 2, &_data_->_inner_error_);
	_data_->_tmp16_ = _data_->_tmp15_;
	_data_->_tmp14_ = (g_free (_data_->_tmp14_), NULL);
	_data_->code = _data_->_tmp16_;
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp17_ = _data_->code;
	if (_data_->_tmp17_ == FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_016_INCORRECT_PASSWORD) {
		_data_->_tmp18_ = _data_->pin;
		_data_->_tmp19_ = NULL;
		_data_->_tmp19_ = string_to_string (_data_->_tmp18_);
		_data_->_tmp20_ = NULL;
		_data_->_tmp20_ = g_strconcat ("PIN ", _data_->_tmp19_, " not accepted", NULL);
		_data_->_tmp21_ = _data_->_tmp20_;
		_data_->_tmp22_ = g_error_new_literal (FREE_SMARTPHONE_GSM_ERROR, FREE_SMARTPHONE_GSM_ERROR_SIM_AUTH_FAILED, _data_->_tmp21_);
		_data_->_tmp23_ = _data_->_tmp22_;
		_g_free0 (_data_->_tmp21_);
		_data_->_inner_error_ = _data_->_tmp23_;
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	} else {
		_data_->_tmp24_ = fso_gsm_theModem;
		_data_->_tmp25_ = NULL;
		_data_->_tmp25_ = fso_gsm_modem_data (_data_->_tmp24_);
		_data_->_tmp26_ = _data_->_tmp25_;
		_data_->_tmp27_ = _data_->pin;
		_data_->_tmp28_ = g_strdup (_data_->_tmp27_);
		_g_free0 (_data_->_tmp26_->simPin);
		_data_->_tmp26_->simPin = _data_->_tmp28_;
		_g_object_unref0 (_data_->_tmp26_);
	}
	fso_gsm_gatherSimStatusAndUpdate (NULL, NULL);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimSendAuthCode* fso_gsm_at_sim_send_auth_code_construct (GType object_type) {
	FsoGsmAtSimSendAuthCode * self = NULL;
	self = (FsoGsmAtSimSendAuthCode*) fso_gsm_sim_send_auth_code_construct (object_type);
	return self;
}


FsoGsmAtSimSendAuthCode* fso_gsm_at_sim_send_auth_code_new (void) {
	return fso_gsm_at_sim_send_auth_code_construct (FSO_GSM_TYPE_AT_SIM_SEND_AUTH_CODE);
}


static void fso_gsm_at_sim_send_auth_code_class_init (FsoGsmAtSimSendAuthCodeClass * klass) {
	fso_gsm_at_sim_send_auth_code_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_SEND_AUTH_CODE_CLASS (klass)->run = fso_gsm_at_sim_send_auth_code_real_run;
	FSO_GSM_SIM_SEND_AUTH_CODE_CLASS (klass)->run_finish = fso_gsm_at_sim_send_auth_code_real_run_finish;
}


static void fso_gsm_at_sim_send_auth_code_instance_init (FsoGsmAtSimSendAuthCode * self) {
}


GType fso_gsm_at_sim_send_auth_code_get_type (void) {
	static volatile gsize fso_gsm_at_sim_send_auth_code_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_send_auth_code_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimSendAuthCodeClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_send_auth_code_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimSendAuthCode), 0, (GInstanceInitFunc) fso_gsm_at_sim_send_auth_code_instance_init, NULL };
		GType fso_gsm_at_sim_send_auth_code_type_id;
		fso_gsm_at_sim_send_auth_code_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_SEND_AUTH_CODE, "FsoGsmAtSimSendAuthCode", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_send_auth_code_type_id__volatile, fso_gsm_at_sim_send_auth_code_type_id);
	}
	return fso_gsm_at_sim_send_auth_code_type_id__volatile;
}


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


static void fso_gsm_at_sim_send_stored_message_real_run (FsoGsmSimSendStoredMessage* base, gint index, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimSendStoredMessage * self;
	FsoGsmAtSimSendStoredMessageRunData* _data_;
	FsoGsmAtSimSendStoredMessage* _tmp0_;
	gint _tmp1_;
	self = (FsoGsmAtSimSendStoredMessage*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimSendStoredMessageRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_send_stored_message_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_send_stored_message_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = index;
	_data_->index = _tmp1_;
	fso_gsm_at_sim_send_stored_message_real_run_co (_data_);
}


static void fso_gsm_at_sim_send_stored_message_real_run_finish (FsoGsmSimSendStoredMessage* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimSendStoredMessageRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_send_stored_message_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimSendStoredMessageRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_send_stored_message_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_send_stored_message_real_run_co (FsoGsmAtSimSendStoredMessageRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CMSS, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CMSS");
	_data_->cmd = (FsoGsmPlusCMSS*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->index;
	_data_->_tmp4_ = NULL;
	_data_->_tmp4_ = fso_gsm_plus_cmss_issue (_data_->cmd, _data_->_tmp3_);
	_data_->_tmp5_ = _data_->_tmp4_;
	_data_->_tmp6_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp5_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_send_stored_message_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp7_ = NULL;
	_data_->_tmp7_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp6_);
	_data_->_tmp8_ = _data_->_tmp7_;
	_data_->_tmp8__length1 = _data_->_tmp6_;
	_g_free0 (_data_->_tmp5_);
	_data_->response = _data_->_tmp8_;
	_data_->response_length1 = _data_->_tmp8__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp9_ = _data_->cmd->refnum;
	fso_gsm_sim_send_stored_message_set_transaction_index ((FsoGsmSimSendStoredMessage*) _data_->self, _data_->_tmp9_);
	fso_gsm_sim_send_stored_message_set_timestamp ((FsoGsmSimSendStoredMessage*) _data_->self, "now");
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimSendStoredMessage* fso_gsm_at_sim_send_stored_message_construct (GType object_type) {
	FsoGsmAtSimSendStoredMessage * self = NULL;
	self = (FsoGsmAtSimSendStoredMessage*) fso_gsm_sim_send_stored_message_construct (object_type);
	return self;
}


FsoGsmAtSimSendStoredMessage* fso_gsm_at_sim_send_stored_message_new (void) {
	return fso_gsm_at_sim_send_stored_message_construct (FSO_GSM_TYPE_AT_SIM_SEND_STORED_MESSAGE);
}


static void fso_gsm_at_sim_send_stored_message_class_init (FsoGsmAtSimSendStoredMessageClass * klass) {
	fso_gsm_at_sim_send_stored_message_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_SEND_STORED_MESSAGE_CLASS (klass)->run = fso_gsm_at_sim_send_stored_message_real_run;
	FSO_GSM_SIM_SEND_STORED_MESSAGE_CLASS (klass)->run_finish = fso_gsm_at_sim_send_stored_message_real_run_finish;
}


static void fso_gsm_at_sim_send_stored_message_instance_init (FsoGsmAtSimSendStoredMessage * self) {
}


GType fso_gsm_at_sim_send_stored_message_get_type (void) {
	static volatile gsize fso_gsm_at_sim_send_stored_message_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_send_stored_message_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimSendStoredMessageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_send_stored_message_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimSendStoredMessage), 0, (GInstanceInitFunc) fso_gsm_at_sim_send_stored_message_instance_init, NULL };
		GType fso_gsm_at_sim_send_stored_message_type_id;
		fso_gsm_at_sim_send_stored_message_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_SEND_STORED_MESSAGE, "FsoGsmAtSimSendStoredMessage", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_send_stored_message_type_id__volatile, fso_gsm_at_sim_send_stored_message_type_id);
	}
	return fso_gsm_at_sim_send_stored_message_type_id__volatile;
}


static void fso_gsm_at_sim_set_service_center_number_real_run_data_free (gpointer _data) {
	FsoGsmAtSimSetServiceCenterNumberRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->number);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtSimSetServiceCenterNumberRunData, _data_);
}


static void fso_gsm_at_sim_set_service_center_number_real_run (FsoGsmSimSetServiceCenterNumber* base, const gchar* number, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimSetServiceCenterNumber * self;
	FsoGsmAtSimSetServiceCenterNumberRunData* _data_;
	FsoGsmAtSimSetServiceCenterNumber* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	self = (FsoGsmAtSimSetServiceCenterNumber*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimSetServiceCenterNumberRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_set_service_center_number_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_set_service_center_number_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = number;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->number = _tmp2_;
	fso_gsm_at_sim_set_service_center_number_real_run_co (_data_);
}


static void fso_gsm_at_sim_set_service_center_number_real_run_finish (FsoGsmSimSetServiceCenterNumber* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimSetServiceCenterNumberRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_set_service_center_number_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimSetServiceCenterNumberRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_set_service_center_number_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_set_service_center_number_real_run_co (FsoGsmAtSimSetServiceCenterNumberRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->number;
	fso_gsm_validatePhoneNumber (_data_->_tmp0_, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp1_ = fso_gsm_theModem;
	_data_->_tmp2_ = NULL;
	_data_->_tmp2_ = fso_gsm_modem_createAtCommand (_data_->_tmp1_, FSO_GSM_TYPE_PLUS_CSCA, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CSCA");
	_data_->cmd = (FsoGsmPlusCSCA*) _data_->_tmp2_;
	_data_->_tmp3_ = fso_gsm_theModem;
	_data_->_tmp4_ = _data_->cmd;
	_data_->_tmp5_ = _data_->cmd;
	_data_->_tmp6_ = _data_->number;
	_data_->_tmp7_ = NULL;
	_data_->_tmp7_ = fso_gsm_plus_csca_issue (_data_->_tmp5_, _data_->_tmp6_);
	_data_->_tmp8_ = _data_->_tmp7_;
	_data_->_tmp9_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp3_, (FsoGsmAtCommand*) _data_->_tmp4_, _data_->_tmp8_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_set_service_center_number_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp10_ = NULL;
	_data_->_tmp10_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp3_, _data_->_res_, &_data_->_tmp9_);
	_data_->_tmp11_ = _data_->_tmp10_;
	_data_->_tmp11__length1 = _data_->_tmp9_;
	_g_free0 (_data_->_tmp8_);
	_data_->response = _data_->_tmp11_;
	_data_->response_length1 = _data_->_tmp11__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp12_ = _data_->cmd;
	_data_->_tmp13_ = _data_->response;
	_data_->_tmp13__length1 = _data_->response_length1;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->_tmp12_, _data_->_tmp13_, _data_->_tmp13__length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimSetServiceCenterNumber* fso_gsm_at_sim_set_service_center_number_construct (GType object_type) {
	FsoGsmAtSimSetServiceCenterNumber * self = NULL;
	self = (FsoGsmAtSimSetServiceCenterNumber*) fso_gsm_sim_set_service_center_number_construct (object_type);
	return self;
}


FsoGsmAtSimSetServiceCenterNumber* fso_gsm_at_sim_set_service_center_number_new (void) {
	return fso_gsm_at_sim_set_service_center_number_construct (FSO_GSM_TYPE_AT_SIM_SET_SERVICE_CENTER_NUMBER);
}


static void fso_gsm_at_sim_set_service_center_number_class_init (FsoGsmAtSimSetServiceCenterNumberClass * klass) {
	fso_gsm_at_sim_set_service_center_number_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_SET_SERVICE_CENTER_NUMBER_CLASS (klass)->run = fso_gsm_at_sim_set_service_center_number_real_run;
	FSO_GSM_SIM_SET_SERVICE_CENTER_NUMBER_CLASS (klass)->run_finish = fso_gsm_at_sim_set_service_center_number_real_run_finish;
}


static void fso_gsm_at_sim_set_service_center_number_instance_init (FsoGsmAtSimSetServiceCenterNumber * self) {
}


GType fso_gsm_at_sim_set_service_center_number_get_type (void) {
	static volatile gsize fso_gsm_at_sim_set_service_center_number_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_set_service_center_number_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimSetServiceCenterNumberClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_set_service_center_number_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimSetServiceCenterNumber), 0, (GInstanceInitFunc) fso_gsm_at_sim_set_service_center_number_instance_init, NULL };
		GType fso_gsm_at_sim_set_service_center_number_type_id;
		fso_gsm_at_sim_set_service_center_number_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_SET_SERVICE_CENTER_NUMBER, "FsoGsmAtSimSetServiceCenterNumber", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_set_service_center_number_type_id__volatile, fso_gsm_at_sim_set_service_center_number_type_id);
	}
	return fso_gsm_at_sim_set_service_center_number_type_id__volatile;
}


static void fso_gsm_at_sim_store_message_real_run_data_free (gpointer _data) {
	FsoGsmAtSimStoreMessageRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->recipient_number);
	_g_free0 (_data_->contents);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtSimStoreMessageRunData, _data_);
}


static void fso_gsm_at_sim_store_message_real_run (FsoGsmSimStoreMessage* base, const gchar* recipient_number, const gchar* contents, gboolean want_report, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimStoreMessage * self;
	FsoGsmAtSimStoreMessageRunData* _data_;
	FsoGsmAtSimStoreMessage* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gboolean _tmp5_;
	self = (FsoGsmAtSimStoreMessage*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimStoreMessageRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_store_message_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_store_message_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = recipient_number;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->recipient_number = _tmp2_;
	_tmp3_ = contents;
	_tmp4_ = g_strdup (_tmp3_);
	_data_->contents = _tmp4_;
	_tmp5_ = want_report;
	_data_->want_report = _tmp5_;
	fso_gsm_at_sim_store_message_real_run_co (_data_);
}


static void fso_gsm_at_sim_store_message_real_run_finish (FsoGsmSimStoreMessage* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimStoreMessageRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_store_message_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimStoreMessageRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_store_message_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_store_message_real_run_co (FsoGsmAtSimStoreMessageRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->recipient_number;
	fso_gsm_validatePhoneNumber (_data_->_tmp0_, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp1_ = fso_gsm_theModem;
	_data_->_tmp2_ = fso_gsm_modem_get_smshandler (_data_->_tmp1_);
	_data_->_tmp3_ = _data_->_tmp2_;
	_data_->_tmp4_ = _data_->recipient_number;
	_data_->_tmp5_ = _data_->contents;
	_data_->_tmp6_ = _data_->want_report;
	_data_->_tmp7_ = NULL;
	_data_->_tmp7_ = fso_gsm_sms_handler_formatTextMessage (_data_->_tmp3_, _data_->_tmp4_, _data_->_tmp5_, _data_->_tmp6_);
	_data_->hexpdus = _data_->_tmp7_;
	_data_->_tmp8_ = _data_->hexpdus;
	_data_->_tmp9_ = gee_abstract_collection_get_size ((GeeCollection*) _data_->_tmp8_);
	_data_->_tmp10_ = _data_->_tmp9_;
	if (_data_->_tmp10_ != 1) {
		_data_->_tmp11_ = _data_->hexpdus;
		_data_->_tmp12_ = gee_abstract_collection_get_size ((GeeCollection*) _data_->_tmp11_);
		_data_->_tmp13_ = _data_->_tmp12_;
		_data_->_tmp14_ = NULL;
		_data_->_tmp14_ = g_strdup_printf ("%i", _data_->_tmp13_);
		_data_->_tmp15_ = _data_->_tmp14_;
		_data_->_tmp16_ = NULL;
		_data_->_tmp16_ = g_strconcat ("Message does not fit in one slot, would rather take ", _data_->_tmp15_, " slots", NULL);
		_data_->_tmp17_ = _data_->_tmp16_;
		_data_->_tmp18_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_INVALID_PARAMETER, _data_->_tmp17_);
		_data_->_tmp19_ = _data_->_tmp18_;
		_g_free0 (_data_->_tmp17_);
		_g_free0 (_data_->_tmp15_);
		_data_->_inner_error_ = _data_->_tmp19_;
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_g_object_unref0 (_data_->hexpdus);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_g_object_unref0 (_data_->hexpdus);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	{
		_data_->_tmp20_ = _data_->hexpdus;
		_data_->_tmp21_ = _g_object_ref0 (_data_->_tmp20_);
		_data_->_hexpdu_list = _data_->_tmp21_;
		_data_->_tmp22_ = _data_->_hexpdu_list;
		_data_->_tmp23_ = gee_abstract_collection_get_size ((GeeCollection*) _data_->_tmp22_);
		_data_->_tmp24_ = _data_->_tmp23_;
		_data_->_hexpdu_size = _data_->_tmp24_;
		_data_->_hexpdu_index = -1;
		while (TRUE) {
			_data_->_tmp25_ = _data_->_hexpdu_index;
			_data_->_hexpdu_index = _data_->_tmp25_ + 1;
			_data_->_tmp26_ = _data_->_hexpdu_index;
			_data_->_tmp27_ = _data_->_hexpdu_size;
			if (!(_data_->_tmp26_ < _data_->_tmp27_)) {
				break;
			}
			_data_->_tmp28_ = _data_->_hexpdu_list;
			_data_->_tmp29_ = _data_->_hexpdu_index;
			_data_->_tmp30_ = NULL;
			_data_->_tmp30_ = gee_abstract_list_get ((GeeAbstractList*) _data_->_tmp28_, _data_->_tmp29_);
			_data_->hexpdu = (WrapHexPdu*) _data_->_tmp30_;
			_data_->_tmp31_ = fso_gsm_theModem;
			_data_->_tmp32_ = NULL;
			_data_->_tmp32_ = fso_gsm_modem_createAtCommand (_data_->_tmp31_, FSO_GSM_TYPE_PLUS_CMGW, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CMGW");
			_data_->cmd = (FsoGsmPlusCMGW*) _data_->_tmp32_;
			_data_->_tmp33_ = fso_gsm_theModem;
			_data_->_tmp34_ = _data_->cmd;
			_data_->_tmp35_ = _data_->cmd;
			_data_->_tmp36_ = _data_->hexpdu;
			_data_->_tmp37_ = NULL;
			_data_->_tmp37_ = fso_gsm_plus_cmgw_issue (_data_->_tmp35_, _data_->_tmp36_);
			_data_->_tmp38_ = _data_->_tmp37_;
			_data_->_tmp39_ = 0;
			_data_->_state_ = 1;
			fso_gsm_modem_processAtPduCommandAsync (_data_->_tmp33_, (FsoGsmAtCommand*) _data_->_tmp34_, _data_->_tmp38_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_store_message_run_ready, _data_);
			return FALSE;
			_state_1:
			_data_->_tmp40_ = NULL;
			_data_->_tmp40_ = fso_gsm_modem_processAtPduCommandAsync_finish (_data_->_tmp33_, _data_->_res_, &_data_->_tmp39_);
			_data_->_tmp41_ = _data_->_tmp40_;
			_data_->_tmp41__length1 = _data_->_tmp39_;
			_g_free0 (_data_->_tmp38_);
			_data_->response = _data_->_tmp41_;
			_data_->response_length1 = _data_->_tmp41__length1;
			_data_->_response_size_ = _data_->response_length1;
			_data_->_tmp42_ = _data_->cmd;
			_data_->_tmp43_ = _data_->response;
			_data_->_tmp43__length1 = _data_->response_length1;
			fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->_tmp42_, _data_->_tmp43_, _data_->_tmp43__length1, &_data_->_inner_error_);
			if (_data_->_inner_error_ != NULL) {
				if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
					g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
					g_error_free (_data_->_inner_error_);
					_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
					_g_object_unref0 (_data_->cmd);
					_wrap_hex_pdu_unref0 (_data_->hexpdu);
					_g_object_unref0 (_data_->_hexpdu_list);
					_g_object_unref0 (_data_->hexpdus);
					if (_data_->_state_ == 0) {
						g_simple_async_result_complete_in_idle (_data_->_async_result);
					} else {
						g_simple_async_result_complete (_data_->_async_result);
					}
					g_object_unref (_data_->_async_result);
					return FALSE;
				} else {
					_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
					_g_object_unref0 (_data_->cmd);
					_wrap_hex_pdu_unref0 (_data_->hexpdu);
					_g_object_unref0 (_data_->_hexpdu_list);
					_g_object_unref0 (_data_->hexpdus);
					g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
					g_clear_error (&_data_->_inner_error_);
					return FALSE;
				}
			}
			_data_->_tmp44_ = _data_->cmd;
			_data_->_tmp45_ = _data_->_tmp44_->memory_index;
			fso_gsm_sim_store_message_set_memory_index ((FsoGsmSimStoreMessage*) _data_->self, _data_->_tmp45_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			_wrap_hex_pdu_unref0 (_data_->hexpdu);
		}
		_g_object_unref0 (_data_->_hexpdu_list);
	}
	_g_object_unref0 (_data_->hexpdus);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimStoreMessage* fso_gsm_at_sim_store_message_construct (GType object_type) {
	FsoGsmAtSimStoreMessage * self = NULL;
	self = (FsoGsmAtSimStoreMessage*) fso_gsm_sim_store_message_construct (object_type);
	return self;
}


FsoGsmAtSimStoreMessage* fso_gsm_at_sim_store_message_new (void) {
	return fso_gsm_at_sim_store_message_construct (FSO_GSM_TYPE_AT_SIM_STORE_MESSAGE);
}


static void fso_gsm_at_sim_store_message_class_init (FsoGsmAtSimStoreMessageClass * klass) {
	fso_gsm_at_sim_store_message_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_STORE_MESSAGE_CLASS (klass)->run = fso_gsm_at_sim_store_message_real_run;
	FSO_GSM_SIM_STORE_MESSAGE_CLASS (klass)->run_finish = fso_gsm_at_sim_store_message_real_run_finish;
}


static void fso_gsm_at_sim_store_message_instance_init (FsoGsmAtSimStoreMessage * self) {
}


GType fso_gsm_at_sim_store_message_get_type (void) {
	static volatile gsize fso_gsm_at_sim_store_message_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_store_message_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimStoreMessageClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_store_message_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimStoreMessage), 0, (GInstanceInitFunc) fso_gsm_at_sim_store_message_instance_init, NULL };
		GType fso_gsm_at_sim_store_message_type_id;
		fso_gsm_at_sim_store_message_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_STORE_MESSAGE, "FsoGsmAtSimStoreMessage", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_store_message_type_id__volatile, fso_gsm_at_sim_store_message_type_id);
	}
	return fso_gsm_at_sim_store_message_type_id__volatile;
}


static void fso_gsm_at_sim_unlock_real_run_data_free (gpointer _data) {
	FsoGsmAtSimUnlockRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->puk);
	_g_free0 (_data_->newpin);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtSimUnlockRunData, _data_);
}


static void fso_gsm_at_sim_unlock_real_run (FsoGsmSimUnlock* base, const gchar* puk, const gchar* newpin, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimUnlock * self;
	FsoGsmAtSimUnlockRunData* _data_;
	FsoGsmAtSimUnlock* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	self = (FsoGsmAtSimUnlock*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimUnlockRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_unlock_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_unlock_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = puk;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->puk = _tmp2_;
	_tmp3_ = newpin;
	_tmp4_ = g_strdup (_tmp3_);
	_data_->newpin = _tmp4_;
	fso_gsm_at_sim_unlock_real_run_co (_data_);
}


static void fso_gsm_at_sim_unlock_real_run_finish (FsoGsmSimUnlock* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimUnlockRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_unlock_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimUnlockRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_unlock_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_unlock_real_run_co (FsoGsmAtSimUnlockRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CPIN, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CPIN");
	_data_->cmd = (FsoGsmPlusCPIN*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->puk;
	_data_->_tmp4_ = _data_->newpin;
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = fso_gsm_plus_cpin_issue (_data_->cmd, _data_->_tmp3_, _data_->_tmp4_);
	_data_->_tmp6_ = _data_->_tmp5_;
	_data_->_tmp7_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp6_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_unlock_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp8_ = NULL;
	_data_->_tmp8_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp7_);
	_data_->_tmp9_ = _data_->_tmp8_;
	_data_->_tmp9__length1 = _data_->_tmp7_;
	_g_free0 (_data_->_tmp6_);
	_data_->response = _data_->_tmp9_;
	_data_->response_length1 = _data_->_tmp9__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimUnlock* fso_gsm_at_sim_unlock_construct (GType object_type) {
	FsoGsmAtSimUnlock * self = NULL;
	self = (FsoGsmAtSimUnlock*) fso_gsm_sim_unlock_construct (object_type);
	return self;
}


FsoGsmAtSimUnlock* fso_gsm_at_sim_unlock_new (void) {
	return fso_gsm_at_sim_unlock_construct (FSO_GSM_TYPE_AT_SIM_UNLOCK);
}


static void fso_gsm_at_sim_unlock_class_init (FsoGsmAtSimUnlockClass * klass) {
	fso_gsm_at_sim_unlock_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_UNLOCK_CLASS (klass)->run = fso_gsm_at_sim_unlock_real_run;
	FSO_GSM_SIM_UNLOCK_CLASS (klass)->run_finish = fso_gsm_at_sim_unlock_real_run_finish;
}


static void fso_gsm_at_sim_unlock_instance_init (FsoGsmAtSimUnlock * self) {
}


GType fso_gsm_at_sim_unlock_get_type (void) {
	static volatile gsize fso_gsm_at_sim_unlock_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_unlock_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimUnlockClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_unlock_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimUnlock), 0, (GInstanceInitFunc) fso_gsm_at_sim_unlock_instance_init, NULL };
		GType fso_gsm_at_sim_unlock_type_id;
		fso_gsm_at_sim_unlock_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_UNLOCK, "FsoGsmAtSimUnlock", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_unlock_type_id__volatile, fso_gsm_at_sim_unlock_type_id);
	}
	return fso_gsm_at_sim_unlock_type_id__volatile;
}


static void fso_gsm_at_sim_write_entry_real_run_data_free (gpointer _data) {
	FsoGsmAtSimWriteEntryRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->category);
	_g_free0 (_data_->number);
	_g_free0 (_data_->name);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtSimWriteEntryRunData, _data_);
}


static void fso_gsm_at_sim_write_entry_real_run (FsoGsmSimWriteEntry* base, const gchar* category, gint index, const gchar* number, const gchar* name, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtSimWriteEntry * self;
	FsoGsmAtSimWriteEntryRunData* _data_;
	FsoGsmAtSimWriteEntry* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	gint _tmp3_;
	const gchar* _tmp4_;
	gchar* _tmp5_;
	const gchar* _tmp6_;
	gchar* _tmp7_;
	self = (FsoGsmAtSimWriteEntry*) base;
	_data_ = g_slice_new0 (FsoGsmAtSimWriteEntryRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_sim_write_entry_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_sim_write_entry_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = category;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->category = _tmp2_;
	_tmp3_ = index;
	_data_->index = _tmp3_;
	_tmp4_ = number;
	_tmp5_ = g_strdup (_tmp4_);
	_data_->number = _tmp5_;
	_tmp6_ = name;
	_tmp7_ = g_strdup (_tmp6_);
	_data_->name = _tmp7_;
	fso_gsm_at_sim_write_entry_real_run_co (_data_);
}


static void fso_gsm_at_sim_write_entry_real_run_finish (FsoGsmSimWriteEntry* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtSimWriteEntryRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void fso_gsm_at_sim_write_entry_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtSimWriteEntryRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_sim_write_entry_real_run_co (_data_);
}


static gboolean fso_gsm_at_sim_write_entry_real_run_co (FsoGsmAtSimWriteEntryRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = NULL;
	_data_->_tmp0_ = fso_gsm_constants_instance ();
	_data_->_tmp1_ = _data_->_tmp0_;
	_data_->_tmp2_ = _data_->category;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_constants_simPhonebookStringToCode (_data_->_tmp1_, _data_->_tmp2_);
	_data_->_tmp4_ = _data_->_tmp3_;
	_fso_gsm_constants_unref0 (_data_->_tmp1_);
	_data_->cat = _data_->_tmp4_;
	_data_->_tmp5_ = _data_->cat;
	if (g_strcmp0 (_data_->_tmp5_, "") == 0) {
		_data_->_tmp6_ = g_error_new_literal (FREE_SMARTPHONE_ERROR, FREE_SMARTPHONE_ERROR_INVALID_PARAMETER, "Invalid category");
		_data_->_inner_error_ = _data_->_tmp6_;
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_g_free0 (_data_->cat);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_g_free0 (_data_->cat);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp7_ = fso_gsm_theModem;
	_data_->_tmp8_ = NULL;
	_data_->_tmp8_ = fso_gsm_modem_createAtCommand (_data_->_tmp7_, FSO_GSM_TYPE_PLUS_CPBW, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CPBW");
	_data_->cmd = (FsoGsmPlusCPBW*) _data_->_tmp8_;
	_data_->_tmp9_ = fso_gsm_theModem;
	_data_->_tmp10_ = _data_->cat;
	_data_->_tmp11_ = _data_->index;
	_data_->_tmp12_ = _data_->number;
	_data_->_tmp13_ = _data_->name;
	_data_->_tmp14_ = NULL;
	_data_->_tmp14_ = fso_gsm_plus_cpbw_issue (_data_->cmd, _data_->_tmp10_, _data_->_tmp11_, _data_->_tmp12_, _data_->_tmp13_);
	_data_->_tmp15_ = _data_->_tmp14_;
	_data_->_tmp16_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp9_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp15_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_sim_write_entry_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp17_ = NULL;
	_data_->_tmp17_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp9_, _data_->_res_, &_data_->_tmp16_);
	_data_->_tmp18_ = _data_->_tmp17_;
	_data_->_tmp18__length1 = _data_->_tmp16_;
	_g_free0 (_data_->_tmp15_);
	_data_->response = _data_->_tmp18_;
	_data_->response_length1 = _data_->_tmp18__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			_g_free0 (_data_->cat);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			_g_free0 (_data_->cat);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	_g_free0 (_data_->cat);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


FsoGsmAtSimWriteEntry* fso_gsm_at_sim_write_entry_construct (GType object_type) {
	FsoGsmAtSimWriteEntry * self = NULL;
	self = (FsoGsmAtSimWriteEntry*) fso_gsm_sim_write_entry_construct (object_type);
	return self;
}


FsoGsmAtSimWriteEntry* fso_gsm_at_sim_write_entry_new (void) {
	return fso_gsm_at_sim_write_entry_construct (FSO_GSM_TYPE_AT_SIM_WRITE_ENTRY);
}


static void fso_gsm_at_sim_write_entry_class_init (FsoGsmAtSimWriteEntryClass * klass) {
	fso_gsm_at_sim_write_entry_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_SIM_WRITE_ENTRY_CLASS (klass)->run = fso_gsm_at_sim_write_entry_real_run;
	FSO_GSM_SIM_WRITE_ENTRY_CLASS (klass)->run_finish = fso_gsm_at_sim_write_entry_real_run_finish;
}


static void fso_gsm_at_sim_write_entry_instance_init (FsoGsmAtSimWriteEntry * self) {
}


GType fso_gsm_at_sim_write_entry_get_type (void) {
	static volatile gsize fso_gsm_at_sim_write_entry_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_sim_write_entry_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtSimWriteEntryClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_sim_write_entry_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtSimWriteEntry), 0, (GInstanceInitFunc) fso_gsm_at_sim_write_entry_instance_init, NULL };
		GType fso_gsm_at_sim_write_entry_type_id;
		fso_gsm_at_sim_write_entry_type_id = g_type_register_static (FSO_GSM_TYPE_SIM_WRITE_ENTRY, "FsoGsmAtSimWriteEntry", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_sim_write_entry_type_id__volatile, fso_gsm_at_sim_write_entry_type_id);
	}
	return fso_gsm_at_sim_write_entry_type_id__volatile;
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int 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, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}



