text:
namespace Diadoc {
namespace Api {
namespace Proto {
namespace Documents {
namespace BilateralDocument {

// Internal implementation detail -- do not call these.
void  protobuf_AddDesc_Documents_2fBilateralDocument_2eproto();
void protobuf_AssignDesc_Documents_2fBilateralDocument_2eproto();
void protobuf_ShutdownFile_Documents_2fBilateralDocument_2eproto();

class TrustConnectionRequestMetadata;
class BasicDocumentMetadata;
class PriceListMetadata;
class ContractMetadata;
class SupplementaryAgreementMetadata;
class BilateralDocumentMetadata;

enum BilateralDocumentStatus {
  UnknownBilateralDocumentStatus = 0,
  OutboundWaitingForRecipientSignature = 1,
  OutboundWithRecipientSignature = 2,
  OutboundWithRecipientPartiallySignature = 19,
  OutboundRecipientSignatureRequestRejected = 3,
  OutboundWaitingForSenderSignature = 10,
  OutboundInvalidSenderSignature = 11,
  InboundWaitingForRecipientSignature = 4,
  InboundWithRecipientSignature = 5,
  InboundWithRecipientPartiallySignature = 20,
  InboundRecipientSignatureRequestRejected = 6,
  InboundInvalidRecipientSignature = 12,
  InternalWaitingForRecipientSignature = 7,
  InternalWithRecipientSignature = 8,
  InternalWithRecipientPartiallySignature = 21,
  InternalRecipientSignatureRequestRejected = 9,
  InternalWaitingForSenderSignature = 13,
  InternalInvalidSenderSignature = 14,
  InternalInvalidRecipientSignature = 15
};
bool BilateralDocumentStatus_IsValid(int value);
const BilateralDocumentStatus BilateralDocumentStatus_MIN = UnknownBilateralDocumentStatus;
const BilateralDocumentStatus BilateralDocumentStatus_MAX = InternalWithRecipientPartiallySignature;
const int BilateralDocumentStatus_ARRAYSIZE = BilateralDocumentStatus_MAX + 1;

const ::google::protobuf::EnumDescriptor* BilateralDocumentStatus_descriptor();
inline const ::std::string& BilateralDocumentStatus_Name(BilateralDocumentStatus value) {
  return ::google::protobuf::internal::NameOfEnum(
    BilateralDocumentStatus_descriptor(), value);
}
inline bool BilateralDocumentStatus_Parse(
    const ::std::string& name, BilateralDocumentStatus* value) {
  return ::google::protobuf::internal::ParseNamedEnum<BilateralDocumentStatus>(
    BilateralDocumentStatus_descriptor(), name, value);
}
// ===================================================================

class TrustConnectionRequestMetadata : public ::google::protobuf::Message {
 public:
  TrustConnectionRequestMetadata();
  virtual ~TrustConnectionRequestMetadata();

  TrustConnectionRequestMetadata(const TrustConnectionRequestMetadata& from);

  inline TrustConnectionRequestMetadata& operator=(const TrustConnectionRequestMetadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const TrustConnectionRequestMetadata& default_instance();

  void Swap(TrustConnectionRequestMetadata* other);

  // implements Message ----------------------------------------------

  TrustConnectionRequestMetadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const TrustConnectionRequestMetadata& from);
  void MergeFrom(const TrustConnectionRequestMetadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus TrustConnectionRequestStatus = 1 [default = UnknownBilateralDocumentStatus];
  inline bool has_trustconnectionrequeststatus() const;
  inline void clear_trustconnectionrequeststatus();
  static const int kTrustConnectionRequestStatusFieldNumber = 1;
  inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus trustconnectionrequeststatus() const;
  inline void set_trustconnectionrequeststatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value);

  // @@protoc_insertion_point(class_scope:Diadoc.Api.Proto.Documents.BilateralDocument.TrustConnectionRequestMetadata)
 private:
  inline void set_has_trustconnectionrequeststatus();
  inline void clear_has_trustconnectionrequeststatus();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  int trustconnectionrequeststatus_;
  friend void  protobuf_AddDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_AssignDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_ShutdownFile_Documents_2fBilateralDocument_2eproto();

  void InitAsDefaultInstance();
  static TrustConnectionRequestMetadata* default_instance_;
};
// -------------------------------------------------------------------

class BasicDocumentMetadata : public ::google::protobuf::Message {
 public:
  BasicDocumentMetadata();
  virtual ~BasicDocumentMetadata();

  BasicDocumentMetadata(const BasicDocumentMetadata& from);

  inline BasicDocumentMetadata& operator=(const BasicDocumentMetadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const BasicDocumentMetadata& default_instance();

  void Swap(BasicDocumentMetadata* other);

  // implements Message ----------------------------------------------

  BasicDocumentMetadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const BasicDocumentMetadata& from);
  void MergeFrom(const BasicDocumentMetadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus DocumentStatus = 1 [default = UnknownBilateralDocumentStatus];
  inline bool has_documentstatus() const;
  inline void clear_documentstatus();
  static const int kDocumentStatusFieldNumber = 1;
  inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus documentstatus() const;
  inline void set_documentstatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value);

  // required string Total = 2;
  inline bool has_total() const;
  inline void clear_total();
  static const int kTotalFieldNumber = 2;
  inline const ::std::string& total() const;
  inline void set_total(const ::std::string& value);
  inline void set_total(const char* value);
  inline void set_total(const char* value, size_t size);
  inline ::std::string* mutable_total();
  inline ::std::string* release_total();
  inline void set_allocated_total(::std::string* total);

  // optional string Vat = 3;
  inline bool has_vat() const;
  inline void clear_vat();
  static const int kVatFieldNumber = 3;
  inline const ::std::string& vat() const;
  inline void set_vat(const ::std::string& value);
  inline void set_vat(const char* value);
  inline void set_vat(const char* value, size_t size);
  inline ::std::string* mutable_vat();
  inline ::std::string* release_vat();
  inline void set_allocated_vat(::std::string* vat);

  // optional string Grounds = 4;
  inline bool has_grounds() const;
  inline void clear_grounds();
  static const int kGroundsFieldNumber = 4;
  inline const ::std::string& grounds() const;
  inline void set_grounds(const ::std::string& value);
  inline void set_grounds(const char* value);
  inline void set_grounds(const char* value, size_t size);
  inline ::std::string* mutable_grounds();
  inline ::std::string* release_grounds();
  inline void set_allocated_grounds(::std::string* grounds);

  // optional .Diadoc.Api.Proto.Documents.ReceiptStatus ReceiptStatus = 5 [default = UnknownReceiptStatus];
  inline bool has_receiptstatus() const;
  inline void clear_receiptstatus();
  static const int kReceiptStatusFieldNumber = 5;
  inline ::Diadoc::Api::Proto::Documents::ReceiptStatus receiptstatus() const;
  inline void set_receiptstatus(::Diadoc::Api::Proto::Documents::ReceiptStatus value);

  // optional string RevisionDate = 6;
  inline bool has_revisiondate() const;
  inline void clear_revisiondate();
  static const int kRevisionDateFieldNumber = 6;
  inline const ::std::string& revisiondate() const;
  inline void set_revisiondate(const ::std::string& value);
  inline void set_revisiondate(const char* value);
  inline void set_revisiondate(const char* value, size_t size);
  inline ::std::string* mutable_revisiondate();
  inline ::std::string* release_revisiondate();
  inline void set_allocated_revisiondate(::std::string* revisiondate);

  // optional string RevisionNumber = 7;
  inline bool has_revisionnumber() const;
  inline void clear_revisionnumber();
  static const int kRevisionNumberFieldNumber = 7;
  inline const ::std::string& revisionnumber() const;
  inline void set_revisionnumber(const ::std::string& value);
  inline void set_revisionnumber(const char* value);
  inline void set_revisionnumber(const char* value, size_t size);
  inline ::std::string* mutable_revisionnumber();
  inline ::std::string* release_revisionnumber();
  inline void set_allocated_revisionnumber(::std::string* revisionnumber);

  // @@protoc_insertion_point(class_scope:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata)
 private:
  inline void set_has_documentstatus();
  inline void clear_has_documentstatus();
  inline void set_has_total();
  inline void clear_has_total();
  inline void set_has_vat();
  inline void clear_has_vat();
  inline void set_has_grounds();
  inline void clear_has_grounds();
  inline void set_has_receiptstatus();
  inline void clear_has_receiptstatus();
  inline void set_has_revisiondate();
  inline void clear_has_revisiondate();
  inline void set_has_revisionnumber();
  inline void clear_has_revisionnumber();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* total_;
  ::std::string* vat_;
  int documentstatus_;
  int receiptstatus_;
  ::std::string* grounds_;
  ::std::string* revisiondate_;
  ::std::string* revisionnumber_;
  friend void  protobuf_AddDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_AssignDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_ShutdownFile_Documents_2fBilateralDocument_2eproto();

  void InitAsDefaultInstance();
  static BasicDocumentMetadata* default_instance_;
};
// -------------------------------------------------------------------

class PriceListMetadata : public ::google::protobuf::Message {
 public:
  PriceListMetadata();
  virtual ~PriceListMetadata();

  PriceListMetadata(const PriceListMetadata& from);

  inline PriceListMetadata& operator=(const PriceListMetadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const PriceListMetadata& default_instance();

  void Swap(PriceListMetadata* other);

  // implements Message ----------------------------------------------

  PriceListMetadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PriceListMetadata& from);
  void MergeFrom(const PriceListMetadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus DocumentStatus = 1 [default = UnknownBilateralDocumentStatus];
  inline bool has_documentstatus() const;
  inline void clear_documentstatus();
  static const int kDocumentStatusFieldNumber = 1;
  inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus documentstatus() const;
  inline void set_documentstatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value);

  // optional string PriceListEffectiveDate = 2;
  inline bool has_pricelisteffectivedate() const;
  inline void clear_pricelisteffectivedate();
  static const int kPriceListEffectiveDateFieldNumber = 2;
  inline const ::std::string& pricelisteffectivedate() const;
  inline void set_pricelisteffectivedate(const ::std::string& value);
  inline void set_pricelisteffectivedate(const char* value);
  inline void set_pricelisteffectivedate(const char* value, size_t size);
  inline ::std::string* mutable_pricelisteffectivedate();
  inline ::std::string* release_pricelisteffectivedate();
  inline void set_allocated_pricelisteffectivedate(::std::string* pricelisteffectivedate);

  // optional string ContractDocumentDate = 3;
  inline bool has_contractdocumentdate() const;
  inline void clear_contractdocumentdate();
  static const int kContractDocumentDateFieldNumber = 3;
  inline const ::std::string& contractdocumentdate() const;
  inline void set_contractdocumentdate(const ::std::string& value);
  inline void set_contractdocumentdate(const char* value);
  inline void set_contractdocumentdate(const char* value, size_t size);
  inline ::std::string* mutable_contractdocumentdate();
  inline ::std::string* release_contractdocumentdate();
  inline void set_allocated_contractdocumentdate(::std::string* contractdocumentdate);

  // optional string ContractDocumentNumber = 4;
  inline bool has_contractdocumentnumber() const;
  inline void clear_contractdocumentnumber();
  static const int kContractDocumentNumberFieldNumber = 4;
  inline const ::std::string& contractdocumentnumber() const;
  inline void set_contractdocumentnumber(const ::std::string& value);
  inline void set_contractdocumentnumber(const char* value);
  inline void set_contractdocumentnumber(const char* value, size_t size);
  inline ::std::string* mutable_contractdocumentnumber();
  inline ::std::string* release_contractdocumentnumber();
  inline void set_allocated_contractdocumentnumber(::std::string* contractdocumentnumber);

  // optional .Diadoc.Api.Proto.Documents.ReceiptStatus ReceiptStatus = 5 [default = UnknownReceiptStatus];
  inline bool has_receiptstatus() const;
  inline void clear_receiptstatus();
  static const int kReceiptStatusFieldNumber = 5;
  inline ::Diadoc::Api::Proto::Documents::ReceiptStatus receiptstatus() const;
  inline void set_receiptstatus(::Diadoc::Api::Proto::Documents::ReceiptStatus value);

  // @@protoc_insertion_point(class_scope:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata)
 private:
  inline void set_has_documentstatus();
  inline void clear_has_documentstatus();
  inline void set_has_pricelisteffectivedate();
  inline void clear_has_pricelisteffectivedate();
  inline void set_has_contractdocumentdate();
  inline void clear_has_contractdocumentdate();
  inline void set_has_contractdocumentnumber();
  inline void clear_has_contractdocumentnumber();
  inline void set_has_receiptstatus();
  inline void clear_has_receiptstatus();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* pricelisteffectivedate_;
  ::std::string* contractdocumentdate_;
  int documentstatus_;
  int receiptstatus_;
  ::std::string* contractdocumentnumber_;
  friend void  protobuf_AddDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_AssignDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_ShutdownFile_Documents_2fBilateralDocument_2eproto();

  void InitAsDefaultInstance();
  static PriceListMetadata* default_instance_;
};
// -------------------------------------------------------------------

class ContractMetadata : public ::google::protobuf::Message {
 public:
  ContractMetadata();
  virtual ~ContractMetadata();

  ContractMetadata(const ContractMetadata& from);

  inline ContractMetadata& operator=(const ContractMetadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const ContractMetadata& default_instance();

  void Swap(ContractMetadata* other);

  // implements Message ----------------------------------------------

  ContractMetadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ContractMetadata& from);
  void MergeFrom(const ContractMetadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus DocumentStatus = 1 [default = UnknownBilateralDocumentStatus];
  inline bool has_documentstatus() const;
  inline void clear_documentstatus();
  static const int kDocumentStatusFieldNumber = 1;
  inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus documentstatus() const;
  inline void set_documentstatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value);

  // optional string ContractPrice = 2;
  inline bool has_contractprice() const;
  inline void clear_contractprice();
  static const int kContractPriceFieldNumber = 2;
  inline const ::std::string& contractprice() const;
  inline void set_contractprice(const ::std::string& value);
  inline void set_contractprice(const char* value);
  inline void set_contractprice(const char* value, size_t size);
  inline ::std::string* mutable_contractprice();
  inline ::std::string* release_contractprice();
  inline void set_allocated_contractprice(::std::string* contractprice);

  // optional string ContractType = 3;
  inline bool has_contracttype() const;
  inline void clear_contracttype();
  static const int kContractTypeFieldNumber = 3;
  inline const ::std::string& contracttype() const;
  inline void set_contracttype(const ::std::string& value);
  inline void set_contracttype(const char* value);
  inline void set_contracttype(const char* value, size_t size);
  inline ::std::string* mutable_contracttype();
  inline ::std::string* release_contracttype();
  inline void set_allocated_contracttype(::std::string* contracttype);

  // optional .Diadoc.Api.Proto.Documents.ReceiptStatus ReceiptStatus = 4 [default = UnknownReceiptStatus];
  inline bool has_receiptstatus() const;
  inline void clear_receiptstatus();
  static const int kReceiptStatusFieldNumber = 4;
  inline ::Diadoc::Api::Proto::Documents::ReceiptStatus receiptstatus() const;
  inline void set_receiptstatus(::Diadoc::Api::Proto::Documents::ReceiptStatus value);

  // @@protoc_insertion_point(class_scope:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata)
 private:
  inline void set_has_documentstatus();
  inline void clear_has_documentstatus();
  inline void set_has_contractprice();
  inline void clear_has_contractprice();
  inline void set_has_contracttype();
  inline void clear_has_contracttype();
  inline void set_has_receiptstatus();
  inline void clear_has_receiptstatus();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* contractprice_;
  int documentstatus_;
  int receiptstatus_;
  ::std::string* contracttype_;
  friend void  protobuf_AddDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_AssignDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_ShutdownFile_Documents_2fBilateralDocument_2eproto();

  void InitAsDefaultInstance();
  static ContractMetadata* default_instance_;
};
// -------------------------------------------------------------------

class SupplementaryAgreementMetadata : public ::google::protobuf::Message {
 public:
  SupplementaryAgreementMetadata();
  virtual ~SupplementaryAgreementMetadata();

  SupplementaryAgreementMetadata(const SupplementaryAgreementMetadata& from);

  inline SupplementaryAgreementMetadata& operator=(const SupplementaryAgreementMetadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const SupplementaryAgreementMetadata& default_instance();

  void Swap(SupplementaryAgreementMetadata* other);

  // implements Message ----------------------------------------------

  SupplementaryAgreementMetadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SupplementaryAgreementMetadata& from);
  void MergeFrom(const SupplementaryAgreementMetadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus DocumentStatus = 1 [default = UnknownBilateralDocumentStatus];
  inline bool has_documentstatus() const;
  inline void clear_documentstatus();
  static const int kDocumentStatusFieldNumber = 1;
  inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus documentstatus() const;
  inline void set_documentstatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value);

  // optional string Total = 2;
  inline bool has_total() const;
  inline void clear_total();
  static const int kTotalFieldNumber = 2;
  inline const ::std::string& total() const;
  inline void set_total(const ::std::string& value);
  inline void set_total(const char* value);
  inline void set_total(const char* value, size_t size);
  inline ::std::string* mutable_total();
  inline ::std::string* release_total();
  inline void set_allocated_total(::std::string* total);

  // optional string ContractType = 3;
  inline bool has_contracttype() const;
  inline void clear_contracttype();
  static const int kContractTypeFieldNumber = 3;
  inline const ::std::string& contracttype() const;
  inline void set_contracttype(const ::std::string& value);
  inline void set_contracttype(const char* value);
  inline void set_contracttype(const char* value, size_t size);
  inline ::std::string* mutable_contracttype();
  inline ::std::string* release_contracttype();
  inline void set_allocated_contracttype(::std::string* contracttype);

  // required string ContractNumber = 4;
  inline bool has_contractnumber() const;
  inline void clear_contractnumber();
  static const int kContractNumberFieldNumber = 4;
  inline const ::std::string& contractnumber() const;
  inline void set_contractnumber(const ::std::string& value);
  inline void set_contractnumber(const char* value);
  inline void set_contractnumber(const char* value, size_t size);
  inline ::std::string* mutable_contractnumber();
  inline ::std::string* release_contractnumber();
  inline void set_allocated_contractnumber(::std::string* contractnumber);

  // required string ContractDate = 5;
  inline bool has_contractdate() const;
  inline void clear_contractdate();
  static const int kContractDateFieldNumber = 5;
  inline const ::std::string& contractdate() const;
  inline void set_contractdate(const ::std::string& value);
  inline void set_contractdate(const char* value);
  inline void set_contractdate(const char* value, size_t size);
  inline ::std::string* mutable_contractdate();
  inline ::std::string* release_contractdate();
  inline void set_allocated_contractdate(::std::string* contractdate);

  // optional .Diadoc.Api.Proto.Documents.ReceiptStatus ReceiptStatus = 6 [default = UnknownReceiptStatus];
  inline bool has_receiptstatus() const;
  inline void clear_receiptstatus();
  static const int kReceiptStatusFieldNumber = 6;
  inline ::Diadoc::Api::Proto::Documents::ReceiptStatus receiptstatus() const;
  inline void set_receiptstatus(::Diadoc::Api::Proto::Documents::ReceiptStatus value);

  // @@protoc_insertion_point(class_scope:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata)
 private:
  inline void set_has_documentstatus();
  inline void clear_has_documentstatus();
  inline void set_has_total();
  inline void clear_has_total();
  inline void set_has_contracttype();
  inline void clear_has_contracttype();
  inline void set_has_contractnumber();
  inline void clear_has_contractnumber();
  inline void set_has_contractdate();
  inline void clear_has_contractdate();
  inline void set_has_receiptstatus();
  inline void clear_has_receiptstatus();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* total_;
  ::std::string* contracttype_;
  int documentstatus_;
  int receiptstatus_;
  ::std::string* contractnumber_;
  ::std::string* contractdate_;
  friend void  protobuf_AddDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_AssignDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_ShutdownFile_Documents_2fBilateralDocument_2eproto();

  void InitAsDefaultInstance();
  static SupplementaryAgreementMetadata* default_instance_;
};
// -------------------------------------------------------------------

class BilateralDocumentMetadata : public ::google::protobuf::Message {
 public:
  BilateralDocumentMetadata();
  virtual ~BilateralDocumentMetadata();

  BilateralDocumentMetadata(const BilateralDocumentMetadata& from);

  inline BilateralDocumentMetadata& operator=(const BilateralDocumentMetadata& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const BilateralDocumentMetadata& default_instance();

  void Swap(BilateralDocumentMetadata* other);

  // implements Message ----------------------------------------------

  BilateralDocumentMetadata* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const BilateralDocumentMetadata& from);
  void MergeFrom(const BilateralDocumentMetadata& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus DocumentStatus = 1 [default = UnknownBilateralDocumentStatus];
  inline bool has_documentstatus() const;
  inline void clear_documentstatus();
  static const int kDocumentStatusFieldNumber = 1;
  inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus documentstatus() const;
  inline void set_documentstatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value);

  // optional .Diadoc.Api.Proto.Documents.ReceiptStatus ReceiptStatus = 2 [default = UnknownReceiptStatus];
  inline bool has_receiptstatus() const;
  inline void clear_receiptstatus();
  static const int kReceiptStatusFieldNumber = 2;
  inline ::Diadoc::Api::Proto::Documents::ReceiptStatus receiptstatus() const;
  inline void set_receiptstatus(::Diadoc::Api::Proto::Documents::ReceiptStatus value);

  // @@protoc_insertion_point(class_scope:Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentMetadata)
 private:
  inline void set_has_documentstatus();
  inline void clear_has_documentstatus();
  inline void set_has_receiptstatus();
  inline void clear_has_receiptstatus();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  int documentstatus_;
  int receiptstatus_;
  friend void  protobuf_AddDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_AssignDesc_Documents_2fBilateralDocument_2eproto();
  friend void protobuf_ShutdownFile_Documents_2fBilateralDocument_2eproto();

  void InitAsDefaultInstance();
  static BilateralDocumentMetadata* default_instance_;
};
// ===================================================================

// ===================================================================

// TrustConnectionRequestMetadata

// optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus TrustConnectionRequestStatus = 1 [default = UnknownBilateralDocumentStatus];
inline bool TrustConnectionRequestMetadata::has_trustconnectionrequeststatus() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TrustConnectionRequestMetadata::set_has_trustconnectionrequeststatus() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TrustConnectionRequestMetadata::clear_has_trustconnectionrequeststatus() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TrustConnectionRequestMetadata::clear_trustconnectionrequeststatus() {
  trustconnectionrequeststatus_ = 0;
  clear_has_trustconnectionrequeststatus();
}
inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus TrustConnectionRequestMetadata::trustconnectionrequeststatus() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.TrustConnectionRequestMetadata.TrustConnectionRequestStatus)
  return static_cast< ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus >(trustconnectionrequeststatus_);
}
inline void TrustConnectionRequestMetadata::set_trustconnectionrequeststatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value) {
  assert(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus_IsValid(value));
  set_has_trustconnectionrequeststatus();
  trustconnectionrequeststatus_ = value;
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.TrustConnectionRequestMetadata.TrustConnectionRequestStatus)
}

// -------------------------------------------------------------------

// BasicDocumentMetadata

// optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus DocumentStatus = 1 [default = UnknownBilateralDocumentStatus];
inline bool BasicDocumentMetadata::has_documentstatus() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void BasicDocumentMetadata::set_has_documentstatus() {
  _has_bits_[0] |= 0x00000001u;
}
inline void BasicDocumentMetadata::clear_has_documentstatus() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void BasicDocumentMetadata::clear_documentstatus() {
  documentstatus_ = 0;
  clear_has_documentstatus();
}
inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus BasicDocumentMetadata::documentstatus() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.DocumentStatus)
  return static_cast< ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus >(documentstatus_);
}
inline void BasicDocumentMetadata::set_documentstatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value) {
  assert(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus_IsValid(value));
  set_has_documentstatus();
  documentstatus_ = value;
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.DocumentStatus)
}

// required string Total = 2;
inline bool BasicDocumentMetadata::has_total() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void BasicDocumentMetadata::set_has_total() {
  _has_bits_[0] |= 0x00000002u;
}
inline void BasicDocumentMetadata::clear_has_total() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void BasicDocumentMetadata::clear_total() {
  if (total_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    total_->clear();
  }
  clear_has_total();
}
inline const ::std::string& BasicDocumentMetadata::total() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Total)
  return *total_;
}
inline void BasicDocumentMetadata::set_total(const ::std::string& value) {
  set_has_total();
  if (total_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    total_ = new ::std::string;
  }
  total_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Total)
}
inline void BasicDocumentMetadata::set_total(const char* value) {
  set_has_total();
  if (total_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    total_ = new ::std::string;
  }
  total_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Total)
}
inline void BasicDocumentMetadata::set_total(const char* value, size_t size) {
  set_has_total();
  if (total_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    total_ = new ::std::string;
  }
  total_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Total)
}
inline ::std::string* BasicDocumentMetadata::mutable_total() {
  set_has_total();
  if (total_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    total_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Total)
  return total_;
}
inline ::std::string* BasicDocumentMetadata::release_total() {
  clear_has_total();
  if (total_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = total_;
    total_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void BasicDocumentMetadata::set_allocated_total(::std::string* total) {
  if (total_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete total_;
  }
  if (total) {
    set_has_total();
    total_ = total;
  } else {
    clear_has_total();
    total_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Total)
}

// optional string Vat = 3;
inline bool BasicDocumentMetadata::has_vat() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void BasicDocumentMetadata::set_has_vat() {
  _has_bits_[0] |= 0x00000004u;
}
inline void BasicDocumentMetadata::clear_has_vat() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void BasicDocumentMetadata::clear_vat() {
  if (vat_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    vat_->clear();
  }
  clear_has_vat();
}
inline const ::std::string& BasicDocumentMetadata::vat() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Vat)
  return *vat_;
}
inline void BasicDocumentMetadata::set_vat(const ::std::string& value) {
  set_has_vat();
  if (vat_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    vat_ = new ::std::string;
  }
  vat_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Vat)
}
inline void BasicDocumentMetadata::set_vat(const char* value) {
  set_has_vat();
  if (vat_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    vat_ = new ::std::string;
  }
  vat_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Vat)
}
inline void BasicDocumentMetadata::set_vat(const char* value, size_t size) {
  set_has_vat();
  if (vat_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    vat_ = new ::std::string;
  }
  vat_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Vat)
}
inline ::std::string* BasicDocumentMetadata::mutable_vat() {
  set_has_vat();
  if (vat_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    vat_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Vat)
  return vat_;
}
inline ::std::string* BasicDocumentMetadata::release_vat() {
  clear_has_vat();
  if (vat_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = vat_;
    vat_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void BasicDocumentMetadata::set_allocated_vat(::std::string* vat) {
  if (vat_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete vat_;
  }
  if (vat) {
    set_has_vat();
    vat_ = vat;
  } else {
    clear_has_vat();
    vat_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Vat)
}

// optional string Grounds = 4;
inline bool BasicDocumentMetadata::has_grounds() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void BasicDocumentMetadata::set_has_grounds() {
  _has_bits_[0] |= 0x00000008u;
}
inline void BasicDocumentMetadata::clear_has_grounds() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void BasicDocumentMetadata::clear_grounds() {
  if (grounds_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    grounds_->clear();
  }
  clear_has_grounds();
}
inline const ::std::string& BasicDocumentMetadata::grounds() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Grounds)
  return *grounds_;
}
inline void BasicDocumentMetadata::set_grounds(const ::std::string& value) {
  set_has_grounds();
  if (grounds_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    grounds_ = new ::std::string;
  }
  grounds_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Grounds)
}
inline void BasicDocumentMetadata::set_grounds(const char* value) {
  set_has_grounds();
  if (grounds_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    grounds_ = new ::std::string;
  }
  grounds_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Grounds)
}
inline void BasicDocumentMetadata::set_grounds(const char* value, size_t size) {
  set_has_grounds();
  if (grounds_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    grounds_ = new ::std::string;
  }
  grounds_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Grounds)
}
inline ::std::string* BasicDocumentMetadata::mutable_grounds() {
  set_has_grounds();
  if (grounds_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    grounds_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Grounds)
  return grounds_;
}
inline ::std::string* BasicDocumentMetadata::release_grounds() {
  clear_has_grounds();
  if (grounds_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = grounds_;
    grounds_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void BasicDocumentMetadata::set_allocated_grounds(::std::string* grounds) {
  if (grounds_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete grounds_;
  }
  if (grounds) {
    set_has_grounds();
    grounds_ = grounds;
  } else {
    clear_has_grounds();
    grounds_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.Grounds)
}

// optional .Diadoc.Api.Proto.Documents.ReceiptStatus ReceiptStatus = 5 [default = UnknownReceiptStatus];
inline bool BasicDocumentMetadata::has_receiptstatus() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void BasicDocumentMetadata::set_has_receiptstatus() {
  _has_bits_[0] |= 0x00000010u;
}
inline void BasicDocumentMetadata::clear_has_receiptstatus() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void BasicDocumentMetadata::clear_receiptstatus() {
  receiptstatus_ = 0;
  clear_has_receiptstatus();
}
inline ::Diadoc::Api::Proto::Documents::ReceiptStatus BasicDocumentMetadata::receiptstatus() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.ReceiptStatus)
  return static_cast< ::Diadoc::Api::Proto::Documents::ReceiptStatus >(receiptstatus_);
}
inline void BasicDocumentMetadata::set_receiptstatus(::Diadoc::Api::Proto::Documents::ReceiptStatus value) {
  assert(::Diadoc::Api::Proto::Documents::ReceiptStatus_IsValid(value));
  set_has_receiptstatus();
  receiptstatus_ = value;
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.ReceiptStatus)
}

// optional string RevisionDate = 6;
inline bool BasicDocumentMetadata::has_revisiondate() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void BasicDocumentMetadata::set_has_revisiondate() {
  _has_bits_[0] |= 0x00000020u;
}
inline void BasicDocumentMetadata::clear_has_revisiondate() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void BasicDocumentMetadata::clear_revisiondate() {
  if (revisiondate_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    revisiondate_->clear();
  }
  clear_has_revisiondate();
}
inline const ::std::string& BasicDocumentMetadata::revisiondate() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionDate)
  return *revisiondate_;
}
inline void BasicDocumentMetadata::set_revisiondate(const ::std::string& value) {
  set_has_revisiondate();
  if (revisiondate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    revisiondate_ = new ::std::string;
  }
  revisiondate_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionDate)
}
inline void BasicDocumentMetadata::set_revisiondate(const char* value) {
  set_has_revisiondate();
  if (revisiondate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    revisiondate_ = new ::std::string;
  }
  revisiondate_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionDate)
}
inline void BasicDocumentMetadata::set_revisiondate(const char* value, size_t size) {
  set_has_revisiondate();
  if (revisiondate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    revisiondate_ = new ::std::string;
  }
  revisiondate_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionDate)
}
inline ::std::string* BasicDocumentMetadata::mutable_revisiondate() {
  set_has_revisiondate();
  if (revisiondate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    revisiondate_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionDate)
  return revisiondate_;
}
inline ::std::string* BasicDocumentMetadata::release_revisiondate() {
  clear_has_revisiondate();
  if (revisiondate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = revisiondate_;
    revisiondate_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void BasicDocumentMetadata::set_allocated_revisiondate(::std::string* revisiondate) {
  if (revisiondate_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete revisiondate_;
  }
  if (revisiondate) {
    set_has_revisiondate();
    revisiondate_ = revisiondate;
  } else {
    clear_has_revisiondate();
    revisiondate_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionDate)
}

// optional string RevisionNumber = 7;
inline bool BasicDocumentMetadata::has_revisionnumber() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void BasicDocumentMetadata::set_has_revisionnumber() {
  _has_bits_[0] |= 0x00000040u;
}
inline void BasicDocumentMetadata::clear_has_revisionnumber() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void BasicDocumentMetadata::clear_revisionnumber() {
  if (revisionnumber_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    revisionnumber_->clear();
  }
  clear_has_revisionnumber();
}
inline const ::std::string& BasicDocumentMetadata::revisionnumber() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionNumber)
  return *revisionnumber_;
}
inline void BasicDocumentMetadata::set_revisionnumber(const ::std::string& value) {
  set_has_revisionnumber();
  if (revisionnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    revisionnumber_ = new ::std::string;
  }
  revisionnumber_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionNumber)
}
inline void BasicDocumentMetadata::set_revisionnumber(const char* value) {
  set_has_revisionnumber();
  if (revisionnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    revisionnumber_ = new ::std::string;
  }
  revisionnumber_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionNumber)
}
inline void BasicDocumentMetadata::set_revisionnumber(const char* value, size_t size) {
  set_has_revisionnumber();
  if (revisionnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    revisionnumber_ = new ::std::string;
  }
  revisionnumber_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionNumber)
}
inline ::std::string* BasicDocumentMetadata::mutable_revisionnumber() {
  set_has_revisionnumber();
  if (revisionnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    revisionnumber_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionNumber)
  return revisionnumber_;
}
inline ::std::string* BasicDocumentMetadata::release_revisionnumber() {
  clear_has_revisionnumber();
  if (revisionnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = revisionnumber_;
    revisionnumber_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void BasicDocumentMetadata::set_allocated_revisionnumber(::std::string* revisionnumber) {
  if (revisionnumber_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete revisionnumber_;
  }
  if (revisionnumber) {
    set_has_revisionnumber();
    revisionnumber_ = revisionnumber;
  } else {
    clear_has_revisionnumber();
    revisionnumber_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.BasicDocumentMetadata.RevisionNumber)
}

// -------------------------------------------------------------------

// PriceListMetadata

// optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus DocumentStatus = 1 [default = UnknownBilateralDocumentStatus];
inline bool PriceListMetadata::has_documentstatus() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PriceListMetadata::set_has_documentstatus() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PriceListMetadata::clear_has_documentstatus() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PriceListMetadata::clear_documentstatus() {
  documentstatus_ = 0;
  clear_has_documentstatus();
}
inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus PriceListMetadata::documentstatus() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.DocumentStatus)
  return static_cast< ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus >(documentstatus_);
}
inline void PriceListMetadata::set_documentstatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value) {
  assert(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus_IsValid(value));
  set_has_documentstatus();
  documentstatus_ = value;
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.DocumentStatus)
}

// optional string PriceListEffectiveDate = 2;
inline bool PriceListMetadata::has_pricelisteffectivedate() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PriceListMetadata::set_has_pricelisteffectivedate() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PriceListMetadata::clear_has_pricelisteffectivedate() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PriceListMetadata::clear_pricelisteffectivedate() {
  if (pricelisteffectivedate_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    pricelisteffectivedate_->clear();
  }
  clear_has_pricelisteffectivedate();
}
inline const ::std::string& PriceListMetadata::pricelisteffectivedate() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.PriceListEffectiveDate)
  return *pricelisteffectivedate_;
}
inline void PriceListMetadata::set_pricelisteffectivedate(const ::std::string& value) {
  set_has_pricelisteffectivedate();
  if (pricelisteffectivedate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    pricelisteffectivedate_ = new ::std::string;
  }
  pricelisteffectivedate_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.PriceListEffectiveDate)
}
inline void PriceListMetadata::set_pricelisteffectivedate(const char* value) {
  set_has_pricelisteffectivedate();
  if (pricelisteffectivedate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    pricelisteffectivedate_ = new ::std::string;
  }
  pricelisteffectivedate_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.PriceListEffectiveDate)
}
inline void PriceListMetadata::set_pricelisteffectivedate(const char* value, size_t size) {
  set_has_pricelisteffectivedate();
  if (pricelisteffectivedate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    pricelisteffectivedate_ = new ::std::string;
  }
  pricelisteffectivedate_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.PriceListEffectiveDate)
}
inline ::std::string* PriceListMetadata::mutable_pricelisteffectivedate() {
  set_has_pricelisteffectivedate();
  if (pricelisteffectivedate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    pricelisteffectivedate_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.PriceListEffectiveDate)
  return pricelisteffectivedate_;
}
inline ::std::string* PriceListMetadata::release_pricelisteffectivedate() {
  clear_has_pricelisteffectivedate();
  if (pricelisteffectivedate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = pricelisteffectivedate_;
    pricelisteffectivedate_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void PriceListMetadata::set_allocated_pricelisteffectivedate(::std::string* pricelisteffectivedate) {
  if (pricelisteffectivedate_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete pricelisteffectivedate_;
  }
  if (pricelisteffectivedate) {
    set_has_pricelisteffectivedate();
    pricelisteffectivedate_ = pricelisteffectivedate;
  } else {
    clear_has_pricelisteffectivedate();
    pricelisteffectivedate_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.PriceListEffectiveDate)
}

// optional string ContractDocumentDate = 3;
inline bool PriceListMetadata::has_contractdocumentdate() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PriceListMetadata::set_has_contractdocumentdate() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PriceListMetadata::clear_has_contractdocumentdate() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PriceListMetadata::clear_contractdocumentdate() {
  if (contractdocumentdate_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdocumentdate_->clear();
  }
  clear_has_contractdocumentdate();
}
inline const ::std::string& PriceListMetadata::contractdocumentdate() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentDate)
  return *contractdocumentdate_;
}
inline void PriceListMetadata::set_contractdocumentdate(const ::std::string& value) {
  set_has_contractdocumentdate();
  if (contractdocumentdate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdocumentdate_ = new ::std::string;
  }
  contractdocumentdate_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentDate)
}
inline void PriceListMetadata::set_contractdocumentdate(const char* value) {
  set_has_contractdocumentdate();
  if (contractdocumentdate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdocumentdate_ = new ::std::string;
  }
  contractdocumentdate_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentDate)
}
inline void PriceListMetadata::set_contractdocumentdate(const char* value, size_t size) {
  set_has_contractdocumentdate();
  if (contractdocumentdate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdocumentdate_ = new ::std::string;
  }
  contractdocumentdate_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentDate)
}
inline ::std::string* PriceListMetadata::mutable_contractdocumentdate() {
  set_has_contractdocumentdate();
  if (contractdocumentdate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdocumentdate_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentDate)
  return contractdocumentdate_;
}
inline ::std::string* PriceListMetadata::release_contractdocumentdate() {
  clear_has_contractdocumentdate();
  if (contractdocumentdate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = contractdocumentdate_;
    contractdocumentdate_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void PriceListMetadata::set_allocated_contractdocumentdate(::std::string* contractdocumentdate) {
  if (contractdocumentdate_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete contractdocumentdate_;
  }
  if (contractdocumentdate) {
    set_has_contractdocumentdate();
    contractdocumentdate_ = contractdocumentdate;
  } else {
    clear_has_contractdocumentdate();
    contractdocumentdate_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentDate)
}

// optional string ContractDocumentNumber = 4;
inline bool PriceListMetadata::has_contractdocumentnumber() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PriceListMetadata::set_has_contractdocumentnumber() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PriceListMetadata::clear_has_contractdocumentnumber() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PriceListMetadata::clear_contractdocumentnumber() {
  if (contractdocumentnumber_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdocumentnumber_->clear();
  }
  clear_has_contractdocumentnumber();
}
inline const ::std::string& PriceListMetadata::contractdocumentnumber() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentNumber)
  return *contractdocumentnumber_;
}
inline void PriceListMetadata::set_contractdocumentnumber(const ::std::string& value) {
  set_has_contractdocumentnumber();
  if (contractdocumentnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdocumentnumber_ = new ::std::string;
  }
  contractdocumentnumber_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentNumber)
}
inline void PriceListMetadata::set_contractdocumentnumber(const char* value) {
  set_has_contractdocumentnumber();
  if (contractdocumentnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdocumentnumber_ = new ::std::string;
  }
  contractdocumentnumber_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentNumber)
}
inline void PriceListMetadata::set_contractdocumentnumber(const char* value, size_t size) {
  set_has_contractdocumentnumber();
  if (contractdocumentnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdocumentnumber_ = new ::std::string;
  }
  contractdocumentnumber_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentNumber)
}
inline ::std::string* PriceListMetadata::mutable_contractdocumentnumber() {
  set_has_contractdocumentnumber();
  if (contractdocumentnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdocumentnumber_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentNumber)
  return contractdocumentnumber_;
}
inline ::std::string* PriceListMetadata::release_contractdocumentnumber() {
  clear_has_contractdocumentnumber();
  if (contractdocumentnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = contractdocumentnumber_;
    contractdocumentnumber_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void PriceListMetadata::set_allocated_contractdocumentnumber(::std::string* contractdocumentnumber) {
  if (contractdocumentnumber_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete contractdocumentnumber_;
  }
  if (contractdocumentnumber) {
    set_has_contractdocumentnumber();
    contractdocumentnumber_ = contractdocumentnumber;
  } else {
    clear_has_contractdocumentnumber();
    contractdocumentnumber_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ContractDocumentNumber)
}

// optional .Diadoc.Api.Proto.Documents.ReceiptStatus ReceiptStatus = 5 [default = UnknownReceiptStatus];
inline bool PriceListMetadata::has_receiptstatus() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void PriceListMetadata::set_has_receiptstatus() {
  _has_bits_[0] |= 0x00000010u;
}
inline void PriceListMetadata::clear_has_receiptstatus() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void PriceListMetadata::clear_receiptstatus() {
  receiptstatus_ = 0;
  clear_has_receiptstatus();
}
inline ::Diadoc::Api::Proto::Documents::ReceiptStatus PriceListMetadata::receiptstatus() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ReceiptStatus)
  return static_cast< ::Diadoc::Api::Proto::Documents::ReceiptStatus >(receiptstatus_);
}
inline void PriceListMetadata::set_receiptstatus(::Diadoc::Api::Proto::Documents::ReceiptStatus value) {
  assert(::Diadoc::Api::Proto::Documents::ReceiptStatus_IsValid(value));
  set_has_receiptstatus();
  receiptstatus_ = value;
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.PriceListMetadata.ReceiptStatus)
}

// -------------------------------------------------------------------

// ContractMetadata

// optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus DocumentStatus = 1 [default = UnknownBilateralDocumentStatus];
inline bool ContractMetadata::has_documentstatus() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContractMetadata::set_has_documentstatus() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContractMetadata::clear_has_documentstatus() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContractMetadata::clear_documentstatus() {
  documentstatus_ = 0;
  clear_has_documentstatus();
}
inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus ContractMetadata::documentstatus() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.DocumentStatus)
  return static_cast< ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus >(documentstatus_);
}
inline void ContractMetadata::set_documentstatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value) {
  assert(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus_IsValid(value));
  set_has_documentstatus();
  documentstatus_ = value;
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.DocumentStatus)
}

// optional string ContractPrice = 2;
inline bool ContractMetadata::has_contractprice() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ContractMetadata::set_has_contractprice() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ContractMetadata::clear_has_contractprice() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ContractMetadata::clear_contractprice() {
  if (contractprice_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractprice_->clear();
  }
  clear_has_contractprice();
}
inline const ::std::string& ContractMetadata::contractprice() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractPrice)
  return *contractprice_;
}
inline void ContractMetadata::set_contractprice(const ::std::string& value) {
  set_has_contractprice();
  if (contractprice_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractprice_ = new ::std::string;
  }
  contractprice_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractPrice)
}
inline void ContractMetadata::set_contractprice(const char* value) {
  set_has_contractprice();
  if (contractprice_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractprice_ = new ::std::string;
  }
  contractprice_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractPrice)
}
inline void ContractMetadata::set_contractprice(const char* value, size_t size) {
  set_has_contractprice();
  if (contractprice_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractprice_ = new ::std::string;
  }
  contractprice_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractPrice)
}
inline ::std::string* ContractMetadata::mutable_contractprice() {
  set_has_contractprice();
  if (contractprice_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractprice_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractPrice)
  return contractprice_;
}
inline ::std::string* ContractMetadata::release_contractprice() {
  clear_has_contractprice();
  if (contractprice_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = contractprice_;
    contractprice_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void ContractMetadata::set_allocated_contractprice(::std::string* contractprice) {
  if (contractprice_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete contractprice_;
  }
  if (contractprice) {
    set_has_contractprice();
    contractprice_ = contractprice;
  } else {
    clear_has_contractprice();
    contractprice_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractPrice)
}

// optional string ContractType = 3;
inline bool ContractMetadata::has_contracttype() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ContractMetadata::set_has_contracttype() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ContractMetadata::clear_has_contracttype() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ContractMetadata::clear_contracttype() {
  if (contracttype_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contracttype_->clear();
  }
  clear_has_contracttype();
}
inline const ::std::string& ContractMetadata::contracttype() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractType)
  return *contracttype_;
}
inline void ContractMetadata::set_contracttype(const ::std::string& value) {
  set_has_contracttype();
  if (contracttype_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contracttype_ = new ::std::string;
  }
  contracttype_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractType)
}
inline void ContractMetadata::set_contracttype(const char* value) {
  set_has_contracttype();
  if (contracttype_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contracttype_ = new ::std::string;
  }
  contracttype_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractType)
}
inline void ContractMetadata::set_contracttype(const char* value, size_t size) {
  set_has_contracttype();
  if (contracttype_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contracttype_ = new ::std::string;
  }
  contracttype_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractType)
}
inline ::std::string* ContractMetadata::mutable_contracttype() {
  set_has_contracttype();
  if (contracttype_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contracttype_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractType)
  return contracttype_;
}
inline ::std::string* ContractMetadata::release_contracttype() {
  clear_has_contracttype();
  if (contracttype_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = contracttype_;
    contracttype_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void ContractMetadata::set_allocated_contracttype(::std::string* contracttype) {
  if (contracttype_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete contracttype_;
  }
  if (contracttype) {
    set_has_contracttype();
    contracttype_ = contracttype;
  } else {
    clear_has_contracttype();
    contracttype_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ContractType)
}

// optional .Diadoc.Api.Proto.Documents.ReceiptStatus ReceiptStatus = 4 [default = UnknownReceiptStatus];
inline bool ContractMetadata::has_receiptstatus() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void ContractMetadata::set_has_receiptstatus() {
  _has_bits_[0] |= 0x00000008u;
}
inline void ContractMetadata::clear_has_receiptstatus() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void ContractMetadata::clear_receiptstatus() {
  receiptstatus_ = 0;
  clear_has_receiptstatus();
}
inline ::Diadoc::Api::Proto::Documents::ReceiptStatus ContractMetadata::receiptstatus() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ReceiptStatus)
  return static_cast< ::Diadoc::Api::Proto::Documents::ReceiptStatus >(receiptstatus_);
}
inline void ContractMetadata::set_receiptstatus(::Diadoc::Api::Proto::Documents::ReceiptStatus value) {
  assert(::Diadoc::Api::Proto::Documents::ReceiptStatus_IsValid(value));
  set_has_receiptstatus();
  receiptstatus_ = value;
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.ContractMetadata.ReceiptStatus)
}

// -------------------------------------------------------------------

// SupplementaryAgreementMetadata

// optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus DocumentStatus = 1 [default = UnknownBilateralDocumentStatus];
inline bool SupplementaryAgreementMetadata::has_documentstatus() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SupplementaryAgreementMetadata::set_has_documentstatus() {
  _has_bits_[0] |= 0x00000001u;
}
inline void SupplementaryAgreementMetadata::clear_has_documentstatus() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void SupplementaryAgreementMetadata::clear_documentstatus() {
  documentstatus_ = 0;
  clear_has_documentstatus();
}
inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus SupplementaryAgreementMetadata::documentstatus() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.DocumentStatus)
  return static_cast< ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus >(documentstatus_);
}
inline void SupplementaryAgreementMetadata::set_documentstatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value) {
  assert(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus_IsValid(value));
  set_has_documentstatus();
  documentstatus_ = value;
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.DocumentStatus)
}

// optional string Total = 2;
inline bool SupplementaryAgreementMetadata::has_total() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SupplementaryAgreementMetadata::set_has_total() {
  _has_bits_[0] |= 0x00000002u;
}
inline void SupplementaryAgreementMetadata::clear_has_total() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void SupplementaryAgreementMetadata::clear_total() {
  if (total_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    total_->clear();
  }
  clear_has_total();
}
inline const ::std::string& SupplementaryAgreementMetadata::total() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.Total)
  return *total_;
}
inline void SupplementaryAgreementMetadata::set_total(const ::std::string& value) {
  set_has_total();
  if (total_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    total_ = new ::std::string;
  }
  total_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.Total)
}
inline void SupplementaryAgreementMetadata::set_total(const char* value) {
  set_has_total();
  if (total_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    total_ = new ::std::string;
  }
  total_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.Total)
}
inline void SupplementaryAgreementMetadata::set_total(const char* value, size_t size) {
  set_has_total();
  if (total_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    total_ = new ::std::string;
  }
  total_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.Total)
}
inline ::std::string* SupplementaryAgreementMetadata::mutable_total() {
  set_has_total();
  if (total_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    total_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.Total)
  return total_;
}
inline ::std::string* SupplementaryAgreementMetadata::release_total() {
  clear_has_total();
  if (total_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = total_;
    total_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void SupplementaryAgreementMetadata::set_allocated_total(::std::string* total) {
  if (total_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete total_;
  }
  if (total) {
    set_has_total();
    total_ = total;
  } else {
    clear_has_total();
    total_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.Total)
}

// optional string ContractType = 3;
inline bool SupplementaryAgreementMetadata::has_contracttype() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SupplementaryAgreementMetadata::set_has_contracttype() {
  _has_bits_[0] |= 0x00000004u;
}
inline void SupplementaryAgreementMetadata::clear_has_contracttype() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void SupplementaryAgreementMetadata::clear_contracttype() {
  if (contracttype_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contracttype_->clear();
  }
  clear_has_contracttype();
}
inline const ::std::string& SupplementaryAgreementMetadata::contracttype() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractType)
  return *contracttype_;
}
inline void SupplementaryAgreementMetadata::set_contracttype(const ::std::string& value) {
  set_has_contracttype();
  if (contracttype_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contracttype_ = new ::std::string;
  }
  contracttype_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractType)
}
inline void SupplementaryAgreementMetadata::set_contracttype(const char* value) {
  set_has_contracttype();
  if (contracttype_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contracttype_ = new ::std::string;
  }
  contracttype_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractType)
}
inline void SupplementaryAgreementMetadata::set_contracttype(const char* value, size_t size) {
  set_has_contracttype();
  if (contracttype_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contracttype_ = new ::std::string;
  }
  contracttype_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractType)
}
inline ::std::string* SupplementaryAgreementMetadata::mutable_contracttype() {
  set_has_contracttype();
  if (contracttype_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contracttype_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractType)
  return contracttype_;
}
inline ::std::string* SupplementaryAgreementMetadata::release_contracttype() {
  clear_has_contracttype();
  if (contracttype_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = contracttype_;
    contracttype_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void SupplementaryAgreementMetadata::set_allocated_contracttype(::std::string* contracttype) {
  if (contracttype_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete contracttype_;
  }
  if (contracttype) {
    set_has_contracttype();
    contracttype_ = contracttype;
  } else {
    clear_has_contracttype();
    contracttype_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractType)
}

// required string ContractNumber = 4;
inline bool SupplementaryAgreementMetadata::has_contractnumber() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void SupplementaryAgreementMetadata::set_has_contractnumber() {
  _has_bits_[0] |= 0x00000008u;
}
inline void SupplementaryAgreementMetadata::clear_has_contractnumber() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void SupplementaryAgreementMetadata::clear_contractnumber() {
  if (contractnumber_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractnumber_->clear();
  }
  clear_has_contractnumber();
}
inline const ::std::string& SupplementaryAgreementMetadata::contractnumber() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractNumber)
  return *contractnumber_;
}
inline void SupplementaryAgreementMetadata::set_contractnumber(const ::std::string& value) {
  set_has_contractnumber();
  if (contractnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractnumber_ = new ::std::string;
  }
  contractnumber_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractNumber)
}
inline void SupplementaryAgreementMetadata::set_contractnumber(const char* value) {
  set_has_contractnumber();
  if (contractnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractnumber_ = new ::std::string;
  }
  contractnumber_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractNumber)
}
inline void SupplementaryAgreementMetadata::set_contractnumber(const char* value, size_t size) {
  set_has_contractnumber();
  if (contractnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractnumber_ = new ::std::string;
  }
  contractnumber_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractNumber)
}
inline ::std::string* SupplementaryAgreementMetadata::mutable_contractnumber() {
  set_has_contractnumber();
  if (contractnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractnumber_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractNumber)
  return contractnumber_;
}
inline ::std::string* SupplementaryAgreementMetadata::release_contractnumber() {
  clear_has_contractnumber();
  if (contractnumber_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = contractnumber_;
    contractnumber_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void SupplementaryAgreementMetadata::set_allocated_contractnumber(::std::string* contractnumber) {
  if (contractnumber_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete contractnumber_;
  }
  if (contractnumber) {
    set_has_contractnumber();
    contractnumber_ = contractnumber;
  } else {
    clear_has_contractnumber();
    contractnumber_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractNumber)
}

// required string ContractDate = 5;
inline bool SupplementaryAgreementMetadata::has_contractdate() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void SupplementaryAgreementMetadata::set_has_contractdate() {
  _has_bits_[0] |= 0x00000010u;
}
inline void SupplementaryAgreementMetadata::clear_has_contractdate() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void SupplementaryAgreementMetadata::clear_contractdate() {
  if (contractdate_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdate_->clear();
  }
  clear_has_contractdate();
}
inline const ::std::string& SupplementaryAgreementMetadata::contractdate() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractDate)
  return *contractdate_;
}
inline void SupplementaryAgreementMetadata::set_contractdate(const ::std::string& value) {
  set_has_contractdate();
  if (contractdate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdate_ = new ::std::string;
  }
  contractdate_->assign(value);
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractDate)
}
inline void SupplementaryAgreementMetadata::set_contractdate(const char* value) {
  set_has_contractdate();
  if (contractdate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdate_ = new ::std::string;
  }
  contractdate_->assign(value);
  // @@protoc_insertion_point(field_set_char:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractDate)
}
inline void SupplementaryAgreementMetadata::set_contractdate(const char* value, size_t size) {
  set_has_contractdate();
  if (contractdate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdate_ = new ::std::string;
  }
  contractdate_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractDate)
}
inline ::std::string* SupplementaryAgreementMetadata::mutable_contractdate() {
  set_has_contractdate();
  if (contractdate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    contractdate_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractDate)
  return contractdate_;
}
inline ::std::string* SupplementaryAgreementMetadata::release_contractdate() {
  clear_has_contractdate();
  if (contractdate_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = contractdate_;
    contractdate_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void SupplementaryAgreementMetadata::set_allocated_contractdate(::std::string* contractdate) {
  if (contractdate_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete contractdate_;
  }
  if (contractdate) {
    set_has_contractdate();
    contractdate_ = contractdate;
  } else {
    clear_has_contractdate();
    contractdate_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ContractDate)
}

// optional .Diadoc.Api.Proto.Documents.ReceiptStatus ReceiptStatus = 6 [default = UnknownReceiptStatus];
inline bool SupplementaryAgreementMetadata::has_receiptstatus() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void SupplementaryAgreementMetadata::set_has_receiptstatus() {
  _has_bits_[0] |= 0x00000020u;
}
inline void SupplementaryAgreementMetadata::clear_has_receiptstatus() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void SupplementaryAgreementMetadata::clear_receiptstatus() {
  receiptstatus_ = 0;
  clear_has_receiptstatus();
}
inline ::Diadoc::Api::Proto::Documents::ReceiptStatus SupplementaryAgreementMetadata::receiptstatus() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ReceiptStatus)
  return static_cast< ::Diadoc::Api::Proto::Documents::ReceiptStatus >(receiptstatus_);
}
inline void SupplementaryAgreementMetadata::set_receiptstatus(::Diadoc::Api::Proto::Documents::ReceiptStatus value) {
  assert(::Diadoc::Api::Proto::Documents::ReceiptStatus_IsValid(value));
  set_has_receiptstatus();
  receiptstatus_ = value;
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.SupplementaryAgreementMetadata.ReceiptStatus)
}

// -------------------------------------------------------------------

// BilateralDocumentMetadata

// optional .Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentStatus DocumentStatus = 1 [default = UnknownBilateralDocumentStatus];
inline bool BilateralDocumentMetadata::has_documentstatus() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void BilateralDocumentMetadata::set_has_documentstatus() {
  _has_bits_[0] |= 0x00000001u;
}
inline void BilateralDocumentMetadata::clear_has_documentstatus() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void BilateralDocumentMetadata::clear_documentstatus() {
  documentstatus_ = 0;
  clear_has_documentstatus();
}
inline ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus BilateralDocumentMetadata::documentstatus() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentMetadata.DocumentStatus)
  return static_cast< ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus >(documentstatus_);
}
inline void BilateralDocumentMetadata::set_documentstatus(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus value) {
  assert(::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus_IsValid(value));
  set_has_documentstatus();
  documentstatus_ = value;
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentMetadata.DocumentStatus)
}

// optional .Diadoc.Api.Proto.Documents.ReceiptStatus ReceiptStatus = 2 [default = UnknownReceiptStatus];
inline bool BilateralDocumentMetadata::has_receiptstatus() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void BilateralDocumentMetadata::set_has_receiptstatus() {
  _has_bits_[0] |= 0x00000002u;
}
inline void BilateralDocumentMetadata::clear_has_receiptstatus() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void BilateralDocumentMetadata::clear_receiptstatus() {
  receiptstatus_ = 0;
  clear_has_receiptstatus();
}
inline ::Diadoc::Api::Proto::Documents::ReceiptStatus BilateralDocumentMetadata::receiptstatus() const {
  // @@protoc_insertion_point(field_get:Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentMetadata.ReceiptStatus)
  return static_cast< ::Diadoc::Api::Proto::Documents::ReceiptStatus >(receiptstatus_);
}
inline void BilateralDocumentMetadata::set_receiptstatus(::Diadoc::Api::Proto::Documents::ReceiptStatus value) {
  assert(::Diadoc::Api::Proto::Documents::ReceiptStatus_IsValid(value));
  set_has_receiptstatus();
  receiptstatus_ = value;
  // @@protoc_insertion_point(field_set:Diadoc.Api.Proto.Documents.BilateralDocument.BilateralDocumentMetadata.ReceiptStatus)
}

// @@protoc_insertion_point(namespace_scope)

}  // namespace BilateralDocument
}  // namespace Documents
}  // namespace Proto
}  // namespace Api
}  // namespace Diadoc

#ifndef SWIG
namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus> : ::google::protobuf::internal::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus>() {
  return ::Diadoc::Api::Proto::Documents::BilateralDocument::BilateralDocumentStatus_descriptor();
}

}  // namespace google
}  // namespace protobuf
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_Documents_2fBilateralDocument_2eproto__INCLUDED

redpajama_set_name: RedPajamaGithub


Best Dog Walkers in Spruce Creek Estates of Port Orange, FL | Wag!
Spruce Creek Estates is a residential community sitting on the east bank of Spruce Creek that runs into Turnbull Bay. For those who work in Daytona, Jacksonville, the Cape, and Orlando, I-95 is only ten minutes away. You can also use I-95 as a way to reach I-4 which takes you west to Orlando and Tampa.
For shopping, there are plenty of shops, including grocery stores and pet supply stores, nearby at the junction of I-95 and Dunlawton Avenue. For those who like to dine out, Port Orange offers an excellent selection of both chain and local restaurants for your family to check out.
The beach is only fifteen minutes away and offers miles of sand and surf for everyone in your family to enjoy walking around out in the fresh air and sunshine. Along with this, there are several other green spaces for you and your dog to explore at every opportunity.
One of the reasons why so many people choose to live out here in Spruce Creek Estates is the relative quiet. The only times of day when the traffic builds up is during the morning and evening rush hours. Because this is a family neighborhood, you will also be dealing with school buses and the kids they carry. If you have no choice but to take your dog for walks during these times, be sure you keep them on a short leash.
The one thing missing here is sidewalks for you and your dog to walk on. This means you must walk on the roads, which are, luckily, heavily shaded. If possible, try to keep your walks in the community to the times of day when traffic is minimal as this will make your strolls in the fresh air far more enjoyable.
One mile to the north is the Seemore Memorial Dog Park, a large park with two separate fenced-in areas. There is one for larger breeds and one for the little guys, giving each of them a place to play safely without getting in the way of each other. Each of the two sections has plenty of shade, benches for you to relax on, and watering stations for the dogs to stay hydrated.
A fifteen-minute drive to the east will take you across the Halifax River on Dunlawton to the beach. Cars are allowed on the sand, so play close attention while you are out walking as most of those behind the wheel are paying more attention to the bikini-clad bathers than where they are going! The best time of day to come here with your dog for a walk is early in the morning before the sun comes up and the beach starts to fill up with tourists.