/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: LocalStorageProtocol.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "LocalStorageProtocol.pb-c.h"
void   textsecure__session_structure__chain__chain_key__init
                     (Textsecure__SessionStructure__Chain__ChainKey         *message)
{
  static Textsecure__SessionStructure__Chain__ChainKey init_value = TEXTSECURE__SESSION_STRUCTURE__CHAIN__CHAIN_KEY__INIT;
  *message = init_value;
}
void   textsecure__session_structure__chain__message_key__init
                     (Textsecure__SessionStructure__Chain__MessageKey         *message)
{
  static Textsecure__SessionStructure__Chain__MessageKey init_value = TEXTSECURE__SESSION_STRUCTURE__CHAIN__MESSAGE_KEY__INIT;
  *message = init_value;
}
void   textsecure__session_structure__chain__init
                     (Textsecure__SessionStructure__Chain         *message)
{
  static Textsecure__SessionStructure__Chain init_value = TEXTSECURE__SESSION_STRUCTURE__CHAIN__INIT;
  *message = init_value;
}
void   textsecure__session_structure__pending_key_exchange__init
                     (Textsecure__SessionStructure__PendingKeyExchange         *message)
{
  static Textsecure__SessionStructure__PendingKeyExchange init_value = TEXTSECURE__SESSION_STRUCTURE__PENDING_KEY_EXCHANGE__INIT;
  *message = init_value;
}
void   textsecure__session_structure__pending_pre_key__init
                     (Textsecure__SessionStructure__PendingPreKey         *message)
{
  static Textsecure__SessionStructure__PendingPreKey init_value = TEXTSECURE__SESSION_STRUCTURE__PENDING_PRE_KEY__INIT;
  *message = init_value;
}
void   textsecure__session_structure__init
                     (Textsecure__SessionStructure         *message)
{
  static Textsecure__SessionStructure init_value = TEXTSECURE__SESSION_STRUCTURE__INIT;
  *message = init_value;
}
size_t textsecure__session_structure__get_packed_size
                     (const Textsecure__SessionStructure *message)
{
  assert(message->base.descriptor == &textsecure__session_structure__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t textsecure__session_structure__pack
                     (const Textsecure__SessionStructure *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &textsecure__session_structure__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t textsecure__session_structure__pack_to_buffer
                     (const Textsecure__SessionStructure *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &textsecure__session_structure__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Textsecure__SessionStructure *
       textsecure__session_structure__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Textsecure__SessionStructure *)
     protobuf_c_message_unpack (&textsecure__session_structure__descriptor,
                                allocator, len, data);
}
void   textsecure__session_structure__free_unpacked
                     (Textsecure__SessionStructure *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &textsecure__session_structure__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   textsecure__record_structure__init
                     (Textsecure__RecordStructure         *message)
{
  static Textsecure__RecordStructure init_value = TEXTSECURE__RECORD_STRUCTURE__INIT;
  *message = init_value;
}
size_t textsecure__record_structure__get_packed_size
                     (const Textsecure__RecordStructure *message)
{
  assert(message->base.descriptor == &textsecure__record_structure__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t textsecure__record_structure__pack
                     (const Textsecure__RecordStructure *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &textsecure__record_structure__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t textsecure__record_structure__pack_to_buffer
                     (const Textsecure__RecordStructure *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &textsecure__record_structure__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Textsecure__RecordStructure *
       textsecure__record_structure__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Textsecure__RecordStructure *)
     protobuf_c_message_unpack (&textsecure__record_structure__descriptor,
                                allocator, len, data);
}
void   textsecure__record_structure__free_unpacked
                     (Textsecure__RecordStructure *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &textsecure__record_structure__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   textsecure__pre_key_record_structure__init
                     (Textsecure__PreKeyRecordStructure         *message)
{
  static Textsecure__PreKeyRecordStructure init_value = TEXTSECURE__PRE_KEY_RECORD_STRUCTURE__INIT;
  *message = init_value;
}
size_t textsecure__pre_key_record_structure__get_packed_size
                     (const Textsecure__PreKeyRecordStructure *message)
{
  assert(message->base.descriptor == &textsecure__pre_key_record_structure__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t textsecure__pre_key_record_structure__pack
                     (const Textsecure__PreKeyRecordStructure *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &textsecure__pre_key_record_structure__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t textsecure__pre_key_record_structure__pack_to_buffer
                     (const Textsecure__PreKeyRecordStructure *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &textsecure__pre_key_record_structure__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Textsecure__PreKeyRecordStructure *
       textsecure__pre_key_record_structure__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Textsecure__PreKeyRecordStructure *)
     protobuf_c_message_unpack (&textsecure__pre_key_record_structure__descriptor,
                                allocator, len, data);
}
void   textsecure__pre_key_record_structure__free_unpacked
                     (Textsecure__PreKeyRecordStructure *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &textsecure__pre_key_record_structure__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   textsecure__signed_pre_key_record_structure__init
                     (Textsecure__SignedPreKeyRecordStructure         *message)
{
  static Textsecure__SignedPreKeyRecordStructure init_value = TEXTSECURE__SIGNED_PRE_KEY_RECORD_STRUCTURE__INIT;
  *message = init_value;
}
size_t textsecure__signed_pre_key_record_structure__get_packed_size
                     (const Textsecure__SignedPreKeyRecordStructure *message)
{
  assert(message->base.descriptor == &textsecure__signed_pre_key_record_structure__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t textsecure__signed_pre_key_record_structure__pack
                     (const Textsecure__SignedPreKeyRecordStructure *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &textsecure__signed_pre_key_record_structure__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t textsecure__signed_pre_key_record_structure__pack_to_buffer
                     (const Textsecure__SignedPreKeyRecordStructure *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &textsecure__signed_pre_key_record_structure__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Textsecure__SignedPreKeyRecordStructure *
       textsecure__signed_pre_key_record_structure__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Textsecure__SignedPreKeyRecordStructure *)
     protobuf_c_message_unpack (&textsecure__signed_pre_key_record_structure__descriptor,
                                allocator, len, data);
}
void   textsecure__signed_pre_key_record_structure__free_unpacked
                     (Textsecure__SignedPreKeyRecordStructure *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &textsecure__signed_pre_key_record_structure__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   textsecure__identity_key_pair_structure__init
                     (Textsecure__IdentityKeyPairStructure         *message)
{
  static Textsecure__IdentityKeyPairStructure init_value = TEXTSECURE__IDENTITY_KEY_PAIR_STRUCTURE__INIT;
  *message = init_value;
}
size_t textsecure__identity_key_pair_structure__get_packed_size
                     (const Textsecure__IdentityKeyPairStructure *message)
{
  assert(message->base.descriptor == &textsecure__identity_key_pair_structure__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t textsecure__identity_key_pair_structure__pack
                     (const Textsecure__IdentityKeyPairStructure *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &textsecure__identity_key_pair_structure__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t textsecure__identity_key_pair_structure__pack_to_buffer
                     (const Textsecure__IdentityKeyPairStructure *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &textsecure__identity_key_pair_structure__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Textsecure__IdentityKeyPairStructure *
       textsecure__identity_key_pair_structure__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Textsecure__IdentityKeyPairStructure *)
     protobuf_c_message_unpack (&textsecure__identity_key_pair_structure__descriptor,
                                allocator, len, data);
}
void   textsecure__identity_key_pair_structure__free_unpacked
                     (Textsecure__IdentityKeyPairStructure *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &textsecure__identity_key_pair_structure__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   textsecure__sender_key_state_structure__sender_chain_key__init
                     (Textsecure__SenderKeyStateStructure__SenderChainKey         *message)
{
  static Textsecure__SenderKeyStateStructure__SenderChainKey init_value = TEXTSECURE__SENDER_KEY_STATE_STRUCTURE__SENDER_CHAIN_KEY__INIT;
  *message = init_value;
}
void   textsecure__sender_key_state_structure__sender_message_key__init
                     (Textsecure__SenderKeyStateStructure__SenderMessageKey         *message)
{
  static Textsecure__SenderKeyStateStructure__SenderMessageKey init_value = TEXTSECURE__SENDER_KEY_STATE_STRUCTURE__SENDER_MESSAGE_KEY__INIT;
  *message = init_value;
}
void   textsecure__sender_key_state_structure__sender_signing_key__init
                     (Textsecure__SenderKeyStateStructure__SenderSigningKey         *message)
{
  static Textsecure__SenderKeyStateStructure__SenderSigningKey init_value = TEXTSECURE__SENDER_KEY_STATE_STRUCTURE__SENDER_SIGNING_KEY__INIT;
  *message = init_value;
}
void   textsecure__sender_key_state_structure__init
                     (Textsecure__SenderKeyStateStructure         *message)
{
  static Textsecure__SenderKeyStateStructure init_value = TEXTSECURE__SENDER_KEY_STATE_STRUCTURE__INIT;
  *message = init_value;
}
size_t textsecure__sender_key_state_structure__get_packed_size
                     (const Textsecure__SenderKeyStateStructure *message)
{
  assert(message->base.descriptor == &textsecure__sender_key_state_structure__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t textsecure__sender_key_state_structure__pack
                     (const Textsecure__SenderKeyStateStructure *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &textsecure__sender_key_state_structure__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t textsecure__sender_key_state_structure__pack_to_buffer
                     (const Textsecure__SenderKeyStateStructure *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &textsecure__sender_key_state_structure__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Textsecure__SenderKeyStateStructure *
       textsecure__sender_key_state_structure__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Textsecure__SenderKeyStateStructure *)
     protobuf_c_message_unpack (&textsecure__sender_key_state_structure__descriptor,
                                allocator, len, data);
}
void   textsecure__sender_key_state_structure__free_unpacked
                     (Textsecure__SenderKeyStateStructure *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &textsecure__sender_key_state_structure__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   textsecure__sender_key_record_structure__init
                     (Textsecure__SenderKeyRecordStructure         *message)
{
  static Textsecure__SenderKeyRecordStructure init_value = TEXTSECURE__SENDER_KEY_RECORD_STRUCTURE__INIT;
  *message = init_value;
}
size_t textsecure__sender_key_record_structure__get_packed_size
                     (const Textsecure__SenderKeyRecordStructure *message)
{
  assert(message->base.descriptor == &textsecure__sender_key_record_structure__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t textsecure__sender_key_record_structure__pack
                     (const Textsecure__SenderKeyRecordStructure *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &textsecure__sender_key_record_structure__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t textsecure__sender_key_record_structure__pack_to_buffer
                     (const Textsecure__SenderKeyRecordStructure *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &textsecure__sender_key_record_structure__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Textsecure__SenderKeyRecordStructure *
       textsecure__sender_key_record_structure__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Textsecure__SenderKeyRecordStructure *)
     protobuf_c_message_unpack (&textsecure__sender_key_record_structure__descriptor,
                                allocator, len, data);
}
void   textsecure__sender_key_record_structure__free_unpacked
                     (Textsecure__SenderKeyRecordStructure *message,
                      ProtobufCAllocator *allocator)
{
  assert(message->base.descriptor == &textsecure__sender_key_record_structure__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor textsecure__session_structure__chain__chain_key__field_descriptors[2] =
{
  {
    "index",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SessionStructure__Chain__ChainKey, has_index),
    offsetof(Textsecure__SessionStructure__Chain__ChainKey, index),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "key",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__Chain__ChainKey, has_key),
    offsetof(Textsecure__SessionStructure__Chain__ChainKey, key),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__session_structure__chain__chain_key__field_indices_by_name[] = {
  0,   /* field[0] = index */
  1,   /* field[1] = key */
};
static const ProtobufCIntRange textsecure__session_structure__chain__chain_key__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor textsecure__session_structure__chain__chain_key__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SessionStructure.Chain.ChainKey",
  "ChainKey",
  "Textsecure__SessionStructure__Chain__ChainKey",
  "textsecure",
  sizeof(Textsecure__SessionStructure__Chain__ChainKey),
  2,
  textsecure__session_structure__chain__chain_key__field_descriptors,
  textsecure__session_structure__chain__chain_key__field_indices_by_name,
  1,  textsecure__session_structure__chain__chain_key__number_ranges,
  (ProtobufCMessageInit) textsecure__session_structure__chain__chain_key__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__session_structure__chain__message_key__field_descriptors[4] =
{
  {
    "index",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SessionStructure__Chain__MessageKey, has_index),
    offsetof(Textsecure__SessionStructure__Chain__MessageKey, index),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "cipherKey",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__Chain__MessageKey, has_cipherkey),
    offsetof(Textsecure__SessionStructure__Chain__MessageKey, cipherkey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "macKey",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__Chain__MessageKey, has_mackey),
    offsetof(Textsecure__SessionStructure__Chain__MessageKey, mackey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "iv",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__Chain__MessageKey, has_iv),
    offsetof(Textsecure__SessionStructure__Chain__MessageKey, iv),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__session_structure__chain__message_key__field_indices_by_name[] = {
  1,   /* field[1] = cipherKey */
  0,   /* field[0] = index */
  3,   /* field[3] = iv */
  2,   /* field[2] = macKey */
};
static const ProtobufCIntRange textsecure__session_structure__chain__message_key__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor textsecure__session_structure__chain__message_key__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SessionStructure.Chain.MessageKey",
  "MessageKey",
  "Textsecure__SessionStructure__Chain__MessageKey",
  "textsecure",
  sizeof(Textsecure__SessionStructure__Chain__MessageKey),
  4,
  textsecure__session_structure__chain__message_key__field_descriptors,
  textsecure__session_structure__chain__message_key__field_indices_by_name,
  1,  textsecure__session_structure__chain__message_key__number_ranges,
  (ProtobufCMessageInit) textsecure__session_structure__chain__message_key__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__session_structure__chain__field_descriptors[4] =
{
  {
    "senderRatchetKey",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__Chain, has_senderratchetkey),
    offsetof(Textsecure__SessionStructure__Chain, senderratchetkey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "senderRatchetKeyPrivate",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__Chain, has_senderratchetkeyprivate),
    offsetof(Textsecure__SessionStructure__Chain, senderratchetkeyprivate),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "chainKey",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Textsecure__SessionStructure__Chain, chainkey),
    &textsecure__session_structure__chain__chain_key__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "messageKeys",
    4,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Textsecure__SessionStructure__Chain, n_messagekeys),
    offsetof(Textsecure__SessionStructure__Chain, messagekeys),
    &textsecure__session_structure__chain__message_key__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__session_structure__chain__field_indices_by_name[] = {
  2,   /* field[2] = chainKey */
  3,   /* field[3] = messageKeys */
  0,   /* field[0] = senderRatchetKey */
  1,   /* field[1] = senderRatchetKeyPrivate */
};
static const ProtobufCIntRange textsecure__session_structure__chain__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor textsecure__session_structure__chain__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SessionStructure.Chain",
  "Chain",
  "Textsecure__SessionStructure__Chain",
  "textsecure",
  sizeof(Textsecure__SessionStructure__Chain),
  4,
  textsecure__session_structure__chain__field_descriptors,
  textsecure__session_structure__chain__field_indices_by_name,
  1,  textsecure__session_structure__chain__number_ranges,
  (ProtobufCMessageInit) textsecure__session_structure__chain__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__session_structure__pending_key_exchange__field_descriptors[7] =
{
  {
    "sequence",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, has_sequence),
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, sequence),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "localBaseKey",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, has_localbasekey),
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, localbasekey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "localBaseKeyPrivate",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, has_localbasekeyprivate),
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, localbasekeyprivate),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "localRatchetKey",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, has_localratchetkey),
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, localratchetkey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "localRatchetKeyPrivate",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, has_localratchetkeyprivate),
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, localratchetkeyprivate),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "localIdentityKey",
    7,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, has_localidentitykey),
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, localidentitykey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "localIdentityKeyPrivate",
    8,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, has_localidentitykeyprivate),
    offsetof(Textsecure__SessionStructure__PendingKeyExchange, localidentitykeyprivate),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__session_structure__pending_key_exchange__field_indices_by_name[] = {
  1,   /* field[1] = localBaseKey */
  2,   /* field[2] = localBaseKeyPrivate */
  5,   /* field[5] = localIdentityKey */
  6,   /* field[6] = localIdentityKeyPrivate */
  3,   /* field[3] = localRatchetKey */
  4,   /* field[4] = localRatchetKeyPrivate */
  0,   /* field[0] = sequence */
};
static const ProtobufCIntRange textsecure__session_structure__pending_key_exchange__number_ranges[2 + 1] =
{
  { 1, 0 },
  { 7, 5 },
  { 0, 7 }
};
const ProtobufCMessageDescriptor textsecure__session_structure__pending_key_exchange__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SessionStructure.PendingKeyExchange",
  "PendingKeyExchange",
  "Textsecure__SessionStructure__PendingKeyExchange",
  "textsecure",
  sizeof(Textsecure__SessionStructure__PendingKeyExchange),
  7,
  textsecure__session_structure__pending_key_exchange__field_descriptors,
  textsecure__session_structure__pending_key_exchange__field_indices_by_name,
  2,  textsecure__session_structure__pending_key_exchange__number_ranges,
  (ProtobufCMessageInit) textsecure__session_structure__pending_key_exchange__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__session_structure__pending_pre_key__field_descriptors[3] =
{
  {
    "preKeyId",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SessionStructure__PendingPreKey, has_prekeyid),
    offsetof(Textsecure__SessionStructure__PendingPreKey, prekeyid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "baseKey",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure__PendingPreKey, has_basekey),
    offsetof(Textsecure__SessionStructure__PendingPreKey, basekey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "signedPreKeyId",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_INT32,
    offsetof(Textsecure__SessionStructure__PendingPreKey, has_signedprekeyid),
    offsetof(Textsecure__SessionStructure__PendingPreKey, signedprekeyid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__session_structure__pending_pre_key__field_indices_by_name[] = {
  1,   /* field[1] = baseKey */
  0,   /* field[0] = preKeyId */
  2,   /* field[2] = signedPreKeyId */
};
static const ProtobufCIntRange textsecure__session_structure__pending_pre_key__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor textsecure__session_structure__pending_pre_key__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SessionStructure.PendingPreKey",
  "PendingPreKey",
  "Textsecure__SessionStructure__PendingPreKey",
  "textsecure",
  sizeof(Textsecure__SessionStructure__PendingPreKey),
  3,
  textsecure__session_structure__pending_pre_key__field_descriptors,
  textsecure__session_structure__pending_pre_key__field_indices_by_name,
  1,  textsecure__session_structure__pending_pre_key__number_ranges,
  (ProtobufCMessageInit) textsecure__session_structure__pending_pre_key__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__session_structure__field_descriptors[13] =
{
  {
    "sessionVersion",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SessionStructure, has_sessionversion),
    offsetof(Textsecure__SessionStructure, sessionversion),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "localIdentityPublic",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure, has_localidentitypublic),
    offsetof(Textsecure__SessionStructure, localidentitypublic),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "remoteIdentityPublic",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure, has_remoteidentitypublic),
    offsetof(Textsecure__SessionStructure, remoteidentitypublic),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "rootKey",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure, has_rootkey),
    offsetof(Textsecure__SessionStructure, rootkey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "previousCounter",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SessionStructure, has_previouscounter),
    offsetof(Textsecure__SessionStructure, previouscounter),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "senderChain",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Textsecure__SessionStructure, senderchain),
    &textsecure__session_structure__chain__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "receiverChains",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Textsecure__SessionStructure, n_receiverchains),
    offsetof(Textsecure__SessionStructure, receiverchains),
    &textsecure__session_structure__chain__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "pendingKeyExchange",
    8,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Textsecure__SessionStructure, pendingkeyexchange),
    &textsecure__session_structure__pending_key_exchange__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "pendingPreKey",
    9,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Textsecure__SessionStructure, pendingprekey),
    &textsecure__session_structure__pending_pre_key__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "remoteRegistrationId",
    10,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SessionStructure, has_remoteregistrationid),
    offsetof(Textsecure__SessionStructure, remoteregistrationid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "localRegistrationId",
    11,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SessionStructure, has_localregistrationid),
    offsetof(Textsecure__SessionStructure, localregistrationid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "needsRefresh",
    12,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(Textsecure__SessionStructure, has_needsrefresh),
    offsetof(Textsecure__SessionStructure, needsrefresh),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "aliceBaseKey",
    13,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SessionStructure, has_alicebasekey),
    offsetof(Textsecure__SessionStructure, alicebasekey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__session_structure__field_indices_by_name[] = {
  12,   /* field[12] = aliceBaseKey */
  1,   /* field[1] = localIdentityPublic */
  10,   /* field[10] = localRegistrationId */
  11,   /* field[11] = needsRefresh */
  7,   /* field[7] = pendingKeyExchange */
  8,   /* field[8] = pendingPreKey */
  4,   /* field[4] = previousCounter */
  6,   /* field[6] = receiverChains */
  2,   /* field[2] = remoteIdentityPublic */
  9,   /* field[9] = remoteRegistrationId */
  3,   /* field[3] = rootKey */
  5,   /* field[5] = senderChain */
  0,   /* field[0] = sessionVersion */
};
static const ProtobufCIntRange textsecure__session_structure__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 13 }
};
const ProtobufCMessageDescriptor textsecure__session_structure__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SessionStructure",
  "SessionStructure",
  "Textsecure__SessionStructure",
  "textsecure",
  sizeof(Textsecure__SessionStructure),
  13,
  textsecure__session_structure__field_descriptors,
  textsecure__session_structure__field_indices_by_name,
  1,  textsecure__session_structure__number_ranges,
  (ProtobufCMessageInit) textsecure__session_structure__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__record_structure__field_descriptors[2] =
{
  {
    "currentSession",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Textsecure__RecordStructure, currentsession),
    &textsecure__session_structure__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "previousSessions",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Textsecure__RecordStructure, n_previoussessions),
    offsetof(Textsecure__RecordStructure, previoussessions),
    &textsecure__session_structure__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__record_structure__field_indices_by_name[] = {
  0,   /* field[0] = currentSession */
  1,   /* field[1] = previousSessions */
};
static const ProtobufCIntRange textsecure__record_structure__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor textsecure__record_structure__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.RecordStructure",
  "RecordStructure",
  "Textsecure__RecordStructure",
  "textsecure",
  sizeof(Textsecure__RecordStructure),
  2,
  textsecure__record_structure__field_descriptors,
  textsecure__record_structure__field_indices_by_name,
  1,  textsecure__record_structure__number_ranges,
  (ProtobufCMessageInit) textsecure__record_structure__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__pre_key_record_structure__field_descriptors[3] =
{
  {
    "id",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__PreKeyRecordStructure, has_id),
    offsetof(Textsecure__PreKeyRecordStructure, id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "publicKey",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__PreKeyRecordStructure, has_publickey),
    offsetof(Textsecure__PreKeyRecordStructure, publickey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "privateKey",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__PreKeyRecordStructure, has_privatekey),
    offsetof(Textsecure__PreKeyRecordStructure, privatekey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__pre_key_record_structure__field_indices_by_name[] = {
  0,   /* field[0] = id */
  2,   /* field[2] = privateKey */
  1,   /* field[1] = publicKey */
};
static const ProtobufCIntRange textsecure__pre_key_record_structure__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor textsecure__pre_key_record_structure__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.PreKeyRecordStructure",
  "PreKeyRecordStructure",
  "Textsecure__PreKeyRecordStructure",
  "textsecure",
  sizeof(Textsecure__PreKeyRecordStructure),
  3,
  textsecure__pre_key_record_structure__field_descriptors,
  textsecure__pre_key_record_structure__field_indices_by_name,
  1,  textsecure__pre_key_record_structure__number_ranges,
  (ProtobufCMessageInit) textsecure__pre_key_record_structure__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__signed_pre_key_record_structure__field_descriptors[5] =
{
  {
    "id",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SignedPreKeyRecordStructure, has_id),
    offsetof(Textsecure__SignedPreKeyRecordStructure, id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "publicKey",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SignedPreKeyRecordStructure, has_publickey),
    offsetof(Textsecure__SignedPreKeyRecordStructure, publickey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "privateKey",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SignedPreKeyRecordStructure, has_privatekey),
    offsetof(Textsecure__SignedPreKeyRecordStructure, privatekey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "signature",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SignedPreKeyRecordStructure, has_signature),
    offsetof(Textsecure__SignedPreKeyRecordStructure, signature),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "timestamp",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_FIXED64,
    offsetof(Textsecure__SignedPreKeyRecordStructure, has_timestamp),
    offsetof(Textsecure__SignedPreKeyRecordStructure, timestamp),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__signed_pre_key_record_structure__field_indices_by_name[] = {
  0,   /* field[0] = id */
  2,   /* field[2] = privateKey */
  1,   /* field[1] = publicKey */
  3,   /* field[3] = signature */
  4,   /* field[4] = timestamp */
};
static const ProtobufCIntRange textsecure__signed_pre_key_record_structure__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 5 }
};
const ProtobufCMessageDescriptor textsecure__signed_pre_key_record_structure__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SignedPreKeyRecordStructure",
  "SignedPreKeyRecordStructure",
  "Textsecure__SignedPreKeyRecordStructure",
  "textsecure",
  sizeof(Textsecure__SignedPreKeyRecordStructure),
  5,
  textsecure__signed_pre_key_record_structure__field_descriptors,
  textsecure__signed_pre_key_record_structure__field_indices_by_name,
  1,  textsecure__signed_pre_key_record_structure__number_ranges,
  (ProtobufCMessageInit) textsecure__signed_pre_key_record_structure__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__identity_key_pair_structure__field_descriptors[2] =
{
  {
    "publicKey",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__IdentityKeyPairStructure, has_publickey),
    offsetof(Textsecure__IdentityKeyPairStructure, publickey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "privateKey",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__IdentityKeyPairStructure, has_privatekey),
    offsetof(Textsecure__IdentityKeyPairStructure, privatekey),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__identity_key_pair_structure__field_indices_by_name[] = {
  1,   /* field[1] = privateKey */
  0,   /* field[0] = publicKey */
};
static const ProtobufCIntRange textsecure__identity_key_pair_structure__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor textsecure__identity_key_pair_structure__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.IdentityKeyPairStructure",
  "IdentityKeyPairStructure",
  "Textsecure__IdentityKeyPairStructure",
  "textsecure",
  sizeof(Textsecure__IdentityKeyPairStructure),
  2,
  textsecure__identity_key_pair_structure__field_descriptors,
  textsecure__identity_key_pair_structure__field_indices_by_name,
  1,  textsecure__identity_key_pair_structure__number_ranges,
  (ProtobufCMessageInit) textsecure__identity_key_pair_structure__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__sender_key_state_structure__sender_chain_key__field_descriptors[2] =
{
  {
    "iteration",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SenderKeyStateStructure__SenderChainKey, has_iteration),
    offsetof(Textsecure__SenderKeyStateStructure__SenderChainKey, iteration),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "seed",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SenderKeyStateStructure__SenderChainKey, has_seed),
    offsetof(Textsecure__SenderKeyStateStructure__SenderChainKey, seed),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__sender_key_state_structure__sender_chain_key__field_indices_by_name[] = {
  0,   /* field[0] = iteration */
  1,   /* field[1] = seed */
};
static const ProtobufCIntRange textsecure__sender_key_state_structure__sender_chain_key__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor textsecure__sender_key_state_structure__sender_chain_key__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SenderKeyStateStructure.SenderChainKey",
  "SenderChainKey",
  "Textsecure__SenderKeyStateStructure__SenderChainKey",
  "textsecure",
  sizeof(Textsecure__SenderKeyStateStructure__SenderChainKey),
  2,
  textsecure__sender_key_state_structure__sender_chain_key__field_descriptors,
  textsecure__sender_key_state_structure__sender_chain_key__field_indices_by_name,
  1,  textsecure__sender_key_state_structure__sender_chain_key__number_ranges,
  (ProtobufCMessageInit) textsecure__sender_key_state_structure__sender_chain_key__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__sender_key_state_structure__sender_message_key__field_descriptors[2] =
{
  {
    "iteration",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SenderKeyStateStructure__SenderMessageKey, has_iteration),
    offsetof(Textsecure__SenderKeyStateStructure__SenderMessageKey, iteration),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "seed",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SenderKeyStateStructure__SenderMessageKey, has_seed),
    offsetof(Textsecure__SenderKeyStateStructure__SenderMessageKey, seed),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__sender_key_state_structure__sender_message_key__field_indices_by_name[] = {
  0,   /* field[0] = iteration */
  1,   /* field[1] = seed */
};
static const ProtobufCIntRange textsecure__sender_key_state_structure__sender_message_key__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor textsecure__sender_key_state_structure__sender_message_key__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SenderKeyStateStructure.SenderMessageKey",
  "SenderMessageKey",
  "Textsecure__SenderKeyStateStructure__SenderMessageKey",
  "textsecure",
  sizeof(Textsecure__SenderKeyStateStructure__SenderMessageKey),
  2,
  textsecure__sender_key_state_structure__sender_message_key__field_descriptors,
  textsecure__sender_key_state_structure__sender_message_key__field_indices_by_name,
  1,  textsecure__sender_key_state_structure__sender_message_key__number_ranges,
  (ProtobufCMessageInit) textsecure__sender_key_state_structure__sender_message_key__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__sender_key_state_structure__sender_signing_key__field_descriptors[2] =
{
  {
    "public",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SenderKeyStateStructure__SenderSigningKey, has_public_),
    offsetof(Textsecure__SenderKeyStateStructure__SenderSigningKey, public_),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "private",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Textsecure__SenderKeyStateStructure__SenderSigningKey, has_private_),
    offsetof(Textsecure__SenderKeyStateStructure__SenderSigningKey, private_),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__sender_key_state_structure__sender_signing_key__field_indices_by_name[] = {
  1,   /* field[1] = private */
  0,   /* field[0] = public */
};
static const ProtobufCIntRange textsecure__sender_key_state_structure__sender_signing_key__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor textsecure__sender_key_state_structure__sender_signing_key__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SenderKeyStateStructure.SenderSigningKey",
  "SenderSigningKey",
  "Textsecure__SenderKeyStateStructure__SenderSigningKey",
  "textsecure",
  sizeof(Textsecure__SenderKeyStateStructure__SenderSigningKey),
  2,
  textsecure__sender_key_state_structure__sender_signing_key__field_descriptors,
  textsecure__sender_key_state_structure__sender_signing_key__field_indices_by_name,
  1,  textsecure__sender_key_state_structure__sender_signing_key__number_ranges,
  (ProtobufCMessageInit) textsecure__sender_key_state_structure__sender_signing_key__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__sender_key_state_structure__field_descriptors[4] =
{
  {
    "senderKeyId",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_UINT32,
    offsetof(Textsecure__SenderKeyStateStructure, has_senderkeyid),
    offsetof(Textsecure__SenderKeyStateStructure, senderkeyid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "senderChainKey",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Textsecure__SenderKeyStateStructure, senderchainkey),
    &textsecure__sender_key_state_structure__sender_chain_key__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "senderSigningKey",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Textsecure__SenderKeyStateStructure, sendersigningkey),
    &textsecure__sender_key_state_structure__sender_signing_key__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "senderMessageKeys",
    4,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Textsecure__SenderKeyStateStructure, n_sendermessagekeys),
    offsetof(Textsecure__SenderKeyStateStructure, sendermessagekeys),
    &textsecure__sender_key_state_structure__sender_message_key__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__sender_key_state_structure__field_indices_by_name[] = {
  1,   /* field[1] = senderChainKey */
  0,   /* field[0] = senderKeyId */
  3,   /* field[3] = senderMessageKeys */
  2,   /* field[2] = senderSigningKey */
};
static const ProtobufCIntRange textsecure__sender_key_state_structure__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor textsecure__sender_key_state_structure__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SenderKeyStateStructure",
  "SenderKeyStateStructure",
  "Textsecure__SenderKeyStateStructure",
  "textsecure",
  sizeof(Textsecure__SenderKeyStateStructure),
  4,
  textsecure__sender_key_state_structure__field_descriptors,
  textsecure__sender_key_state_structure__field_indices_by_name,
  1,  textsecure__sender_key_state_structure__number_ranges,
  (ProtobufCMessageInit) textsecure__sender_key_state_structure__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor textsecure__sender_key_record_structure__field_descriptors[1] =
{
  {
    "senderKeyStates",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Textsecure__SenderKeyRecordStructure, n_senderkeystates),
    offsetof(Textsecure__SenderKeyRecordStructure, senderkeystates),
    &textsecure__sender_key_state_structure__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned textsecure__sender_key_record_structure__field_indices_by_name[] = {
  0,   /* field[0] = senderKeyStates */
};
static const ProtobufCIntRange textsecure__sender_key_record_structure__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor textsecure__sender_key_record_structure__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "textsecure.SenderKeyRecordStructure",
  "SenderKeyRecordStructure",
  "Textsecure__SenderKeyRecordStructure",
  "textsecure",
  sizeof(Textsecure__SenderKeyRecordStructure),
  1,
  textsecure__sender_key_record_structure__field_descriptors,
  textsecure__sender_key_record_structure__field_indices_by_name,
  1,  textsecure__sender_key_record_structure__number_ranges,
  (ProtobufCMessageInit) textsecure__sender_key_record_structure__init,
  NULL,NULL,NULL    /* reserved[123] */
};
