// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: opencv-caffe.proto
// Protobuf C++ Version: 6.32.1

#include "opencv-caffe.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/descriptor.h"
#include "google/protobuf/generated_message_reflection.h"
#include "google/protobuf/reflection_ops.h"
#include "google/protobuf/wire_format.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
namespace opencv_caffe {

inline constexpr WindowDataParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        source_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        mean_file_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        crop_mode_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        root_folder_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        batch_size_{0u},
        crop_size_{0u},
        mirror_{false},
        cache_images_{false},
        context_pad_{0u},
        scale_{1},
        fg_threshold_{0.5f},
        bg_threshold_{0.5f},
        fg_fraction_{0.25f} {}

template <typename>
PROTOBUF_CONSTEXPR WindowDataParameter::WindowDataParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(WindowDataParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct WindowDataParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR WindowDataParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~WindowDataParameterDefaultTypeInternal() {}
  union {
    WindowDataParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 WindowDataParameterDefaultTypeInternal _WindowDataParameter_default_instance_;

inline constexpr TransformationParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        mean_value_{},
        mean_file_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        crop_size_{0u},
        mirror_{false},
        force_color_{false},
        force_gray_{false},
        scale_{1} {}

template <typename>
PROTOBUF_CONSTEXPR TransformationParameter::TransformationParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(TransformationParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct TransformationParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR TransformationParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~TransformationParameterDefaultTypeInternal() {}
  union {
    TransformationParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TransformationParameterDefaultTypeInternal _TransformationParameter_default_instance_;

inline constexpr TileParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        tiles_{0},
        axis_{1} {}

template <typename>
PROTOBUF_CONSTEXPR TileParameter::TileParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(TileParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct TileParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR TileParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~TileParameterDefaultTypeInternal() {}
  union {
    TileParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TileParameterDefaultTypeInternal _TileParameter_default_instance_;

inline constexpr ThresholdParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        threshold_{0} {}

template <typename>
PROTOBUF_CONSTEXPR ThresholdParameter::ThresholdParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ThresholdParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ThresholdParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ThresholdParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ThresholdParameterDefaultTypeInternal() {}
  union {
    ThresholdParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ThresholdParameterDefaultTypeInternal _ThresholdParameter_default_instance_;

inline constexpr TanHParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        engine_{static_cast< ::opencv_caffe::TanHParameter_Engine >(0)} {}

template <typename>
PROTOBUF_CONSTEXPR TanHParameter::TanHParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(TanHParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct TanHParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR TanHParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~TanHParameterDefaultTypeInternal() {}
  union {
    TanHParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TanHParameterDefaultTypeInternal _TanHParameter_default_instance_;

inline constexpr SoftmaxParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        engine_{static_cast< ::opencv_caffe::SoftmaxParameter_Engine >(0)},
        axis_{1} {}

template <typename>
PROTOBUF_CONSTEXPR SoftmaxParameter::SoftmaxParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(SoftmaxParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct SoftmaxParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SoftmaxParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~SoftmaxParameterDefaultTypeInternal() {}
  union {
    SoftmaxParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SoftmaxParameterDefaultTypeInternal _SoftmaxParameter_default_instance_;

inline constexpr SliceParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        slice_point_{},
        slice_dim_{1u},
        axis_{1} {}

template <typename>
PROTOBUF_CONSTEXPR SliceParameter::SliceParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(SliceParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct SliceParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SliceParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~SliceParameterDefaultTypeInternal() {}
  union {
    SliceParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SliceParameterDefaultTypeInternal _SliceParameter_default_instance_;

inline constexpr SigmoidParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        engine_{static_cast< ::opencv_caffe::SigmoidParameter_Engine >(0)} {}

template <typename>
PROTOBUF_CONSTEXPR SigmoidParameter::SigmoidParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(SigmoidParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct SigmoidParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SigmoidParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~SigmoidParameterDefaultTypeInternal() {}
  union {
    SigmoidParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SigmoidParameterDefaultTypeInternal _SigmoidParameter_default_instance_;

inline constexpr SaveOutputParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        output_directory_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        output_name_prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        output_format_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        label_map_file_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        name_size_file_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        num_test_image_{0u} {}

template <typename>
PROTOBUF_CONSTEXPR SaveOutputParameter::SaveOutputParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(SaveOutputParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct SaveOutputParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SaveOutputParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~SaveOutputParameterDefaultTypeInternal() {}
  union {
    SaveOutputParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SaveOutputParameterDefaultTypeInternal _SaveOutputParameter_default_instance_;

inline constexpr SPPParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        pyramid_height_{0u},
        pool_{static_cast< ::opencv_caffe::SPPParameter_PoolMethod >(0)},
        engine_{static_cast< ::opencv_caffe::SPPParameter_Engine >(0)} {}

template <typename>
PROTOBUF_CONSTEXPR SPPParameter::SPPParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(SPPParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct SPPParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SPPParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~SPPParameterDefaultTypeInternal() {}
  union {
    SPPParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SPPParameterDefaultTypeInternal _SPPParameter_default_instance_;

inline constexpr ReductionParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        axis_{0},
        operation_{static_cast< ::opencv_caffe::ReductionParameter_ReductionOp >(1)},
        coeff_{1} {}

template <typename>
PROTOBUF_CONSTEXPR ReductionParameter::ReductionParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ReductionParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ReductionParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ReductionParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ReductionParameterDefaultTypeInternal() {}
  union {
    ReductionParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ReductionParameterDefaultTypeInternal _ReductionParameter_default_instance_;

inline constexpr ReLUParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        negative_slope_{0},
        engine_{static_cast< ::opencv_caffe::ReLUParameter_Engine >(0)} {}

template <typename>
PROTOBUF_CONSTEXPR ReLUParameter::ReLUParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ReLUParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ReLUParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ReLUParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ReLUParameterDefaultTypeInternal() {}
  union {
    ReLUParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ReLUParameterDefaultTypeInternal _ReLUParameter_default_instance_;

inline constexpr ROIPoolingParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        pooled_h_{0u},
        pooled_w_{0u},
        spatial_scale_{1} {}

template <typename>
PROTOBUF_CONSTEXPR ROIPoolingParameter::ROIPoolingParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ROIPoolingParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ROIPoolingParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ROIPoolingParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ROIPoolingParameterDefaultTypeInternal() {}
  union {
    ROIPoolingParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ROIPoolingParameterDefaultTypeInternal _ROIPoolingParameter_default_instance_;

inline constexpr PythonParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        module_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        layer_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        param_str_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        share_in_parallel_{false} {}

template <typename>
PROTOBUF_CONSTEXPR PythonParameter::PythonParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(PythonParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct PythonParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PythonParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PythonParameterDefaultTypeInternal() {}
  union {
    PythonParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PythonParameterDefaultTypeInternal _PythonParameter_default_instance_;

inline constexpr ProposalParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        ratio_{},
        scale_{},
        feat_stride_{16u},
        base_size_{16u},
        min_size_{16u},
        pre_nms_topn_{6000u},
        post_nms_topn_{300u},
        nms_thresh_{0.7f} {}

template <typename>
PROTOBUF_CONSTEXPR ProposalParameter::ProposalParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ProposalParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ProposalParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ProposalParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ProposalParameterDefaultTypeInternal() {}
  union {
    ProposalParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ProposalParameterDefaultTypeInternal _ProposalParameter_default_instance_;

inline constexpr PriorBoxParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        min_size_{},
        max_size_{},
        aspect_ratio_{},
        variance_{},
        offset_h_{},
        offset_w_{},
        width_{},
        height_{},
        img_size_{0u},
        img_h_{0u},
        img_w_{0u},
        step_{0},
        step_h_{0},
        step_w_{0},
        flip_{true},
        clip_{true},
        offset_{0.5f} {}

template <typename>
PROTOBUF_CONSTEXPR PriorBoxParameter::PriorBoxParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(PriorBoxParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct PriorBoxParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PriorBoxParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PriorBoxParameterDefaultTypeInternal() {}
  union {
    PriorBoxParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PriorBoxParameterDefaultTypeInternal _PriorBoxParameter_default_instance_;

inline constexpr PowerParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        shift_{0},
        power_{1},
        scale_{1} {}

template <typename>
PROTOBUF_CONSTEXPR PowerParameter::PowerParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(PowerParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct PowerParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PowerParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PowerParameterDefaultTypeInternal() {}
  union {
    PowerParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PowerParameterDefaultTypeInternal _PowerParameter_default_instance_;

inline constexpr PoolingParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        pool_{static_cast< ::opencv_caffe::PoolingParameter_PoolMethod >(0)},
        kernel_size_{0u},
        pad_{0u},
        kernel_h_{0u},
        kernel_w_{0u},
        stride_h_{0u},
        stride_w_{0u},
        pad_h_{0u},
        pad_w_{0u},
        engine_{static_cast< ::opencv_caffe::PoolingParameter_Engine >(0)},
        global_pooling_{false},
        stride_{1u},
        ceil_mode_{true} {}

template <typename>
PROTOBUF_CONSTEXPR PoolingParameter::PoolingParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(PoolingParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct PoolingParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PoolingParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PoolingParameterDefaultTypeInternal() {}
  union {
    PoolingParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PoolingParameterDefaultTypeInternal _PoolingParameter_default_instance_;

inline constexpr PermuteParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : order_{},
        _cached_size_{0} {}

template <typename>
PROTOBUF_CONSTEXPR PermuteParameter::PermuteParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(PermuteParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct PermuteParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PermuteParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PermuteParameterDefaultTypeInternal() {}
  union {
    PermuteParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PermuteParameterDefaultTypeInternal _PermuteParameter_default_instance_;

inline constexpr ParamSpec::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        share_mode_{static_cast< ::opencv_caffe::ParamSpec_DimCheckMode >(0)},
        lr_mult_{1},
        decay_mult_{1} {}

template <typename>
PROTOBUF_CONSTEXPR ParamSpec::ParamSpec(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ParamSpec_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ParamSpecDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ParamSpecDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ParamSpecDefaultTypeInternal() {}
  union {
    ParamSpec _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ParamSpecDefaultTypeInternal _ParamSpec_default_instance_;

inline constexpr PSROIPoolingParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        spatial_scale_{0},
        output_dim_{0},
        group_size_{0} {}

template <typename>
PROTOBUF_CONSTEXPR PSROIPoolingParameter::PSROIPoolingParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(PSROIPoolingParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct PSROIPoolingParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PSROIPoolingParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PSROIPoolingParameterDefaultTypeInternal() {}
  union {
    PSROIPoolingParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PSROIPoolingParameterDefaultTypeInternal _PSROIPoolingParameter_default_instance_;

inline constexpr NormalizedBBox::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        xmin_{0},
        ymin_{0},
        xmax_{0},
        ymax_{0},
        label_{0},
        difficult_{false},
        score_{0},
        size_{0} {}

template <typename>
PROTOBUF_CONSTEXPR NormalizedBBox::NormalizedBBox(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(NormalizedBBox_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct NormalizedBBoxDefaultTypeInternal {
  PROTOBUF_CONSTEXPR NormalizedBBoxDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~NormalizedBBoxDefaultTypeInternal() {}
  union {
    NormalizedBBox _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 NormalizedBBoxDefaultTypeInternal _NormalizedBBox_default_instance_;

inline constexpr NonMaximumSuppressionParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        top_k_{0},
        nms_threshold_{0.3f},
        eta_{1} {}

template <typename>
PROTOBUF_CONSTEXPR NonMaximumSuppressionParameter::NonMaximumSuppressionParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(NonMaximumSuppressionParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct NonMaximumSuppressionParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR NonMaximumSuppressionParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~NonMaximumSuppressionParameterDefaultTypeInternal() {}
  union {
    NonMaximumSuppressionParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 NonMaximumSuppressionParameterDefaultTypeInternal _NonMaximumSuppressionParameter_default_instance_;

inline constexpr NetStateRule::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        stage_{},
        not_stage_{},
        phase_{static_cast< ::opencv_caffe::Phase >(0)},
        min_level_{0},
        max_level_{0} {}

template <typename>
PROTOBUF_CONSTEXPR NetStateRule::NetStateRule(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(NetStateRule_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct NetStateRuleDefaultTypeInternal {
  PROTOBUF_CONSTEXPR NetStateRuleDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~NetStateRuleDefaultTypeInternal() {}
  union {
    NetStateRule _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 NetStateRuleDefaultTypeInternal _NetStateRule_default_instance_;

inline constexpr NetState::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        stage_{},
        level_{0},
        phase_{static_cast< ::opencv_caffe::Phase >(1)} {}

template <typename>
PROTOBUF_CONSTEXPR NetState::NetState(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(NetState_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct NetStateDefaultTypeInternal {
  PROTOBUF_CONSTEXPR NetStateDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~NetStateDefaultTypeInternal() {}
  union {
    NetState _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 NetStateDefaultTypeInternal _NetState_default_instance_;

inline constexpr MemoryDataParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        batch_size_{0u},
        channels_{0u},
        height_{0u},
        width_{0u} {}

template <typename>
PROTOBUF_CONSTEXPR MemoryDataParameter::MemoryDataParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(MemoryDataParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct MemoryDataParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MemoryDataParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~MemoryDataParameterDefaultTypeInternal() {}
  union {
    MemoryDataParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MemoryDataParameterDefaultTypeInternal _MemoryDataParameter_default_instance_;

inline constexpr MVNParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        across_channels_{false},
        normalize_variance_{true},
        eps_{1e-09f} {}

template <typename>
PROTOBUF_CONSTEXPR MVNParameter::MVNParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(MVNParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct MVNParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR MVNParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~MVNParameterDefaultTypeInternal() {}
  union {
    MVNParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 MVNParameterDefaultTypeInternal _MVNParameter_default_instance_;

inline constexpr LossParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        ignore_label_{0},
        normalize_{false},
        normalization_{static_cast< ::opencv_caffe::LossParameter_NormalizationMode >(1)} {}

template <typename>
PROTOBUF_CONSTEXPR LossParameter::LossParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(LossParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct LossParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR LossParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~LossParameterDefaultTypeInternal() {}
  union {
    LossParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 LossParameterDefaultTypeInternal _LossParameter_default_instance_;

inline constexpr LogParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        shift_{0},
        base_{-1},
        scale_{1} {}

template <typename>
PROTOBUF_CONSTEXPR LogParameter::LogParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(LogParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct LogParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR LogParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~LogParameterDefaultTypeInternal() {}
  union {
    LogParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 LogParameterDefaultTypeInternal _LogParameter_default_instance_;

inline constexpr LRNParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        norm_region_{static_cast< ::opencv_caffe::LRNParameter_NormRegion >(0)},
        engine_{static_cast< ::opencv_caffe::LRNParameter_Engine >(0)},
        local_size_{5u},
        alpha_{1},
        beta_{0.75f},
        k_{1} {}

template <typename>
PROTOBUF_CONSTEXPR LRNParameter::LRNParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(LRNParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct LRNParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR LRNParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~LRNParameterDefaultTypeInternal() {}
  union {
    LRNParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 LRNParameterDefaultTypeInternal _LRNParameter_default_instance_;

inline constexpr InfogainLossParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        source_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
PROTOBUF_CONSTEXPR InfogainLossParameter::InfogainLossParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(InfogainLossParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct InfogainLossParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR InfogainLossParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~InfogainLossParameterDefaultTypeInternal() {}
  union {
    InfogainLossParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 InfogainLossParameterDefaultTypeInternal _InfogainLossParameter_default_instance_;

inline constexpr ImageDataParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        source_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        mean_file_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        root_folder_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        crop_size_{0u},
        rand_skip_{0u},
        mirror_{false},
        shuffle_{false},
        new_height_{0u},
        new_width_{0u},
        is_color_{true},
        scale_{1},
        batch_size_{1u} {}

template <typename>
PROTOBUF_CONSTEXPR ImageDataParameter::ImageDataParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ImageDataParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ImageDataParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ImageDataParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ImageDataParameterDefaultTypeInternal() {}
  union {
    ImageDataParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ImageDataParameterDefaultTypeInternal _ImageDataParameter_default_instance_;

inline constexpr HingeLossParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        norm_{static_cast< ::opencv_caffe::HingeLossParameter_Norm >(1)} {}

template <typename>
PROTOBUF_CONSTEXPR HingeLossParameter::HingeLossParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(HingeLossParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct HingeLossParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR HingeLossParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~HingeLossParameterDefaultTypeInternal() {}
  union {
    HingeLossParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 HingeLossParameterDefaultTypeInternal _HingeLossParameter_default_instance_;

inline constexpr HDF5OutputParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        file_name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
PROTOBUF_CONSTEXPR HDF5OutputParameter::HDF5OutputParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(HDF5OutputParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct HDF5OutputParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR HDF5OutputParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~HDF5OutputParameterDefaultTypeInternal() {}
  union {
    HDF5OutputParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 HDF5OutputParameterDefaultTypeInternal _HDF5OutputParameter_default_instance_;

inline constexpr HDF5DataParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        source_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        batch_size_{0u},
        shuffle_{false} {}

template <typename>
PROTOBUF_CONSTEXPR HDF5DataParameter::HDF5DataParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(HDF5DataParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct HDF5DataParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR HDF5DataParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~HDF5DataParameterDefaultTypeInternal() {}
  union {
    HDF5DataParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 HDF5DataParameterDefaultTypeInternal _HDF5DataParameter_default_instance_;

inline constexpr FlattenParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        axis_{1},
        end_axis_{-1} {}

template <typename>
PROTOBUF_CONSTEXPR FlattenParameter::FlattenParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(FlattenParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct FlattenParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR FlattenParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~FlattenParameterDefaultTypeInternal() {}
  union {
    FlattenParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 FlattenParameterDefaultTypeInternal _FlattenParameter_default_instance_;

inline constexpr FillerParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        type_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        value_{0},
        min_{0},
        mean_{0},
        variance_norm_{static_cast< ::opencv_caffe::FillerParameter_VarianceNorm >(0)},
        max_{1},
        std_{1},
        sparse_{-1} {}

template <typename>
PROTOBUF_CONSTEXPR FillerParameter::FillerParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(FillerParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct FillerParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR FillerParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~FillerParameterDefaultTypeInternal() {}
  union {
    FillerParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 FillerParameterDefaultTypeInternal _FillerParameter_default_instance_;

inline constexpr ExpParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        shift_{0},
        base_{-1},
        scale_{1} {}

template <typename>
PROTOBUF_CONSTEXPR ExpParameter::ExpParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ExpParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ExpParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ExpParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ExpParameterDefaultTypeInternal() {}
  union {
    ExpParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ExpParameterDefaultTypeInternal _ExpParameter_default_instance_;

inline constexpr EltwiseParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        coeff_{},
        operation_{static_cast< ::opencv_caffe::EltwiseParameter_EltwiseOp >(1)},
        stable_prod_grad_{true} {}

template <typename>
PROTOBUF_CONSTEXPR EltwiseParameter::EltwiseParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(EltwiseParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct EltwiseParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR EltwiseParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~EltwiseParameterDefaultTypeInternal() {}
  union {
    EltwiseParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 EltwiseParameterDefaultTypeInternal _EltwiseParameter_default_instance_;

inline constexpr ELUParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        alpha_{1} {}

template <typename>
PROTOBUF_CONSTEXPR ELUParameter::ELUParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ELUParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ELUParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ELUParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ELUParameterDefaultTypeInternal() {}
  union {
    ELUParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ELUParameterDefaultTypeInternal _ELUParameter_default_instance_;

inline constexpr DropoutParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        dropout_ratio_{0.5f},
        scale_train_{true} {}

template <typename>
PROTOBUF_CONSTEXPR DropoutParameter::DropoutParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(DropoutParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct DropoutParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DropoutParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DropoutParameterDefaultTypeInternal() {}
  union {
    DropoutParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DropoutParameterDefaultTypeInternal _DropoutParameter_default_instance_;

inline constexpr Datum::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        float_data_{},
        data_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        channels_{0},
        height_{0},
        width_{0},
        label_{0},
        encoded_{false} {}

template <typename>
PROTOBUF_CONSTEXPR Datum::Datum(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(Datum_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct DatumDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DatumDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DatumDefaultTypeInternal() {}
  union {
    Datum _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DatumDefaultTypeInternal _Datum_default_instance_;

inline constexpr DataParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        source_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        mean_file_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        batch_size_{0u},
        crop_size_{0u},
        rand_skip_{0u},
        mirror_{false},
        force_encoded_color_{false},
        backend_{static_cast< ::opencv_caffe::DataParameter_DB >(0)},
        scale_{1},
        prefetch_{4u} {}

template <typename>
PROTOBUF_CONSTEXPR DataParameter::DataParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(DataParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct DataParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DataParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DataParameterDefaultTypeInternal() {}
  union {
    DataParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DataParameterDefaultTypeInternal _DataParameter_default_instance_;

inline constexpr CropParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        offset_{},
        axis_{2} {}

template <typename>
PROTOBUF_CONSTEXPR CropParameter::CropParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(CropParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct CropParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CropParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~CropParameterDefaultTypeInternal() {}
  union {
    CropParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CropParameterDefaultTypeInternal _CropParameter_default_instance_;

inline constexpr ContrastiveLossParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        legacy_version_{false},
        margin_{1} {}

template <typename>
PROTOBUF_CONSTEXPR ContrastiveLossParameter::ContrastiveLossParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ContrastiveLossParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ContrastiveLossParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ContrastiveLossParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ContrastiveLossParameterDefaultTypeInternal() {}
  union {
    ContrastiveLossParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ContrastiveLossParameterDefaultTypeInternal _ContrastiveLossParameter_default_instance_;

inline constexpr ConcatParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        concat_dim_{1u},
        axis_{1} {}

template <typename>
PROTOBUF_CONSTEXPR ConcatParameter::ConcatParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ConcatParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ConcatParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ConcatParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ConcatParameterDefaultTypeInternal() {}
  union {
    ConcatParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ConcatParameterDefaultTypeInternal _ConcatParameter_default_instance_;

inline constexpr BlobShape::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : dim_{},
        _dim_cached_byte_size_{0},
        _cached_size_{0} {}

template <typename>
PROTOBUF_CONSTEXPR BlobShape::BlobShape(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(BlobShape_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct BlobShapeDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BlobShapeDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~BlobShapeDefaultTypeInternal() {}
  union {
    BlobShape _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BlobShapeDefaultTypeInternal _BlobShape_default_instance_;

inline constexpr BatchNormParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        use_global_stats_{false},
        scale_bias_{false},
        moving_average_fraction_{0.999f},
        eps_{1e-05f} {}

template <typename>
PROTOBUF_CONSTEXPR BatchNormParameter::BatchNormParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(BatchNormParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct BatchNormParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BatchNormParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~BatchNormParameterDefaultTypeInternal() {}
  union {
    BatchNormParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BatchNormParameterDefaultTypeInternal _BatchNormParameter_default_instance_;

inline constexpr ArgMaxParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        out_max_val_{false},
        axis_{0},
        top_k_{1u} {}

template <typename>
PROTOBUF_CONSTEXPR ArgMaxParameter::ArgMaxParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ArgMaxParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ArgMaxParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ArgMaxParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ArgMaxParameterDefaultTypeInternal() {}
  union {
    ArgMaxParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ArgMaxParameterDefaultTypeInternal _ArgMaxParameter_default_instance_;

inline constexpr AccuracyParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        ignore_label_{0},
        top_k_{1u},
        axis_{1} {}

template <typename>
PROTOBUF_CONSTEXPR AccuracyParameter::AccuracyParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(AccuracyParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct AccuracyParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR AccuracyParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~AccuracyParameterDefaultTypeInternal() {}
  union {
    AccuracyParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AccuracyParameterDefaultTypeInternal _AccuracyParameter_default_instance_;

inline constexpr ScaleParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        filler_{nullptr},
        bias_filler_{nullptr},
        bias_term_{false},
        axis_{1},
        num_axes_{1} {}

template <typename>
PROTOBUF_CONSTEXPR ScaleParameter::ScaleParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ScaleParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ScaleParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ScaleParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ScaleParameterDefaultTypeInternal() {}
  union {
    ScaleParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ScaleParameterDefaultTypeInternal _ScaleParameter_default_instance_;

inline constexpr ReshapeParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        shape_{nullptr},
        axis_{0},
        num_axes_{-1} {}

template <typename>
PROTOBUF_CONSTEXPR ReshapeParameter::ReshapeParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ReshapeParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ReshapeParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ReshapeParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ReshapeParameterDefaultTypeInternal() {}
  union {
    ReshapeParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ReshapeParameterDefaultTypeInternal _ReshapeParameter_default_instance_;

inline constexpr RecurrentParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        weight_filler_{nullptr},
        bias_filler_{nullptr},
        num_output_{0u},
        debug_info_{false},
        expose_hidden_{false} {}

template <typename>
PROTOBUF_CONSTEXPR RecurrentParameter::RecurrentParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(RecurrentParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct RecurrentParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR RecurrentParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~RecurrentParameterDefaultTypeInternal() {}
  union {
    RecurrentParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RecurrentParameterDefaultTypeInternal _RecurrentParameter_default_instance_;

inline constexpr ParameterParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        shape_{nullptr} {}

template <typename>
PROTOBUF_CONSTEXPR ParameterParameter::ParameterParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ParameterParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ParameterParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ParameterParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ParameterParameterDefaultTypeInternal() {}
  union {
    ParameterParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ParameterParameterDefaultTypeInternal _ParameterParameter_default_instance_;

inline constexpr PReLUParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        filler_{nullptr},
        channel_shared_{false} {}

template <typename>
PROTOBUF_CONSTEXPR PReLUParameter::PReLUParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(PReLUParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct PReLUParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR PReLUParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~PReLUParameterDefaultTypeInternal() {}
  union {
    PReLUParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PReLUParameterDefaultTypeInternal _PReLUParameter_default_instance_;

inline constexpr NormalizeBBoxParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        scale_filler_{nullptr},
        across_spatial_{true},
        channel_shared_{true},
        eps_{1e-10f} {}

template <typename>
PROTOBUF_CONSTEXPR NormalizeBBoxParameter::NormalizeBBoxParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(NormalizeBBoxParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct NormalizeBBoxParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR NormalizeBBoxParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~NormalizeBBoxParameterDefaultTypeInternal() {}
  union {
    NormalizeBBoxParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 NormalizeBBoxParameterDefaultTypeInternal _NormalizeBBoxParameter_default_instance_;

inline constexpr InputParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : shape_{},
        _cached_size_{0} {}

template <typename>
PROTOBUF_CONSTEXPR InputParameter::InputParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(InputParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct InputParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR InputParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~InputParameterDefaultTypeInternal() {}
  union {
    InputParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 InputParameterDefaultTypeInternal _InputParameter_default_instance_;

inline constexpr InnerProductParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        weight_filler_{nullptr},
        bias_filler_{nullptr},
        num_output_{0u},
        transpose_{false},
        bias_term_{true},
        axis_{1} {}

template <typename>
PROTOBUF_CONSTEXPR InnerProductParameter::InnerProductParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(InnerProductParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct InnerProductParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR InnerProductParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~InnerProductParameterDefaultTypeInternal() {}
  union {
    InnerProductParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 InnerProductParameterDefaultTypeInternal _InnerProductParameter_default_instance_;

inline constexpr EmbedParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        weight_filler_{nullptr},
        bias_filler_{nullptr},
        num_output_{0u},
        input_dim_{0u},
        bias_term_{true} {}

template <typename>
PROTOBUF_CONSTEXPR EmbedParameter::EmbedParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(EmbedParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct EmbedParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR EmbedParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~EmbedParameterDefaultTypeInternal() {}
  union {
    EmbedParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 EmbedParameterDefaultTypeInternal _EmbedParameter_default_instance_;

inline constexpr DummyDataParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : data_filler_{},
        num_{},
        channels_{},
        height_{},
        width_{},
        shape_{},
        _cached_size_{0} {}

template <typename>
PROTOBUF_CONSTEXPR DummyDataParameter::DummyDataParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(DummyDataParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct DummyDataParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DummyDataParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DummyDataParameterDefaultTypeInternal() {}
  union {
    DummyDataParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DummyDataParameterDefaultTypeInternal _DummyDataParameter_default_instance_;

inline constexpr DetectionOutputParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        nms_param_{nullptr},
        save_output_param_{nullptr},
        num_classes_{0u},
        background_label_id_{0},
        variance_encoded_in_target_{false},
        confidence_threshold_{0},
        clip_{false},
        code_type_{static_cast< ::opencv_caffe::PriorBoxParameter_CodeType >(1)},
        share_location_{true},
        normalized_bbox_{true},
        keep_top_k_{-1} {}

template <typename>
PROTOBUF_CONSTEXPR DetectionOutputParameter::DetectionOutputParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(DetectionOutputParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct DetectionOutputParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR DetectionOutputParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~DetectionOutputParameterDefaultTypeInternal() {}
  union {
    DetectionOutputParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 DetectionOutputParameterDefaultTypeInternal _DetectionOutputParameter_default_instance_;

inline constexpr ConvolutionParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        pad_{},
        kernel_size_{},
        stride_{},
        dilation_{},
        weight_filler_{nullptr},
        bias_filler_{nullptr},
        num_output_{0u},
        pad_h_{0u},
        pad_w_{0u},
        kernel_h_{0u},
        kernel_w_{0u},
        stride_h_{0u},
        stride_w_{0u},
        engine_{static_cast< ::opencv_caffe::ConvolutionParameter_Engine >(0)},
        force_nd_im2col_{false},
        axis_{1},
        bias_term_{true},
        group_{1u} {}

template <typename>
PROTOBUF_CONSTEXPR ConvolutionParameter::ConvolutionParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(ConvolutionParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct ConvolutionParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ConvolutionParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~ConvolutionParameterDefaultTypeInternal() {}
  union {
    ConvolutionParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ConvolutionParameterDefaultTypeInternal _ConvolutionParameter_default_instance_;

inline constexpr BlobProto::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        data_{},
        diff_{},
        double_data_{},
        double_diff_{},
        raw_data_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        shape_{nullptr},
        num_{0},
        channels_{0},
        height_{0},
        width_{0},
        raw_data_type_{static_cast< ::opencv_caffe::Type >(0)} {}

template <typename>
PROTOBUF_CONSTEXPR BlobProto::BlobProto(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(BlobProto_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct BlobProtoDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BlobProtoDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~BlobProtoDefaultTypeInternal() {}
  union {
    BlobProto _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BlobProtoDefaultTypeInternal _BlobProto_default_instance_;

inline constexpr BiasParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        filler_{nullptr},
        axis_{1},
        num_axes_{1} {}

template <typename>
PROTOBUF_CONSTEXPR BiasParameter::BiasParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(BiasParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct BiasParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BiasParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~BiasParameterDefaultTypeInternal() {}
  union {
    BiasParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BiasParameterDefaultTypeInternal _BiasParameter_default_instance_;

inline constexpr V0LayerParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        blobs_{},
        blobs_lr_{},
        weight_decay_{},
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        type_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        source_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        meanfile_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        det_crop_mode_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        weight_filler_{nullptr},
        bias_filler_{nullptr},
        hdf5_output_param_{nullptr},
        num_output_{0u},
        pad_{0u},
        kernelsize_{0u},
        pool_{static_cast< ::opencv_caffe::V0LayerParameter_PoolMethod >(0)},
        batchsize_{0u},
        cropsize_{0u},
        mirror_{false},
        det_context_pad_{0u},
        new_num_{0},
        new_channels_{0},
        new_height_{0},
        new_width_{0},
        biasterm_{true},
        group_{1u},
        stride_{1u},
        dropout_ratio_{0.5f},
        local_size_{5u},
        alpha_{1},
        beta_{0.75f},
        scale_{1},
        k_{1},
        det_bg_threshold_{0.5f},
        det_fg_fraction_{0.25f},
        rand_skip_{0u},
        shuffle_images_{false},
        det_fg_threshold_{0.5f},
        concat_dim_{1u} {}

template <typename>
PROTOBUF_CONSTEXPR V0LayerParameter::V0LayerParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(V0LayerParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct V0LayerParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR V0LayerParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~V0LayerParameterDefaultTypeInternal() {}
  union {
    V0LayerParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 V0LayerParameterDefaultTypeInternal _V0LayerParameter_default_instance_;

inline constexpr SolverState::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        history_{},
        learned_net_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        iter_{0},
        current_step_{0} {}

template <typename>
PROTOBUF_CONSTEXPR SolverState::SolverState(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(SolverState_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct SolverStateDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SolverStateDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~SolverStateDefaultTypeInternal() {}
  union {
    SolverState _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SolverStateDefaultTypeInternal _SolverState_default_instance_;

inline constexpr LayerParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        bottom_{},
        top_{},
        loss_weight_{},
        param_{},
        blobs_{},
        include_{},
        exclude_{},
        propagate_down_{},
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        type_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        transform_param_{nullptr},
        loss_param_{nullptr},
        accuracy_param_{nullptr},
        argmax_param_{nullptr},
        concat_param_{nullptr},
        contrastive_loss_param_{nullptr},
        convolution_param_{nullptr},
        data_param_{nullptr},
        dropout_param_{nullptr},
        dummy_data_param_{nullptr},
        eltwise_param_{nullptr},
        exp_param_{nullptr},
        hdf5_data_param_{nullptr},
        hdf5_output_param_{nullptr},
        hinge_loss_param_{nullptr},
        image_data_param_{nullptr},
        phase_{static_cast< ::opencv_caffe::Phase >(0)},
        infogain_loss_param_{nullptr},
        inner_product_param_{nullptr},
        lrn_param_{nullptr},
        memory_data_param_{nullptr},
        mvn_param_{nullptr},
        pooling_param_{nullptr},
        power_param_{nullptr},
        relu_param_{nullptr},
        sigmoid_param_{nullptr},
        softmax_param_{nullptr},
        slice_param_{nullptr},
        tanh_param_{nullptr},
        threshold_param_{nullptr},
        window_data_param_{nullptr},
        python_param_{nullptr},
        prelu_param_{nullptr},
        spp_param_{nullptr},
        reshape_param_{nullptr},
        log_param_{nullptr},
        flatten_param_{nullptr},
        reduction_param_{nullptr},
        embed_param_{nullptr},
        tile_param_{nullptr},
        batch_norm_param_{nullptr},
        elu_param_{nullptr},
        bias_param_{nullptr},
        scale_param_{nullptr},
        input_param_{nullptr},
        crop_param_{nullptr},
        parameter_param_{nullptr},
        recurrent_param_{nullptr},
        detection_output_param_{nullptr},
        permute_param_{nullptr},
        norm_param_{nullptr},
        prior_box_param_{nullptr},
        proposal_param_{nullptr},
        psroi_pooling_param_{nullptr},
        roi_pooling_param_{nullptr} {}

template <typename>
PROTOBUF_CONSTEXPR LayerParameter::LayerParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(LayerParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct LayerParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR LayerParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~LayerParameterDefaultTypeInternal() {}
  union {
    LayerParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 LayerParameterDefaultTypeInternal _LayerParameter_default_instance_;

inline constexpr BlobProtoVector::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : blobs_{},
        _cached_size_{0} {}

template <typename>
PROTOBUF_CONSTEXPR BlobProtoVector::BlobProtoVector(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(BlobProtoVector_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct BlobProtoVectorDefaultTypeInternal {
  PROTOBUF_CONSTEXPR BlobProtoVectorDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~BlobProtoVectorDefaultTypeInternal() {}
  union {
    BlobProtoVector _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 BlobProtoVectorDefaultTypeInternal _BlobProtoVector_default_instance_;

inline constexpr V1LayerParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        bottom_{},
        top_{},
        blobs_{},
        blobs_lr_{},
        weight_decay_{},
        include_{},
        exclude_{},
        loss_weight_{},
        param_{},
        blob_share_mode_{},
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        layer_{nullptr},
        concat_param_{nullptr},
        convolution_param_{nullptr},
        data_param_{nullptr},
        dropout_param_{nullptr},
        hdf5_data_param_{nullptr},
        hdf5_output_param_{nullptr},
        image_data_param_{nullptr},
        infogain_loss_param_{nullptr},
        inner_product_param_{nullptr},
        lrn_param_{nullptr},
        pooling_param_{nullptr},
        window_data_param_{nullptr},
        power_param_{nullptr},
        memory_data_param_{nullptr},
        argmax_param_{nullptr},
        eltwise_param_{nullptr},
        threshold_param_{nullptr},
        dummy_data_param_{nullptr},
        accuracy_param_{nullptr},
        hinge_loss_param_{nullptr},
        relu_param_{nullptr},
        slice_param_{nullptr},
        type_{static_cast< ::opencv_caffe::V1LayerParameter_LayerType >(0)},
        mvn_param_{nullptr},
        transform_param_{nullptr},
        tanh_param_{nullptr},
        sigmoid_param_{nullptr},
        softmax_param_{nullptr},
        contrastive_loss_param_{nullptr},
        exp_param_{nullptr},
        loss_param_{nullptr} {}

template <typename>
PROTOBUF_CONSTEXPR V1LayerParameter::V1LayerParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(V1LayerParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct V1LayerParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR V1LayerParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~V1LayerParameterDefaultTypeInternal() {}
  union {
    V1LayerParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 V1LayerParameterDefaultTypeInternal _V1LayerParameter_default_instance_;

inline constexpr NetParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        layers_{},
        input_{},
        input_dim_{},
        input_shape_{},
        layer_{},
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        state_{nullptr},
        force_backward_{false},
        debug_info_{false} {}

template <typename>
PROTOBUF_CONSTEXPR NetParameter::NetParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(NetParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct NetParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR NetParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~NetParameterDefaultTypeInternal() {}
  union {
    NetParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 NetParameterDefaultTypeInternal _NetParameter_default_instance_;

inline constexpr SolverParameter::Impl_::Impl_(
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        test_net_{},
        test_iter_{},
        test_net_param_{},
        test_state_{},
        stepvalue_{},
        train_net_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        lr_policy_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        snapshot_prefix_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        net_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        regularization_type_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        train_net_param_{nullptr},
        net_param_{nullptr},
        train_state_{nullptr},
        test_interval_{0},
        base_lr_{0},
        display_{0},
        max_iter_{0},
        gamma_{0},
        power_{0},
        momentum_{0},
        weight_decay_{0},
        stepsize_{0},
        snapshot_{0},
        device_id_{0},
        snapshot_diff_{false},
        test_compute_loss_{false},
        debug_info_{false},
        solver_type_{static_cast< ::opencv_caffe::SolverParameter_SolverType >(0)},
        delta_{1e-08f},
        random_seed_{::int64_t{-1}},
        solver_mode_{static_cast< ::opencv_caffe::SolverParameter_SolverMode >(1)},
        snapshot_after_train_{true},
        type_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        test_initialization_{true},
        average_loss_{1},
        clip_gradients_{-1},
        iter_size_{1},
        snapshot_format_{static_cast< ::opencv_caffe::SolverParameter_SnapshotFormat >(1)},
        rms_decay_{0.99f},
        momentum2_{0.999f} {}

template <typename>
PROTOBUF_CONSTEXPR SolverParameter::SolverParameter(::_pbi::ConstantInitialized)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(SolverParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(::_pbi::ConstantInitialized()) {
}
struct SolverParameterDefaultTypeInternal {
  PROTOBUF_CONSTEXPR SolverParameterDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {}
  ~SolverParameterDefaultTypeInternal() {}
  union {
    SolverParameter _instance;
  };
};

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 SolverParameterDefaultTypeInternal _SolverParameter_default_instance_;
}  // namespace opencv_caffe
static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
    file_level_enum_descriptors_opencv_2dcaffe_2eproto[27];
static constexpr const ::_pb::ServiceDescriptor *PROTOBUF_NONNULL *PROTOBUF_NULLABLE
    file_level_service_descriptors_opencv_2dcaffe_2eproto = nullptr;
const ::uint32_t
    TableStruct_opencv_2dcaffe_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
        protodesc_cold) = {
        0x000, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobShape, _impl_.dim_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_._has_bits_),
        14, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_.shape_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_.data_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_.diff_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_.double_data_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_.double_diff_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_.raw_data_type_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_.raw_data_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_.num_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_.channels_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_.height_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProto, _impl_.width_),
        1,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        6,
        0,
        2,
        3,
        4,
        5,
        0x000, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BlobProtoVector, _impl_.blobs_),
        0x000, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PermuteParameter, _impl_.order_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizeBBoxParameter, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizeBBoxParameter, _impl_.across_spatial_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizeBBoxParameter, _impl_.scale_filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizeBBoxParameter, _impl_.channel_shared_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizeBBoxParameter, _impl_.eps_),
        1,
        0,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_._has_bits_),
        20, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.min_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.max_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.aspect_ratio_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.flip_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.clip_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.variance_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.img_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.img_h_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.img_w_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.step_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.step_h_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.step_w_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.offset_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.offset_h_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.offset_w_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.width_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PriorBoxParameter, _impl_.height_),
        ~0u,
        ~0u,
        ~0u,
        6,
        7,
        ~0u,
        0,
        1,
        2,
        3,
        4,
        5,
        8,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_._has_bits_),
        14, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_.num_classes_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_.share_location_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_.background_label_id_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_.nms_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_.save_output_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_.code_type_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_.variance_encoded_in_target_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_.keep_top_k_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_.confidence_threshold_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_.normalized_bbox_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DetectionOutputParameter, _impl_.clip_),
        2,
        8,
        3,
        0,
        1,
        7,
        4,
        10,
        5,
        9,
        6,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::Datum, _impl_._has_bits_),
        10, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::Datum, _impl_.channels_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::Datum, _impl_.height_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::Datum, _impl_.width_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::Datum, _impl_.data_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::Datum, _impl_.label_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::Datum, _impl_.float_data_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::Datum, _impl_.encoded_),
        1,
        2,
        3,
        0,
        4,
        ~0u,
        5,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FillerParameter, _impl_._has_bits_),
        11, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FillerParameter, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FillerParameter, _impl_.value_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FillerParameter, _impl_.min_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FillerParameter, _impl_.max_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FillerParameter, _impl_.mean_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FillerParameter, _impl_.std_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FillerParameter, _impl_.sparse_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FillerParameter, _impl_.variance_norm_),
        0,
        1,
        2,
        5,
        3,
        6,
        7,
        4,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetParameter, _impl_._has_bits_),
        12, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetParameter, _impl_.name_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetParameter, _impl_.input_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetParameter, _impl_.input_shape_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetParameter, _impl_.input_dim_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetParameter, _impl_.force_backward_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetParameter, _impl_.state_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetParameter, _impl_.debug_info_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetParameter, _impl_.layer_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetParameter, _impl_.layers_),
        0,
        ~0u,
        ~0u,
        ~0u,
        2,
        1,
        3,
        ~0u,
        ~0u,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_._has_bits_),
        43, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.net_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.net_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.train_net_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.test_net_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.train_net_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.test_net_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.train_state_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.test_state_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.test_iter_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.test_interval_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.test_compute_loss_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.test_initialization_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.base_lr_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.display_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.average_loss_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.max_iter_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.iter_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.lr_policy_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.gamma_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.power_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.momentum_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.weight_decay_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.regularization_type_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.stepsize_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.stepvalue_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.clip_gradients_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.snapshot_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.snapshot_prefix_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.snapshot_diff_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.snapshot_format_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.solver_mode_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.device_id_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.random_seed_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.delta_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.momentum2_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.rms_decay_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.debug_info_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.snapshot_after_train_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverParameter, _impl_.solver_type_),
        3,
        6,
        0,
        ~0u,
        5,
        ~0u,
        7,
        ~0u,
        ~0u,
        8,
        20,
        28,
        9,
        10,
        29,
        11,
        31,
        1,
        12,
        13,
        14,
        15,
        4,
        16,
        ~0u,
        30,
        17,
        2,
        19,
        32,
        25,
        18,
        24,
        27,
        23,
        34,
        33,
        21,
        26,
        22,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverState, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverState, _impl_.iter_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverState, _impl_.learned_net_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverState, _impl_.history_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SolverState, _impl_.current_step_),
        1,
        0,
        ~0u,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetState, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetState, _impl_.phase_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetState, _impl_.level_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetState, _impl_.stage_),
        1,
        0,
        ~0u,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetStateRule, _impl_._has_bits_),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetStateRule, _impl_.phase_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetStateRule, _impl_.min_level_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetStateRule, _impl_.max_level_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetStateRule, _impl_.stage_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NetStateRule, _impl_.not_stage_),
        0,
        1,
        2,
        ~0u,
        ~0u,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ParamSpec, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ParamSpec, _impl_.name_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ParamSpec, _impl_.share_mode_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ParamSpec, _impl_.lr_mult_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ParamSpec, _impl_.decay_mult_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_._has_bits_),
        68, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.name_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.bottom_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.top_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.phase_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.loss_weight_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.blobs_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.propagate_down_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.include_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.exclude_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.transform_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.loss_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.accuracy_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.argmax_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.batch_norm_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.bias_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.concat_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.contrastive_loss_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.convolution_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.crop_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.data_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.detection_output_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.dropout_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.dummy_data_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.eltwise_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.elu_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.embed_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.exp_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.flatten_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.hdf5_data_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.hdf5_output_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.hinge_loss_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.image_data_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.infogain_loss_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.inner_product_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.input_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.log_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.lrn_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.memory_data_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.mvn_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.norm_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.permute_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.parameter_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.pooling_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.power_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.prelu_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.prior_box_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.proposal_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.psroi_pooling_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.python_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.recurrent_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.reduction_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.relu_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.reshape_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.roi_pooling_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.scale_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.sigmoid_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.softmax_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.spp_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.slice_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.tanh_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.threshold_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.tile_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LayerParameter, _impl_.window_data_param_),
        0,
        1,
        ~0u,
        ~0u,
        18,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        2,
        3,
        4,
        5,
        42,
        44,
        6,
        7,
        8,
        47,
        9,
        50,
        10,
        11,
        12,
        43,
        40,
        13,
        38,
        14,
        15,
        16,
        17,
        19,
        20,
        46,
        37,
        21,
        22,
        23,
        52,
        51,
        48,
        24,
        25,
        34,
        53,
        54,
        55,
        33,
        49,
        39,
        26,
        36,
        56,
        45,
        27,
        28,
        35,
        29,
        30,
        31,
        41,
        32,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TransformationParameter, _impl_._has_bits_),
        10, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TransformationParameter, _impl_.scale_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TransformationParameter, _impl_.mirror_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TransformationParameter, _impl_.crop_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TransformationParameter, _impl_.mean_file_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TransformationParameter, _impl_.mean_value_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TransformationParameter, _impl_.force_color_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TransformationParameter, _impl_.force_gray_),
        5,
        2,
        1,
        0,
        ~0u,
        3,
        4,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LossParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LossParameter, _impl_.ignore_label_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LossParameter, _impl_.normalization_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LossParameter, _impl_.normalize_),
        0,
        2,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::AccuracyParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::AccuracyParameter, _impl_.top_k_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::AccuracyParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::AccuracyParameter, _impl_.ignore_label_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ArgMaxParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ArgMaxParameter, _impl_.out_max_val_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ArgMaxParameter, _impl_.top_k_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ArgMaxParameter, _impl_.axis_),
        0,
        2,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConcatParameter, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConcatParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConcatParameter, _impl_.concat_dim_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BatchNormParameter, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BatchNormParameter, _impl_.use_global_stats_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BatchNormParameter, _impl_.moving_average_fraction_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BatchNormParameter, _impl_.eps_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BatchNormParameter, _impl_.scale_bias_),
        0,
        2,
        3,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BiasParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BiasParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BiasParameter, _impl_.num_axes_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::BiasParameter, _impl_.filler_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ContrastiveLossParameter, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ContrastiveLossParameter, _impl_.margin_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ContrastiveLossParameter, _impl_.legacy_version_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_._has_bits_),
        21, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.num_output_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.bias_term_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.pad_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.kernel_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.stride_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.dilation_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.pad_h_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.pad_w_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.kernel_h_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.kernel_w_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.stride_h_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.stride_w_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.group_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.weight_filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.bias_filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.engine_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ConvolutionParameter, _impl_.force_nd_im2col_),
        2,
        12,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        3,
        4,
        5,
        6,
        7,
        8,
        13,
        0,
        1,
        9,
        11,
        10,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::CropParameter, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::CropParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::CropParameter, _impl_.offset_),
        0,
        ~0u,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DataParameter, _impl_._has_bits_),
        13, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DataParameter, _impl_.source_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DataParameter, _impl_.batch_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DataParameter, _impl_.rand_skip_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DataParameter, _impl_.backend_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DataParameter, _impl_.scale_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DataParameter, _impl_.mean_file_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DataParameter, _impl_.crop_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DataParameter, _impl_.mirror_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DataParameter, _impl_.force_encoded_color_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DataParameter, _impl_.prefetch_),
        0,
        2,
        4,
        7,
        8,
        1,
        3,
        5,
        6,
        9,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NonMaximumSuppressionParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NonMaximumSuppressionParameter, _impl_.nms_threshold_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NonMaximumSuppressionParameter, _impl_.top_k_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NonMaximumSuppressionParameter, _impl_.eta_),
        1,
        0,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SaveOutputParameter, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SaveOutputParameter, _impl_.output_directory_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SaveOutputParameter, _impl_.output_name_prefix_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SaveOutputParameter, _impl_.output_format_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SaveOutputParameter, _impl_.label_map_file_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SaveOutputParameter, _impl_.name_size_file_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SaveOutputParameter, _impl_.num_test_image_),
        0,
        1,
        2,
        3,
        4,
        5,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DropoutParameter, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DropoutParameter, _impl_.dropout_ratio_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DropoutParameter, _impl_.scale_train_),
        0,
        1,
        0x000, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DummyDataParameter, _impl_.data_filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DummyDataParameter, _impl_.shape_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DummyDataParameter, _impl_.num_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DummyDataParameter, _impl_.channels_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DummyDataParameter, _impl_.height_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::DummyDataParameter, _impl_.width_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::EltwiseParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::EltwiseParameter, _impl_.operation_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::EltwiseParameter, _impl_.coeff_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::EltwiseParameter, _impl_.stable_prod_grad_),
        0,
        ~0u,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ELUParameter, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ELUParameter, _impl_.alpha_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::EmbedParameter, _impl_._has_bits_),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::EmbedParameter, _impl_.num_output_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::EmbedParameter, _impl_.input_dim_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::EmbedParameter, _impl_.bias_term_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::EmbedParameter, _impl_.weight_filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::EmbedParameter, _impl_.bias_filler_),
        2,
        3,
        4,
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ExpParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ExpParameter, _impl_.base_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ExpParameter, _impl_.scale_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ExpParameter, _impl_.shift_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FlattenParameter, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FlattenParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::FlattenParameter, _impl_.end_axis_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::HDF5DataParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::HDF5DataParameter, _impl_.source_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::HDF5DataParameter, _impl_.batch_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::HDF5DataParameter, _impl_.shuffle_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::HDF5OutputParameter, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::HDF5OutputParameter, _impl_.file_name_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::HingeLossParameter, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::HingeLossParameter, _impl_.norm_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_._has_bits_),
        15, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.source_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.batch_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.rand_skip_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.shuffle_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.new_height_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.new_width_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.is_color_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.scale_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.mean_file_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.crop_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.mirror_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ImageDataParameter, _impl_.root_folder_),
        0,
        11,
        4,
        6,
        7,
        8,
        9,
        10,
        1,
        3,
        5,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::InfogainLossParameter, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::InfogainLossParameter, _impl_.source_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::InnerProductParameter, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::InnerProductParameter, _impl_.num_output_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::InnerProductParameter, _impl_.bias_term_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::InnerProductParameter, _impl_.weight_filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::InnerProductParameter, _impl_.bias_filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::InnerProductParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::InnerProductParameter, _impl_.transpose_),
        2,
        4,
        0,
        1,
        5,
        3,
        0x000, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::InputParameter, _impl_.shape_),
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LogParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LogParameter, _impl_.base_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LogParameter, _impl_.scale_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LogParameter, _impl_.shift_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LRNParameter, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LRNParameter, _impl_.local_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LRNParameter, _impl_.alpha_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LRNParameter, _impl_.beta_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LRNParameter, _impl_.norm_region_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LRNParameter, _impl_.k_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::LRNParameter, _impl_.engine_),
        2,
        3,
        4,
        0,
        5,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::MemoryDataParameter, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::MemoryDataParameter, _impl_.batch_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::MemoryDataParameter, _impl_.channels_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::MemoryDataParameter, _impl_.height_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::MemoryDataParameter, _impl_.width_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::MVNParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::MVNParameter, _impl_.normalize_variance_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::MVNParameter, _impl_.across_channels_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::MVNParameter, _impl_.eps_),
        1,
        0,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ParameterParameter, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ParameterParameter, _impl_.shape_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_._has_bits_),
        16, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.pool_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.pad_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.pad_h_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.pad_w_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.kernel_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.kernel_h_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.kernel_w_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.stride_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.stride_h_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.stride_w_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.engine_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.global_pooling_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PoolingParameter, _impl_.ceil_mode_),
        0,
        2,
        7,
        8,
        1,
        3,
        4,
        11,
        5,
        6,
        9,
        10,
        12,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PowerParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PowerParameter, _impl_.power_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PowerParameter, _impl_.scale_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PowerParameter, _impl_.shift_),
        1,
        2,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PythonParameter, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PythonParameter, _impl_.module_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PythonParameter, _impl_.layer_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PythonParameter, _impl_.param_str_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PythonParameter, _impl_.share_in_parallel_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::RecurrentParameter, _impl_._has_bits_),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::RecurrentParameter, _impl_.num_output_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::RecurrentParameter, _impl_.weight_filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::RecurrentParameter, _impl_.bias_filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::RecurrentParameter, _impl_.debug_info_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::RecurrentParameter, _impl_.expose_hidden_),
        2,
        0,
        1,
        3,
        4,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ReductionParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ReductionParameter, _impl_.operation_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ReductionParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ReductionParameter, _impl_.coeff_),
        1,
        0,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ReLUParameter, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ReLUParameter, _impl_.negative_slope_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ReLUParameter, _impl_.engine_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ReshapeParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ReshapeParameter, _impl_.shape_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ReshapeParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ReshapeParameter, _impl_.num_axes_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ScaleParameter, _impl_._has_bits_),
        8, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ScaleParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ScaleParameter, _impl_.num_axes_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ScaleParameter, _impl_.filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ScaleParameter, _impl_.bias_term_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ScaleParameter, _impl_.bias_filler_),
        3,
        4,
        0,
        2,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SigmoidParameter, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SigmoidParameter, _impl_.engine_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SliceParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SliceParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SliceParameter, _impl_.slice_point_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SliceParameter, _impl_.slice_dim_),
        1,
        ~0u,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SoftmaxParameter, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SoftmaxParameter, _impl_.engine_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SoftmaxParameter, _impl_.axis_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TanHParameter, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TanHParameter, _impl_.engine_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TileParameter, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TileParameter, _impl_.axis_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::TileParameter, _impl_.tiles_),
        1,
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ThresholdParameter, _impl_._has_bits_),
        4, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ThresholdParameter, _impl_.threshold_),
        0,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_._has_bits_),
        16, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.source_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.scale_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.mean_file_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.batch_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.crop_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.mirror_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.fg_threshold_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.bg_threshold_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.fg_fraction_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.context_pad_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.crop_mode_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.cache_images_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::WindowDataParameter, _impl_.root_folder_),
        0,
        9,
        1,
        4,
        5,
        6,
        10,
        11,
        12,
        8,
        2,
        7,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SPPParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SPPParameter, _impl_.pyramid_height_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SPPParameter, _impl_.pool_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::SPPParameter, _impl_.engine_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_._has_bits_),
        46, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.bottom_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.top_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.name_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.include_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.exclude_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.blobs_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.blob_share_mode_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.blobs_lr_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.weight_decay_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.loss_weight_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.accuracy_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.argmax_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.concat_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.contrastive_loss_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.convolution_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.data_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.dropout_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.dummy_data_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.eltwise_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.exp_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.hdf5_data_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.hdf5_output_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.hinge_loss_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.image_data_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.infogain_loss_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.inner_product_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.lrn_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.memory_data_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.mvn_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.pooling_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.power_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.relu_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.sigmoid_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.softmax_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.slice_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.tanh_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.threshold_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.window_data_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.transform_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.loss_param_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V1LayerParameter, _impl_.layer_),
        ~0u,
        ~0u,
        0,
        ~0u,
        ~0u,
        24,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        ~0u,
        20,
        16,
        2,
        30,
        3,
        4,
        5,
        19,
        17,
        31,
        6,
        7,
        21,
        8,
        9,
        10,
        11,
        15,
        25,
        12,
        14,
        22,
        28,
        29,
        23,
        27,
        18,
        13,
        26,
        32,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_._has_bits_),
        41, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.name_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.type_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.num_output_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.biasterm_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.weight_filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.bias_filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.pad_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.kernelsize_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.group_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.stride_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.pool_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.dropout_ratio_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.local_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.alpha_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.beta_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.k_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.source_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.scale_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.meanfile_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.batchsize_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.cropsize_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.mirror_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.blobs_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.blobs_lr_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.weight_decay_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.rand_skip_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.det_fg_threshold_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.det_bg_threshold_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.det_fg_fraction_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.det_context_pad_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.det_crop_mode_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.new_num_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.new_channels_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.new_height_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.new_width_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.shuffle_images_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.concat_dim_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::V0LayerParameter, _impl_.hdf5_output_param_),
        0,
        1,
        8,
        20,
        5,
        6,
        9,
        10,
        21,
        22,
        11,
        23,
        24,
        25,
        26,
        28,
        2,
        27,
        3,
        12,
        13,
        14,
        ~0u,
        ~0u,
        ~0u,
        31,
        33,
        29,
        30,
        15,
        4,
        16,
        17,
        18,
        19,
        32,
        34,
        7,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PReLUParameter, _impl_._has_bits_),
        5, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PReLUParameter, _impl_.filler_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PReLUParameter, _impl_.channel_shared_),
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizedBBox, _impl_._has_bits_),
        11, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizedBBox, _impl_.xmin_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizedBBox, _impl_.ymin_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizedBBox, _impl_.xmax_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizedBBox, _impl_.ymax_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizedBBox, _impl_.label_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizedBBox, _impl_.difficult_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizedBBox, _impl_.score_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::NormalizedBBox, _impl_.size_),
        0,
        1,
        2,
        3,
        4,
        5,
        6,
        7,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ROIPoolingParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ROIPoolingParameter, _impl_.pooled_h_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ROIPoolingParameter, _impl_.pooled_w_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ROIPoolingParameter, _impl_.spatial_scale_),
        0,
        1,
        2,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ProposalParameter, _impl_._has_bits_),
        11, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ProposalParameter, _impl_.feat_stride_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ProposalParameter, _impl_.base_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ProposalParameter, _impl_.min_size_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ProposalParameter, _impl_.ratio_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ProposalParameter, _impl_.scale_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ProposalParameter, _impl_.pre_nms_topn_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ProposalParameter, _impl_.post_nms_topn_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::ProposalParameter, _impl_.nms_thresh_),
        0,
        1,
        2,
        ~0u,
        ~0u,
        3,
        4,
        5,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PSROIPoolingParameter, _impl_._has_bits_),
        6, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PSROIPoolingParameter, _impl_.spatial_scale_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PSROIPoolingParameter, _impl_.output_dim_),
        PROTOBUF_FIELD_OFFSET(::opencv_caffe::PSROIPoolingParameter, _impl_.group_size_),
        0,
        1,
        2,
};

static const ::_pbi::MigrationSchema
    schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        {0, sizeof(::opencv_caffe::BlobShape)},
        {2, sizeof(::opencv_caffe::BlobProto)},
        {27, sizeof(::opencv_caffe::BlobProtoVector)},
        {29, sizeof(::opencv_caffe::PermuteParameter)},
        {31, sizeof(::opencv_caffe::NormalizeBBoxParameter)},
        {42, sizeof(::opencv_caffe::PriorBoxParameter)},
        {79, sizeof(::opencv_caffe::DetectionOutputParameter)},
        {104, sizeof(::opencv_caffe::Datum)},
        {121, sizeof(::opencv_caffe::FillerParameter)},
        {140, sizeof(::opencv_caffe::NetParameter)},
        {161, sizeof(::opencv_caffe::SolverParameter)},
        {244, sizeof(::opencv_caffe::SolverState)},
        {255, sizeof(::opencv_caffe::NetState)},
        {264, sizeof(::opencv_caffe::NetStateRule)},
        {277, sizeof(::opencv_caffe::ParamSpec)},
        {288, sizeof(::opencv_caffe::LayerParameter)},
        {421, sizeof(::opencv_caffe::TransformationParameter)},
        {438, sizeof(::opencv_caffe::LossParameter)},
        {447, sizeof(::opencv_caffe::AccuracyParameter)},
        {456, sizeof(::opencv_caffe::ArgMaxParameter)},
        {465, sizeof(::opencv_caffe::ConcatParameter)},
        {472, sizeof(::opencv_caffe::BatchNormParameter)},
        {483, sizeof(::opencv_caffe::BiasParameter)},
        {492, sizeof(::opencv_caffe::ContrastiveLossParameter)},
        {499, sizeof(::opencv_caffe::ConvolutionParameter)},
        {538, sizeof(::opencv_caffe::CropParameter)},
        {545, sizeof(::opencv_caffe::DataParameter)},
        {568, sizeof(::opencv_caffe::NonMaximumSuppressionParameter)},
        {577, sizeof(::opencv_caffe::SaveOutputParameter)},
        {592, sizeof(::opencv_caffe::DropoutParameter)},
        {599, sizeof(::opencv_caffe::DummyDataParameter)},
        {606, sizeof(::opencv_caffe::EltwiseParameter)},
        {615, sizeof(::opencv_caffe::ELUParameter)},
        {620, sizeof(::opencv_caffe::EmbedParameter)},
        {633, sizeof(::opencv_caffe::ExpParameter)},
        {642, sizeof(::opencv_caffe::FlattenParameter)},
        {649, sizeof(::opencv_caffe::HDF5DataParameter)},
        {658, sizeof(::opencv_caffe::HDF5OutputParameter)},
        {663, sizeof(::opencv_caffe::HingeLossParameter)},
        {668, sizeof(::opencv_caffe::ImageDataParameter)},
        {695, sizeof(::opencv_caffe::InfogainLossParameter)},
        {700, sizeof(::opencv_caffe::InnerProductParameter)},
        {715, sizeof(::opencv_caffe::InputParameter)},
        {717, sizeof(::opencv_caffe::LogParameter)},
        {726, sizeof(::opencv_caffe::LRNParameter)},
        {741, sizeof(::opencv_caffe::MemoryDataParameter)},
        {752, sizeof(::opencv_caffe::MVNParameter)},
        {761, sizeof(::opencv_caffe::ParameterParameter)},
        {766, sizeof(::opencv_caffe::PoolingParameter)},
        {795, sizeof(::opencv_caffe::PowerParameter)},
        {804, sizeof(::opencv_caffe::PythonParameter)},
        {815, sizeof(::opencv_caffe::RecurrentParameter)},
        {828, sizeof(::opencv_caffe::ReductionParameter)},
        {837, sizeof(::opencv_caffe::ReLUParameter)},
        {844, sizeof(::opencv_caffe::ReshapeParameter)},
        {853, sizeof(::opencv_caffe::ScaleParameter)},
        {866, sizeof(::opencv_caffe::SigmoidParameter)},
        {871, sizeof(::opencv_caffe::SliceParameter)},
        {880, sizeof(::opencv_caffe::SoftmaxParameter)},
        {887, sizeof(::opencv_caffe::TanHParameter)},
        {892, sizeof(::opencv_caffe::TileParameter)},
        {899, sizeof(::opencv_caffe::ThresholdParameter)},
        {904, sizeof(::opencv_caffe::WindowDataParameter)},
        {933, sizeof(::opencv_caffe::SPPParameter)},
        {942, sizeof(::opencv_caffe::V1LayerParameter)},
        {1031, sizeof(::opencv_caffe::V0LayerParameter)},
        {1110, sizeof(::opencv_caffe::PReLUParameter)},
        {1117, sizeof(::opencv_caffe::NormalizedBBox)},
        {1136, sizeof(::opencv_caffe::ROIPoolingParameter)},
        {1145, sizeof(::opencv_caffe::ProposalParameter)},
        {1164, sizeof(::opencv_caffe::PSROIPoolingParameter)},
};
static const ::_pb::Message* PROTOBUF_NONNULL const file_default_instances[] = {
    &::opencv_caffe::_BlobShape_default_instance_._instance,
    &::opencv_caffe::_BlobProto_default_instance_._instance,
    &::opencv_caffe::_BlobProtoVector_default_instance_._instance,
    &::opencv_caffe::_PermuteParameter_default_instance_._instance,
    &::opencv_caffe::_NormalizeBBoxParameter_default_instance_._instance,
    &::opencv_caffe::_PriorBoxParameter_default_instance_._instance,
    &::opencv_caffe::_DetectionOutputParameter_default_instance_._instance,
    &::opencv_caffe::_Datum_default_instance_._instance,
    &::opencv_caffe::_FillerParameter_default_instance_._instance,
    &::opencv_caffe::_NetParameter_default_instance_._instance,
    &::opencv_caffe::_SolverParameter_default_instance_._instance,
    &::opencv_caffe::_SolverState_default_instance_._instance,
    &::opencv_caffe::_NetState_default_instance_._instance,
    &::opencv_caffe::_NetStateRule_default_instance_._instance,
    &::opencv_caffe::_ParamSpec_default_instance_._instance,
    &::opencv_caffe::_LayerParameter_default_instance_._instance,
    &::opencv_caffe::_TransformationParameter_default_instance_._instance,
    &::opencv_caffe::_LossParameter_default_instance_._instance,
    &::opencv_caffe::_AccuracyParameter_default_instance_._instance,
    &::opencv_caffe::_ArgMaxParameter_default_instance_._instance,
    &::opencv_caffe::_ConcatParameter_default_instance_._instance,
    &::opencv_caffe::_BatchNormParameter_default_instance_._instance,
    &::opencv_caffe::_BiasParameter_default_instance_._instance,
    &::opencv_caffe::_ContrastiveLossParameter_default_instance_._instance,
    &::opencv_caffe::_ConvolutionParameter_default_instance_._instance,
    &::opencv_caffe::_CropParameter_default_instance_._instance,
    &::opencv_caffe::_DataParameter_default_instance_._instance,
    &::opencv_caffe::_NonMaximumSuppressionParameter_default_instance_._instance,
    &::opencv_caffe::_SaveOutputParameter_default_instance_._instance,
    &::opencv_caffe::_DropoutParameter_default_instance_._instance,
    &::opencv_caffe::_DummyDataParameter_default_instance_._instance,
    &::opencv_caffe::_EltwiseParameter_default_instance_._instance,
    &::opencv_caffe::_ELUParameter_default_instance_._instance,
    &::opencv_caffe::_EmbedParameter_default_instance_._instance,
    &::opencv_caffe::_ExpParameter_default_instance_._instance,
    &::opencv_caffe::_FlattenParameter_default_instance_._instance,
    &::opencv_caffe::_HDF5DataParameter_default_instance_._instance,
    &::opencv_caffe::_HDF5OutputParameter_default_instance_._instance,
    &::opencv_caffe::_HingeLossParameter_default_instance_._instance,
    &::opencv_caffe::_ImageDataParameter_default_instance_._instance,
    &::opencv_caffe::_InfogainLossParameter_default_instance_._instance,
    &::opencv_caffe::_InnerProductParameter_default_instance_._instance,
    &::opencv_caffe::_InputParameter_default_instance_._instance,
    &::opencv_caffe::_LogParameter_default_instance_._instance,
    &::opencv_caffe::_LRNParameter_default_instance_._instance,
    &::opencv_caffe::_MemoryDataParameter_default_instance_._instance,
    &::opencv_caffe::_MVNParameter_default_instance_._instance,
    &::opencv_caffe::_ParameterParameter_default_instance_._instance,
    &::opencv_caffe::_PoolingParameter_default_instance_._instance,
    &::opencv_caffe::_PowerParameter_default_instance_._instance,
    &::opencv_caffe::_PythonParameter_default_instance_._instance,
    &::opencv_caffe::_RecurrentParameter_default_instance_._instance,
    &::opencv_caffe::_ReductionParameter_default_instance_._instance,
    &::opencv_caffe::_ReLUParameter_default_instance_._instance,
    &::opencv_caffe::_ReshapeParameter_default_instance_._instance,
    &::opencv_caffe::_ScaleParameter_default_instance_._instance,
    &::opencv_caffe::_SigmoidParameter_default_instance_._instance,
    &::opencv_caffe::_SliceParameter_default_instance_._instance,
    &::opencv_caffe::_SoftmaxParameter_default_instance_._instance,
    &::opencv_caffe::_TanHParameter_default_instance_._instance,
    &::opencv_caffe::_TileParameter_default_instance_._instance,
    &::opencv_caffe::_ThresholdParameter_default_instance_._instance,
    &::opencv_caffe::_WindowDataParameter_default_instance_._instance,
    &::opencv_caffe::_SPPParameter_default_instance_._instance,
    &::opencv_caffe::_V1LayerParameter_default_instance_._instance,
    &::opencv_caffe::_V0LayerParameter_default_instance_._instance,
    &::opencv_caffe::_PReLUParameter_default_instance_._instance,
    &::opencv_caffe::_NormalizedBBox_default_instance_._instance,
    &::opencv_caffe::_ROIPoolingParameter_default_instance_._instance,
    &::opencv_caffe::_ProposalParameter_default_instance_._instance,
    &::opencv_caffe::_PSROIPoolingParameter_default_instance_._instance,
};
const char descriptor_table_protodef_opencv_2dcaffe_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
    protodesc_cold) = {
    "\n\022opencv-caffe.proto\022\014opencv_caffe\"\034\n\tBl"
    "obShape\022\017\n\003dim\030\001 \003(\003B\002\020\001\"\224\002\n\tBlobProto\022&"
    "\n\005shape\030\007 \001(\0132\027.opencv_caffe.BlobShape\022\020"
    "\n\004data\030\005 \003(\002B\002\020\001\022\020\n\004diff\030\006 \003(\002B\002\020\001\022\027\n\013do"
    "uble_data\030\010 \003(\001B\002\020\001\022\027\n\013double_diff\030\t \003(\001"
    "B\002\020\001\022)\n\rraw_data_type\030\n \001(\0162\022.opencv_caf"
    "fe.Type\022\024\n\010raw_data\030\014 \001(\014B\002\020\000\022\016\n\003num\030\001 \001"
    "(\005:\0010\022\023\n\010channels\030\002 \001(\005:\0010\022\021\n\006height\030\003 \001"
    "(\005:\0010\022\020\n\005width\030\004 \001(\005:\0010\"9\n\017BlobProtoVect"
    "or\022&\n\005blobs\030\001 \003(\0132\027.opencv_caffe.BlobPro"
    "to\"!\n\020PermuteParameter\022\r\n\005order\030\001 \003(\r\"\235\001"
    "\n\026NormalizeBBoxParameter\022\034\n\016across_spati"
    "al\030\001 \001(\010:\004true\0223\n\014scale_filler\030\002 \001(\0132\035.o"
    "pencv_caffe.FillerParameter\022\034\n\016channel_s"
    "hared\030\003 \001(\010:\004true\022\022\n\003eps\030\004 \001(\002:\0051e-10\"\346\002"
    "\n\021PriorBoxParameter\022\020\n\010min_size\030\001 \003(\002\022\020\n"
    "\010max_size\030\002 \003(\002\022\024\n\014aspect_ratio\030\003 \003(\002\022\022\n"
    "\004flip\030\004 \001(\010:\004true\022\022\n\004clip\030\005 \001(\010:\004true\022\020\n"
    "\010variance\030\006 \003(\002\022\020\n\010img_size\030\007 \001(\r\022\r\n\005img"
    "_h\030\010 \001(\r\022\r\n\005img_w\030\t \001(\r\022\014\n\004step\030\n \001(\002\022\016\n"
    "\006step_h\030\013 \001(\002\022\016\n\006step_w\030\014 \001(\002\022\023\n\006offset\030"
    "\r \001(\002:\0030.5\022\020\n\010offset_h\030\016 \003(\002\022\020\n\010offset_w"
    "\030\017 \003(\002\022\r\n\005width\030\020 \003(\002\022\016\n\006height\030\021 \003(\002\"\'\n"
    "\010CodeType\022\n\n\006CORNER\020\001\022\017\n\013CENTER_SIZE\020\002\"\307"
    "\003\n\030DetectionOutputParameter\022\023\n\013num_class"
    "es\030\001 \001(\r\022\034\n\016share_location\030\002 \001(\010:\004true\022\036"
    "\n\023background_label_id\030\003 \001(\005:\0010\022\?\n\tnms_pa"
    "ram\030\004 \001(\0132,.opencv_caffe.NonMaximumSuppr"
    "essionParameter\022<\n\021save_output_param\030\005 \001"
    "(\0132!.opencv_caffe.SaveOutputParameter\022C\n"
    "\tcode_type\030\006 \001(\0162(.opencv_caffe.PriorBox"
    "Parameter.CodeType:\006CORNER\022)\n\032variance_e"
    "ncoded_in_target\030\010 \001(\010:\005false\022\026\n\nkeep_to"
    "p_k\030\007 \001(\005:\002-1\022\034\n\024confidence_threshold\030\t "
    "\001(\002\022\035\n\017normalized_bbox\030\n \001(\010:\004true\022\024\n\004cl"
    "ip\030\350\007 \001(\010:\005false\"\201\001\n\005Datum\022\020\n\010channels\030\001"
    " \001(\005\022\016\n\006height\030\002 \001(\005\022\r\n\005width\030\003 \001(\005\022\014\n\004d"
    "ata\030\004 \001(\014\022\r\n\005label\030\005 \001(\005\022\022\n\nfloat_data\030\006"
    " \003(\002\022\026\n\007encoded\030\007 \001(\010:\005false\"\221\002\n\017FillerP"
    "arameter\022\026\n\004type\030\001 \001(\t:\010constant\022\020\n\005valu"
    "e\030\002 \001(\002:\0010\022\016\n\003min\030\003 \001(\002:\0010\022\016\n\003max\030\004 \001(\002:"
    "\0011\022\017\n\004mean\030\005 \001(\002:\0010\022\016\n\003std\030\006 \001(\002:\0011\022\022\n\006s"
    "parse\030\007 \001(\005:\002-1\022I\n\rvariance_norm\030\010 \001(\0162*"
    ".opencv_caffe.FillerParameter.VarianceNo"
    "rm:\006FAN_IN\"4\n\014VarianceNorm\022\n\n\006FAN_IN\020\000\022\013"
    "\n\007FAN_OUT\020\001\022\013\n\007AVERAGE\020\002\"\252\002\n\014NetParamete"
    "r\022\014\n\004name\030\001 \001(\t\022\r\n\005input\030\003 \003(\t\022,\n\013input_"
    "shape\030\010 \003(\0132\027.opencv_caffe.BlobShape\022\021\n\t"
    "input_dim\030\004 \003(\005\022\035\n\016force_backward\030\005 \001(\010:"
    "\005false\022%\n\005state\030\006 \001(\0132\026.opencv_caffe.Net"
    "State\022\031\n\ndebug_info\030\007 \001(\010:\005false\022+\n\005laye"
    "r\030d \003(\0132\034.opencv_caffe.LayerParameter\022.\n"
    "\006layers\030\002 \003(\0132\036.opencv_caffe.V1LayerPara"
    "meter\"\332\n\n\017SolverParameter\022\013\n\003net\030\030 \001(\t\022-"
    "\n\tnet_param\030\031 \001(\0132\032.opencv_caffe.NetPara"
    "meter\022\021\n\ttrain_net\030\001 \001(\t\022\020\n\010test_net\030\002 \003"
    "(\t\0223\n\017train_net_param\030\025 \001(\0132\032.opencv_caf"
    "fe.NetParameter\0222\n\016test_net_param\030\026 \003(\0132"
    "\032.opencv_caffe.NetParameter\022+\n\013train_sta"
    "te\030\032 \001(\0132\026.opencv_caffe.NetState\022*\n\ntest"
    "_state\030\033 \003(\0132\026.opencv_caffe.NetState\022\021\n\t"
    "test_iter\030\003 \003(\005\022\030\n\rtest_interval\030\004 \001(\005:\001"
    "0\022 \n\021test_compute_loss\030\023 \001(\010:\005false\022!\n\023t"
    "est_initialization\030  \001(\010:\004true\022\017\n\007base_l"
    "r\030\005 \001(\002\022\017\n\007display\030\006 \001(\005\022\027\n\014average_loss"
    "\030! \001(\005:\0011\022\020\n\010max_iter\030\007 \001(\005\022\024\n\titer_size"
    "\030$ \001(\005:\0011\022\021\n\tlr_policy\030\010 \001(\t\022\r\n\005gamma\030\t "
    "\001(\002\022\r\n\005power\030\n \001(\002\022\020\n\010momentum\030\013 \001(\002\022\024\n\014"
    "weight_decay\030\014 \001(\002\022\037\n\023regularization_typ"
    "e\030\035 \001(\t:\002L2\022\020\n\010stepsize\030\r \001(\005\022\021\n\tstepval"
    "ue\030\" \003(\005\022\032\n\016clip_gradients\030# \001(\002:\002-1\022\023\n\010"
    "snapshot\030\016 \001(\005:\0010\022\027\n\017snapshot_prefix\030\017 \001"
    "(\t\022\034\n\rsnapshot_diff\030\020 \001(\010:\005false\022R\n\017snap"
    "shot_format\030% \001(\0162,.opencv_caffe.SolverP"
    "arameter.SnapshotFormat:\013BINARYPROTO\022B\n\013"
    "solver_mode\030\021 \001(\0162(.opencv_caffe.SolverP"
    "arameter.SolverMode:\003GPU\022\024\n\tdevice_id\030\022 "
    "\001(\005:\0010\022\027\n\013random_seed\030\024 \001(\003:\002-1\022\021\n\004type\030"
    "( \001(\t:\003SGD\022\024\n\005delta\030\037 \001(\002:\0051e-08\022\030\n\tmome"
    "ntum2\030\' \001(\002:\0050.999\022\027\n\trms_decay\030& \001(\002:\0040"
    ".99\022\031\n\ndebug_info\030\027 \001(\010:\005false\022\"\n\024snapsh"
    "ot_after_train\030\034 \001(\010:\004true\022B\n\013solver_typ"
    "e\030\036 \001(\0162(.opencv_caffe.SolverParameter.S"
    "olverType:\003SGD\"+\n\016SnapshotFormat\022\010\n\004HDF5"
    "\020\000\022\017\n\013BINARYPROTO\020\001\"\036\n\nSolverMode\022\007\n\003CPU"
    "\020\000\022\007\n\003GPU\020\001\"U\n\nSolverType\022\007\n\003SGD\020\000\022\014\n\010NE"
    "STEROV\020\001\022\013\n\007ADAGRAD\020\002\022\013\n\007RMSPROP\020\003\022\014\n\010AD"
    "ADELTA\020\004\022\010\n\004ADAM\020\005\"s\n\013SolverState\022\014\n\004ite"
    "r\030\001 \001(\005\022\023\n\013learned_net\030\002 \001(\t\022(\n\007history\030"
    "\003 \003(\0132\027.opencv_caffe.BlobProto\022\027\n\014curren"
    "t_step\030\004 \001(\005:\0010\"U\n\010NetState\022(\n\005phase\030\001 \001"
    "(\0162\023.opencv_caffe.Phase:\004TEST\022\020\n\005level\030\002"
    " \001(\005:\0010\022\r\n\005stage\030\003 \003(\t\"z\n\014NetStateRule\022\""
    "\n\005phase\030\001 \001(\0162\023.opencv_caffe.Phase\022\021\n\tmi"
    "n_level\030\002 \001(\005\022\021\n\tmax_level\030\003 \001(\005\022\r\n\005stag"
    "e\030\004 \003(\t\022\021\n\tnot_stage\030\005 \003(\t\"\252\001\n\tParamSpec"
    "\022\014\n\004name\030\001 \001(\t\0228\n\nshare_mode\030\002 \001(\0162$.ope"
    "ncv_caffe.ParamSpec.DimCheckMode\022\022\n\007lr_m"
    "ult\030\003 \001(\002:\0011\022\025\n\ndecay_mult\030\004 \001(\002:\0011\"*\n\014D"
    "imCheckMode\022\n\n\006STRICT\020\000\022\016\n\nPERMISSIVE\020\001\""
    "\243\032\n\016LayerParameter\022\014\n\004name\030\001 \001(\t\022\014\n\004type"
    "\030\002 \001(\t\022\016\n\006bottom\030\003 \003(\t\022\013\n\003top\030\004 \003(\t\022\"\n\005p"
    "hase\030\n \001(\0162\023.opencv_caffe.Phase\022\023\n\013loss_"
    "weight\030\005 \003(\002\022&\n\005param\030\006 \003(\0132\027.opencv_caf"
    "fe.ParamSpec\022&\n\005blobs\030\007 \003(\0132\027.opencv_caf"
    "fe.BlobProto\022\026\n\016propagate_down\030\013 \003(\010\022+\n\007"
    "include\030\010 \003(\0132\032.opencv_caffe.NetStateRul"
    "e\022+\n\007exclude\030\t \003(\0132\032.opencv_caffe.NetSta"
    "teRule\022>\n\017transform_param\030d \001(\0132%.opencv"
    "_caffe.TransformationParameter\022/\n\nloss_p"
    "aram\030e \001(\0132\033.opencv_caffe.LossParameter\022"
    "7\n\016accuracy_param\030f \001(\0132\037.opencv_caffe.A"
    "ccuracyParameter\0223\n\014argmax_param\030g \001(\0132\035"
    ".opencv_caffe.ArgMaxParameter\022;\n\020batch_n"
    "orm_param\030\213\001 \001(\0132 .opencv_caffe.BatchNor"
    "mParameter\0220\n\nbias_param\030\215\001 \001(\0132\033.opencv"
    "_caffe.BiasParameter\0223\n\014concat_param\030h \001"
    "(\0132\035.opencv_caffe.ConcatParameter\022F\n\026con"
    "trastive_loss_param\030i \001(\0132&.opencv_caffe"
    ".ContrastiveLossParameter\022=\n\021convolution"
    "_param\030j \001(\0132\".opencv_caffe.ConvolutionP"
    "arameter\0220\n\ncrop_param\030\220\001 \001(\0132\033.opencv_c"
    "affe.CropParameter\022/\n\ndata_param\030k \001(\0132\033"
    ".opencv_caffe.DataParameter\022G\n\026detection"
    "_output_param\030\223\001 \001(\0132&.opencv_caffe.Dete"
    "ctionOutputParameter\0225\n\rdropout_param\030l "
    "\001(\0132\036.opencv_caffe.DropoutParameter\022:\n\020d"
    "ummy_data_param\030m \001(\0132 .opencv_caffe.Dum"
    "myDataParameter\0225\n\reltwise_param\030n \001(\0132\036"
    ".opencv_caffe.EltwiseParameter\022.\n\telu_pa"
    "ram\030\214\001 \001(\0132\032.opencv_caffe.ELUParameter\0222"
    "\n\013embed_param\030\211\001 \001(\0132\034.opencv_caffe.Embe"
    "dParameter\022-\n\texp_param\030o \001(\0132\032.opencv_c"
    "affe.ExpParameter\0226\n\rflatten_param\030\207\001 \001("
    "\0132\036.opencv_caffe.FlattenParameter\0228\n\017hdf"
    "5_data_param\030p \001(\0132\037.opencv_caffe.HDF5Da"
    "taParameter\022<\n\021hdf5_output_param\030q \001(\0132!"
    ".opencv_caffe.HDF5OutputParameter\022:\n\020hin"
    "ge_loss_param\030r \001(\0132 .opencv_caffe.Hinge"
    "LossParameter\022:\n\020image_data_param\030s \001(\0132"
    " .opencv_caffe.ImageDataParameter\022@\n\023inf"
    "ogain_loss_param\030t \001(\0132#.opencv_caffe.In"
    "fogainLossParameter\022@\n\023inner_product_par"
    "am\030u \001(\0132#.opencv_caffe.InnerProductPara"
    "meter\0222\n\013input_param\030\217\001 \001(\0132\034.opencv_caf"
    "fe.InputParameter\022.\n\tlog_param\030\206\001 \001(\0132\032."
    "opencv_caffe.LogParameter\022-\n\tlrn_param\030v"
    " \001(\0132\032.opencv_caffe.LRNParameter\022<\n\021memo"
    "ry_data_param\030w \001(\0132!.opencv_caffe.Memor"
    "yDataParameter\022-\n\tmvn_param\030x \001(\0132\032.open"
    "cv_caffe.MVNParameter\0229\n\nnorm_param\030\225\001 \001"
    "(\0132$.opencv_caffe.NormalizeBBoxParameter"
    "\0226\n\rpermute_param\030\224\001 \001(\0132\036.opencv_caffe."
    "PermuteParameter\022:\n\017parameter_param\030\221\001 \001"
    "(\0132 .opencv_caffe.ParameterParameter\0225\n\r"
    "pooling_param\030y \001(\0132\036.opencv_caffe.Pooli"
    "ngParameter\0221\n\013power_param\030z \001(\0132\034.openc"
    "v_caffe.PowerParameter\0222\n\013prelu_param\030\203\001"
    " \001(\0132\034.opencv_caffe.PReLUParameter\0229\n\017pr"
    "ior_box_param\030\226\001 \001(\0132\037.opencv_caffe.Prio"
    "rBoxParameter\0228\n\016proposal_param\030\311\001 \001(\0132\037"
    ".opencv_caffe.ProposalParameter\022A\n\023psroi"
    "_pooling_param\030\222N \001(\0132#.opencv_caffe.PSR"
    "OIPoolingParameter\0224\n\014python_param\030\202\001 \001("
    "\0132\035.opencv_caffe.PythonParameter\022:\n\017recu"
    "rrent_param\030\222\001 \001(\0132 .opencv_caffe.Recurr"
    "entParameter\022:\n\017reduction_param\030\210\001 \001(\0132 "
    ".opencv_caffe.ReductionParameter\022/\n\nrelu"
    "_param\030{ \001(\0132\033.opencv_caffe.ReLUParamete"
    "r\0226\n\rreshape_param\030\205\001 \001(\0132\036.opencv_caffe"
    ".ReshapeParameter\022\?\n\021roi_pooling_param\030\327"
    "\307\370\003 \001(\0132!.opencv_caffe.ROIPoolingParamet"
    "er\0222\n\013scale_param\030\216\001 \001(\0132\034.opencv_caffe."
    "ScaleParameter\0225\n\rsigmoid_param\030| \001(\0132\036."
    "opencv_caffe.SigmoidParameter\0225\n\rsoftmax"
    "_param\030} \001(\0132\036.opencv_caffe.SoftmaxParam"
    "eter\022.\n\tspp_param\030\204\001 \001(\0132\032.opencv_caffe."
    "SPPParameter\0221\n\013slice_param\030~ \001(\0132\034.open"
    "cv_caffe.SliceParameter\022/\n\ntanh_param\030\177 "
    "\001(\0132\033.opencv_caffe.TanHParameter\022:\n\017thre"
    "shold_param\030\200\001 \001(\0132 .opencv_caffe.Thresh"
    "oldParameter\0220\n\ntile_param\030\212\001 \001(\0132\033.open"
    "cv_caffe.TileParameter\022=\n\021window_data_pa"
    "ram\030\201\001 \001(\0132!.opencv_caffe.WindowDataPara"
    "meter\"\266\001\n\027TransformationParameter\022\020\n\005sca"
    "le\030\001 \001(\002:\0011\022\025\n\006mirror\030\002 \001(\010:\005false\022\024\n\tcr"
    "op_size\030\003 \001(\r:\0010\022\021\n\tmean_file\030\004 \001(\t\022\022\n\nm"
    "ean_value\030\005 \003(\002\022\032\n\013force_color\030\006 \001(\010:\005fa"
    "lse\022\031\n\nforce_gray\030\007 \001(\010:\005false\"\311\001\n\rLossP"
    "arameter\022\024\n\014ignore_label\030\001 \001(\005\022K\n\rnormal"
    "ization\030\003 \001(\0162-.opencv_caffe.LossParamet"
    "er.NormalizationMode:\005VALID\022\021\n\tnormalize"
    "\030\002 \001(\010\"B\n\021NormalizationMode\022\010\n\004FULL\020\000\022\t\n"
    "\005VALID\020\001\022\016\n\nBATCH_SIZE\020\002\022\010\n\004NONE\020\003\"L\n\021Ac"
    "curacyParameter\022\020\n\005top_k\030\001 \001(\r:\0011\022\017\n\004axi"
    "s\030\002 \001(\005:\0011\022\024\n\014ignore_label\030\003 \001(\005\"M\n\017ArgM"
    "axParameter\022\032\n\013out_max_val\030\001 \001(\010:\005false\022"
    "\020\n\005top_k\030\002 \001(\r:\0011\022\014\n\004axis\030\003 \001(\005\"9\n\017Conca"
    "tParameter\022\017\n\004axis\030\002 \001(\005:\0011\022\025\n\nconcat_di"
    "m\030\001 \001(\r:\0011\"\205\001\n\022BatchNormParameter\022\030\n\020use"
    "_global_stats\030\001 \001(\010\022&\n\027moving_average_fr"
    "action\030\002 \001(\002:\0050.999\022\022\n\003eps\030\003 \001(\002:\0051e-05\022"
    "\031\n\nscale_bias\030\007 \001(\010:\005false\"d\n\rBiasParame"
    "ter\022\017\n\004axis\030\001 \001(\005:\0011\022\023\n\010num_axes\030\002 \001(\005:\001"
    "1\022-\n\006filler\030\003 \001(\0132\035.opencv_caffe.FillerP"
    "arameter\"L\n\030ContrastiveLossParameter\022\021\n\006"
    "margin\030\001 \001(\002:\0011\022\035\n\016legacy_version\030\002 \001(\010:"
    "\005false\"\221\004\n\024ConvolutionParameter\022\022\n\nnum_o"
    "utput\030\001 \001(\r\022\027\n\tbias_term\030\002 \001(\010:\004true\022\013\n\003"
    "pad\030\003 \003(\r\022\023\n\013kernel_size\030\004 \003(\r\022\016\n\006stride"
    "\030\006 \003(\r\022\020\n\010dilation\030\022 \003(\r\022\020\n\005pad_h\030\t \001(\r:"
    "\0010\022\020\n\005pad_w\030\n \001(\r:\0010\022\020\n\010kernel_h\030\013 \001(\r\022\020"
    "\n\010kernel_w\030\014 \001(\r\022\020\n\010stride_h\030\r \001(\r\022\020\n\010st"
    "ride_w\030\016 \001(\r\022\020\n\005group\030\005 \001(\r:\0011\0224\n\rweight"
    "_filler\030\007 \001(\0132\035.opencv_caffe.FillerParam"
    "eter\0222\n\013bias_filler\030\010 \001(\0132\035.opencv_caffe"
    ".FillerParameter\022B\n\006engine\030\017 \001(\0162).openc"
    "v_caffe.ConvolutionParameter.Engine:\007DEF"
    "AULT\022\017\n\004axis\030\020 \001(\005:\0011\022\036\n\017force_nd_im2col"
    "\030\021 \001(\010:\005false\"+\n\006Engine\022\013\n\007DEFAULT\020\000\022\t\n\005"
    "CAFFE\020\001\022\t\n\005CUDNN\020\002\"0\n\rCropParameter\022\017\n\004a"
    "xis\030\001 \001(\005:\0012\022\016\n\006offset\030\002 \003(\r\"\253\002\n\rDataPar"
    "ameter\022\016\n\006source\030\001 \001(\t\022\022\n\nbatch_size\030\004 \001"
    "(\r\022\024\n\trand_skip\030\007 \001(\r:\0010\0228\n\007backend\030\010 \001("
    "\0162\036.opencv_caffe.DataParameter.DB:\007LEVEL"
    "DB\022\020\n\005scale\030\002 \001(\002:\0011\022\021\n\tmean_file\030\003 \001(\t\022"
    "\024\n\tcrop_size\030\005 \001(\r:\0010\022\025\n\006mirror\030\006 \001(\010:\005f"
    "alse\022\"\n\023force_encoded_color\030\t \001(\010:\005false"
    "\022\023\n\010prefetch\030\n \001(\r:\0014\"\033\n\002DB\022\013\n\007LEVELDB\020\000"
    "\022\010\n\004LMDB\020\001\"[\n\036NonMaximumSuppressionParam"
    "eter\022\032\n\rnms_threshold\030\001 \001(\002:\0030.3\022\r\n\005top_"
    "k\030\002 \001(\005\022\016\n\003eta\030\003 \001(\002:\0011\"\252\001\n\023SaveOutputPa"
    "rameter\022\030\n\020output_directory\030\001 \001(\t\022\032\n\022out"
    "put_name_prefix\030\002 \001(\t\022\025\n\routput_format\030\003"
    " \001(\t\022\026\n\016label_map_file\030\004 \001(\t\022\026\n\016name_siz"
    "e_file\030\005 \001(\t\022\026\n\016num_test_image\030\006 \001(\r\"I\n\020"
    "DropoutParameter\022\032\n\rdropout_ratio\030\001 \001(\002:"
    "\0030.5\022\031\n\013scale_train\030\002 \001(\010:\004true\"\256\001\n\022Dumm"
    "yDataParameter\0222\n\013data_filler\030\001 \003(\0132\035.op"
    "encv_caffe.FillerParameter\022&\n\005shape\030\006 \003("
    "\0132\027.opencv_caffe.BlobShape\022\013\n\003num\030\002 \003(\r\022"
    "\020\n\010channels\030\003 \003(\r\022\016\n\006height\030\004 \003(\r\022\r\n\005wid"
    "th\030\005 \003(\r\"\254\001\n\020EltwiseParameter\022@\n\toperati"
    "on\030\001 \001(\0162(.opencv_caffe.EltwiseParameter"
    ".EltwiseOp:\003SUM\022\r\n\005coeff\030\002 \003(\002\022\036\n\020stable"
    "_prod_grad\030\003 \001(\010:\004true\"\'\n\tEltwiseOp\022\010\n\004P"
    "ROD\020\000\022\007\n\003SUM\020\001\022\007\n\003MAX\020\002\" \n\014ELUParameter\022"
    "\020\n\005alpha\030\001 \001(\002:\0011\"\272\001\n\016EmbedParameter\022\022\n\n"
    "num_output\030\001 \001(\r\022\021\n\tinput_dim\030\002 \001(\r\022\027\n\tb"
    "ias_term\030\003 \001(\010:\004true\0224\n\rweight_filler\030\004 "
    "\001(\0132\035.opencv_caffe.FillerParameter\0222\n\013bi"
    "as_filler\030\005 \001(\0132\035.opencv_caffe.FillerPar"
    "ameter\"D\n\014ExpParameter\022\020\n\004base\030\001 \001(\002:\002-1"
    "\022\020\n\005scale\030\002 \001(\002:\0011\022\020\n\005shift\030\003 \001(\002:\0010\"9\n\020"
    "FlattenParameter\022\017\n\004axis\030\001 \001(\005:\0011\022\024\n\010end"
    "_axis\030\002 \001(\005:\002-1\"O\n\021HDF5DataParameter\022\016\n\006"
    "source\030\001 \001(\t\022\022\n\nbatch_size\030\002 \001(\r\022\026\n\007shuf"
    "fle\030\003 \001(\010:\005false\"(\n\023HDF5OutputParameter\022"
    "\021\n\tfile_name\030\001 \001(\t\"e\n\022HingeLossParameter"
    "\0227\n\004norm\030\001 \001(\0162%.opencv_caffe.HingeLossP"
    "arameter.Norm:\002L1\"\026\n\004Norm\022\006\n\002L1\020\001\022\006\n\002L2\020"
    "\002\"\227\002\n\022ImageDataParameter\022\016\n\006source\030\001 \001(\t"
    "\022\025\n\nbatch_size\030\004 \001(\r:\0011\022\024\n\trand_skip\030\007 \001"
    "(\r:\0010\022\026\n\007shuffle\030\010 \001(\010:\005false\022\025\n\nnew_hei"
    "ght\030\t \001(\r:\0010\022\024\n\tnew_width\030\n \001(\r:\0010\022\026\n\010is"
    "_color\030\013 \001(\010:\004true\022\020\n\005scale\030\002 \001(\002:\0011\022\021\n\t"
    "mean_file\030\003 \001(\t\022\024\n\tcrop_size\030\005 \001(\r:\0010\022\025\n"
    "\006mirror\030\006 \001(\010:\005false\022\025\n\013root_folder\030\014 \001("
    "\t:\000\"\'\n\025InfogainLossParameter\022\016\n\006source\030\001"
    " \001(\t\"\331\001\n\025InnerProductParameter\022\022\n\nnum_ou"
    "tput\030\001 \001(\r\022\027\n\tbias_term\030\002 \001(\010:\004true\0224\n\rw"
    "eight_filler\030\003 \001(\0132\035.opencv_caffe.Filler"
    "Parameter\0222\n\013bias_filler\030\004 \001(\0132\035.opencv_"
    "caffe.FillerParameter\022\017\n\004axis\030\005 \001(\005:\0011\022\030"
    "\n\ttranspose\030\006 \001(\010:\005false\"8\n\016InputParamet"
    "er\022&\n\005shape\030\001 \003(\0132\027.opencv_caffe.BlobSha"
    "pe\"D\n\014LogParameter\022\020\n\004base\030\001 \001(\002:\002-1\022\020\n\005"
    "scale\030\002 \001(\002:\0011\022\020\n\005shift\030\003 \001(\002:\0010\"\306\002\n\014LRN"
    "Parameter\022\025\n\nlocal_size\030\001 \001(\r:\0015\022\020\n\005alph"
    "a\030\002 \001(\002:\0011\022\022\n\004beta\030\003 \001(\002:\0040.75\022K\n\013norm_r"
    "egion\030\004 \001(\0162%.opencv_caffe.LRNParameter."
    "NormRegion:\017ACROSS_CHANNELS\022\014\n\001k\030\005 \001(\002:\001"
    "1\022:\n\006engine\030\006 \001(\0162!.opencv_caffe.LRNPara"
    "meter.Engine:\007DEFAULT\"5\n\nNormRegion\022\023\n\017A"
    "CROSS_CHANNELS\020\000\022\022\n\016WITHIN_CHANNEL\020\001\"+\n\006"
    "Engine\022\013\n\007DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020"
    "\002\"Z\n\023MemoryDataParameter\022\022\n\nbatch_size\030\001"
    " \001(\r\022\020\n\010channels\030\002 \001(\r\022\016\n\006height\030\003 \001(\r\022\r"
    "\n\005width\030\004 \001(\r\"d\n\014MVNParameter\022 \n\022normali"
    "ze_variance\030\001 \001(\010:\004true\022\036\n\017across_channe"
    "ls\030\002 \001(\010:\005false\022\022\n\003eps\030\003 \001(\002:\0051e-09\"<\n\022P"
    "arameterParameter\022&\n\005shape\030\001 \001(\0132\027.openc"
    "v_caffe.BlobShape\"\311\003\n\020PoolingParameter\022<"
    "\n\004pool\030\001 \001(\0162).opencv_caffe.PoolingParam"
    "eter.PoolMethod:\003MAX\022\016\n\003pad\030\004 \001(\r:\0010\022\020\n\005"
    "pad_h\030\t \001(\r:\0010\022\020\n\005pad_w\030\n \001(\r:\0010\022\023\n\013kern"
    "el_size\030\002 \001(\r\022\020\n\010kernel_h\030\005 \001(\r\022\020\n\010kerne"
    "l_w\030\006 \001(\r\022\021\n\006stride\030\003 \001(\r:\0011\022\020\n\010stride_h"
    "\030\007 \001(\r\022\020\n\010stride_w\030\010 \001(\r\022>\n\006engine\030\013 \001(\016"
    "2%.opencv_caffe.PoolingParameter.Engine:"
    "\007DEFAULT\022\035\n\016global_pooling\030\014 \001(\010:\005false\022"
    "\027\n\tceil_mode\030\r \001(\010:\004true\".\n\nPoolMethod\022\007"
    "\n\003MAX\020\000\022\007\n\003AVE\020\001\022\016\n\nSTOCHASTIC\020\002\"+\n\006Engi"
    "ne\022\013\n\007DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"F\n"
    "\016PowerParameter\022\020\n\005power\030\001 \001(\002:\0011\022\020\n\005sca"
    "le\030\002 \001(\002:\0011\022\020\n\005shift\030\003 \001(\002:\0010\"g\n\017PythonP"
    "arameter\022\016\n\006module\030\001 \001(\t\022\r\n\005layer\030\002 \001(\t\022"
    "\023\n\tparam_str\030\003 \001(\t:\000\022 \n\021share_in_paralle"
    "l\030\004 \001(\010:\005false\"\316\001\n\022RecurrentParameter\022\025\n"
    "\nnum_output\030\001 \001(\r:\0010\0224\n\rweight_filler\030\002 "
    "\001(\0132\035.opencv_caffe.FillerParameter\0222\n\013bi"
    "as_filler\030\003 \001(\0132\035.opencv_caffe.FillerPar"
    "ameter\022\031\n\ndebug_info\030\004 \001(\010:\005false\022\034\n\rexp"
    "ose_hidden\030\005 \001(\010:\005false\"\264\001\n\022ReductionPar"
    "ameter\022D\n\toperation\030\001 \001(\0162,.opencv_caffe"
    ".ReductionParameter.ReductionOp:\003SUM\022\017\n\004"
    "axis\030\002 \001(\005:\0010\022\020\n\005coeff\030\003 \001(\002:\0011\"5\n\013Reduc"
    "tionOp\022\007\n\003SUM\020\001\022\010\n\004ASUM\020\002\022\t\n\005SUMSQ\020\003\022\010\n\004"
    "MEAN\020\004\"\224\001\n\rReLUParameter\022\031\n\016negative_slo"
    "pe\030\001 \001(\002:\0010\022;\n\006engine\030\002 \001(\0162\".opencv_caf"
    "fe.ReLUParameter.Engine:\007DEFAULT\"+\n\006Engi"
    "ne\022\013\n\007DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"a\n"
    "\020ReshapeParameter\022&\n\005shape\030\001 \001(\0132\027.openc"
    "v_caffe.BlobShape\022\017\n\004axis\030\002 \001(\005:\0010\022\024\n\010nu"
    "m_axes\030\003 \001(\005:\002-1\"\263\001\n\016ScaleParameter\022\017\n\004a"
    "xis\030\001 \001(\005:\0011\022\023\n\010num_axes\030\002 \001(\005:\0011\022-\n\006fil"
    "ler\030\003 \001(\0132\035.opencv_caffe.FillerParameter"
    "\022\030\n\tbias_term\030\004 \001(\010:\005false\0222\n\013bias_fille"
    "r\030\005 \001(\0132\035.opencv_caffe.FillerParameter\"\177"
    "\n\020SigmoidParameter\022>\n\006engine\030\001 \001(\0162%.ope"
    "ncv_caffe.SigmoidParameter.Engine:\007DEFAU"
    "LT\"+\n\006Engine\022\013\n\007DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005"
    "CUDNN\020\002\"L\n\016SliceParameter\022\017\n\004axis\030\003 \001(\005:"
    "\0011\022\023\n\013slice_point\030\002 \003(\r\022\024\n\tslice_dim\030\001 \001"
    "(\r:\0011\"\220\001\n\020SoftmaxParameter\022>\n\006engine\030\001 \001"
    "(\0162%.opencv_caffe.SoftmaxParameter.Engin"
    "e:\007DEFAULT\022\017\n\004axis\030\002 \001(\005:\0011\"+\n\006Engine\022\013\n"
    "\007DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"y\n\rTanH"
    "Parameter\022;\n\006engine\030\001 \001(\0162\".opencv_caffe"
    ".TanHParameter.Engine:\007DEFAULT\"+\n\006Engine"
    "\022\013\n\007DEFAULT\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"/\n\rT"
    "ileParameter\022\017\n\004axis\030\001 \001(\005:\0011\022\r\n\005tiles\030\002"
    " \001(\005\"*\n\022ThresholdParameter\022\024\n\tthreshold\030"
    "\001 \001(\002:\0010\"\301\002\n\023WindowDataParameter\022\016\n\006sour"
    "ce\030\001 \001(\t\022\020\n\005scale\030\002 \001(\002:\0011\022\021\n\tmean_file\030"
    "\003 \001(\t\022\022\n\nbatch_size\030\004 \001(\r\022\024\n\tcrop_size\030\005"
    " \001(\r:\0010\022\025\n\006mirror\030\006 \001(\010:\005false\022\031\n\014fg_thr"
    "eshold\030\007 \001(\002:\0030.5\022\031\n\014bg_threshold\030\010 \001(\002:"
    "\0030.5\022\031\n\013fg_fraction\030\t \001(\002:\0040.25\022\026\n\013conte"
    "xt_pad\030\n \001(\r:\0010\022\027\n\tcrop_mode\030\013 \001(\t:\004warp"
    "\022\033\n\014cache_images\030\014 \001(\010:\005false\022\025\n\013root_fo"
    "lder\030\r \001(\t:\000\"\371\001\n\014SPPParameter\022\026\n\016pyramid"
    "_height\030\001 \001(\r\0228\n\004pool\030\002 \001(\0162%.opencv_caf"
    "fe.SPPParameter.PoolMethod:\003MAX\022:\n\006engin"
    "e\030\006 \001(\0162!.opencv_caffe.SPPParameter.Engi"
    "ne:\007DEFAULT\".\n\nPoolMethod\022\007\n\003MAX\020\000\022\007\n\003AV"
    "E\020\001\022\016\n\nSTOCHASTIC\020\002\"+\n\006Engine\022\013\n\007DEFAULT"
    "\020\000\022\t\n\005CAFFE\020\001\022\t\n\005CUDNN\020\002\"\334\025\n\020V1LayerPara"
    "meter\022\016\n\006bottom\030\002 \003(\t\022\013\n\003top\030\003 \003(\t\022\014\n\004na"
    "me\030\004 \001(\t\022+\n\007include\030  \003(\0132\032.opencv_caffe"
    ".NetStateRule\022+\n\007exclude\030! \003(\0132\032.opencv_"
    "caffe.NetStateRule\0226\n\004type\030\005 \001(\0162(.openc"
    "v_caffe.V1LayerParameter.LayerType\022&\n\005bl"
    "obs\030\006 \003(\0132\027.opencv_caffe.BlobProto\022\016\n\005pa"
    "ram\030\351\007 \003(\t\022E\n\017blob_share_mode\030\352\007 \003(\0162+.o"
    "pencv_caffe.V1LayerParameter.DimCheckMod"
    "e\022\020\n\010blobs_lr\030\007 \003(\002\022\024\n\014weight_decay\030\010 \003("
    "\002\022\023\n\013loss_weight\030# \003(\002\0227\n\016accuracy_param"
    "\030\033 \001(\0132\037.opencv_caffe.AccuracyParameter\022"
    "3\n\014argmax_param\030\027 \001(\0132\035.opencv_caffe.Arg"
    "MaxParameter\0223\n\014concat_param\030\t \001(\0132\035.ope"
    "ncv_caffe.ConcatParameter\022F\n\026contrastive"
    "_loss_param\030( \001(\0132&.opencv_caffe.Contras"
    "tiveLossParameter\022=\n\021convolution_param\030\n"
    " \001(\0132\".opencv_caffe.ConvolutionParameter"
    "\022/\n\ndata_param\030\013 \001(\0132\033.opencv_caffe.Data"
    "Parameter\0225\n\rdropout_param\030\014 \001(\0132\036.openc"
    "v_caffe.DropoutParameter\022:\n\020dummy_data_p"
    "aram\030\032 \001(\0132 .opencv_caffe.DummyDataParam"
    "eter\0225\n\reltwise_param\030\030 \001(\0132\036.opencv_caf"
    "fe.EltwiseParameter\022-\n\texp_param\030) \001(\0132\032"
    ".opencv_caffe.ExpParameter\0228\n\017hdf5_data_"
    "param\030\r \001(\0132\037.opencv_caffe.HDF5DataParam"
    "eter\022<\n\021hdf5_output_param\030\016 \001(\0132!.opencv"
    "_caffe.HDF5OutputParameter\022:\n\020hinge_loss"
    "_param\030\035 \001(\0132 .opencv_caffe.HingeLossPar"
    "ameter\022:\n\020image_data_param\030\017 \001(\0132 .openc"
    "v_caffe.ImageDataParameter\022@\n\023infogain_l"
    "oss_param\030\020 \001(\0132#.opencv_caffe.InfogainL"
    "ossParameter\022@\n\023inner_product_param\030\021 \001("
    "\0132#.opencv_caffe.InnerProductParameter\022-"
    "\n\tlrn_param\030\022 \001(\0132\032.opencv_caffe.LRNPara"
    "meter\022<\n\021memory_data_param\030\026 \001(\0132!.openc"
    "v_caffe.MemoryDataParameter\022-\n\tmvn_param"
    "\030\" \001(\0132\032.opencv_caffe.MVNParameter\0225\n\rpo"
    "oling_param\030\023 \001(\0132\036.opencv_caffe.Pooling"
    "Parameter\0221\n\013power_param\030\025 \001(\0132\034.opencv_"
    "caffe.PowerParameter\022/\n\nrelu_param\030\036 \001(\013"
    "2\033.opencv_caffe.ReLUParameter\0225\n\rsigmoid"
    "_param\030& \001(\0132\036.opencv_caffe.SigmoidParam"
    "eter\0225\n\rsoftmax_param\030\' \001(\0132\036.opencv_caf"
    "fe.SoftmaxParameter\0221\n\013slice_param\030\037 \001(\013"
    "2\034.opencv_caffe.SliceParameter\022/\n\ntanh_p"
    "aram\030% \001(\0132\033.opencv_caffe.TanHParameter\022"
    "9\n\017threshold_param\030\031 \001(\0132 .opencv_caffe."
    "ThresholdParameter\022<\n\021window_data_param\030"
    "\024 \001(\0132!.opencv_caffe.WindowDataParameter"
    "\022>\n\017transform_param\030$ \001(\0132%.opencv_caffe"
    ".TransformationParameter\022/\n\nloss_param\030*"
    " \001(\0132\033.opencv_caffe.LossParameter\022-\n\005lay"
    "er\030\001 \001(\0132\036.opencv_caffe.V0LayerParameter"
    "\"\330\004\n\tLayerType\022\010\n\004NONE\020\000\022\n\n\006ABSVAL\020#\022\014\n\010"
    "ACCURACY\020\001\022\n\n\006ARGMAX\020\036\022\010\n\004BNLL\020\002\022\n\n\006CONC"
    "AT\020\003\022\024\n\020CONTRASTIVE_LOSS\020%\022\017\n\013CONVOLUTIO"
    "N\020\004\022\010\n\004DATA\020\005\022\021\n\rDECONVOLUTION\020\'\022\013\n\007DROP"
    "OUT\020\006\022\016\n\nDUMMY_DATA\020 \022\022\n\016EUCLIDEAN_LOSS\020"
    "\007\022\013\n\007ELTWISE\020\031\022\007\n\003EXP\020&\022\013\n\007FLATTEN\020\010\022\r\n\t"
    "HDF5_DATA\020\t\022\017\n\013HDF5_OUTPUT\020\n\022\016\n\nHINGE_LO"
    "SS\020\034\022\n\n\006IM2COL\020\013\022\016\n\nIMAGE_DATA\020\014\022\021\n\rINFO"
    "GAIN_LOSS\020\r\022\021\n\rINNER_PRODUCT\020\016\022\007\n\003LRN\020\017\022"
    "\017\n\013MEMORY_DATA\020\035\022\035\n\031MULTINOMIAL_LOGISTIC"
    "_LOSS\020\020\022\007\n\003MVN\020\"\022\013\n\007POOLING\020\021\022\t\n\005POWER\020\032"
    "\022\010\n\004RELU\020\022\022\013\n\007SIGMOID\020\023\022\036\n\032SIGMOID_CROSS"
    "_ENTROPY_LOSS\020\033\022\013\n\007SILENCE\020$\022\013\n\007SOFTMAX\020"
    "\024\022\020\n\014SOFTMAX_LOSS\020\025\022\t\n\005SPLIT\020\026\022\t\n\005SLICE\020"
    "!\022\010\n\004TANH\020\027\022\017\n\013WINDOW_DATA\020\030\022\r\n\tTHRESHOL"
    "D\020\037\"*\n\014DimCheckMode\022\n\n\006STRICT\020\000\022\016\n\nPERMI"
    "SSIVE\020\001\"\240\010\n\020V0LayerParameter\022\014\n\004name\030\001 \001"
    "(\t\022\014\n\004type\030\002 \001(\t\022\022\n\nnum_output\030\003 \001(\r\022\026\n\010"
    "biasterm\030\004 \001(\010:\004true\0224\n\rweight_filler\030\005 "
    "\001(\0132\035.opencv_caffe.FillerParameter\0222\n\013bi"
    "as_filler\030\006 \001(\0132\035.opencv_caffe.FillerPar"
    "ameter\022\016\n\003pad\030\007 \001(\r:\0010\022\022\n\nkernelsize\030\010 \001"
    "(\r\022\020\n\005group\030\t \001(\r:\0011\022\021\n\006stride\030\n \001(\r:\0011\022"
    "<\n\004pool\030\013 \001(\0162).opencv_caffe.V0LayerPara"
    "meter.PoolMethod:\003MAX\022\032\n\rdropout_ratio\030\014"
    " \001(\002:\0030.5\022\025\n\nlocal_size\030\r \001(\r:\0015\022\020\n\005alph"
    "a\030\016 \001(\002:\0011\022\022\n\004beta\030\017 \001(\002:\0040.75\022\014\n\001k\030\026 \001("
    "\002:\0011\022\016\n\006source\030\020 \001(\t\022\020\n\005scale\030\021 \001(\002:\0011\022\020"
    "\n\010meanfile\030\022 \001(\t\022\021\n\tbatchsize\030\023 \001(\r\022\023\n\010c"
    "ropsize\030\024 \001(\r:\0010\022\025\n\006mirror\030\025 \001(\010:\005false\022"
    "&\n\005blobs\0302 \003(\0132\027.opencv_caffe.BlobProto\022"
    "\020\n\010blobs_lr\0303 \003(\002\022\024\n\014weight_decay\0304 \003(\002\022"
    "\024\n\trand_skip\0305 \001(\r:\0010\022\035\n\020det_fg_threshol"
    "d\0306 \001(\002:\0030.5\022\035\n\020det_bg_threshold\0307 \001(\002:\003"
    "0.5\022\035\n\017det_fg_fraction\0308 \001(\002:\0040.25\022\032\n\017de"
    "t_context_pad\030: \001(\r:\0010\022\033\n\rdet_crop_mode\030"
    "; \001(\t:\004warp\022\022\n\007new_num\030< \001(\005:\0010\022\027\n\014new_c"
    "hannels\030= \001(\005:\0010\022\025\n\nnew_height\030> \001(\005:\0010\022"
    "\024\n\tnew_width\030\? \001(\005:\0010\022\035\n\016shuffle_images\030"
    "@ \001(\010:\005false\022\025\n\nconcat_dim\030A \001(\r:\0011\022=\n\021h"
    "df5_output_param\030\351\007 \001(\0132!.opencv_caffe.H"
    "DF5OutputParameter\".\n\nPoolMethod\022\007\n\003MAX\020"
    "\000\022\007\n\003AVE\020\001\022\016\n\nSTOCHASTIC\020\002\"^\n\016PReLUParam"
    "eter\022-\n\006filler\030\001 \001(\0132\035.opencv_caffe.Fill"
    "erParameter\022\035\n\016channel_shared\030\002 \001(\010:\005fal"
    "se\"\207\001\n\016NormalizedBBox\022\014\n\004xmin\030\001 \001(\002\022\014\n\004y"
    "min\030\002 \001(\002\022\014\n\004xmax\030\003 \001(\002\022\014\n\004ymax\030\004 \001(\002\022\r\n"
    "\005label\030\005 \001(\005\022\021\n\tdifficult\030\006 \001(\010\022\r\n\005score"
    "\030\007 \001(\002\022\014\n\004size\030\010 \001(\002\"Y\n\023ROIPoolingParame"
    "ter\022\023\n\010pooled_h\030\001 \001(\r:\0010\022\023\n\010pooled_w\030\002 \001"
    "(\r:\0010\022\030\n\rspatial_scale\030\003 \001(\002:\0011\"\310\001\n\021Prop"
    "osalParameter\022\027\n\013feat_stride\030\001 \001(\r:\00216\022\025"
    "\n\tbase_size\030\002 \001(\r:\00216\022\024\n\010min_size\030\003 \001(\r:"
    "\00216\022\r\n\005ratio\030\004 \003(\002\022\r\n\005scale\030\005 \003(\002\022\032\n\014pre"
    "_nms_topn\030\006 \001(\r:\0046000\022\032\n\rpost_nms_topn\030\007"
    " \001(\r:\003300\022\027\n\nnms_thresh\030\010 \001(\002:\0030.7\"V\n\025PS"
    "ROIPoolingParameter\022\025\n\rspatial_scale\030\001 \002"
    "(\002\022\022\n\noutput_dim\030\002 \002(\005\022\022\n\ngroup_size\030\003 \002"
    "(\005*=\n\004Type\022\n\n\006DOUBLE\020\000\022\t\n\005FLOAT\020\001\022\013\n\007FLO"
    "AT16\020\002\022\007\n\003INT\020\003\022\010\n\004UINT\020\004*\034\n\005Phase\022\t\n\005TR"
    "AIN\020\000\022\010\n\004TEST\020\001"
};
static ::absl::once_flag descriptor_table_opencv_2dcaffe_2eproto_once;
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_opencv_2dcaffe_2eproto = {
    false,
    false,
    18855,
    descriptor_table_protodef_opencv_2dcaffe_2eproto,
    "opencv-caffe.proto",
    &descriptor_table_opencv_2dcaffe_2eproto_once,
    nullptr,
    0,
    71,
    schemas,
    file_default_instances,
    TableStruct_opencv_2dcaffe_2eproto::offsets,
    file_level_enum_descriptors_opencv_2dcaffe_2eproto,
    file_level_service_descriptors_opencv_2dcaffe_2eproto,
};
namespace opencv_caffe {
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL PriorBoxParameter_CodeType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[0];
}
PROTOBUF_CONSTINIT const uint32_t PriorBoxParameter_CodeType_internal_data_[] = {
    131073u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL FillerParameter_VarianceNorm_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[1];
}
PROTOBUF_CONSTINIT const uint32_t FillerParameter_VarianceNorm_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SolverParameter_SnapshotFormat_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[2];
}
PROTOBUF_CONSTINIT const uint32_t SolverParameter_SnapshotFormat_internal_data_[] = {
    131072u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SolverParameter_SolverMode_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[3];
}
PROTOBUF_CONSTINIT const uint32_t SolverParameter_SolverMode_internal_data_[] = {
    131072u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SolverParameter_SolverType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[4];
}
PROTOBUF_CONSTINIT const uint32_t SolverParameter_SolverType_internal_data_[] = {
    393216u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL ParamSpec_DimCheckMode_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[5];
}
PROTOBUF_CONSTINIT const uint32_t ParamSpec_DimCheckMode_internal_data_[] = {
    131072u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL LossParameter_NormalizationMode_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[6];
}
PROTOBUF_CONSTINIT const uint32_t LossParameter_NormalizationMode_internal_data_[] = {
    262144u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL ConvolutionParameter_Engine_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[7];
}
PROTOBUF_CONSTINIT const uint32_t ConvolutionParameter_Engine_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL DataParameter_DB_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[8];
}
PROTOBUF_CONSTINIT const uint32_t DataParameter_DB_internal_data_[] = {
    131072u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL EltwiseParameter_EltwiseOp_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[9];
}
PROTOBUF_CONSTINIT const uint32_t EltwiseParameter_EltwiseOp_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL HingeLossParameter_Norm_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[10];
}
PROTOBUF_CONSTINIT const uint32_t HingeLossParameter_Norm_internal_data_[] = {
    131073u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL LRNParameter_NormRegion_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[11];
}
PROTOBUF_CONSTINIT const uint32_t LRNParameter_NormRegion_internal_data_[] = {
    131072u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL LRNParameter_Engine_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[12];
}
PROTOBUF_CONSTINIT const uint32_t LRNParameter_Engine_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL PoolingParameter_PoolMethod_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[13];
}
PROTOBUF_CONSTINIT const uint32_t PoolingParameter_PoolMethod_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL PoolingParameter_Engine_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[14];
}
PROTOBUF_CONSTINIT const uint32_t PoolingParameter_Engine_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL ReductionParameter_ReductionOp_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[15];
}
PROTOBUF_CONSTINIT const uint32_t ReductionParameter_ReductionOp_internal_data_[] = {
    262145u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL ReLUParameter_Engine_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[16];
}
PROTOBUF_CONSTINIT const uint32_t ReLUParameter_Engine_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SigmoidParameter_Engine_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[17];
}
PROTOBUF_CONSTINIT const uint32_t SigmoidParameter_Engine_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SoftmaxParameter_Engine_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[18];
}
PROTOBUF_CONSTINIT const uint32_t SoftmaxParameter_Engine_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL TanHParameter_Engine_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[19];
}
PROTOBUF_CONSTINIT const uint32_t TanHParameter_Engine_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SPPParameter_PoolMethod_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[20];
}
PROTOBUF_CONSTINIT const uint32_t SPPParameter_PoolMethod_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL SPPParameter_Engine_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[21];
}
PROTOBUF_CONSTINIT const uint32_t SPPParameter_Engine_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL V1LayerParameter_LayerType_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[22];
}
PROTOBUF_CONSTINIT const uint32_t V1LayerParameter_LayerType_internal_data_[] = {
    2621440u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL V1LayerParameter_DimCheckMode_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[23];
}
PROTOBUF_CONSTINIT const uint32_t V1LayerParameter_DimCheckMode_internal_data_[] = {
    131072u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL V0LayerParameter_PoolMethod_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[24];
}
PROTOBUF_CONSTINIT const uint32_t V0LayerParameter_PoolMethod_internal_data_[] = {
    196608u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Type_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[25];
}
PROTOBUF_CONSTINIT const uint32_t Type_internal_data_[] = {
    327680u, 0u, };
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL Phase_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_opencv_2dcaffe_2eproto);
  return file_level_enum_descriptors_opencv_2dcaffe_2eproto[26];
}
PROTOBUF_CONSTINIT const uint32_t Phase_internal_data_[] = {
    131072u, 0u, };
// ===================================================================

class BlobShape::_Internal {
 public:
};

BlobShape::BlobShape(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, BlobShape_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.BlobShape)
}
PROTOBUF_NDEBUG_INLINE BlobShape::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::BlobShape& from_msg)
      : dim_{visibility, arena, from.dim_},
        _dim_cached_byte_size_{0},
        _cached_size_{0} {}

BlobShape::BlobShape(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const BlobShape& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, BlobShape_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  BlobShape* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.BlobShape)
}
PROTOBUF_NDEBUG_INLINE BlobShape::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : dim_{visibility, arena},
        _dim_cached_byte_size_{0},
        _cached_size_{0} {}

inline void BlobShape::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
BlobShape::~BlobShape() {
  // @@protoc_insertion_point(destructor:opencv_caffe.BlobShape)
  SharedDtor(*this);
}
inline void BlobShape::SharedDtor(MessageLite& self) {
  BlobShape& this_ = static_cast<BlobShape&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL BlobShape::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) BlobShape(arena);
}
constexpr auto BlobShape::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(BlobShape, _impl_.dim_) +
          decltype(BlobShape::_impl_.dim_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(BlobShape), alignof(BlobShape), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&BlobShape::PlacementNew_,
                                 sizeof(BlobShape),
                                 alignof(BlobShape));
  }
}
constexpr auto BlobShape::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_BlobShape_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &BlobShape::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<BlobShape>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &BlobShape::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<BlobShape>(), &BlobShape::ByteSizeLong,
              &BlobShape::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(BlobShape, _impl_._cached_size_),
          false,
      },
      &BlobShape::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull BlobShape_class_data_ =
        BlobShape::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
BlobShape::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&BlobShape_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(BlobShape_class_data_.tc_table);
  return BlobShape_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 0, 0, 2>
BlobShape::_table_ = {
  {
    0,  // no _has_bits_
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    BlobShape_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::BlobShape>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // repeated int64 dim = 1 [packed = true];
    {::_pbi::TcParser::FastV64P1,
     {10, 63, 0, PROTOBUF_FIELD_OFFSET(BlobShape, _impl_.dim_)}},
  }}, {{
    65535, 65535
  }}, {{
    // repeated int64 dim = 1 [packed = true];
    {PROTOBUF_FIELD_OFFSET(BlobShape, _impl_.dim_), 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedInt64)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void BlobShape::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.BlobShape)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.dim_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL BlobShape::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const BlobShape& this_ = static_cast<const BlobShape&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL BlobShape::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const BlobShape& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.BlobShape)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  // repeated int64 dim = 1 [packed = true];
  {
    int byte_size = this_._impl_._dim_cached_byte_size_.Get();
    if (byte_size > 0) {
      target = stream->WriteInt64Packed(
          1, this_._internal_dim(), byte_size, target);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.BlobShape)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t BlobShape::ByteSizeLong(const MessageLite& base) {
  const BlobShape& this_ = static_cast<const BlobShape&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t BlobShape::ByteSizeLong() const {
  const BlobShape& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.BlobShape)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated int64 dim = 1 [packed = true];
    {
      total_size +=
          ::_pbi::WireFormatLite::Int64SizeWithPackedTagSize(
              this_._internal_dim(), 1,
              this_._impl_._dim_cached_byte_size_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void BlobShape::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<BlobShape*>(&to_msg);
  auto& from = static_cast<const BlobShape&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.BlobShape)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_dim()->MergeFrom(from._internal_dim());
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void BlobShape::CopyFrom(const BlobShape& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.BlobShape)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void BlobShape::InternalSwap(BlobShape* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.dim_.InternalSwap(&other->_impl_.dim_);
}

::google::protobuf::Metadata BlobShape::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class BlobProto::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<BlobProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(BlobProto, _impl_._has_bits_);
};

BlobProto::BlobProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, BlobProto_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.BlobProto)
}
PROTOBUF_NDEBUG_INLINE BlobProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::BlobProto& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        data_{visibility, arena, from.data_},
        diff_{visibility, arena, from.diff_},
        double_data_{visibility, arena, from.double_data_},
        double_diff_{visibility, arena, from.double_diff_},
        raw_data_(arena, from.raw_data_) {}

BlobProto::BlobProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const BlobProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, BlobProto_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  BlobProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.shape_ = ((cached_has_bits & 0x00000002U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.shape_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, num_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, num_),
           offsetof(Impl_, raw_data_type_) -
               offsetof(Impl_, num_) +
               sizeof(Impl_::raw_data_type_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.BlobProto)
}
PROTOBUF_NDEBUG_INLINE BlobProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        data_{visibility, arena},
        diff_{visibility, arena},
        double_data_{visibility, arena},
        double_diff_{visibility, arena},
        raw_data_(arena) {}

inline void BlobProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, shape_),
           0,
           offsetof(Impl_, raw_data_type_) -
               offsetof(Impl_, shape_) +
               sizeof(Impl_::raw_data_type_));
}
BlobProto::~BlobProto() {
  // @@protoc_insertion_point(destructor:opencv_caffe.BlobProto)
  SharedDtor(*this);
}
inline void BlobProto::SharedDtor(MessageLite& self) {
  BlobProto& this_ = static_cast<BlobProto&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.raw_data_.Destroy();
  delete this_._impl_.shape_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL BlobProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) BlobProto(arena);
}
constexpr auto BlobProto::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.data_) +
          decltype(BlobProto::_impl_.data_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.diff_) +
          decltype(BlobProto::_impl_.diff_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.double_data_) +
          decltype(BlobProto::_impl_.double_data_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.double_diff_) +
          decltype(BlobProto::_impl_.double_diff_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(BlobProto), alignof(BlobProto), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&BlobProto::PlacementNew_,
                                 sizeof(BlobProto),
                                 alignof(BlobProto));
  }
}
constexpr auto BlobProto::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_BlobProto_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &BlobProto::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<BlobProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &BlobProto::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<BlobProto>(), &BlobProto::ByteSizeLong,
              &BlobProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(BlobProto, _impl_._cached_size_),
          false,
      },
      &BlobProto::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull BlobProto_class_data_ =
        BlobProto::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
BlobProto::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&BlobProto_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(BlobProto_class_data_.tc_table);
  return BlobProto_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<4, 11, 2, 0, 2>
BlobProto::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(BlobProto, _impl_._has_bits_),
    0, // no _extensions_
    12, 120,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294964224,  // skipmap
    offsetof(decltype(_table_), field_entries),
    11,  // num_field_entries
    2,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    BlobProto_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::BlobProto>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional int32 num = 1 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BlobProto, _impl_.num_), 2>(),
     {8, 2, 0, PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.num_)}},
    // optional int32 channels = 2 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BlobProto, _impl_.channels_), 3>(),
     {16, 3, 0, PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.channels_)}},
    // optional int32 height = 3 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BlobProto, _impl_.height_), 4>(),
     {24, 4, 0, PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.height_)}},
    // optional int32 width = 4 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BlobProto, _impl_.width_), 5>(),
     {32, 5, 0, PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.width_)}},
    // repeated float data = 5 [packed = true];
    {::_pbi::TcParser::FastF32P1,
     {42, 63, 0, PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.data_)}},
    // repeated float diff = 6 [packed = true];
    {::_pbi::TcParser::FastF32P1,
     {50, 63, 0, PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.diff_)}},
    // optional .opencv_caffe.BlobShape shape = 7;
    {::_pbi::TcParser::FastMtS1,
     {58, 1, 0, PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.shape_)}},
    // repeated double double_data = 8 [packed = true];
    {::_pbi::TcParser::FastF64P1,
     {66, 63, 0, PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.double_data_)}},
    // repeated double double_diff = 9 [packed = true];
    {::_pbi::TcParser::FastF64P1,
     {74, 63, 0, PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.double_diff_)}},
    // optional .opencv_caffe.Type raw_data_type = 10;
    {::_pbi::TcParser::FastEr0S1,
     {80, 6, 4, PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.raw_data_type_)}},
    {::_pbi::TcParser::MiniParse, {}},
    // optional bytes raw_data = 12 [packed = false];
    {::_pbi::TcParser::FastBS1,
     {98, 0, 0, PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.raw_data_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 num = 1 [default = 0];
    {PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.num_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 channels = 2 [default = 0];
    {PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.channels_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 height = 3 [default = 0];
    {PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.height_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 width = 4 [default = 0];
    {PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.width_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated float data = 5 [packed = true];
    {PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.data_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedFloat)},
    // repeated float diff = 6 [packed = true];
    {PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.diff_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedFloat)},
    // optional .opencv_caffe.BlobShape shape = 7;
    {PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.shape_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated double double_data = 8 [packed = true];
    {PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.double_data_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedDouble)},
    // repeated double double_diff = 9 [packed = true];
    {PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.double_diff_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kPackedDouble)},
    // optional .opencv_caffe.Type raw_data_type = 10;
    {PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.raw_data_type_), _Internal::kHasBitsOffset + 6, 1, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional bytes raw_data = 12 [packed = false];
    {PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.raw_data_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::BlobShape>()},
      {0, 4},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void BlobProto::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.BlobProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.data_.Clear();
  _impl_.diff_.Clear();
  _impl_.double_data_.Clear();
  _impl_.double_diff_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _impl_.raw_data_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(_impl_.shape_ != nullptr);
      _impl_.shape_->Clear();
    }
  }
  if ((cached_has_bits & 0x0000007cU) != 0) {
    ::memset(&_impl_.num_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.raw_data_type_) -
        reinterpret_cast<char*>(&_impl_.num_)) + sizeof(_impl_.raw_data_type_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL BlobProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const BlobProto& this_ = static_cast<const BlobProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL BlobProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const BlobProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.BlobProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 num = 1 [default = 0];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_num(), target);
  }

  // optional int32 channels = 2 [default = 0];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_channels(), target);
  }

  // optional int32 height = 3 [default = 0];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_height(), target);
  }

  // optional int32 width = 4 [default = 0];
  if ((cached_has_bits & 0x00000020U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<4>(
            stream, this_._internal_width(), target);
  }

  // repeated float data = 5 [packed = true];
  if (this_._internal_data_size() > 0) {
    target = stream->WriteFixedPacked(5, this_._internal_data(), target);
  }

  // repeated float diff = 6 [packed = true];
  if (this_._internal_diff_size() > 0) {
    target = stream->WriteFixedPacked(6, this_._internal_diff(), target);
  }

  // optional .opencv_caffe.BlobShape shape = 7;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        7, *this_._impl_.shape_, this_._impl_.shape_->GetCachedSize(), target,
        stream);
  }

  // repeated double double_data = 8 [packed = true];
  if (this_._internal_double_data_size() > 0) {
    target = stream->WriteFixedPacked(8, this_._internal_double_data(), target);
  }

  // repeated double double_diff = 9 [packed = true];
  if (this_._internal_double_diff_size() > 0) {
    target = stream->WriteFixedPacked(9, this_._internal_double_diff(), target);
  }

  // optional .opencv_caffe.Type raw_data_type = 10;
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        10, this_._internal_raw_data_type(), target);
  }

  // optional bytes raw_data = 12 [packed = false];
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_raw_data();
    target = stream->WriteBytesMaybeAliased(12, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.BlobProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t BlobProto::ByteSizeLong(const MessageLite& base) {
  const BlobProto& this_ = static_cast<const BlobProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t BlobProto::ByteSizeLong() const {
  const BlobProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.BlobProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated float data = 5 [packed = true];
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_data_size());
      ::size_t tag_size = data_size == 0
          ? 0
          : 1 + ::_pbi::WireFormatLite::Int32Size(
                              static_cast<::int32_t>(data_size));
      total_size += tag_size + data_size;
    }
    // repeated float diff = 6 [packed = true];
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_diff_size());
      ::size_t tag_size = data_size == 0
          ? 0
          : 1 + ::_pbi::WireFormatLite::Int32Size(
                              static_cast<::int32_t>(data_size));
      total_size += tag_size + data_size;
    }
    // repeated double double_data = 8 [packed = true];
    {
      ::size_t data_size = ::size_t{8} *
          ::_pbi::FromIntSize(this_._internal_double_data_size());
      ::size_t tag_size = data_size == 0
          ? 0
          : 1 + ::_pbi::WireFormatLite::Int32Size(
                              static_cast<::int32_t>(data_size));
      total_size += tag_size + data_size;
    }
    // repeated double double_diff = 9 [packed = true];
    {
      ::size_t data_size = ::size_t{8} *
          ::_pbi::FromIntSize(this_._internal_double_diff_size());
      ::size_t tag_size = data_size == 0
          ? 0
          : 1 + ::_pbi::WireFormatLite::Int32Size(
                              static_cast<::int32_t>(data_size));
      total_size += tag_size + data_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000007fU) != 0) {
    // optional bytes raw_data = 12 [packed = false];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_raw_data());
    }
    // optional .opencv_caffe.BlobShape shape = 7;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.shape_);
    }
    // optional int32 num = 1 [default = 0];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_num());
    }
    // optional int32 channels = 2 [default = 0];
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_channels());
    }
    // optional int32 height = 3 [default = 0];
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_height());
    }
    // optional int32 width = 4 [default = 0];
    if ((cached_has_bits & 0x00000020U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_width());
    }
    // optional .opencv_caffe.Type raw_data_type = 10;
    if ((cached_has_bits & 0x00000040U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_raw_data_type());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void BlobProto::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<BlobProto*>(&to_msg);
  auto& from = static_cast<const BlobProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.BlobProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_data()->MergeFrom(from._internal_data());
  _this->_internal_mutable_diff()->MergeFrom(from._internal_diff());
  _this->_internal_mutable_double_data()->MergeFrom(from._internal_double_data());
  _this->_internal_mutable_double_diff()->MergeFrom(from._internal_double_diff());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000007fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_raw_data(from._internal_raw_data());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(from._impl_.shape_ != nullptr);
      if (_this->_impl_.shape_ == nullptr) {
        _this->_impl_.shape_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.shape_);
      } else {
        _this->_impl_.shape_->MergeFrom(*from._impl_.shape_);
      }
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.num_ = from._impl_.num_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.channels_ = from._impl_.channels_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.height_ = from._impl_.height_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.width_ = from._impl_.width_;
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      _this->_impl_.raw_data_type_ = from._impl_.raw_data_type_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void BlobProto::CopyFrom(const BlobProto& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.BlobProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void BlobProto::InternalSwap(BlobProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.data_.InternalSwap(&other->_impl_.data_);
  _impl_.diff_.InternalSwap(&other->_impl_.diff_);
  _impl_.double_data_.InternalSwap(&other->_impl_.double_data_);
  _impl_.double_diff_.InternalSwap(&other->_impl_.double_diff_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.raw_data_, &other->_impl_.raw_data_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.raw_data_type_)
      + sizeof(BlobProto::_impl_.raw_data_type_)
      - PROTOBUF_FIELD_OFFSET(BlobProto, _impl_.shape_)>(
          reinterpret_cast<char*>(&_impl_.shape_),
          reinterpret_cast<char*>(&other->_impl_.shape_));
}

::google::protobuf::Metadata BlobProto::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class BlobProtoVector::_Internal {
 public:
};

BlobProtoVector::BlobProtoVector(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, BlobProtoVector_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.BlobProtoVector)
}
PROTOBUF_NDEBUG_INLINE BlobProtoVector::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::BlobProtoVector& from_msg)
      : blobs_{visibility, arena, from.blobs_},
        _cached_size_{0} {}

BlobProtoVector::BlobProtoVector(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const BlobProtoVector& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, BlobProtoVector_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  BlobProtoVector* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.BlobProtoVector)
}
PROTOBUF_NDEBUG_INLINE BlobProtoVector::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : blobs_{visibility, arena},
        _cached_size_{0} {}

inline void BlobProtoVector::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
BlobProtoVector::~BlobProtoVector() {
  // @@protoc_insertion_point(destructor:opencv_caffe.BlobProtoVector)
  SharedDtor(*this);
}
inline void BlobProtoVector::SharedDtor(MessageLite& self) {
  BlobProtoVector& this_ = static_cast<BlobProtoVector&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL BlobProtoVector::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) BlobProtoVector(arena);
}
constexpr auto BlobProtoVector::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(BlobProtoVector, _impl_.blobs_) +
          decltype(BlobProtoVector::_impl_.blobs_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(BlobProtoVector), alignof(BlobProtoVector), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&BlobProtoVector::PlacementNew_,
                                 sizeof(BlobProtoVector),
                                 alignof(BlobProtoVector));
  }
}
constexpr auto BlobProtoVector::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_BlobProtoVector_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &BlobProtoVector::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<BlobProtoVector>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &BlobProtoVector::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<BlobProtoVector>(), &BlobProtoVector::ByteSizeLong,
              &BlobProtoVector::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(BlobProtoVector, _impl_._cached_size_),
          false,
      },
      &BlobProtoVector::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull BlobProtoVector_class_data_ =
        BlobProtoVector::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
BlobProtoVector::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&BlobProtoVector_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(BlobProtoVector_class_data_.tc_table);
  return BlobProtoVector_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 1, 0, 2>
BlobProtoVector::_table_ = {
  {
    0,  // no _has_bits_
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    BlobProtoVector_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::BlobProtoVector>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // repeated .opencv_caffe.BlobProto blobs = 1;
    {::_pbi::TcParser::FastMtR1,
     {10, 63, 0, PROTOBUF_FIELD_OFFSET(BlobProtoVector, _impl_.blobs_)}},
  }}, {{
    65535, 65535
  }}, {{
    // repeated .opencv_caffe.BlobProto blobs = 1;
    {PROTOBUF_FIELD_OFFSET(BlobProtoVector, _impl_.blobs_), 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::BlobProto>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void BlobProtoVector::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.BlobProtoVector)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.blobs_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL BlobProtoVector::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const BlobProtoVector& this_ = static_cast<const BlobProtoVector&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL BlobProtoVector::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const BlobProtoVector& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.BlobProtoVector)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  // repeated .opencv_caffe.BlobProto blobs = 1;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_blobs_size());
       i < n; i++) {
    const auto& repfield = this_._internal_blobs().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            1, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.BlobProtoVector)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t BlobProtoVector::ByteSizeLong(const MessageLite& base) {
  const BlobProtoVector& this_ = static_cast<const BlobProtoVector&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t BlobProtoVector::ByteSizeLong() const {
  const BlobProtoVector& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.BlobProtoVector)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .opencv_caffe.BlobProto blobs = 1;
    {
      total_size += 1UL * this_._internal_blobs_size();
      for (const auto& msg : this_._internal_blobs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void BlobProtoVector::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<BlobProtoVector*>(&to_msg);
  auto& from = static_cast<const BlobProtoVector&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.BlobProtoVector)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_blobs()->MergeFrom(
      from._internal_blobs());
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void BlobProtoVector::CopyFrom(const BlobProtoVector& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.BlobProtoVector)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void BlobProtoVector::InternalSwap(BlobProtoVector* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.blobs_.InternalSwap(&other->_impl_.blobs_);
}

::google::protobuf::Metadata BlobProtoVector::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class PermuteParameter::_Internal {
 public:
};

PermuteParameter::PermuteParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PermuteParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.PermuteParameter)
}
PROTOBUF_NDEBUG_INLINE PermuteParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::PermuteParameter& from_msg)
      : order_{visibility, arena, from.order_},
        _cached_size_{0} {}

PermuteParameter::PermuteParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const PermuteParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PermuteParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PermuteParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.PermuteParameter)
}
PROTOBUF_NDEBUG_INLINE PermuteParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : order_{visibility, arena},
        _cached_size_{0} {}

inline void PermuteParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
PermuteParameter::~PermuteParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.PermuteParameter)
  SharedDtor(*this);
}
inline void PermuteParameter::SharedDtor(MessageLite& self) {
  PermuteParameter& this_ = static_cast<PermuteParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL PermuteParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PermuteParameter(arena);
}
constexpr auto PermuteParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(PermuteParameter, _impl_.order_) +
          decltype(PermuteParameter::_impl_.order_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(PermuteParameter), alignof(PermuteParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&PermuteParameter::PlacementNew_,
                                 sizeof(PermuteParameter),
                                 alignof(PermuteParameter));
  }
}
constexpr auto PermuteParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_PermuteParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &PermuteParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<PermuteParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PermuteParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<PermuteParameter>(), &PermuteParameter::ByteSizeLong,
              &PermuteParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PermuteParameter, _impl_._cached_size_),
          false,
      },
      &PermuteParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull PermuteParameter_class_data_ =
        PermuteParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PermuteParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&PermuteParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(PermuteParameter_class_data_.tc_table);
  return PermuteParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 0, 0, 2>
PermuteParameter::_table_ = {
  {
    0,  // no _has_bits_
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    PermuteParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::PermuteParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // repeated uint32 order = 1;
    {::_pbi::TcParser::FastV32R1,
     {8, 63, 0, PROTOBUF_FIELD_OFFSET(PermuteParameter, _impl_.order_)}},
  }}, {{
    65535, 65535
  }}, {{
    // repeated uint32 order = 1;
    {PROTOBUF_FIELD_OFFSET(PermuteParameter, _impl_.order_), 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void PermuteParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.PermuteParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.order_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PermuteParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PermuteParameter& this_ = static_cast<const PermuteParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PermuteParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PermuteParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.PermuteParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  // repeated uint32 order = 1;
  for (int i = 0, n = this_._internal_order_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_order().Get(i), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.PermuteParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PermuteParameter::ByteSizeLong(const MessageLite& base) {
  const PermuteParameter& this_ = static_cast<const PermuteParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PermuteParameter::ByteSizeLong() const {
  const PermuteParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.PermuteParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated uint32 order = 1;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_order());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_order_size());
      total_size += tag_size + data_size;
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void PermuteParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<PermuteParameter*>(&to_msg);
  auto& from = static_cast<const PermuteParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.PermuteParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_order()->MergeFrom(from._internal_order());
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void PermuteParameter::CopyFrom(const PermuteParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.PermuteParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void PermuteParameter::InternalSwap(PermuteParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.order_.InternalSwap(&other->_impl_.order_);
}

::google::protobuf::Metadata PermuteParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class NormalizeBBoxParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<NormalizeBBoxParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_._has_bits_);
};

NormalizeBBoxParameter::NormalizeBBoxParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NormalizeBBoxParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.NormalizeBBoxParameter)
}
PROTOBUF_NDEBUG_INLINE NormalizeBBoxParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::NormalizeBBoxParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

NormalizeBBoxParameter::NormalizeBBoxParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const NormalizeBBoxParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NormalizeBBoxParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NormalizeBBoxParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.scale_filler_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.scale_filler_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, across_spatial_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, across_spatial_),
           offsetof(Impl_, eps_) -
               offsetof(Impl_, across_spatial_) +
               sizeof(Impl_::eps_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.NormalizeBBoxParameter)
}
PROTOBUF_NDEBUG_INLINE NormalizeBBoxParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        across_spatial_{true},
        channel_shared_{true},
        eps_{1e-10f} {}

inline void NormalizeBBoxParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.scale_filler_ = {};
}
NormalizeBBoxParameter::~NormalizeBBoxParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.NormalizeBBoxParameter)
  SharedDtor(*this);
}
inline void NormalizeBBoxParameter::SharedDtor(MessageLite& self) {
  NormalizeBBoxParameter& this_ = static_cast<NormalizeBBoxParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.scale_filler_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL NormalizeBBoxParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NormalizeBBoxParameter(arena);
}
constexpr auto NormalizeBBoxParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(NormalizeBBoxParameter),
                                            alignof(NormalizeBBoxParameter));
}
constexpr auto NormalizeBBoxParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_NormalizeBBoxParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &NormalizeBBoxParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NormalizeBBoxParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NormalizeBBoxParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NormalizeBBoxParameter>(), &NormalizeBBoxParameter::ByteSizeLong,
              &NormalizeBBoxParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_._cached_size_),
          false,
      },
      &NormalizeBBoxParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NormalizeBBoxParameter_class_data_ =
        NormalizeBBoxParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NormalizeBBoxParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NormalizeBBoxParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NormalizeBBoxParameter_class_data_.tc_table);
  return NormalizeBBoxParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 4, 1, 0, 2>
NormalizeBBoxParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_._has_bits_),
    0, // no _extensions_
    4, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967280,  // skipmap
    offsetof(decltype(_table_), field_entries),
    4,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    NormalizeBBoxParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::NormalizeBBoxParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional float eps = 4 [default = 1e-10];
    {::_pbi::TcParser::FastF32S1,
     {37, 3, 0, PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_.eps_)}},
    // optional bool across_spatial = 1 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NormalizeBBoxParameter, _impl_.across_spatial_), 1>(),
     {8, 1, 0, PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_.across_spatial_)}},
    // optional .opencv_caffe.FillerParameter scale_filler = 2;
    {::_pbi::TcParser::FastMtS1,
     {18, 0, 0, PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_.scale_filler_)}},
    // optional bool channel_shared = 3 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NormalizeBBoxParameter, _impl_.channel_shared_), 2>(),
     {24, 2, 0, PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_.channel_shared_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional bool across_spatial = 1 [default = true];
    {PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_.across_spatial_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional .opencv_caffe.FillerParameter scale_filler = 2;
    {PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_.scale_filler_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional bool channel_shared = 3 [default = true];
    {PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_.channel_shared_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional float eps = 4 [default = 1e-10];
    {PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_.eps_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void NormalizeBBoxParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.NormalizeBBoxParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000000fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(_impl_.scale_filler_ != nullptr);
      _impl_.scale_filler_->Clear();
    }
    _impl_.across_spatial_ = true;
    _impl_.channel_shared_ = true;
    _impl_.eps_ = 1e-10f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NormalizeBBoxParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NormalizeBBoxParameter& this_ = static_cast<const NormalizeBBoxParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NormalizeBBoxParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NormalizeBBoxParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.NormalizeBBoxParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bool across_spatial = 1 [default = true];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        1, this_._internal_across_spatial(), target);
  }

  // optional .opencv_caffe.FillerParameter scale_filler = 2;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.scale_filler_, this_._impl_.scale_filler_->GetCachedSize(), target,
        stream);
  }

  // optional bool channel_shared = 3 [default = true];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        3, this_._internal_channel_shared(), target);
  }

  // optional float eps = 4 [default = 1e-10];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        4, this_._internal_eps(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.NormalizeBBoxParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NormalizeBBoxParameter::ByteSizeLong(const MessageLite& base) {
  const NormalizeBBoxParameter& this_ = static_cast<const NormalizeBBoxParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NormalizeBBoxParameter::ByteSizeLong() const {
  const NormalizeBBoxParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.NormalizeBBoxParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000008U & cached_has_bits) * 5;
  total_size += ::absl::popcount(0x00000006U & cached_has_bits) * 2;
   {
    // optional .opencv_caffe.FillerParameter scale_filler = 2;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.scale_filler_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NormalizeBBoxParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<NormalizeBBoxParameter*>(&to_msg);
  auto& from = static_cast<const NormalizeBBoxParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.NormalizeBBoxParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000000fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(from._impl_.scale_filler_ != nullptr);
      if (_this->_impl_.scale_filler_ == nullptr) {
        _this->_impl_.scale_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.scale_filler_);
      } else {
        _this->_impl_.scale_filler_->MergeFrom(*from._impl_.scale_filler_);
      }
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.across_spatial_ = from._impl_.across_spatial_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.channel_shared_ = from._impl_.channel_shared_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.eps_ = from._impl_.eps_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void NormalizeBBoxParameter::CopyFrom(const NormalizeBBoxParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.NormalizeBBoxParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void NormalizeBBoxParameter::InternalSwap(NormalizeBBoxParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_.eps_)
      + sizeof(NormalizeBBoxParameter::_impl_.eps_)
      - PROTOBUF_FIELD_OFFSET(NormalizeBBoxParameter, _impl_.scale_filler_)>(
          reinterpret_cast<char*>(&_impl_.scale_filler_),
          reinterpret_cast<char*>(&other->_impl_.scale_filler_));
}

::google::protobuf::Metadata NormalizeBBoxParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class PriorBoxParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<PriorBoxParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_._has_bits_);
};

PriorBoxParameter::PriorBoxParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PriorBoxParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.PriorBoxParameter)
}
PROTOBUF_NDEBUG_INLINE PriorBoxParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::PriorBoxParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        min_size_{visibility, arena, from.min_size_},
        max_size_{visibility, arena, from.max_size_},
        aspect_ratio_{visibility, arena, from.aspect_ratio_},
        variance_{visibility, arena, from.variance_},
        offset_h_{visibility, arena, from.offset_h_},
        offset_w_{visibility, arena, from.offset_w_},
        width_{visibility, arena, from.width_},
        height_{visibility, arena, from.height_} {}

PriorBoxParameter::PriorBoxParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const PriorBoxParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PriorBoxParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PriorBoxParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, img_size_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, img_size_),
           offsetof(Impl_, offset_) -
               offsetof(Impl_, img_size_) +
               sizeof(Impl_::offset_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.PriorBoxParameter)
}
PROTOBUF_NDEBUG_INLINE PriorBoxParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        min_size_{visibility, arena},
        max_size_{visibility, arena},
        aspect_ratio_{visibility, arena},
        variance_{visibility, arena},
        offset_h_{visibility, arena},
        offset_w_{visibility, arena},
        width_{visibility, arena},
        height_{visibility, arena},
        flip_{true},
        clip_{true},
        offset_{0.5f} {}

inline void PriorBoxParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, img_size_),
           0,
           offsetof(Impl_, step_w_) -
               offsetof(Impl_, img_size_) +
               sizeof(Impl_::step_w_));
}
PriorBoxParameter::~PriorBoxParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.PriorBoxParameter)
  SharedDtor(*this);
}
inline void PriorBoxParameter::SharedDtor(MessageLite& self) {
  PriorBoxParameter& this_ = static_cast<PriorBoxParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL PriorBoxParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PriorBoxParameter(arena);
}
constexpr auto PriorBoxParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.min_size_) +
          decltype(PriorBoxParameter::_impl_.min_size_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.max_size_) +
          decltype(PriorBoxParameter::_impl_.max_size_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.aspect_ratio_) +
          decltype(PriorBoxParameter::_impl_.aspect_ratio_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.variance_) +
          decltype(PriorBoxParameter::_impl_.variance_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.offset_h_) +
          decltype(PriorBoxParameter::_impl_.offset_h_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.offset_w_) +
          decltype(PriorBoxParameter::_impl_.offset_w_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.width_) +
          decltype(PriorBoxParameter::_impl_.width_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.height_) +
          decltype(PriorBoxParameter::_impl_.height_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(PriorBoxParameter), alignof(PriorBoxParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&PriorBoxParameter::PlacementNew_,
                                 sizeof(PriorBoxParameter),
                                 alignof(PriorBoxParameter));
  }
}
constexpr auto PriorBoxParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_PriorBoxParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &PriorBoxParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<PriorBoxParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PriorBoxParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<PriorBoxParameter>(), &PriorBoxParameter::ByteSizeLong,
              &PriorBoxParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_._cached_size_),
          false,
      },
      &PriorBoxParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull PriorBoxParameter_class_data_ =
        PriorBoxParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PriorBoxParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&PriorBoxParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(PriorBoxParameter_class_data_.tc_table);
  return PriorBoxParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<5, 17, 0, 0, 2>
PriorBoxParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_._has_bits_),
    0, // no _extensions_
    17, 248,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294836224,  // skipmap
    offsetof(decltype(_table_), field_entries),
    17,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    PriorBoxParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::PriorBoxParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // repeated float min_size = 1;
    {::_pbi::TcParser::FastF32R1,
     {13, 63, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.min_size_)}},
    // repeated float max_size = 2;
    {::_pbi::TcParser::FastF32R1,
     {21, 63, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.max_size_)}},
    // repeated float aspect_ratio = 3;
    {::_pbi::TcParser::FastF32R1,
     {29, 63, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.aspect_ratio_)}},
    // optional bool flip = 4 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(PriorBoxParameter, _impl_.flip_), 6>(),
     {32, 6, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.flip_)}},
    // optional bool clip = 5 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(PriorBoxParameter, _impl_.clip_), 7>(),
     {40, 7, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.clip_)}},
    // repeated float variance = 6;
    {::_pbi::TcParser::FastF32R1,
     {53, 63, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.variance_)}},
    // optional uint32 img_size = 7;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PriorBoxParameter, _impl_.img_size_), 0>(),
     {56, 0, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.img_size_)}},
    // optional uint32 img_h = 8;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PriorBoxParameter, _impl_.img_h_), 1>(),
     {64, 1, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.img_h_)}},
    // optional uint32 img_w = 9;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PriorBoxParameter, _impl_.img_w_), 2>(),
     {72, 2, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.img_w_)}},
    // optional float step = 10;
    {::_pbi::TcParser::FastF32S1,
     {85, 3, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.step_)}},
    // optional float step_h = 11;
    {::_pbi::TcParser::FastF32S1,
     {93, 4, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.step_h_)}},
    // optional float step_w = 12;
    {::_pbi::TcParser::FastF32S1,
     {101, 5, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.step_w_)}},
    // optional float offset = 13 [default = 0.5];
    {::_pbi::TcParser::FastF32S1,
     {109, 8, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.offset_)}},
    // repeated float offset_h = 14;
    {::_pbi::TcParser::FastF32R1,
     {117, 63, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.offset_h_)}},
    // repeated float offset_w = 15;
    {::_pbi::TcParser::FastF32R1,
     {125, 63, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.offset_w_)}},
    // repeated float width = 16;
    {::_pbi::TcParser::FastF32R2,
     {389, 63, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.width_)}},
    // repeated float height = 17;
    {::_pbi::TcParser::FastF32R2,
     {397, 63, 0, PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.height_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // repeated float min_size = 1;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.min_size_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // repeated float max_size = 2;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.max_size_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // repeated float aspect_ratio = 3;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.aspect_ratio_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // optional bool flip = 4 [default = true];
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.flip_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional bool clip = 5 [default = true];
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.clip_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // repeated float variance = 6;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.variance_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // optional uint32 img_size = 7;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.img_size_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 img_h = 8;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.img_h_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 img_w = 9;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.img_w_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional float step = 10;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.step_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float step_h = 11;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.step_h_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float step_w = 12;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.step_w_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float offset = 13 [default = 0.5];
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.offset_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // repeated float offset_h = 14;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.offset_h_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // repeated float offset_w = 15;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.offset_w_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // repeated float width = 16;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.width_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // repeated float height = 17;
    {PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.height_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void PriorBoxParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.PriorBoxParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.min_size_.Clear();
  _impl_.max_size_.Clear();
  _impl_.aspect_ratio_.Clear();
  _impl_.variance_.Clear();
  _impl_.offset_h_.Clear();
  _impl_.offset_w_.Clear();
  _impl_.width_.Clear();
  _impl_.height_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    ::memset(&_impl_.img_size_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.step_w_) -
        reinterpret_cast<char*>(&_impl_.img_size_)) + sizeof(_impl_.step_w_));
    _impl_.flip_ = true;
    _impl_.clip_ = true;
  }
  _impl_.offset_ = 0.5f;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PriorBoxParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PriorBoxParameter& this_ = static_cast<const PriorBoxParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PriorBoxParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PriorBoxParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.PriorBoxParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  // repeated float min_size = 1;
  for (int i = 0, n = this_._internal_min_size_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_min_size().Get(i), target);
  }

  // repeated float max_size = 2;
  for (int i = 0, n = this_._internal_max_size_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_max_size().Get(i), target);
  }

  // repeated float aspect_ratio = 3;
  for (int i = 0, n = this_._internal_aspect_ratio_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_aspect_ratio().Get(i), target);
  }

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bool flip = 4 [default = true];
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        4, this_._internal_flip(), target);
  }

  // optional bool clip = 5 [default = true];
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        5, this_._internal_clip(), target);
  }

  // repeated float variance = 6;
  for (int i = 0, n = this_._internal_variance_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        6, this_._internal_variance().Get(i), target);
  }

  // optional uint32 img_size = 7;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        7, this_._internal_img_size(), target);
  }

  // optional uint32 img_h = 8;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        8, this_._internal_img_h(), target);
  }

  // optional uint32 img_w = 9;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        9, this_._internal_img_w(), target);
  }

  // optional float step = 10;
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        10, this_._internal_step(), target);
  }

  // optional float step_h = 11;
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        11, this_._internal_step_h(), target);
  }

  // optional float step_w = 12;
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        12, this_._internal_step_w(), target);
  }

  // optional float offset = 13 [default = 0.5];
  if ((cached_has_bits & 0x00000100U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        13, this_._internal_offset(), target);
  }

  // repeated float offset_h = 14;
  for (int i = 0, n = this_._internal_offset_h_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        14, this_._internal_offset_h().Get(i), target);
  }

  // repeated float offset_w = 15;
  for (int i = 0, n = this_._internal_offset_w_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        15, this_._internal_offset_w().Get(i), target);
  }

  // repeated float width = 16;
  for (int i = 0, n = this_._internal_width_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        16, this_._internal_width().Get(i), target);
  }

  // repeated float height = 17;
  for (int i = 0, n = this_._internal_height_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        17, this_._internal_height().Get(i), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.PriorBoxParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PriorBoxParameter::ByteSizeLong(const MessageLite& base) {
  const PriorBoxParameter& this_ = static_cast<const PriorBoxParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PriorBoxParameter::ByteSizeLong() const {
  const PriorBoxParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.PriorBoxParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated float min_size = 1;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_min_size_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_min_size_size());
      total_size += tag_size + data_size;
    }
    // repeated float max_size = 2;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_max_size_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_max_size_size());
      total_size += tag_size + data_size;
    }
    // repeated float aspect_ratio = 3;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_aspect_ratio_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_aspect_ratio_size());
      total_size += tag_size + data_size;
    }
    // repeated float variance = 6;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_variance_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_variance_size());
      total_size += tag_size + data_size;
    }
    // repeated float offset_h = 14;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_offset_h_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_offset_h_size());
      total_size += tag_size + data_size;
    }
    // repeated float offset_w = 15;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_offset_w_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_offset_w_size());
      total_size += tag_size + data_size;
    }
    // repeated float width = 16;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_width_size());
      ::size_t tag_size = ::size_t{2} *
          ::_pbi::FromIntSize(this_._internal_width_size());
      total_size += tag_size + data_size;
    }
    // repeated float height = 17;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_height_size());
      ::size_t tag_size = ::size_t{2} *
          ::_pbi::FromIntSize(this_._internal_height_size());
      total_size += tag_size + data_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00000138U & cached_has_bits) * 5;
  total_size += ::absl::popcount(0x000000c0U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x00000007U) != 0) {
    // optional uint32 img_size = 7;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_img_size());
    }
    // optional uint32 img_h = 8;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_img_h());
    }
    // optional uint32 img_w = 9;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_img_w());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void PriorBoxParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<PriorBoxParameter*>(&to_msg);
  auto& from = static_cast<const PriorBoxParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.PriorBoxParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_min_size()->MergeFrom(from._internal_min_size());
  _this->_internal_mutable_max_size()->MergeFrom(from._internal_max_size());
  _this->_internal_mutable_aspect_ratio()->MergeFrom(from._internal_aspect_ratio());
  _this->_internal_mutable_variance()->MergeFrom(from._internal_variance());
  _this->_internal_mutable_offset_h()->MergeFrom(from._internal_offset_h());
  _this->_internal_mutable_offset_w()->MergeFrom(from._internal_offset_w());
  _this->_internal_mutable_width()->MergeFrom(from._internal_width());
  _this->_internal_mutable_height()->MergeFrom(from._internal_height());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.img_size_ = from._impl_.img_size_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.img_h_ = from._impl_.img_h_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.img_w_ = from._impl_.img_w_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.step_ = from._impl_.step_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.step_h_ = from._impl_.step_h_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.step_w_ = from._impl_.step_w_;
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      _this->_impl_.flip_ = from._impl_.flip_;
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      _this->_impl_.clip_ = from._impl_.clip_;
    }
  }
  if ((cached_has_bits & 0x00000100U) != 0) {
    _this->_impl_.offset_ = from._impl_.offset_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void PriorBoxParameter::CopyFrom(const PriorBoxParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.PriorBoxParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void PriorBoxParameter::InternalSwap(PriorBoxParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.min_size_.InternalSwap(&other->_impl_.min_size_);
  _impl_.max_size_.InternalSwap(&other->_impl_.max_size_);
  _impl_.aspect_ratio_.InternalSwap(&other->_impl_.aspect_ratio_);
  _impl_.variance_.InternalSwap(&other->_impl_.variance_);
  _impl_.offset_h_.InternalSwap(&other->_impl_.offset_h_);
  _impl_.offset_w_.InternalSwap(&other->_impl_.offset_w_);
  _impl_.width_.InternalSwap(&other->_impl_.width_);
  _impl_.height_.InternalSwap(&other->_impl_.height_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.offset_)
      + sizeof(PriorBoxParameter::_impl_.offset_)
      - PROTOBUF_FIELD_OFFSET(PriorBoxParameter, _impl_.img_size_)>(
          reinterpret_cast<char*>(&_impl_.img_size_),
          reinterpret_cast<char*>(&other->_impl_.img_size_));
}

::google::protobuf::Metadata PriorBoxParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class DetectionOutputParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<DetectionOutputParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_._has_bits_);
};

DetectionOutputParameter::DetectionOutputParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, DetectionOutputParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.DetectionOutputParameter)
}
PROTOBUF_NDEBUG_INLINE DetectionOutputParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::DetectionOutputParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

DetectionOutputParameter::DetectionOutputParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const DetectionOutputParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, DetectionOutputParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  DetectionOutputParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.nms_param_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.nms_param_)
                : nullptr;
  _impl_.save_output_param_ = ((cached_has_bits & 0x00000002U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.save_output_param_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, num_classes_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, num_classes_),
           offsetof(Impl_, keep_top_k_) -
               offsetof(Impl_, num_classes_) +
               sizeof(Impl_::keep_top_k_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.DetectionOutputParameter)
}
PROTOBUF_NDEBUG_INLINE DetectionOutputParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        code_type_{static_cast< ::opencv_caffe::PriorBoxParameter_CodeType >(1)},
        share_location_{true},
        normalized_bbox_{true},
        keep_top_k_{-1} {}

inline void DetectionOutputParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, nms_param_),
           0,
           offsetof(Impl_, clip_) -
               offsetof(Impl_, nms_param_) +
               sizeof(Impl_::clip_));
}
DetectionOutputParameter::~DetectionOutputParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.DetectionOutputParameter)
  SharedDtor(*this);
}
inline void DetectionOutputParameter::SharedDtor(MessageLite& self) {
  DetectionOutputParameter& this_ = static_cast<DetectionOutputParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.nms_param_;
  delete this_._impl_.save_output_param_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL DetectionOutputParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) DetectionOutputParameter(arena);
}
constexpr auto DetectionOutputParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(DetectionOutputParameter),
                                            alignof(DetectionOutputParameter));
}
constexpr auto DetectionOutputParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_DetectionOutputParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &DetectionOutputParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<DetectionOutputParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &DetectionOutputParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<DetectionOutputParameter>(), &DetectionOutputParameter::ByteSizeLong,
              &DetectionOutputParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_._cached_size_),
          false,
      },
      &DetectionOutputParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull DetectionOutputParameter_class_data_ =
        DetectionOutputParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DetectionOutputParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&DetectionOutputParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(DetectionOutputParameter_class_data_.tc_table);
  return DetectionOutputParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<4, 11, 3, 0, 7>
DetectionOutputParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_._has_bits_),
    0, // no _extensions_
    1000, 120,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294966272,  // skipmap
    offsetof(decltype(_table_), field_entries),
    11,  // num_field_entries
    3,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    DetectionOutputParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::DetectionOutputParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional uint32 num_classes = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(DetectionOutputParameter, _impl_.num_classes_), 2>(),
     {8, 2, 0, PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.num_classes_)}},
    // optional bool share_location = 2 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(DetectionOutputParameter, _impl_.share_location_), 8>(),
     {16, 8, 0, PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.share_location_)}},
    // optional int32 background_label_id = 3 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(DetectionOutputParameter, _impl_.background_label_id_), 3>(),
     {24, 3, 0, PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.background_label_id_)}},
    // optional .opencv_caffe.NonMaximumSuppressionParameter nms_param = 4;
    {::_pbi::TcParser::FastMtS1,
     {34, 0, 0, PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.nms_param_)}},
    // optional .opencv_caffe.SaveOutputParameter save_output_param = 5;
    {::_pbi::TcParser::FastMtS1,
     {42, 1, 1, PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.save_output_param_)}},
    // optional .opencv_caffe.PriorBoxParameter.CodeType code_type = 6 [default = CORNER];
    {::_pbi::TcParser::FastEr1S1,
     {48, 7, 2, PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.code_type_)}},
    // optional int32 keep_top_k = 7 [default = -1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(DetectionOutputParameter, _impl_.keep_top_k_), 10>(),
     {56, 10, 0, PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.keep_top_k_)}},
    // optional bool variance_encoded_in_target = 8 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(DetectionOutputParameter, _impl_.variance_encoded_in_target_), 4>(),
     {64, 4, 0, PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.variance_encoded_in_target_)}},
    // optional float confidence_threshold = 9;
    {::_pbi::TcParser::FastF32S1,
     {77, 5, 0, PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.confidence_threshold_)}},
    // optional bool normalized_bbox = 10 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(DetectionOutputParameter, _impl_.normalized_bbox_), 9>(),
     {80, 9, 0, PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.normalized_bbox_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    1000, 0, 1,
    65534, 10,
    65535, 65535
  }}, {{
    // optional uint32 num_classes = 1;
    {PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.num_classes_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool share_location = 2 [default = true];
    {PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.share_location_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional int32 background_label_id = 3 [default = 0];
    {PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.background_label_id_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional .opencv_caffe.NonMaximumSuppressionParameter nms_param = 4;
    {PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.nms_param_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.SaveOutputParameter save_output_param = 5;
    {PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.save_output_param_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.PriorBoxParameter.CodeType code_type = 6 [default = CORNER];
    {PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.code_type_), _Internal::kHasBitsOffset + 7, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional int32 keep_top_k = 7 [default = -1];
    {PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.keep_top_k_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional bool variance_encoded_in_target = 8 [default = false];
    {PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.variance_encoded_in_target_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional float confidence_threshold = 9;
    {PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.confidence_threshold_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional bool normalized_bbox = 10 [default = true];
    {PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.normalized_bbox_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional bool clip = 1000 [default = false];
    {PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.clip_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::NonMaximumSuppressionParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::SaveOutputParameter>()},
      {1, 2},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void DetectionOutputParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.DetectionOutputParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(_impl_.nms_param_ != nullptr);
      _impl_.nms_param_->Clear();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(_impl_.save_output_param_ != nullptr);
      _impl_.save_output_param_->Clear();
    }
  }
  if ((cached_has_bits & 0x000000fcU) != 0) {
    ::memset(&_impl_.num_classes_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.clip_) -
        reinterpret_cast<char*>(&_impl_.num_classes_)) + sizeof(_impl_.clip_));
    _impl_.code_type_ = 1;
  }
  if ((cached_has_bits & 0x00000700U) != 0) {
    _impl_.share_location_ = true;
    _impl_.normalized_bbox_ = true;
    _impl_.keep_top_k_ = -1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL DetectionOutputParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const DetectionOutputParameter& this_ = static_cast<const DetectionOutputParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL DetectionOutputParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const DetectionOutputParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.DetectionOutputParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 num_classes = 1;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_num_classes(), target);
  }

  // optional bool share_location = 2 [default = true];
  if ((cached_has_bits & 0x00000100U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_share_location(), target);
  }

  // optional int32 background_label_id = 3 [default = 0];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_background_label_id(), target);
  }

  // optional .opencv_caffe.NonMaximumSuppressionParameter nms_param = 4;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.nms_param_, this_._impl_.nms_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.SaveOutputParameter save_output_param = 5;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.save_output_param_, this_._impl_.save_output_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.PriorBoxParameter.CodeType code_type = 6 [default = CORNER];
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        6, this_._internal_code_type(), target);
  }

  // optional int32 keep_top_k = 7 [default = -1];
  if ((cached_has_bits & 0x00000400U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<7>(
            stream, this_._internal_keep_top_k(), target);
  }

  // optional bool variance_encoded_in_target = 8 [default = false];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        8, this_._internal_variance_encoded_in_target(), target);
  }

  // optional float confidence_threshold = 9;
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        9, this_._internal_confidence_threshold(), target);
  }

  // optional bool normalized_bbox = 10 [default = true];
  if ((cached_has_bits & 0x00000200U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        10, this_._internal_normalized_bbox(), target);
  }

  // optional bool clip = 1000 [default = false];
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        1000, this_._internal_clip(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.DetectionOutputParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t DetectionOutputParameter::ByteSizeLong(const MessageLite& base) {
  const DetectionOutputParameter& this_ = static_cast<const DetectionOutputParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t DetectionOutputParameter::ByteSizeLong() const {
  const DetectionOutputParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.DetectionOutputParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000020U & cached_has_bits) * 5;
  total_size += static_cast<bool>(0x00000040U & cached_has_bits) * 3;
  total_size += ::absl::popcount(0x00000310U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x0000008fU) != 0) {
    // optional .opencv_caffe.NonMaximumSuppressionParameter nms_param = 4;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.nms_param_);
    }
    // optional .opencv_caffe.SaveOutputParameter save_output_param = 5;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.save_output_param_);
    }
    // optional uint32 num_classes = 1;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_num_classes());
    }
    // optional int32 background_label_id = 3 [default = 0];
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_background_label_id());
    }
    // optional .opencv_caffe.PriorBoxParameter.CodeType code_type = 6 [default = CORNER];
    if ((cached_has_bits & 0x00000080U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_code_type());
    }
  }
   {
    // optional int32 keep_top_k = 7 [default = -1];
    if ((cached_has_bits & 0x00000400U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_keep_top_k());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void DetectionOutputParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<DetectionOutputParameter*>(&to_msg);
  auto& from = static_cast<const DetectionOutputParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.DetectionOutputParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(from._impl_.nms_param_ != nullptr);
      if (_this->_impl_.nms_param_ == nullptr) {
        _this->_impl_.nms_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.nms_param_);
      } else {
        _this->_impl_.nms_param_->MergeFrom(*from._impl_.nms_param_);
      }
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(from._impl_.save_output_param_ != nullptr);
      if (_this->_impl_.save_output_param_ == nullptr) {
        _this->_impl_.save_output_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.save_output_param_);
      } else {
        _this->_impl_.save_output_param_->MergeFrom(*from._impl_.save_output_param_);
      }
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.num_classes_ = from._impl_.num_classes_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.background_label_id_ = from._impl_.background_label_id_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.variance_encoded_in_target_ = from._impl_.variance_encoded_in_target_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.confidence_threshold_ = from._impl_.confidence_threshold_;
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      _this->_impl_.clip_ = from._impl_.clip_;
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      _this->_impl_.code_type_ = from._impl_.code_type_;
    }
  }
  if ((cached_has_bits & 0x00000700U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      _this->_impl_.share_location_ = from._impl_.share_location_;
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      _this->_impl_.normalized_bbox_ = from._impl_.normalized_bbox_;
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      _this->_impl_.keep_top_k_ = from._impl_.keep_top_k_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void DetectionOutputParameter::CopyFrom(const DetectionOutputParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.DetectionOutputParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void DetectionOutputParameter::InternalSwap(DetectionOutputParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.keep_top_k_)
      + sizeof(DetectionOutputParameter::_impl_.keep_top_k_)
      - PROTOBUF_FIELD_OFFSET(DetectionOutputParameter, _impl_.nms_param_)>(
          reinterpret_cast<char*>(&_impl_.nms_param_),
          reinterpret_cast<char*>(&other->_impl_.nms_param_));
}

::google::protobuf::Metadata DetectionOutputParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class Datum::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<Datum>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(Datum, _impl_._has_bits_);
};

Datum::Datum(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Datum_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.Datum)
}
PROTOBUF_NDEBUG_INLINE Datum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::Datum& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        float_data_{visibility, arena, from.float_data_},
        data_(arena, from.data_) {}

Datum::Datum(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const Datum& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, Datum_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  Datum* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, channels_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, channels_),
           offsetof(Impl_, encoded_) -
               offsetof(Impl_, channels_) +
               sizeof(Impl_::encoded_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.Datum)
}
PROTOBUF_NDEBUG_INLINE Datum::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        float_data_{visibility, arena},
        data_(arena) {}

inline void Datum::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, channels_),
           0,
           offsetof(Impl_, encoded_) -
               offsetof(Impl_, channels_) +
               sizeof(Impl_::encoded_));
}
Datum::~Datum() {
  // @@protoc_insertion_point(destructor:opencv_caffe.Datum)
  SharedDtor(*this);
}
inline void Datum::SharedDtor(MessageLite& self) {
  Datum& this_ = static_cast<Datum&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.data_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL Datum::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) Datum(arena);
}
constexpr auto Datum::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.float_data_) +
          decltype(Datum::_impl_.float_data_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(Datum), alignof(Datum), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&Datum::PlacementNew_,
                                 sizeof(Datum),
                                 alignof(Datum));
  }
}
constexpr auto Datum::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_Datum_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &Datum::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<Datum>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &Datum::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<Datum>(), &Datum::ByteSizeLong,
              &Datum::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(Datum, _impl_._cached_size_),
          false,
      },
      &Datum::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull Datum_class_data_ =
        Datum::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
Datum::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&Datum_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(Datum_class_data_.tc_table);
  return Datum_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 7, 0, 0, 2>
Datum::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(Datum, _impl_._has_bits_),
    0, // no _extensions_
    7, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967168,  // skipmap
    offsetof(decltype(_table_), field_entries),
    7,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    Datum_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::Datum>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional int32 channels = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Datum, _impl_.channels_), 1>(),
     {8, 1, 0, PROTOBUF_FIELD_OFFSET(Datum, _impl_.channels_)}},
    // optional int32 height = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Datum, _impl_.height_), 2>(),
     {16, 2, 0, PROTOBUF_FIELD_OFFSET(Datum, _impl_.height_)}},
    // optional int32 width = 3;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Datum, _impl_.width_), 3>(),
     {24, 3, 0, PROTOBUF_FIELD_OFFSET(Datum, _impl_.width_)}},
    // optional bytes data = 4;
    {::_pbi::TcParser::FastBS1,
     {34, 0, 0, PROTOBUF_FIELD_OFFSET(Datum, _impl_.data_)}},
    // optional int32 label = 5;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(Datum, _impl_.label_), 4>(),
     {40, 4, 0, PROTOBUF_FIELD_OFFSET(Datum, _impl_.label_)}},
    // repeated float float_data = 6;
    {::_pbi::TcParser::FastF32R1,
     {53, 63, 0, PROTOBUF_FIELD_OFFSET(Datum, _impl_.float_data_)}},
    // optional bool encoded = 7 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(Datum, _impl_.encoded_), 5>(),
     {56, 5, 0, PROTOBUF_FIELD_OFFSET(Datum, _impl_.encoded_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 channels = 1;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.channels_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 height = 2;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.height_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 width = 3;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.width_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional bytes data = 4;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.data_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    // optional int32 label = 5;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.label_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated float float_data = 6;
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.float_data_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // optional bool encoded = 7 [default = false];
    {PROTOBUF_FIELD_OFFSET(Datum, _impl_.encoded_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void Datum::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.Datum)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.float_data_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _impl_.data_.ClearNonDefaultToEmpty();
  }
  if ((cached_has_bits & 0x0000003eU) != 0) {
    ::memset(&_impl_.channels_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.encoded_) -
        reinterpret_cast<char*>(&_impl_.channels_)) + sizeof(_impl_.encoded_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL Datum::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const Datum& this_ = static_cast<const Datum&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL Datum::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const Datum& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.Datum)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 channels = 1;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_channels(), target);
  }

  // optional int32 height = 2;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_height(), target);
  }

  // optional int32 width = 3;
  if ((cached_has_bits & 0x00000008U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_width(), target);
  }

  // optional bytes data = 4;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_data();
    target = stream->WriteBytesMaybeAliased(4, _s, target);
  }

  // optional int32 label = 5;
  if ((cached_has_bits & 0x00000010U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_label(), target);
  }

  // repeated float float_data = 6;
  for (int i = 0, n = this_._internal_float_data_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        6, this_._internal_float_data().Get(i), target);
  }

  // optional bool encoded = 7 [default = false];
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        7, this_._internal_encoded(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.Datum)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t Datum::ByteSizeLong(const MessageLite& base) {
  const Datum& this_ = static_cast<const Datum&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t Datum::ByteSizeLong() const {
  const Datum& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.Datum)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated float float_data = 6;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_float_data_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_float_data_size());
      total_size += tag_size + data_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000020U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x0000001fU) != 0) {
    // optional bytes data = 4;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_data());
    }
    // optional int32 channels = 1;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_channels());
    }
    // optional int32 height = 2;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_height());
    }
    // optional int32 width = 3;
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_width());
    }
    // optional int32 label = 5;
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_label());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void Datum::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<Datum*>(&to_msg);
  auto& from = static_cast<const Datum&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.Datum)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_float_data()->MergeFrom(from._internal_float_data());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000003fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_data(from._internal_data());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.channels_ = from._impl_.channels_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.height_ = from._impl_.height_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.width_ = from._impl_.width_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.label_ = from._impl_.label_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.encoded_ = from._impl_.encoded_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void Datum::CopyFrom(const Datum& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.Datum)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void Datum::InternalSwap(Datum* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.float_data_.InternalSwap(&other->_impl_.float_data_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.data_, &other->_impl_.data_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Datum, _impl_.encoded_)
      + sizeof(Datum::_impl_.encoded_)
      - PROTOBUF_FIELD_OFFSET(Datum, _impl_.channels_)>(
          reinterpret_cast<char*>(&_impl_.channels_),
          reinterpret_cast<char*>(&other->_impl_.channels_));
}

::google::protobuf::Metadata Datum::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class FillerParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<FillerParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_._has_bits_);
};

/*static*/ const ::_pbi::LazyString FillerParameter::Impl_::_i_give_permission_to_break_this_code_default_type_{
    {{"constant", 8}},
    {nullptr},
};
FillerParameter::FillerParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FillerParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.FillerParameter)
}
PROTOBUF_NDEBUG_INLINE FillerParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::FillerParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        type_(arena, from.type_, _i_give_permission_to_break_this_code_default_type_) {}

FillerParameter::FillerParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const FillerParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FillerParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  FillerParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, value_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, value_),
           offsetof(Impl_, sparse_) -
               offsetof(Impl_, value_) +
               sizeof(Impl_::sparse_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.FillerParameter)
}
PROTOBUF_NDEBUG_INLINE FillerParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        type_(arena, Impl_::_i_give_permission_to_break_this_code_default_type_),
        max_{1},
        std_{1},
        sparse_{-1} {}

inline void FillerParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, value_),
           0,
           offsetof(Impl_, variance_norm_) -
               offsetof(Impl_, value_) +
               sizeof(Impl_::variance_norm_));
}
FillerParameter::~FillerParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.FillerParameter)
  SharedDtor(*this);
}
inline void FillerParameter::SharedDtor(MessageLite& self) {
  FillerParameter& this_ = static_cast<FillerParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.type_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL FillerParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FillerParameter(arena);
}
constexpr auto FillerParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FillerParameter),
                                            alignof(FillerParameter));
}
constexpr auto FillerParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_FillerParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &FillerParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FillerParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FillerParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FillerParameter>(), &FillerParameter::ByteSizeLong,
              &FillerParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_._cached_size_),
          false,
      },
      &FillerParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FillerParameter_class_data_ =
        FillerParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FillerParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FillerParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FillerParameter_class_data_.tc_table);
  return FillerParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 8, 1, 49, 2>
FillerParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_._has_bits_),
    0, // no _extensions_
    8, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967040,  // skipmap
    offsetof(decltype(_table_), field_entries),
    8,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    FillerParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional .opencv_caffe.FillerParameter.VarianceNorm variance_norm = 8 [default = FAN_IN];
    {::_pbi::TcParser::FastEr0S1,
     {64, 4, 2, PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.variance_norm_)}},
    // optional string type = 1 [default = "constant"];
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.type_)}},
    // optional float value = 2 [default = 0];
    {::_pbi::TcParser::FastF32S1,
     {21, 1, 0, PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.value_)}},
    // optional float min = 3 [default = 0];
    {::_pbi::TcParser::FastF32S1,
     {29, 2, 0, PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.min_)}},
    // optional float max = 4 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {37, 5, 0, PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.max_)}},
    // optional float mean = 5 [default = 0];
    {::_pbi::TcParser::FastF32S1,
     {45, 3, 0, PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.mean_)}},
    // optional float std = 6 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {53, 6, 0, PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.std_)}},
    // optional int32 sparse = 7 [default = -1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FillerParameter, _impl_.sparse_), 7>(),
     {56, 7, 0, PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.sparse_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional string type = 1 [default = "constant"];
    {PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.type_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional float value = 2 [default = 0];
    {PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.value_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float min = 3 [default = 0];
    {PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.min_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float max = 4 [default = 1];
    {PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.max_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float mean = 5 [default = 0];
    {PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.mean_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float std = 6 [default = 1];
    {PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.std_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional int32 sparse = 7 [default = -1];
    {PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.sparse_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional .opencv_caffe.FillerParameter.VarianceNorm variance_norm = 8 [default = FAN_IN];
    {PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.variance_norm_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
  }},
  {{
      {0, 2},
  }},
  {{
    "\34\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
    "opencv_caffe.FillerParameter"
    "type"
  }},
};
PROTOBUF_NOINLINE void FillerParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.FillerParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _impl_.type_.ClearToDefault(::opencv_caffe::FillerParameter::Impl_::_i_give_permission_to_break_this_code_default_type_, GetArena());
  }
  if ((cached_has_bits & 0x000000feU) != 0) {
    ::memset(&_impl_.value_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.variance_norm_) -
        reinterpret_cast<char*>(&_impl_.value_)) + sizeof(_impl_.variance_norm_));
    _impl_.max_ = 1;
    _impl_.std_ = 1;
    _impl_.sparse_ = -1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL FillerParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const FillerParameter& this_ = static_cast<const FillerParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL FillerParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const FillerParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.FillerParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string type = 1 [default = "constant"];
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_type();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.FillerParameter.type");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional float value = 2 [default = 0];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_value(), target);
  }

  // optional float min = 3 [default = 0];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_min(), target);
  }

  // optional float max = 4 [default = 1];
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        4, this_._internal_max(), target);
  }

  // optional float mean = 5 [default = 0];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        5, this_._internal_mean(), target);
  }

  // optional float std = 6 [default = 1];
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        6, this_._internal_std(), target);
  }

  // optional int32 sparse = 7 [default = -1];
  if ((cached_has_bits & 0x00000080U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<7>(
            stream, this_._internal_sparse(), target);
  }

  // optional .opencv_caffe.FillerParameter.VarianceNorm variance_norm = 8 [default = FAN_IN];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        8, this_._internal_variance_norm(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.FillerParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FillerParameter::ByteSizeLong(const MessageLite& base) {
  const FillerParameter& this_ = static_cast<const FillerParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FillerParameter::ByteSizeLong() const {
  const FillerParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.FillerParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x0000006eU & cached_has_bits) * 5;
  if ((cached_has_bits & 0x00000091U) != 0) {
    // optional string type = 1 [default = "constant"];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_type());
    }
    // optional .opencv_caffe.FillerParameter.VarianceNorm variance_norm = 8 [default = FAN_IN];
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_variance_norm());
    }
    // optional int32 sparse = 7 [default = -1];
    if ((cached_has_bits & 0x00000080U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_sparse());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void FillerParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<FillerParameter*>(&to_msg);
  auto& from = static_cast<const FillerParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.FillerParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_type(from._internal_type());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.value_ = from._impl_.value_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.min_ = from._impl_.min_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.mean_ = from._impl_.mean_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.variance_norm_ = from._impl_.variance_norm_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.max_ = from._impl_.max_;
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      _this->_impl_.std_ = from._impl_.std_;
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      _this->_impl_.sparse_ = from._impl_.sparse_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void FillerParameter::CopyFrom(const FillerParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.FillerParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void FillerParameter::InternalSwap(FillerParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.type_, &other->_impl_.type_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.sparse_)
      + sizeof(FillerParameter::_impl_.sparse_)
      - PROTOBUF_FIELD_OFFSET(FillerParameter, _impl_.value_)>(
          reinterpret_cast<char*>(&_impl_.value_),
          reinterpret_cast<char*>(&other->_impl_.value_));
}

::google::protobuf::Metadata FillerParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class NetParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<NetParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NetParameter, _impl_._has_bits_);
};

NetParameter::NetParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NetParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.NetParameter)
}
PROTOBUF_NDEBUG_INLINE NetParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::NetParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        layers_{visibility, arena, from.layers_},
        input_{visibility, arena, from.input_},
        input_dim_{visibility, arena, from.input_dim_},
        input_shape_{visibility, arena, from.input_shape_},
        layer_{visibility, arena, from.layer_},
        name_(arena, from.name_) {}

NetParameter::NetParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const NetParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NetParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NetParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.state_ = ((cached_has_bits & 0x00000002U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.state_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, force_backward_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, force_backward_),
           offsetof(Impl_, debug_info_) -
               offsetof(Impl_, force_backward_) +
               sizeof(Impl_::debug_info_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.NetParameter)
}
PROTOBUF_NDEBUG_INLINE NetParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        layers_{visibility, arena},
        input_{visibility, arena},
        input_dim_{visibility, arena},
        input_shape_{visibility, arena},
        layer_{visibility, arena},
        name_(arena) {}

inline void NetParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, state_),
           0,
           offsetof(Impl_, debug_info_) -
               offsetof(Impl_, state_) +
               sizeof(Impl_::debug_info_));
}
NetParameter::~NetParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.NetParameter)
  SharedDtor(*this);
}
inline void NetParameter::SharedDtor(MessageLite& self) {
  NetParameter& this_ = static_cast<NetParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.name_.Destroy();
  delete this_._impl_.state_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL NetParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NetParameter(arena);
}
constexpr auto NetParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.input_) +
          decltype(NetParameter::_impl_.input_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.input_shape_) +
          decltype(NetParameter::_impl_.input_shape_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.input_dim_) +
          decltype(NetParameter::_impl_.input_dim_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.layer_) +
          decltype(NetParameter::_impl_.layer_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.layers_) +
          decltype(NetParameter::_impl_.layers_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(NetParameter), alignof(NetParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&NetParameter::PlacementNew_,
                                 sizeof(NetParameter),
                                 alignof(NetParameter));
  }
}
constexpr auto NetParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_NetParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          NetParameter::IsInitializedImpl,
          &NetParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NetParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NetParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NetParameter>(), &NetParameter::ByteSizeLong,
              &NetParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NetParameter, _impl_._cached_size_),
          false,
      },
      &NetParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NetParameter_class_data_ =
        NetParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NetParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NetParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NetParameter_class_data_.tc_table);
  return NetParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 9, 4, 51, 7>
NetParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(NetParameter, _impl_._has_bits_),
    0, // no _extensions_
    100, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967040,  // skipmap
    offsetof(decltype(_table_), field_entries),
    9,  // num_field_entries
    4,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    NetParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::NetParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // repeated .opencv_caffe.BlobShape input_shape = 8;
    {::_pbi::TcParser::FastMtR1,
     {66, 63, 2, PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.input_shape_)}},
    // optional string name = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.name_)}},
    // repeated .opencv_caffe.V1LayerParameter layers = 2;
    {::_pbi::TcParser::FastMtR1,
     {18, 63, 0, PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.layers_)}},
    // repeated string input = 3;
    {::_pbi::TcParser::FastSR1,
     {26, 63, 0, PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.input_)}},
    // repeated int32 input_dim = 4;
    {::_pbi::TcParser::FastV32R1,
     {32, 63, 0, PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.input_dim_)}},
    // optional bool force_backward = 5 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NetParameter, _impl_.force_backward_), 2>(),
     {40, 2, 0, PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.force_backward_)}},
    // optional .opencv_caffe.NetState state = 6;
    {::_pbi::TcParser::FastMtS1,
     {50, 1, 1, PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.state_)}},
    // optional bool debug_info = 7 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NetParameter, _impl_.debug_info_), 3>(),
     {56, 3, 0, PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.debug_info_)}},
  }}, {{
    100, 0, 1,
    65534, 8,
    65535, 65535
  }}, {{
    // optional string name = 1;
    {PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.name_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // repeated .opencv_caffe.V1LayerParameter layers = 2;
    {PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.layers_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated string input = 3;
    {PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.input_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
    // repeated int32 input_dim = 4;
    {PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.input_dim_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
    // optional bool force_backward = 5 [default = false];
    {PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.force_backward_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional .opencv_caffe.NetState state = 6;
    {PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.state_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional bool debug_info = 7 [default = false];
    {PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.debug_info_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // repeated .opencv_caffe.BlobShape input_shape = 8;
    {PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.input_shape_), -1, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated .opencv_caffe.LayerParameter layer = 100;
    {PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.layer_), -1, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::V1LayerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::NetState>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::BlobShape>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::LayerParameter>()},
  }},
  {{
    "\31\4\0\5\0\0\0\0\0\0\0\0\0\0\0\0"
    "opencv_caffe.NetParameter"
    "name"
    "input"
  }},
};
PROTOBUF_NOINLINE void NetParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.NetParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.layers_.Clear();
  _impl_.input_.Clear();
  _impl_.input_dim_.Clear();
  _impl_.input_shape_.Clear();
  _impl_.layer_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _impl_.name_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(_impl_.state_ != nullptr);
      _impl_.state_->Clear();
    }
  }
  ::memset(&_impl_.force_backward_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.debug_info_) -
      reinterpret_cast<char*>(&_impl_.force_backward_)) + sizeof(_impl_.debug_info_));
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NetParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NetParameter& this_ = static_cast<const NetParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NetParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NetParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.NetParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string name = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_name();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.NetParameter.name");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // repeated .opencv_caffe.V1LayerParameter layers = 2;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_layers_size());
       i < n; i++) {
    const auto& repfield = this_._internal_layers().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            2, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // repeated string input = 3;
  for (int i = 0, n = this_._internal_input_size(); i < n; ++i) {
    const auto& s = this_._internal_input().Get(i);
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.NetParameter.input");
    target = stream->WriteString(3, s, target);
  }

  // repeated int32 input_dim = 4;
  for (int i = 0, n = this_._internal_input_dim_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        4, this_._internal_input_dim().Get(i), target);
  }

  // optional bool force_backward = 5 [default = false];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        5, this_._internal_force_backward(), target);
  }

  // optional .opencv_caffe.NetState state = 6;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.state_, this_._impl_.state_->GetCachedSize(), target,
        stream);
  }

  // optional bool debug_info = 7 [default = false];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        7, this_._internal_debug_info(), target);
  }

  // repeated .opencv_caffe.BlobShape input_shape = 8;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_input_shape_size());
       i < n; i++) {
    const auto& repfield = this_._internal_input_shape().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            8, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // repeated .opencv_caffe.LayerParameter layer = 100;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_layer_size());
       i < n; i++) {
    const auto& repfield = this_._internal_layer().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            100, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.NetParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NetParameter::ByteSizeLong(const MessageLite& base) {
  const NetParameter& this_ = static_cast<const NetParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NetParameter::ByteSizeLong() const {
  const NetParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.NetParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .opencv_caffe.V1LayerParameter layers = 2;
    {
      total_size += 1UL * this_._internal_layers_size();
      for (const auto& msg : this_._internal_layers()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated string input = 3;
    {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_input().size());
      for (int i = 0, n = this_._internal_input().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_input().Get(i));
      }
    }
    // repeated int32 input_dim = 4;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
          this_._internal_input_dim());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_input_dim_size());
      total_size += tag_size + data_size;
    }
    // repeated .opencv_caffe.BlobShape input_shape = 8;
    {
      total_size += 1UL * this_._internal_input_shape_size();
      for (const auto& msg : this_._internal_input_shape()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .opencv_caffe.LayerParameter layer = 100;
    {
      total_size += 2UL * this_._internal_layer_size();
      for (const auto& msg : this_._internal_layer()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x0000000cU & cached_has_bits) * 2;
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional string name = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_name());
    }
    // optional .opencv_caffe.NetState state = 6;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.state_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NetParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<NetParameter*>(&to_msg);
  auto& from = static_cast<const NetParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.NetParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_layers()->MergeFrom(
      from._internal_layers());
  _this->_internal_mutable_input()->MergeFrom(from._internal_input());
  _this->_internal_mutable_input_dim()->MergeFrom(from._internal_input_dim());
  _this->_internal_mutable_input_shape()->MergeFrom(
      from._internal_input_shape());
  _this->_internal_mutable_layer()->MergeFrom(
      from._internal_layer());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000000fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_name(from._internal_name());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(from._impl_.state_ != nullptr);
      if (_this->_impl_.state_ == nullptr) {
        _this->_impl_.state_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.state_);
      } else {
        _this->_impl_.state_->MergeFrom(*from._impl_.state_);
      }
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.force_backward_ = from._impl_.force_backward_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.debug_info_ = from._impl_.debug_info_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void NetParameter::CopyFrom(const NetParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.NetParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool NetParameter::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const NetParameter&>(msg);
  if (!::google::protobuf::internal::AllAreInitialized(this_._internal_layer()))
    return false;
  return true;
}

void NetParameter::InternalSwap(NetParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.layers_.InternalSwap(&other->_impl_.layers_);
  _impl_.input_.InternalSwap(&other->_impl_.input_);
  _impl_.input_dim_.InternalSwap(&other->_impl_.input_dim_);
  _impl_.input_shape_.InternalSwap(&other->_impl_.input_shape_);
  _impl_.layer_.InternalSwap(&other->_impl_.layer_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.debug_info_)
      + sizeof(NetParameter::_impl_.debug_info_)
      - PROTOBUF_FIELD_OFFSET(NetParameter, _impl_.state_)>(
          reinterpret_cast<char*>(&_impl_.state_),
          reinterpret_cast<char*>(&other->_impl_.state_));
}

::google::protobuf::Metadata NetParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class SolverParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<SolverParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_._has_bits_);
};

/*static*/ const ::_pbi::LazyString SolverParameter::Impl_::_i_give_permission_to_break_this_code_default_regularization_type_{
    {{"L2", 2}},
    {nullptr},
};
/*static*/ const ::_pbi::LazyString SolverParameter::Impl_::_i_give_permission_to_break_this_code_default_type_{
    {{"SGD", 3}},
    {nullptr},
};
SolverParameter::SolverParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SolverParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.SolverParameter)
}
PROTOBUF_NDEBUG_INLINE SolverParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::SolverParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        test_net_{visibility, arena, from.test_net_},
        test_iter_{visibility, arena, from.test_iter_},
        test_net_param_{visibility, arena, from.test_net_param_},
        test_state_{visibility, arena, from.test_state_},
        stepvalue_{visibility, arena, from.stepvalue_},
        train_net_(arena, from.train_net_),
        lr_policy_(arena, from.lr_policy_),
        snapshot_prefix_(arena, from.snapshot_prefix_),
        net_(arena, from.net_),
        regularization_type_(arena, from.regularization_type_, _i_give_permission_to_break_this_code_default_regularization_type_),
        type_(arena, from.type_, _i_give_permission_to_break_this_code_default_type_) {}

SolverParameter::SolverParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SolverParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SolverParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SolverParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.train_net_param_ = ((cached_has_bits & 0x00000020U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.train_net_param_)
                : nullptr;
  _impl_.net_param_ = ((cached_has_bits & 0x00000040U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.net_param_)
                : nullptr;
  _impl_.train_state_ = ((cached_has_bits & 0x00000080U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.train_state_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, test_interval_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, test_interval_),
           offsetof(Impl_, snapshot_after_train_) -
               offsetof(Impl_, test_interval_) +
               sizeof(Impl_::snapshot_after_train_));
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, test_initialization_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, test_initialization_),
           offsetof(Impl_, momentum2_) -
               offsetof(Impl_, test_initialization_) +
               sizeof(Impl_::momentum2_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.SolverParameter)
}
PROTOBUF_NDEBUG_INLINE SolverParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        test_net_{visibility, arena},
        test_iter_{visibility, arena},
        test_net_param_{visibility, arena},
        test_state_{visibility, arena},
        stepvalue_{visibility, arena},
        train_net_(arena),
        lr_policy_(arena),
        snapshot_prefix_(arena),
        net_(arena),
        regularization_type_(arena, Impl_::_i_give_permission_to_break_this_code_default_regularization_type_),
        delta_{1e-08f},
        random_seed_{::int64_t{-1}},
        solver_mode_{static_cast< ::opencv_caffe::SolverParameter_SolverMode >(1)},
        snapshot_after_train_{true},
        type_(arena, Impl_::_i_give_permission_to_break_this_code_default_type_),
        test_initialization_{true},
        average_loss_{1},
        clip_gradients_{-1},
        iter_size_{1},
        snapshot_format_{static_cast< ::opencv_caffe::SolverParameter_SnapshotFormat >(1)},
        rms_decay_{0.99f},
        momentum2_{0.999f} {}

inline void SolverParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, train_net_param_),
           0,
           offsetof(Impl_, solver_type_) -
               offsetof(Impl_, train_net_param_) +
               sizeof(Impl_::solver_type_));
}
SolverParameter::~SolverParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.SolverParameter)
  SharedDtor(*this);
}
inline void SolverParameter::SharedDtor(MessageLite& self) {
  SolverParameter& this_ = static_cast<SolverParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.train_net_.Destroy();
  this_._impl_.lr_policy_.Destroy();
  this_._impl_.snapshot_prefix_.Destroy();
  this_._impl_.net_.Destroy();
  this_._impl_.regularization_type_.Destroy();
  delete this_._impl_.train_net_param_;
  delete this_._impl_.net_param_;
  delete this_._impl_.train_state_;
  this_._impl_.type_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL SolverParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SolverParameter(arena);
}
constexpr auto SolverParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_net_) +
          decltype(SolverParameter::_impl_.test_net_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_net_param_) +
          decltype(SolverParameter::_impl_.test_net_param_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_state_) +
          decltype(SolverParameter::_impl_.test_state_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_iter_) +
          decltype(SolverParameter::_impl_.test_iter_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.stepvalue_) +
          decltype(SolverParameter::_impl_.stepvalue_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(SolverParameter), alignof(SolverParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&SolverParameter::PlacementNew_,
                                 sizeof(SolverParameter),
                                 alignof(SolverParameter));
  }
}
constexpr auto SolverParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_SolverParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          SolverParameter::IsInitializedImpl,
          &SolverParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SolverParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SolverParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SolverParameter>(), &SolverParameter::ByteSizeLong,
              &SolverParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_._cached_size_),
          false,
      },
      &SolverParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SolverParameter_class_data_ =
        SolverParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SolverParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SolverParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SolverParameter_class_data_.tc_table);
  return SolverParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<5, 40, 8, 144, 7>
SolverParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_._has_bits_),
    0, // no _extensions_
    40, 248,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    0,  // skipmap
    offsetof(decltype(_table_), field_entries),
    40,  // num_field_entries
    8,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    SolverParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::SolverParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional string train_net = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.train_net_)}},
    // repeated string test_net = 2;
    {::_pbi::TcParser::FastSR1,
     {18, 63, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_net_)}},
    // repeated int32 test_iter = 3;
    {::_pbi::TcParser::FastV32R1,
     {24, 63, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_iter_)}},
    // optional int32 test_interval = 4 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SolverParameter, _impl_.test_interval_), 8>(),
     {32, 8, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_interval_)}},
    // optional float base_lr = 5;
    {::_pbi::TcParser::FastF32S1,
     {45, 9, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.base_lr_)}},
    // optional int32 display = 6;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SolverParameter, _impl_.display_), 10>(),
     {48, 10, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.display_)}},
    // optional int32 max_iter = 7;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SolverParameter, _impl_.max_iter_), 11>(),
     {56, 11, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.max_iter_)}},
    // optional string lr_policy = 8;
    {::_pbi::TcParser::FastSS1,
     {66, 1, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.lr_policy_)}},
    // optional float gamma = 9;
    {::_pbi::TcParser::FastF32S1,
     {77, 12, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.gamma_)}},
    // optional float power = 10;
    {::_pbi::TcParser::FastF32S1,
     {85, 13, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.power_)}},
    // optional float momentum = 11;
    {::_pbi::TcParser::FastF32S1,
     {93, 14, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.momentum_)}},
    // optional float weight_decay = 12;
    {::_pbi::TcParser::FastF32S1,
     {101, 15, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.weight_decay_)}},
    // optional int32 stepsize = 13;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SolverParameter, _impl_.stepsize_), 16>(),
     {104, 16, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.stepsize_)}},
    // optional int32 snapshot = 14 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SolverParameter, _impl_.snapshot_), 17>(),
     {112, 17, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.snapshot_)}},
    // optional string snapshot_prefix = 15;
    {::_pbi::TcParser::FastSS1,
     {122, 2, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.snapshot_prefix_)}},
    // optional bool snapshot_diff = 16 [default = false];
    {::_pbi::TcParser::FastV8S2,
     {384, 19, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.snapshot_diff_)}},
    // optional .opencv_caffe.SolverParameter.SolverMode solver_mode = 17 [default = GPU];
    {::_pbi::TcParser::FastEr0S2,
     {392, 25, 1, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.solver_mode_)}},
    // optional int32 device_id = 18 [default = 0];
    {::_pbi::TcParser::FastV32S2,
     {400, 18, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.device_id_)}},
    // optional bool test_compute_loss = 19 [default = false];
    {::_pbi::TcParser::FastV8S2,
     {408, 20, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_compute_loss_)}},
    // optional int64 random_seed = 20 [default = -1];
    {::_pbi::TcParser::FastV64S2,
     {416, 24, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.random_seed_)}},
    // optional .opencv_caffe.NetParameter train_net_param = 21;
    {::_pbi::TcParser::FastMtS2,
     {426, 5, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.train_net_param_)}},
    // repeated .opencv_caffe.NetParameter test_net_param = 22;
    {::_pbi::TcParser::FastMtR2,
     {434, 63, 1, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_net_param_)}},
    // optional bool debug_info = 23 [default = false];
    {::_pbi::TcParser::FastV8S2,
     {440, 21, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.debug_info_)}},
    // optional string net = 24;
    {::_pbi::TcParser::FastSS2,
     {450, 3, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.net_)}},
    // optional .opencv_caffe.NetParameter net_param = 25;
    {::_pbi::TcParser::FastMtS2,
     {458, 6, 2, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.net_param_)}},
    // optional .opencv_caffe.NetState train_state = 26;
    {::_pbi::TcParser::FastMtS2,
     {466, 7, 3, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.train_state_)}},
    // repeated .opencv_caffe.NetState test_state = 27;
    {::_pbi::TcParser::FastMtR2,
     {474, 63, 4, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_state_)}},
    // optional bool snapshot_after_train = 28 [default = true];
    {::_pbi::TcParser::FastV8S2,
     {480, 26, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.snapshot_after_train_)}},
    // optional string regularization_type = 29 [default = "L2"];
    {::_pbi::TcParser::FastSS2,
     {490, 4, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.regularization_type_)}},
    // optional .opencv_caffe.SolverParameter.SolverType solver_type = 30 [default = SGD];
    {::_pbi::TcParser::FastEr0S2,
     {496, 22, 5, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.solver_type_)}},
    // optional float delta = 31 [default = 1e-08];
    {::_pbi::TcParser::FastF32S2,
     {509, 23, 0, PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.delta_)}},
  }}, {{
    33, 0, 1,
    65280, 32,
    65535, 65535
  }}, {{
    // optional string train_net = 1;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.train_net_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // repeated string test_net = 2;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_net_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
    // repeated int32 test_iter = 3;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_iter_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
    // optional int32 test_interval = 4 [default = 0];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_interval_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional float base_lr = 5;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.base_lr_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional int32 display = 6;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.display_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 max_iter = 7;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.max_iter_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional string lr_policy = 8;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.lr_policy_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional float gamma = 9;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.gamma_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float power = 10;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.power_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float momentum = 11;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.momentum_), _Internal::kHasBitsOffset + 14, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float weight_decay = 12;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.weight_decay_), _Internal::kHasBitsOffset + 15, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional int32 stepsize = 13;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.stepsize_), _Internal::kHasBitsOffset + 16, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 snapshot = 14 [default = 0];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.snapshot_), _Internal::kHasBitsOffset + 17, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional string snapshot_prefix = 15;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.snapshot_prefix_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional bool snapshot_diff = 16 [default = false];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.snapshot_diff_), _Internal::kHasBitsOffset + 19, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional .opencv_caffe.SolverParameter.SolverMode solver_mode = 17 [default = GPU];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.solver_mode_), _Internal::kHasBitsOffset + 25, 5, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional int32 device_id = 18 [default = 0];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.device_id_), _Internal::kHasBitsOffset + 18, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional bool test_compute_loss = 19 [default = false];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_compute_loss_), _Internal::kHasBitsOffset + 20, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional int64 random_seed = 20 [default = -1];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.random_seed_), _Internal::kHasBitsOffset + 24, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt64)},
    // optional .opencv_caffe.NetParameter train_net_param = 21;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.train_net_param_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated .opencv_caffe.NetParameter test_net_param = 22;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_net_param_), -1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional bool debug_info = 23 [default = false];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.debug_info_), _Internal::kHasBitsOffset + 21, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional string net = 24;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.net_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional .opencv_caffe.NetParameter net_param = 25;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.net_param_), _Internal::kHasBitsOffset + 6, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.NetState train_state = 26;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.train_state_), _Internal::kHasBitsOffset + 7, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated .opencv_caffe.NetState test_state = 27;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_state_), -1, 4, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional bool snapshot_after_train = 28 [default = true];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.snapshot_after_train_), _Internal::kHasBitsOffset + 26, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional string regularization_type = 29 [default = "L2"];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.regularization_type_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional .opencv_caffe.SolverParameter.SolverType solver_type = 30 [default = SGD];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.solver_type_), _Internal::kHasBitsOffset + 22, 6, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional float delta = 31 [default = 1e-08];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.delta_), _Internal::kHasBitsOffset + 23, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional bool test_initialization = 32 [default = true];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_initialization_), _Internal::kHasBitsOffset + 28, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional int32 average_loss = 33 [default = 1];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.average_loss_), _Internal::kHasBitsOffset + 29, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated int32 stepvalue = 34;
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.stepvalue_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
    // optional float clip_gradients = 35 [default = -1];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.clip_gradients_), _Internal::kHasBitsOffset + 30, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional int32 iter_size = 36 [default = 1];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.iter_size_), _Internal::kHasBitsOffset + 31, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional .opencv_caffe.SolverParameter.SnapshotFormat snapshot_format = 37 [default = BINARYPROTO];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.snapshot_format_), _Internal::kHasBitsOffset + 32, 7, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional float rms_decay = 38 [default = 0.99];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.rms_decay_), _Internal::kHasBitsOffset + 33, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float momentum2 = 39 [default = 0.999];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.momentum2_), _Internal::kHasBitsOffset + 34, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional string type = 40 [default = "SGD"];
    {PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.type_), _Internal::kHasBitsOffset + 27, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::NetParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::NetParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::NetParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::NetState>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::NetState>()},
      {0, 1},
      {0, 5},
      {0, 1},
  }},
  {{
    "\34\11\10\0\0\0\0\0\11\0\0\0\0\0\0\17\0\0\0\0\0\0\0\0\3\0\0\0\0\23\0\0\0\0\0\0\0\0\0\0\4\0\0\0\0\0\0\0"
    "opencv_caffe.SolverParameter"
    "train_net"
    "test_net"
    "lr_policy"
    "snapshot_prefix"
    "net"
    "regularization_type"
    "type"
  }},
};
PROTOBUF_NOINLINE void SolverParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.SolverParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.test_net_.Clear();
  _impl_.test_iter_.Clear();
  _impl_.test_net_param_.Clear();
  _impl_.test_state_.Clear();
  _impl_.stepvalue_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _impl_.train_net_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _impl_.lr_policy_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _impl_.snapshot_prefix_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _impl_.net_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _impl_.regularization_type_.ClearToDefault(::opencv_caffe::SolverParameter::Impl_::_i_give_permission_to_break_this_code_default_regularization_type_, GetArena());
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      ABSL_DCHECK(_impl_.train_net_param_ != nullptr);
      _impl_.train_net_param_->Clear();
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      ABSL_DCHECK(_impl_.net_param_ != nullptr);
      _impl_.net_param_->Clear();
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      ABSL_DCHECK(_impl_.train_state_ != nullptr);
      _impl_.train_state_->Clear();
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    ::memset(&_impl_.test_interval_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.weight_decay_) -
        reinterpret_cast<char*>(&_impl_.test_interval_)) + sizeof(_impl_.weight_decay_));
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    ::memset(&_impl_.stepsize_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.solver_type_) -
        reinterpret_cast<char*>(&_impl_.stepsize_)) + sizeof(_impl_.solver_type_));
    _impl_.delta_ = 1e-08f;
  }
  if ((cached_has_bits & 0xff000000U) != 0) {
    _impl_.random_seed_ = ::int64_t{-1};
    _impl_.solver_mode_ = 1;
    _impl_.snapshot_after_train_ = true;
    if ((cached_has_bits & 0x08000000U) != 0) {
      _impl_.type_.ClearToDefault(::opencv_caffe::SolverParameter::Impl_::_i_give_permission_to_break_this_code_default_type_, GetArena());
    }
    _impl_.test_initialization_ = true;
    _impl_.average_loss_ = 1;
    _impl_.clip_gradients_ = -1;
    _impl_.iter_size_ = 1;
  }
  cached_has_bits = _impl_._has_bits_[1];
  if ((cached_has_bits & 0x00000007U) != 0) {
    _impl_.snapshot_format_ = 1;
    _impl_.rms_decay_ = 0.99f;
    _impl_.momentum2_ = 0.999f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SolverParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SolverParameter& this_ = static_cast<const SolverParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SolverParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SolverParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.SolverParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string train_net = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_train_net();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SolverParameter.train_net");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // repeated string test_net = 2;
  for (int i = 0, n = this_._internal_test_net_size(); i < n; ++i) {
    const auto& s = this_._internal_test_net().Get(i);
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SolverParameter.test_net");
    target = stream->WriteString(2, s, target);
  }

  // repeated int32 test_iter = 3;
  for (int i = 0, n = this_._internal_test_iter_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        3, this_._internal_test_iter().Get(i), target);
  }

  // optional int32 test_interval = 4 [default = 0];
  if ((cached_has_bits & 0x00000100U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<4>(
            stream, this_._internal_test_interval(), target);
  }

  // optional float base_lr = 5;
  if ((cached_has_bits & 0x00000200U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        5, this_._internal_base_lr(), target);
  }

  // optional int32 display = 6;
  if ((cached_has_bits & 0x00000400U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<6>(
            stream, this_._internal_display(), target);
  }

  // optional int32 max_iter = 7;
  if ((cached_has_bits & 0x00000800U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<7>(
            stream, this_._internal_max_iter(), target);
  }

  // optional string lr_policy = 8;
  if ((cached_has_bits & 0x00000002U) != 0) {
    const ::std::string& _s = this_._internal_lr_policy();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SolverParameter.lr_policy");
    target = stream->WriteStringMaybeAliased(8, _s, target);
  }

  // optional float gamma = 9;
  if ((cached_has_bits & 0x00001000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        9, this_._internal_gamma(), target);
  }

  // optional float power = 10;
  if ((cached_has_bits & 0x00002000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        10, this_._internal_power(), target);
  }

  // optional float momentum = 11;
  if ((cached_has_bits & 0x00004000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        11, this_._internal_momentum(), target);
  }

  // optional float weight_decay = 12;
  if ((cached_has_bits & 0x00008000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        12, this_._internal_weight_decay(), target);
  }

  // optional int32 stepsize = 13;
  if ((cached_has_bits & 0x00010000U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<13>(
            stream, this_._internal_stepsize(), target);
  }

  // optional int32 snapshot = 14 [default = 0];
  if ((cached_has_bits & 0x00020000U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<14>(
            stream, this_._internal_snapshot(), target);
  }

  // optional string snapshot_prefix = 15;
  if ((cached_has_bits & 0x00000004U) != 0) {
    const ::std::string& _s = this_._internal_snapshot_prefix();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SolverParameter.snapshot_prefix");
    target = stream->WriteStringMaybeAliased(15, _s, target);
  }

  // optional bool snapshot_diff = 16 [default = false];
  if ((cached_has_bits & 0x00080000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        16, this_._internal_snapshot_diff(), target);
  }

  // optional .opencv_caffe.SolverParameter.SolverMode solver_mode = 17 [default = GPU];
  if ((cached_has_bits & 0x02000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        17, this_._internal_solver_mode(), target);
  }

  // optional int32 device_id = 18 [default = 0];
  if ((cached_has_bits & 0x00040000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        18, this_._internal_device_id(), target);
  }

  // optional bool test_compute_loss = 19 [default = false];
  if ((cached_has_bits & 0x00100000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        19, this_._internal_test_compute_loss(), target);
  }

  // optional int64 random_seed = 20 [default = -1];
  if ((cached_has_bits & 0x01000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt64ToArray(
        20, this_._internal_random_seed(), target);
  }

  // optional .opencv_caffe.NetParameter train_net_param = 21;
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        21, *this_._impl_.train_net_param_, this_._impl_.train_net_param_->GetCachedSize(), target,
        stream);
  }

  // repeated .opencv_caffe.NetParameter test_net_param = 22;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_test_net_param_size());
       i < n; i++) {
    const auto& repfield = this_._internal_test_net_param().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            22, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // optional bool debug_info = 23 [default = false];
  if ((cached_has_bits & 0x00200000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        23, this_._internal_debug_info(), target);
  }

  // optional string net = 24;
  if ((cached_has_bits & 0x00000008U) != 0) {
    const ::std::string& _s = this_._internal_net();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SolverParameter.net");
    target = stream->WriteStringMaybeAliased(24, _s, target);
  }

  // optional .opencv_caffe.NetParameter net_param = 25;
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        25, *this_._impl_.net_param_, this_._impl_.net_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.NetState train_state = 26;
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        26, *this_._impl_.train_state_, this_._impl_.train_state_->GetCachedSize(), target,
        stream);
  }

  // repeated .opencv_caffe.NetState test_state = 27;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_test_state_size());
       i < n; i++) {
    const auto& repfield = this_._internal_test_state().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            27, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // optional bool snapshot_after_train = 28 [default = true];
  if ((cached_has_bits & 0x04000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        28, this_._internal_snapshot_after_train(), target);
  }

  // optional string regularization_type = 29 [default = "L2"];
  if ((cached_has_bits & 0x00000010U) != 0) {
    const ::std::string& _s = this_._internal_regularization_type();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SolverParameter.regularization_type");
    target = stream->WriteStringMaybeAliased(29, _s, target);
  }

  // optional .opencv_caffe.SolverParameter.SolverType solver_type = 30 [default = SGD];
  if ((cached_has_bits & 0x00400000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        30, this_._internal_solver_type(), target);
  }

  // optional float delta = 31 [default = 1e-08];
  if ((cached_has_bits & 0x00800000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        31, this_._internal_delta(), target);
  }

  // optional bool test_initialization = 32 [default = true];
  if ((cached_has_bits & 0x10000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        32, this_._internal_test_initialization(), target);
  }

  // optional int32 average_loss = 33 [default = 1];
  if ((cached_has_bits & 0x20000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        33, this_._internal_average_loss(), target);
  }

  // repeated int32 stepvalue = 34;
  for (int i = 0, n = this_._internal_stepvalue_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        34, this_._internal_stepvalue().Get(i), target);
  }

  // optional float clip_gradients = 35 [default = -1];
  if ((cached_has_bits & 0x40000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        35, this_._internal_clip_gradients(), target);
  }

  // optional int32 iter_size = 36 [default = 1];
  if ((cached_has_bits & 0x80000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        36, this_._internal_iter_size(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional .opencv_caffe.SolverParameter.SnapshotFormat snapshot_format = 37 [default = BINARYPROTO];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        37, this_._internal_snapshot_format(), target);
  }

  // optional float rms_decay = 38 [default = 0.99];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        38, this_._internal_rms_decay(), target);
  }

  // optional float momentum2 = 39 [default = 0.999];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        39, this_._internal_momentum2(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string type = 40 [default = "SGD"];
  if ((cached_has_bits & 0x08000000U) != 0) {
    const ::std::string& _s = this_._internal_type();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SolverParameter.type");
    target = stream->WriteStringMaybeAliased(40, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.SolverParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SolverParameter::ByteSizeLong(const MessageLite& base) {
  const SolverParameter& this_ = static_cast<const SolverParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SolverParameter::ByteSizeLong() const {
  const SolverParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.SolverParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated string test_net = 2;
    {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_test_net().size());
      for (int i = 0, n = this_._internal_test_net().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_test_net().Get(i));
      }
    }
    // repeated int32 test_iter = 3;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
          this_._internal_test_iter());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_test_iter_size());
      total_size += tag_size + data_size;
    }
    // repeated .opencv_caffe.NetParameter test_net_param = 22;
    {
      total_size += 2UL * this_._internal_test_net_param_size();
      for (const auto& msg : this_._internal_test_net_param()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .opencv_caffe.NetState test_state = 27;
    {
      total_size += 2UL * this_._internal_test_state_size();
      for (const auto& msg : this_._internal_test_state()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated int32 stepvalue = 34;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
          this_._internal_stepvalue());
      ::size_t tag_size = ::size_t{2} *
          ::_pbi::FromIntSize(this_._internal_stepvalue_size());
      total_size += tag_size + data_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x40800000U & cached_has_bits) * 6;
  total_size += ::absl::popcount(0x0000f200U & cached_has_bits) * 5;
  total_size += ::absl::popcount(0x14380000U & cached_has_bits) * 3;
  if ((cached_has_bits & 0x000000ffU) != 0) {
    // optional string train_net = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_train_net());
    }
    // optional string lr_policy = 8;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_lr_policy());
    }
    // optional string snapshot_prefix = 15;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_snapshot_prefix());
    }
    // optional string net = 24;
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_net());
    }
    // optional string regularization_type = 29 [default = "L2"];
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_regularization_type());
    }
    // optional .opencv_caffe.NetParameter train_net_param = 21;
    if ((cached_has_bits & 0x00000020U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.train_net_param_);
    }
    // optional .opencv_caffe.NetParameter net_param = 25;
    if ((cached_has_bits & 0x00000040U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.net_param_);
    }
    // optional .opencv_caffe.NetState train_state = 26;
    if ((cached_has_bits & 0x00000080U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.train_state_);
    }
  }
  if ((cached_has_bits & 0x00000d00U) != 0) {
    // optional int32 test_interval = 4 [default = 0];
    if ((cached_has_bits & 0x00000100U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_test_interval());
    }
    // optional int32 display = 6;
    if ((cached_has_bits & 0x00000400U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_display());
    }
    // optional int32 max_iter = 7;
    if ((cached_has_bits & 0x00000800U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_max_iter());
    }
  }
  if ((cached_has_bits & 0x00470000U) != 0) {
    // optional int32 stepsize = 13;
    if ((cached_has_bits & 0x00010000U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_stepsize());
    }
    // optional int32 snapshot = 14 [default = 0];
    if ((cached_has_bits & 0x00020000U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_snapshot());
    }
    // optional int32 device_id = 18 [default = 0];
    if ((cached_has_bits & 0x00040000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_device_id());
    }
    // optional .opencv_caffe.SolverParameter.SolverType solver_type = 30 [default = SGD];
    if ((cached_has_bits & 0x00400000U) != 0) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_solver_type());
    }
  }
  if ((cached_has_bits & 0xab000000U) != 0) {
    // optional int64 random_seed = 20 [default = -1];
    if ((cached_has_bits & 0x01000000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::Int64Size(
                                      this_._internal_random_seed());
    }
    // optional .opencv_caffe.SolverParameter.SolverMode solver_mode = 17 [default = GPU];
    if ((cached_has_bits & 0x02000000U) != 0) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_solver_mode());
    }
    // optional string type = 40 [default = "SGD"];
    if ((cached_has_bits & 0x08000000U) != 0) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_type());
    }
    // optional int32 average_loss = 33 [default = 1];
    if ((cached_has_bits & 0x20000000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_average_loss());
    }
    // optional int32 iter_size = 36 [default = 1];
    if ((cached_has_bits & 0x80000000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_iter_size());
    }
  }
  cached_has_bits = this_._impl_._has_bits_[1];
  total_size += ::absl::popcount(0x00000006U & cached_has_bits) * 6;
   {
    // optional .opencv_caffe.SolverParameter.SnapshotFormat snapshot_format = 37 [default = BINARYPROTO];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 2 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_snapshot_format());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SolverParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<SolverParameter*>(&to_msg);
  auto& from = static_cast<const SolverParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.SolverParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_test_net()->MergeFrom(from._internal_test_net());
  _this->_internal_mutable_test_iter()->MergeFrom(from._internal_test_iter());
  _this->_internal_mutable_test_net_param()->MergeFrom(
      from._internal_test_net_param());
  _this->_internal_mutable_test_state()->MergeFrom(
      from._internal_test_state());
  _this->_internal_mutable_stepvalue()->MergeFrom(from._internal_stepvalue());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_train_net(from._internal_train_net());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_internal_set_lr_policy(from._internal_lr_policy());
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_internal_set_snapshot_prefix(from._internal_snapshot_prefix());
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_internal_set_net(from._internal_net());
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_internal_set_regularization_type(from._internal_regularization_type());
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      ABSL_DCHECK(from._impl_.train_net_param_ != nullptr);
      if (_this->_impl_.train_net_param_ == nullptr) {
        _this->_impl_.train_net_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.train_net_param_);
      } else {
        _this->_impl_.train_net_param_->MergeFrom(*from._impl_.train_net_param_);
      }
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      ABSL_DCHECK(from._impl_.net_param_ != nullptr);
      if (_this->_impl_.net_param_ == nullptr) {
        _this->_impl_.net_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.net_param_);
      } else {
        _this->_impl_.net_param_->MergeFrom(*from._impl_.net_param_);
      }
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      ABSL_DCHECK(from._impl_.train_state_ != nullptr);
      if (_this->_impl_.train_state_ == nullptr) {
        _this->_impl_.train_state_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.train_state_);
      } else {
        _this->_impl_.train_state_->MergeFrom(*from._impl_.train_state_);
      }
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      _this->_impl_.test_interval_ = from._impl_.test_interval_;
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      _this->_impl_.base_lr_ = from._impl_.base_lr_;
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      _this->_impl_.display_ = from._impl_.display_;
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      _this->_impl_.max_iter_ = from._impl_.max_iter_;
    }
    if ((cached_has_bits & 0x00001000U) != 0) {
      _this->_impl_.gamma_ = from._impl_.gamma_;
    }
    if ((cached_has_bits & 0x00002000U) != 0) {
      _this->_impl_.power_ = from._impl_.power_;
    }
    if ((cached_has_bits & 0x00004000U) != 0) {
      _this->_impl_.momentum_ = from._impl_.momentum_;
    }
    if ((cached_has_bits & 0x00008000U) != 0) {
      _this->_impl_.weight_decay_ = from._impl_.weight_decay_;
    }
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    if ((cached_has_bits & 0x00010000U) != 0) {
      _this->_impl_.stepsize_ = from._impl_.stepsize_;
    }
    if ((cached_has_bits & 0x00020000U) != 0) {
      _this->_impl_.snapshot_ = from._impl_.snapshot_;
    }
    if ((cached_has_bits & 0x00040000U) != 0) {
      _this->_impl_.device_id_ = from._impl_.device_id_;
    }
    if ((cached_has_bits & 0x00080000U) != 0) {
      _this->_impl_.snapshot_diff_ = from._impl_.snapshot_diff_;
    }
    if ((cached_has_bits & 0x00100000U) != 0) {
      _this->_impl_.test_compute_loss_ = from._impl_.test_compute_loss_;
    }
    if ((cached_has_bits & 0x00200000U) != 0) {
      _this->_impl_.debug_info_ = from._impl_.debug_info_;
    }
    if ((cached_has_bits & 0x00400000U) != 0) {
      _this->_impl_.solver_type_ = from._impl_.solver_type_;
    }
    if ((cached_has_bits & 0x00800000U) != 0) {
      _this->_impl_.delta_ = from._impl_.delta_;
    }
  }
  if ((cached_has_bits & 0xff000000U) != 0) {
    if ((cached_has_bits & 0x01000000U) != 0) {
      _this->_impl_.random_seed_ = from._impl_.random_seed_;
    }
    if ((cached_has_bits & 0x02000000U) != 0) {
      _this->_impl_.solver_mode_ = from._impl_.solver_mode_;
    }
    if ((cached_has_bits & 0x04000000U) != 0) {
      _this->_impl_.snapshot_after_train_ = from._impl_.snapshot_after_train_;
    }
    if ((cached_has_bits & 0x08000000U) != 0) {
      _this->_internal_set_type(from._internal_type());
    }
    if ((cached_has_bits & 0x10000000U) != 0) {
      _this->_impl_.test_initialization_ = from._impl_.test_initialization_;
    }
    if ((cached_has_bits & 0x20000000U) != 0) {
      _this->_impl_.average_loss_ = from._impl_.average_loss_;
    }
    if ((cached_has_bits & 0x40000000U) != 0) {
      _this->_impl_.clip_gradients_ = from._impl_.clip_gradients_;
    }
    if ((cached_has_bits & 0x80000000U) != 0) {
      _this->_impl_.iter_size_ = from._impl_.iter_size_;
    }
  }
  cached_has_bits = from._impl_._has_bits_[1];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.snapshot_format_ = from._impl_.snapshot_format_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.rms_decay_ = from._impl_.rms_decay_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.momentum2_ = from._impl_.momentum2_;
    }
  }
  _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void SolverParameter::CopyFrom(const SolverParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.SolverParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool SolverParameter::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const SolverParameter&>(msg);
  if (!::google::protobuf::internal::AllAreInitialized(this_._internal_test_net_param()))
    return false;
  if ((this_._impl_._has_bits_[0] & 0x00000020U) != 0) {
    if (!this_._impl_.train_net_param_->IsInitialized()) return false;
  }
  if ((this_._impl_._has_bits_[0] & 0x00000040U) != 0) {
    if (!this_._impl_.net_param_->IsInitialized()) return false;
  }
  return true;
}

void SolverParameter::InternalSwap(SolverParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
  _impl_.test_net_.InternalSwap(&other->_impl_.test_net_);
  _impl_.test_iter_.InternalSwap(&other->_impl_.test_iter_);
  _impl_.test_net_param_.InternalSwap(&other->_impl_.test_net_param_);
  _impl_.test_state_.InternalSwap(&other->_impl_.test_state_);
  _impl_.stepvalue_.InternalSwap(&other->_impl_.stepvalue_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.train_net_, &other->_impl_.train_net_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.lr_policy_, &other->_impl_.lr_policy_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.snapshot_prefix_, &other->_impl_.snapshot_prefix_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.net_, &other->_impl_.net_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.regularization_type_, &other->_impl_.regularization_type_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.snapshot_after_train_)
      + sizeof(SolverParameter::_impl_.snapshot_after_train_)
      - PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.train_net_param_)>(
          reinterpret_cast<char*>(&_impl_.train_net_param_),
          reinterpret_cast<char*>(&other->_impl_.train_net_param_));
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.type_, &other->_impl_.type_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.momentum2_)
      + sizeof(SolverParameter::_impl_.momentum2_)
      - PROTOBUF_FIELD_OFFSET(SolverParameter, _impl_.test_initialization_)>(
          reinterpret_cast<char*>(&_impl_.test_initialization_),
          reinterpret_cast<char*>(&other->_impl_.test_initialization_));
}

::google::protobuf::Metadata SolverParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class SolverState::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<SolverState>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(SolverState, _impl_._has_bits_);
};

SolverState::SolverState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SolverState_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.SolverState)
}
PROTOBUF_NDEBUG_INLINE SolverState::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::SolverState& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        history_{visibility, arena, from.history_},
        learned_net_(arena, from.learned_net_) {}

SolverState::SolverState(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SolverState& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SolverState_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SolverState* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, iter_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, iter_),
           offsetof(Impl_, current_step_) -
               offsetof(Impl_, iter_) +
               sizeof(Impl_::current_step_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.SolverState)
}
PROTOBUF_NDEBUG_INLINE SolverState::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        history_{visibility, arena},
        learned_net_(arena) {}

inline void SolverState::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, iter_),
           0,
           offsetof(Impl_, current_step_) -
               offsetof(Impl_, iter_) +
               sizeof(Impl_::current_step_));
}
SolverState::~SolverState() {
  // @@protoc_insertion_point(destructor:opencv_caffe.SolverState)
  SharedDtor(*this);
}
inline void SolverState::SharedDtor(MessageLite& self) {
  SolverState& this_ = static_cast<SolverState&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.learned_net_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL SolverState::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SolverState(arena);
}
constexpr auto SolverState::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(SolverState, _impl_.history_) +
          decltype(SolverState::_impl_.history_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(SolverState), alignof(SolverState), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&SolverState::PlacementNew_,
                                 sizeof(SolverState),
                                 alignof(SolverState));
  }
}
constexpr auto SolverState::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_SolverState_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &SolverState::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SolverState>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SolverState::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SolverState>(), &SolverState::ByteSizeLong,
              &SolverState::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SolverState, _impl_._cached_size_),
          false,
      },
      &SolverState::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SolverState_class_data_ =
        SolverState::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SolverState::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SolverState_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SolverState_class_data_.tc_table);
  return SolverState_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 4, 1, 44, 2>
SolverState::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(SolverState, _impl_._has_bits_),
    0, // no _extensions_
    4, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967280,  // skipmap
    offsetof(decltype(_table_), field_entries),
    4,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    SolverState_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::SolverState>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional int32 current_step = 4 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SolverState, _impl_.current_step_), 2>(),
     {32, 2, 0, PROTOBUF_FIELD_OFFSET(SolverState, _impl_.current_step_)}},
    // optional int32 iter = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SolverState, _impl_.iter_), 1>(),
     {8, 1, 0, PROTOBUF_FIELD_OFFSET(SolverState, _impl_.iter_)}},
    // optional string learned_net = 2;
    {::_pbi::TcParser::FastSS1,
     {18, 0, 0, PROTOBUF_FIELD_OFFSET(SolverState, _impl_.learned_net_)}},
    // repeated .opencv_caffe.BlobProto history = 3;
    {::_pbi::TcParser::FastMtR1,
     {26, 63, 0, PROTOBUF_FIELD_OFFSET(SolverState, _impl_.history_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 iter = 1;
    {PROTOBUF_FIELD_OFFSET(SolverState, _impl_.iter_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional string learned_net = 2;
    {PROTOBUF_FIELD_OFFSET(SolverState, _impl_.learned_net_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // repeated .opencv_caffe.BlobProto history = 3;
    {PROTOBUF_FIELD_OFFSET(SolverState, _impl_.history_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional int32 current_step = 4 [default = 0];
    {PROTOBUF_FIELD_OFFSET(SolverState, _impl_.current_step_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::BlobProto>()},
  }},
  {{
    "\30\0\13\0\0\0\0\0"
    "opencv_caffe.SolverState"
    "learned_net"
  }},
};
PROTOBUF_NOINLINE void SolverState::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.SolverState)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.history_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _impl_.learned_net_.ClearNonDefaultToEmpty();
  }
  if ((cached_has_bits & 0x00000006U) != 0) {
    ::memset(&_impl_.iter_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.current_step_) -
        reinterpret_cast<char*>(&_impl_.iter_)) + sizeof(_impl_.current_step_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SolverState::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SolverState& this_ = static_cast<const SolverState&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SolverState::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SolverState& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.SolverState)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 iter = 1;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_iter(), target);
  }

  // optional string learned_net = 2;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_learned_net();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SolverState.learned_net");
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // repeated .opencv_caffe.BlobProto history = 3;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_history_size());
       i < n; i++) {
    const auto& repfield = this_._internal_history().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            3, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // optional int32 current_step = 4 [default = 0];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<4>(
            stream, this_._internal_current_step(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.SolverState)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SolverState::ByteSizeLong(const MessageLite& base) {
  const SolverState& this_ = static_cast<const SolverState&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SolverState::ByteSizeLong() const {
  const SolverState& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.SolverState)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .opencv_caffe.BlobProto history = 3;
    {
      total_size += 1UL * this_._internal_history_size();
      for (const auto& msg : this_._internal_history()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    // optional string learned_net = 2;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_learned_net());
    }
    // optional int32 iter = 1;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_iter());
    }
    // optional int32 current_step = 4 [default = 0];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_current_step());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SolverState::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<SolverState*>(&to_msg);
  auto& from = static_cast<const SolverState&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.SolverState)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_history()->MergeFrom(
      from._internal_history());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_learned_net(from._internal_learned_net());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.iter_ = from._impl_.iter_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.current_step_ = from._impl_.current_step_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void SolverState::CopyFrom(const SolverState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.SolverState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void SolverState::InternalSwap(SolverState* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.history_.InternalSwap(&other->_impl_.history_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.learned_net_, &other->_impl_.learned_net_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SolverState, _impl_.current_step_)
      + sizeof(SolverState::_impl_.current_step_)
      - PROTOBUF_FIELD_OFFSET(SolverState, _impl_.iter_)>(
          reinterpret_cast<char*>(&_impl_.iter_),
          reinterpret_cast<char*>(&other->_impl_.iter_));
}

::google::protobuf::Metadata SolverState::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class NetState::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<NetState>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NetState, _impl_._has_bits_);
};

NetState::NetState(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NetState_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.NetState)
}
PROTOBUF_NDEBUG_INLINE NetState::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::NetState& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        stage_{visibility, arena, from.stage_} {}

NetState::NetState(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const NetState& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NetState_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NetState* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, level_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, level_),
           offsetof(Impl_, phase_) -
               offsetof(Impl_, level_) +
               sizeof(Impl_::phase_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.NetState)
}
PROTOBUF_NDEBUG_INLINE NetState::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        stage_{visibility, arena},
        phase_{static_cast< ::opencv_caffe::Phase >(1)} {}

inline void NetState::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.level_ = {};
}
NetState::~NetState() {
  // @@protoc_insertion_point(destructor:opencv_caffe.NetState)
  SharedDtor(*this);
}
inline void NetState::SharedDtor(MessageLite& self) {
  NetState& this_ = static_cast<NetState&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL NetState::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NetState(arena);
}
constexpr auto NetState::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(NetState, _impl_.stage_) +
          decltype(NetState::_impl_.stage_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(NetState), alignof(NetState), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&NetState::PlacementNew_,
                                 sizeof(NetState),
                                 alignof(NetState));
  }
}
constexpr auto NetState::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_NetState_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &NetState::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NetState>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NetState::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NetState>(), &NetState::ByteSizeLong,
              &NetState::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NetState, _impl_._cached_size_),
          false,
      },
      &NetState::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NetState_class_data_ =
        NetState::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NetState::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NetState_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NetState_class_data_.tc_table);
  return NetState_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 1, 35, 2>
NetState::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(NetState, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    NetState_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::NetState>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional .opencv_caffe.Phase phase = 1 [default = TEST];
    {::_pbi::TcParser::FastEr0S1,
     {8, 1, 1, PROTOBUF_FIELD_OFFSET(NetState, _impl_.phase_)}},
    // optional int32 level = 2 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NetState, _impl_.level_), 0>(),
     {16, 0, 0, PROTOBUF_FIELD_OFFSET(NetState, _impl_.level_)}},
    // repeated string stage = 3;
    {::_pbi::TcParser::FastSR1,
     {26, 63, 0, PROTOBUF_FIELD_OFFSET(NetState, _impl_.stage_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.Phase phase = 1 [default = TEST];
    {PROTOBUF_FIELD_OFFSET(NetState, _impl_.phase_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional int32 level = 2 [default = 0];
    {PROTOBUF_FIELD_OFFSET(NetState, _impl_.level_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated string stage = 3;
    {PROTOBUF_FIELD_OFFSET(NetState, _impl_.stage_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
  }},
  {{
      {0, 1},
  }},
  {{
    "\25\0\0\5\0\0\0\0"
    "opencv_caffe.NetState"
    "stage"
  }},
};
PROTOBUF_NOINLINE void NetState::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.NetState)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.stage_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    _impl_.level_ = 0;
    _impl_.phase_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NetState::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NetState& this_ = static_cast<const NetState&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NetState::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NetState& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.NetState)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.Phase phase = 1 [default = TEST];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_phase(), target);
  }

  // optional int32 level = 2 [default = 0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_level(), target);
  }

  // repeated string stage = 3;
  for (int i = 0, n = this_._internal_stage_size(); i < n; ++i) {
    const auto& s = this_._internal_stage().Get(i);
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.NetState.stage");
    target = stream->WriteString(3, s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.NetState)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NetState::ByteSizeLong(const MessageLite& base) {
  const NetState& this_ = static_cast<const NetState&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NetState::ByteSizeLong() const {
  const NetState& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.NetState)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated string stage = 3;
    {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_stage().size());
      for (int i = 0, n = this_._internal_stage().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_stage().Get(i));
      }
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional int32 level = 2 [default = 0];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_level());
    }
    // optional .opencv_caffe.Phase phase = 1 [default = TEST];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_phase());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NetState::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<NetState*>(&to_msg);
  auto& from = static_cast<const NetState&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.NetState)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_stage()->MergeFrom(from._internal_stage());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.level_ = from._impl_.level_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.phase_ = from._impl_.phase_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void NetState::CopyFrom(const NetState& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.NetState)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void NetState::InternalSwap(NetState* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.stage_.InternalSwap(&other->_impl_.stage_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NetState, _impl_.phase_)
      + sizeof(NetState::_impl_.phase_)
      - PROTOBUF_FIELD_OFFSET(NetState, _impl_.level_)>(
          reinterpret_cast<char*>(&_impl_.level_),
          reinterpret_cast<char*>(&other->_impl_.level_));
}

::google::protobuf::Metadata NetState::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class NetStateRule::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<NetStateRule>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_._has_bits_);
};

NetStateRule::NetStateRule(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NetStateRule_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.NetStateRule)
}
PROTOBUF_NDEBUG_INLINE NetStateRule::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::NetStateRule& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        stage_{visibility, arena, from.stage_},
        not_stage_{visibility, arena, from.not_stage_} {}

NetStateRule::NetStateRule(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const NetStateRule& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NetStateRule_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  NetStateRule* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, phase_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, phase_),
           offsetof(Impl_, max_level_) -
               offsetof(Impl_, phase_) +
               sizeof(Impl_::max_level_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.NetStateRule)
}
PROTOBUF_NDEBUG_INLINE NetStateRule::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        stage_{visibility, arena},
        not_stage_{visibility, arena} {}

inline void NetStateRule::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, phase_),
           0,
           offsetof(Impl_, max_level_) -
               offsetof(Impl_, phase_) +
               sizeof(Impl_::max_level_));
}
NetStateRule::~NetStateRule() {
  // @@protoc_insertion_point(destructor:opencv_caffe.NetStateRule)
  SharedDtor(*this);
}
inline void NetStateRule::SharedDtor(MessageLite& self) {
  NetStateRule& this_ = static_cast<NetStateRule&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL NetStateRule::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NetStateRule(arena);
}
constexpr auto NetStateRule::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.stage_) +
          decltype(NetStateRule::_impl_.stage_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.not_stage_) +
          decltype(NetStateRule::_impl_.not_stage_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(NetStateRule), alignof(NetStateRule), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&NetStateRule::PlacementNew_,
                                 sizeof(NetStateRule),
                                 alignof(NetStateRule));
  }
}
constexpr auto NetStateRule::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_NetStateRule_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &NetStateRule::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NetStateRule>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NetStateRule::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NetStateRule>(), &NetStateRule::ByteSizeLong,
              &NetStateRule::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_._cached_size_),
          false,
      },
      &NetStateRule::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NetStateRule_class_data_ =
        NetStateRule::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NetStateRule::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NetStateRule_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NetStateRule_class_data_.tc_table);
  return NetStateRule_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 5, 1, 48, 2>
NetStateRule::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_._has_bits_),
    0, // no _extensions_
    5, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967264,  // skipmap
    offsetof(decltype(_table_), field_entries),
    5,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    NetStateRule_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::NetStateRule>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional .opencv_caffe.Phase phase = 1;
    {::_pbi::TcParser::FastEr0S1,
     {8, 0, 1, PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.phase_)}},
    // optional int32 min_level = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NetStateRule, _impl_.min_level_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.min_level_)}},
    // optional int32 max_level = 3;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NetStateRule, _impl_.max_level_), 2>(),
     {24, 2, 0, PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.max_level_)}},
    // repeated string stage = 4;
    {::_pbi::TcParser::FastSR1,
     {34, 63, 0, PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.stage_)}},
    // repeated string not_stage = 5;
    {::_pbi::TcParser::FastSR1,
     {42, 63, 0, PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.not_stage_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.Phase phase = 1;
    {PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.phase_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional int32 min_level = 2;
    {PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.min_level_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 max_level = 3;
    {PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.max_level_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated string stage = 4;
    {PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.stage_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
    // repeated string not_stage = 5;
    {PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.not_stage_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
  }},
  {{
      {0, 1},
  }},
  {{
    "\31\0\0\0\5\11\0\0"
    "opencv_caffe.NetStateRule"
    "stage"
    "not_stage"
  }},
};
PROTOBUF_NOINLINE void NetStateRule::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.NetStateRule)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.stage_.Clear();
  _impl_.not_stage_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    ::memset(&_impl_.phase_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.max_level_) -
        reinterpret_cast<char*>(&_impl_.phase_)) + sizeof(_impl_.max_level_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NetStateRule::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NetStateRule& this_ = static_cast<const NetStateRule&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NetStateRule::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NetStateRule& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.NetStateRule)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.Phase phase = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_phase(), target);
  }

  // optional int32 min_level = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_min_level(), target);
  }

  // optional int32 max_level = 3;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_max_level(), target);
  }

  // repeated string stage = 4;
  for (int i = 0, n = this_._internal_stage_size(); i < n; ++i) {
    const auto& s = this_._internal_stage().Get(i);
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.NetStateRule.stage");
    target = stream->WriteString(4, s, target);
  }

  // repeated string not_stage = 5;
  for (int i = 0, n = this_._internal_not_stage_size(); i < n; ++i) {
    const auto& s = this_._internal_not_stage().Get(i);
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.NetStateRule.not_stage");
    target = stream->WriteString(5, s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.NetStateRule)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NetStateRule::ByteSizeLong(const MessageLite& base) {
  const NetStateRule& this_ = static_cast<const NetStateRule&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NetStateRule::ByteSizeLong() const {
  const NetStateRule& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.NetStateRule)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated string stage = 4;
    {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_stage().size());
      for (int i = 0, n = this_._internal_stage().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_stage().Get(i));
      }
    }
    // repeated string not_stage = 5;
    {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_not_stage().size());
      for (int i = 0, n = this_._internal_not_stage().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_not_stage().Get(i));
      }
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    // optional .opencv_caffe.Phase phase = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_phase());
    }
    // optional int32 min_level = 2;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_min_level());
    }
    // optional int32 max_level = 3;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_max_level());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NetStateRule::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<NetStateRule*>(&to_msg);
  auto& from = static_cast<const NetStateRule&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.NetStateRule)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_stage()->MergeFrom(from._internal_stage());
  _this->_internal_mutable_not_stage()->MergeFrom(from._internal_not_stage());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.phase_ = from._impl_.phase_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.min_level_ = from._impl_.min_level_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.max_level_ = from._impl_.max_level_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void NetStateRule::CopyFrom(const NetStateRule& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.NetStateRule)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void NetStateRule::InternalSwap(NetStateRule* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.stage_.InternalSwap(&other->_impl_.stage_);
  _impl_.not_stage_.InternalSwap(&other->_impl_.not_stage_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.max_level_)
      + sizeof(NetStateRule::_impl_.max_level_)
      - PROTOBUF_FIELD_OFFSET(NetStateRule, _impl_.phase_)>(
          reinterpret_cast<char*>(&_impl_.phase_),
          reinterpret_cast<char*>(&other->_impl_.phase_));
}

::google::protobuf::Metadata NetStateRule::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ParamSpec::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ParamSpec>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_._has_bits_);
};

ParamSpec::ParamSpec(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ParamSpec_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ParamSpec)
}
PROTOBUF_NDEBUG_INLINE ParamSpec::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::ParamSpec& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        name_(arena, from.name_) {}

ParamSpec::ParamSpec(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ParamSpec& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ParamSpec_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ParamSpec* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, share_mode_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, share_mode_),
           offsetof(Impl_, decay_mult_) -
               offsetof(Impl_, share_mode_) +
               sizeof(Impl_::decay_mult_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.ParamSpec)
}
PROTOBUF_NDEBUG_INLINE ParamSpec::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        name_(arena),
        lr_mult_{1},
        decay_mult_{1} {}

inline void ParamSpec::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.share_mode_ = {};
}
ParamSpec::~ParamSpec() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ParamSpec)
  SharedDtor(*this);
}
inline void ParamSpec::SharedDtor(MessageLite& self) {
  ParamSpec& this_ = static_cast<ParamSpec&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.name_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ParamSpec::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ParamSpec(arena);
}
constexpr auto ParamSpec::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ParamSpec),
                                            alignof(ParamSpec));
}
constexpr auto ParamSpec::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ParamSpec_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ParamSpec::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ParamSpec>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ParamSpec::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ParamSpec>(), &ParamSpec::ByteSizeLong,
              &ParamSpec::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_._cached_size_),
          false,
      },
      &ParamSpec::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ParamSpec_class_data_ =
        ParamSpec::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ParamSpec::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ParamSpec_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ParamSpec_class_data_.tc_table);
  return ParamSpec_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 4, 1, 35, 2>
ParamSpec::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_._has_bits_),
    0, // no _extensions_
    4, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967280,  // skipmap
    offsetof(decltype(_table_), field_entries),
    4,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    ParamSpec_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ParamSpec>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional float decay_mult = 4 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {37, 3, 0, PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_.decay_mult_)}},
    // optional string name = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_.name_)}},
    // optional .opencv_caffe.ParamSpec.DimCheckMode share_mode = 2;
    {::_pbi::TcParser::FastEr0S1,
     {16, 1, 1, PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_.share_mode_)}},
    // optional float lr_mult = 3 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {29, 2, 0, PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_.lr_mult_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional string name = 1;
    {PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_.name_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional .opencv_caffe.ParamSpec.DimCheckMode share_mode = 2;
    {PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_.share_mode_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional float lr_mult = 3 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_.lr_mult_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float decay_mult = 4 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_.decay_mult_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  {{
      {0, 1},
  }},
  {{
    "\26\4\0\0\0\0\0\0"
    "opencv_caffe.ParamSpec"
    "name"
  }},
};
PROTOBUF_NOINLINE void ParamSpec::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ParamSpec)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _impl_.name_.ClearNonDefaultToEmpty();
  }
  if ((cached_has_bits & 0x0000000eU) != 0) {
    _impl_.share_mode_ = 0;
    _impl_.lr_mult_ = 1;
    _impl_.decay_mult_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ParamSpec::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ParamSpec& this_ = static_cast<const ParamSpec&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ParamSpec::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ParamSpec& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ParamSpec)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string name = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_name();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.ParamSpec.name");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional .opencv_caffe.ParamSpec.DimCheckMode share_mode = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_share_mode(), target);
  }

  // optional float lr_mult = 3 [default = 1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_lr_mult(), target);
  }

  // optional float decay_mult = 4 [default = 1];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        4, this_._internal_decay_mult(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ParamSpec)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ParamSpec::ByteSizeLong(const MessageLite& base) {
  const ParamSpec& this_ = static_cast<const ParamSpec&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ParamSpec::ByteSizeLong() const {
  const ParamSpec& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ParamSpec)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x0000000cU & cached_has_bits) * 5;
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional string name = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_name());
    }
    // optional .opencv_caffe.ParamSpec.DimCheckMode share_mode = 2;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_share_mode());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ParamSpec::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ParamSpec*>(&to_msg);
  auto& from = static_cast<const ParamSpec&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ParamSpec)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000000fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_name(from._internal_name());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.share_mode_ = from._impl_.share_mode_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.lr_mult_ = from._impl_.lr_mult_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.decay_mult_ = from._impl_.decay_mult_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ParamSpec::CopyFrom(const ParamSpec& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ParamSpec)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ParamSpec::InternalSwap(ParamSpec* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_.decay_mult_)
      + sizeof(ParamSpec::_impl_.decay_mult_)
      - PROTOBUF_FIELD_OFFSET(ParamSpec, _impl_.share_mode_)>(
          reinterpret_cast<char*>(&_impl_.share_mode_),
          reinterpret_cast<char*>(&other->_impl_.share_mode_));
}

::google::protobuf::Metadata ParamSpec::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class LayerParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<LayerParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_._has_bits_);
};

LayerParameter::LayerParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LayerParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.LayerParameter)
}
PROTOBUF_NDEBUG_INLINE LayerParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::LayerParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        bottom_{visibility, arena, from.bottom_},
        top_{visibility, arena, from.top_},
        loss_weight_{visibility, arena, from.loss_weight_},
        param_{visibility, arena, from.param_},
        blobs_{visibility, arena, from.blobs_},
        include_{visibility, arena, from.include_},
        exclude_{visibility, arena, from.exclude_},
        propagate_down_{visibility, arena, from.propagate_down_},
        name_(arena, from.name_),
        type_(arena, from.type_) {}

LayerParameter::LayerParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LayerParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LayerParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LayerParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.transform_param_ = ((cached_has_bits & 0x00000004U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.transform_param_)
                : nullptr;
  _impl_.loss_param_ = ((cached_has_bits & 0x00000008U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.loss_param_)
                : nullptr;
  _impl_.accuracy_param_ = ((cached_has_bits & 0x00000010U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.accuracy_param_)
                : nullptr;
  _impl_.argmax_param_ = ((cached_has_bits & 0x00000020U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.argmax_param_)
                : nullptr;
  _impl_.concat_param_ = ((cached_has_bits & 0x00000040U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.concat_param_)
                : nullptr;
  _impl_.contrastive_loss_param_ = ((cached_has_bits & 0x00000080U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.contrastive_loss_param_)
                : nullptr;
  _impl_.convolution_param_ = ((cached_has_bits & 0x00000100U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.convolution_param_)
                : nullptr;
  _impl_.data_param_ = ((cached_has_bits & 0x00000200U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_param_)
                : nullptr;
  _impl_.dropout_param_ = ((cached_has_bits & 0x00000400U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.dropout_param_)
                : nullptr;
  _impl_.dummy_data_param_ = ((cached_has_bits & 0x00000800U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.dummy_data_param_)
                : nullptr;
  _impl_.eltwise_param_ = ((cached_has_bits & 0x00001000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.eltwise_param_)
                : nullptr;
  _impl_.exp_param_ = ((cached_has_bits & 0x00002000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exp_param_)
                : nullptr;
  _impl_.hdf5_data_param_ = ((cached_has_bits & 0x00004000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hdf5_data_param_)
                : nullptr;
  _impl_.hdf5_output_param_ = ((cached_has_bits & 0x00008000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hdf5_output_param_)
                : nullptr;
  _impl_.hinge_loss_param_ = ((cached_has_bits & 0x00010000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hinge_loss_param_)
                : nullptr;
  _impl_.image_data_param_ = ((cached_has_bits & 0x00020000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.image_data_param_)
                : nullptr;
  _impl_.phase_ = from._impl_.phase_;
  _impl_.infogain_loss_param_ = ((cached_has_bits & 0x00080000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.infogain_loss_param_)
                : nullptr;
  _impl_.inner_product_param_ = ((cached_has_bits & 0x00100000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.inner_product_param_)
                : nullptr;
  _impl_.lrn_param_ = ((cached_has_bits & 0x00200000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lrn_param_)
                : nullptr;
  _impl_.memory_data_param_ = ((cached_has_bits & 0x00400000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.memory_data_param_)
                : nullptr;
  _impl_.mvn_param_ = ((cached_has_bits & 0x00800000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.mvn_param_)
                : nullptr;
  _impl_.pooling_param_ = ((cached_has_bits & 0x01000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.pooling_param_)
                : nullptr;
  _impl_.power_param_ = ((cached_has_bits & 0x02000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.power_param_)
                : nullptr;
  _impl_.relu_param_ = ((cached_has_bits & 0x04000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.relu_param_)
                : nullptr;
  _impl_.sigmoid_param_ = ((cached_has_bits & 0x08000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sigmoid_param_)
                : nullptr;
  _impl_.softmax_param_ = ((cached_has_bits & 0x10000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.softmax_param_)
                : nullptr;
  _impl_.slice_param_ = ((cached_has_bits & 0x20000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.slice_param_)
                : nullptr;
  _impl_.tanh_param_ = ((cached_has_bits & 0x40000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.tanh_param_)
                : nullptr;
  _impl_.threshold_param_ = ((cached_has_bits & 0x80000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.threshold_param_)
                : nullptr;
  cached_has_bits = _impl_._has_bits_[1];
  _impl_.window_data_param_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.window_data_param_)
                : nullptr;
  _impl_.python_param_ = ((cached_has_bits & 0x00000002U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.python_param_)
                : nullptr;
  _impl_.prelu_param_ = ((cached_has_bits & 0x00000004U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.prelu_param_)
                : nullptr;
  _impl_.spp_param_ = ((cached_has_bits & 0x00000008U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.spp_param_)
                : nullptr;
  _impl_.reshape_param_ = ((cached_has_bits & 0x00000010U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reshape_param_)
                : nullptr;
  _impl_.log_param_ = ((cached_has_bits & 0x00000020U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.log_param_)
                : nullptr;
  _impl_.flatten_param_ = ((cached_has_bits & 0x00000040U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flatten_param_)
                : nullptr;
  _impl_.reduction_param_ = ((cached_has_bits & 0x00000080U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reduction_param_)
                : nullptr;
  _impl_.embed_param_ = ((cached_has_bits & 0x00000100U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.embed_param_)
                : nullptr;
  _impl_.tile_param_ = ((cached_has_bits & 0x00000200U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.tile_param_)
                : nullptr;
  _impl_.batch_norm_param_ = ((cached_has_bits & 0x00000400U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.batch_norm_param_)
                : nullptr;
  _impl_.elu_param_ = ((cached_has_bits & 0x00000800U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.elu_param_)
                : nullptr;
  _impl_.bias_param_ = ((cached_has_bits & 0x00001000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_param_)
                : nullptr;
  _impl_.scale_param_ = ((cached_has_bits & 0x00002000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.scale_param_)
                : nullptr;
  _impl_.input_param_ = ((cached_has_bits & 0x00004000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_param_)
                : nullptr;
  _impl_.crop_param_ = ((cached_has_bits & 0x00008000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.crop_param_)
                : nullptr;
  _impl_.parameter_param_ = ((cached_has_bits & 0x00010000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.parameter_param_)
                : nullptr;
  _impl_.recurrent_param_ = ((cached_has_bits & 0x00020000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.recurrent_param_)
                : nullptr;
  _impl_.detection_output_param_ = ((cached_has_bits & 0x00040000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detection_output_param_)
                : nullptr;
  _impl_.permute_param_ = ((cached_has_bits & 0x00080000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.permute_param_)
                : nullptr;
  _impl_.norm_param_ = ((cached_has_bits & 0x00100000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.norm_param_)
                : nullptr;
  _impl_.prior_box_param_ = ((cached_has_bits & 0x00200000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.prior_box_param_)
                : nullptr;
  _impl_.proposal_param_ = ((cached_has_bits & 0x00400000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.proposal_param_)
                : nullptr;
  _impl_.psroi_pooling_param_ = ((cached_has_bits & 0x00800000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.psroi_pooling_param_)
                : nullptr;
  _impl_.roi_pooling_param_ = ((cached_has_bits & 0x01000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.roi_pooling_param_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.LayerParameter)
}
PROTOBUF_NDEBUG_INLINE LayerParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        bottom_{visibility, arena},
        top_{visibility, arena},
        loss_weight_{visibility, arena},
        param_{visibility, arena},
        blobs_{visibility, arena},
        include_{visibility, arena},
        exclude_{visibility, arena},
        propagate_down_{visibility, arena},
        name_(arena),
        type_(arena) {}

inline void LayerParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, transform_param_),
           0,
           offsetof(Impl_, roi_pooling_param_) -
               offsetof(Impl_, transform_param_) +
               sizeof(Impl_::roi_pooling_param_));
}
LayerParameter::~LayerParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.LayerParameter)
  SharedDtor(*this);
}
inline void LayerParameter::SharedDtor(MessageLite& self) {
  LayerParameter& this_ = static_cast<LayerParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.name_.Destroy();
  this_._impl_.type_.Destroy();
  delete this_._impl_.transform_param_;
  delete this_._impl_.loss_param_;
  delete this_._impl_.accuracy_param_;
  delete this_._impl_.argmax_param_;
  delete this_._impl_.concat_param_;
  delete this_._impl_.contrastive_loss_param_;
  delete this_._impl_.convolution_param_;
  delete this_._impl_.data_param_;
  delete this_._impl_.dropout_param_;
  delete this_._impl_.dummy_data_param_;
  delete this_._impl_.eltwise_param_;
  delete this_._impl_.exp_param_;
  delete this_._impl_.hdf5_data_param_;
  delete this_._impl_.hdf5_output_param_;
  delete this_._impl_.hinge_loss_param_;
  delete this_._impl_.image_data_param_;
  delete this_._impl_.infogain_loss_param_;
  delete this_._impl_.inner_product_param_;
  delete this_._impl_.lrn_param_;
  delete this_._impl_.memory_data_param_;
  delete this_._impl_.mvn_param_;
  delete this_._impl_.pooling_param_;
  delete this_._impl_.power_param_;
  delete this_._impl_.relu_param_;
  delete this_._impl_.sigmoid_param_;
  delete this_._impl_.softmax_param_;
  delete this_._impl_.slice_param_;
  delete this_._impl_.tanh_param_;
  delete this_._impl_.threshold_param_;
  delete this_._impl_.window_data_param_;
  delete this_._impl_.python_param_;
  delete this_._impl_.prelu_param_;
  delete this_._impl_.spp_param_;
  delete this_._impl_.reshape_param_;
  delete this_._impl_.log_param_;
  delete this_._impl_.flatten_param_;
  delete this_._impl_.reduction_param_;
  delete this_._impl_.embed_param_;
  delete this_._impl_.tile_param_;
  delete this_._impl_.batch_norm_param_;
  delete this_._impl_.elu_param_;
  delete this_._impl_.bias_param_;
  delete this_._impl_.scale_param_;
  delete this_._impl_.input_param_;
  delete this_._impl_.crop_param_;
  delete this_._impl_.parameter_param_;
  delete this_._impl_.recurrent_param_;
  delete this_._impl_.detection_output_param_;
  delete this_._impl_.permute_param_;
  delete this_._impl_.norm_param_;
  delete this_._impl_.prior_box_param_;
  delete this_._impl_.proposal_param_;
  delete this_._impl_.psroi_pooling_param_;
  delete this_._impl_.roi_pooling_param_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL LayerParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LayerParameter(arena);
}
constexpr auto LayerParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.bottom_) +
          decltype(LayerParameter::_impl_.bottom_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.top_) +
          decltype(LayerParameter::_impl_.top_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.loss_weight_) +
          decltype(LayerParameter::_impl_.loss_weight_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.param_) +
          decltype(LayerParameter::_impl_.param_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.blobs_) +
          decltype(LayerParameter::_impl_.blobs_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.propagate_down_) +
          decltype(LayerParameter::_impl_.propagate_down_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.include_) +
          decltype(LayerParameter::_impl_.include_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.exclude_) +
          decltype(LayerParameter::_impl_.exclude_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(LayerParameter), alignof(LayerParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&LayerParameter::PlacementNew_,
                                 sizeof(LayerParameter),
                                 alignof(LayerParameter));
  }
}
constexpr auto LayerParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_LayerParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          LayerParameter::IsInitializedImpl,
          &LayerParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LayerParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LayerParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LayerParameter>(), &LayerParameter::ByteSizeLong,
              &LayerParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_._cached_size_),
          false,
      },
      &LayerParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LayerParameter_class_data_ =
        LayerParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LayerParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LayerParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LayerParameter_class_data_.tc_table);
  return LayerParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<5, 65, 59, 117, 29>
LayerParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_._has_bits_),
    0, // no _extensions_
    8266711, 248,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294965248,  // skipmap
    offsetof(decltype(_table_), field_entries),
    65,  // num_field_entries
    59,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    LayerParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::LayerParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional string name = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.name_)}},
    // optional string type = 2;
    {::_pbi::TcParser::FastSS1,
     {18, 1, 0, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.type_)}},
    // repeated string bottom = 3;
    {::_pbi::TcParser::FastSR1,
     {26, 63, 0, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.bottom_)}},
    // repeated string top = 4;
    {::_pbi::TcParser::FastSR1,
     {34, 63, 0, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.top_)}},
    // repeated float loss_weight = 5;
    {::_pbi::TcParser::FastF32R1,
     {45, 63, 0, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.loss_weight_)}},
    // repeated .opencv_caffe.ParamSpec param = 6;
    {::_pbi::TcParser::FastMtR1,
     {50, 63, 0, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.param_)}},
    // repeated .opencv_caffe.BlobProto blobs = 7;
    {::_pbi::TcParser::FastMtR1,
     {58, 63, 1, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.blobs_)}},
    // repeated .opencv_caffe.NetStateRule include = 8;
    {::_pbi::TcParser::FastMtR1,
     {66, 63, 2, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.include_)}},
    // repeated .opencv_caffe.NetStateRule exclude = 9;
    {::_pbi::TcParser::FastMtR1,
     {74, 63, 3, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.exclude_)}},
    // optional .opencv_caffe.Phase phase = 10;
    {::_pbi::TcParser::FastEr0S1,
     {80, 18, 1, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.phase_)}},
    // repeated bool propagate_down = 11;
    {::_pbi::TcParser::FastV8R1,
     {88, 63, 0, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.propagate_down_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    // optional .opencv_caffe.HDF5DataParameter hdf5_data_param = 112;
    {::_pbi::TcParser::FastMtS2,
     {1922, 14, 16, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.hdf5_data_param_)}},
    // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 113;
    {::_pbi::TcParser::FastMtS2,
     {1930, 15, 17, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.hdf5_output_param_)}},
    // optional .opencv_caffe.HingeLossParameter hinge_loss_param = 114;
    {::_pbi::TcParser::FastMtS2,
     {1938, 16, 18, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.hinge_loss_param_)}},
    // optional .opencv_caffe.ImageDataParameter image_data_param = 115;
    {::_pbi::TcParser::FastMtS2,
     {1946, 17, 19, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.image_data_param_)}},
    // optional .opencv_caffe.TransformationParameter transform_param = 100;
    {::_pbi::TcParser::FastMtS2,
     {1698, 2, 4, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.transform_param_)}},
    // optional .opencv_caffe.LossParameter loss_param = 101;
    {::_pbi::TcParser::FastMtS2,
     {1706, 3, 5, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.loss_param_)}},
    // optional .opencv_caffe.AccuracyParameter accuracy_param = 102;
    {::_pbi::TcParser::FastMtS2,
     {1714, 4, 6, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.accuracy_param_)}},
    // optional .opencv_caffe.ArgMaxParameter argmax_param = 103;
    {::_pbi::TcParser::FastMtS2,
     {1722, 5, 7, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.argmax_param_)}},
    // optional .opencv_caffe.ConcatParameter concat_param = 104;
    {::_pbi::TcParser::FastMtS2,
     {1730, 6, 8, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.concat_param_)}},
    // optional .opencv_caffe.ContrastiveLossParameter contrastive_loss_param = 105;
    {::_pbi::TcParser::FastMtS2,
     {1738, 7, 9, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.contrastive_loss_param_)}},
    // optional .opencv_caffe.ConvolutionParameter convolution_param = 106;
    {::_pbi::TcParser::FastMtS2,
     {1746, 8, 10, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.convolution_param_)}},
    // optional .opencv_caffe.DataParameter data_param = 107;
    {::_pbi::TcParser::FastMtS2,
     {1754, 9, 11, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.data_param_)}},
    // optional .opencv_caffe.DropoutParameter dropout_param = 108;
    {::_pbi::TcParser::FastMtS2,
     {1762, 10, 12, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.dropout_param_)}},
    // optional .opencv_caffe.DummyDataParameter dummy_data_param = 109;
    {::_pbi::TcParser::FastMtS2,
     {1770, 11, 13, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.dummy_data_param_)}},
    // optional .opencv_caffe.EltwiseParameter eltwise_param = 110;
    {::_pbi::TcParser::FastMtS2,
     {1778, 12, 14, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.eltwise_param_)}},
    // optional .opencv_caffe.ExpParameter exp_param = 111;
    {::_pbi::TcParser::FastMtS2,
     {1786, 13, 15, PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.exp_param_)}},
  }}, {{
    100, 0, 7,
    0, 11,
    0, 27,
    0, 43,
    65528, 59,
    65535, 62,
    65535, 62,
    65503, 62,
    10002, 0, 1,
    65534, 63,
    9175, 126, 1,
    65534, 64,
    65535, 65535
  }}, {{
    // optional string name = 1;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.name_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional string type = 2;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // repeated string bottom = 3;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.bottom_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
    // repeated string top = 4;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.top_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
    // repeated float loss_weight = 5;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.loss_weight_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // repeated .opencv_caffe.ParamSpec param = 6;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.param_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated .opencv_caffe.BlobProto blobs = 7;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.blobs_), -1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated .opencv_caffe.NetStateRule include = 8;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.include_), -1, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated .opencv_caffe.NetStateRule exclude = 9;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.exclude_), -1, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.Phase phase = 10;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.phase_), _Internal::kHasBitsOffset + 18, 58, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // repeated bool propagate_down = 11;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.propagate_down_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kBool)},
    // optional .opencv_caffe.TransformationParameter transform_param = 100;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.transform_param_), _Internal::kHasBitsOffset + 2, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.LossParameter loss_param = 101;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.loss_param_), _Internal::kHasBitsOffset + 3, 5, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.AccuracyParameter accuracy_param = 102;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.accuracy_param_), _Internal::kHasBitsOffset + 4, 6, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ArgMaxParameter argmax_param = 103;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.argmax_param_), _Internal::kHasBitsOffset + 5, 7, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ConcatParameter concat_param = 104;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.concat_param_), _Internal::kHasBitsOffset + 6, 8, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ContrastiveLossParameter contrastive_loss_param = 105;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.contrastive_loss_param_), _Internal::kHasBitsOffset + 7, 9, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ConvolutionParameter convolution_param = 106;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.convolution_param_), _Internal::kHasBitsOffset + 8, 10, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.DataParameter data_param = 107;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.data_param_), _Internal::kHasBitsOffset + 9, 11, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.DropoutParameter dropout_param = 108;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.dropout_param_), _Internal::kHasBitsOffset + 10, 12, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.DummyDataParameter dummy_data_param = 109;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.dummy_data_param_), _Internal::kHasBitsOffset + 11, 13, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.EltwiseParameter eltwise_param = 110;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.eltwise_param_), _Internal::kHasBitsOffset + 12, 14, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ExpParameter exp_param = 111;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.exp_param_), _Internal::kHasBitsOffset + 13, 15, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.HDF5DataParameter hdf5_data_param = 112;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.hdf5_data_param_), _Internal::kHasBitsOffset + 14, 16, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 113;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.hdf5_output_param_), _Internal::kHasBitsOffset + 15, 17, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.HingeLossParameter hinge_loss_param = 114;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.hinge_loss_param_), _Internal::kHasBitsOffset + 16, 18, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ImageDataParameter image_data_param = 115;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.image_data_param_), _Internal::kHasBitsOffset + 17, 19, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.InfogainLossParameter infogain_loss_param = 116;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.infogain_loss_param_), _Internal::kHasBitsOffset + 19, 20, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.InnerProductParameter inner_product_param = 117;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.inner_product_param_), _Internal::kHasBitsOffset + 20, 21, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.LRNParameter lrn_param = 118;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.lrn_param_), _Internal::kHasBitsOffset + 21, 22, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.MemoryDataParameter memory_data_param = 119;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.memory_data_param_), _Internal::kHasBitsOffset + 22, 23, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.MVNParameter mvn_param = 120;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.mvn_param_), _Internal::kHasBitsOffset + 23, 24, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.PoolingParameter pooling_param = 121;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.pooling_param_), _Internal::kHasBitsOffset + 24, 25, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.PowerParameter power_param = 122;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.power_param_), _Internal::kHasBitsOffset + 25, 26, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ReLUParameter relu_param = 123;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.relu_param_), _Internal::kHasBitsOffset + 26, 27, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.SigmoidParameter sigmoid_param = 124;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.sigmoid_param_), _Internal::kHasBitsOffset + 27, 28, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.SoftmaxParameter softmax_param = 125;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.softmax_param_), _Internal::kHasBitsOffset + 28, 29, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.SliceParameter slice_param = 126;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.slice_param_), _Internal::kHasBitsOffset + 29, 30, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.TanHParameter tanh_param = 127;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.tanh_param_), _Internal::kHasBitsOffset + 30, 31, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ThresholdParameter threshold_param = 128;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.threshold_param_), _Internal::kHasBitsOffset + 31, 32, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.WindowDataParameter window_data_param = 129;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.window_data_param_), _Internal::kHasBitsOffset + 32, 33, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.PythonParameter python_param = 130;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.python_param_), _Internal::kHasBitsOffset + 33, 34, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.PReLUParameter prelu_param = 131;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.prelu_param_), _Internal::kHasBitsOffset + 34, 35, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.SPPParameter spp_param = 132;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.spp_param_), _Internal::kHasBitsOffset + 35, 36, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ReshapeParameter reshape_param = 133;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.reshape_param_), _Internal::kHasBitsOffset + 36, 37, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.LogParameter log_param = 134;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.log_param_), _Internal::kHasBitsOffset + 37, 38, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.FlattenParameter flatten_param = 135;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.flatten_param_), _Internal::kHasBitsOffset + 38, 39, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ReductionParameter reduction_param = 136;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.reduction_param_), _Internal::kHasBitsOffset + 39, 40, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.EmbedParameter embed_param = 137;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.embed_param_), _Internal::kHasBitsOffset + 40, 41, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.TileParameter tile_param = 138;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.tile_param_), _Internal::kHasBitsOffset + 41, 42, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.BatchNormParameter batch_norm_param = 139;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.batch_norm_param_), _Internal::kHasBitsOffset + 42, 43, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ELUParameter elu_param = 140;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.elu_param_), _Internal::kHasBitsOffset + 43, 44, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.BiasParameter bias_param = 141;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.bias_param_), _Internal::kHasBitsOffset + 44, 45, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ScaleParameter scale_param = 142;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.scale_param_), _Internal::kHasBitsOffset + 45, 46, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.InputParameter input_param = 143;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.input_param_), _Internal::kHasBitsOffset + 46, 47, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.CropParameter crop_param = 144;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.crop_param_), _Internal::kHasBitsOffset + 47, 48, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ParameterParameter parameter_param = 145;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.parameter_param_), _Internal::kHasBitsOffset + 48, 49, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.RecurrentParameter recurrent_param = 146;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.recurrent_param_), _Internal::kHasBitsOffset + 49, 50, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.DetectionOutputParameter detection_output_param = 147;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.detection_output_param_), _Internal::kHasBitsOffset + 50, 51, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.PermuteParameter permute_param = 148;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.permute_param_), _Internal::kHasBitsOffset + 51, 52, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.NormalizeBBoxParameter norm_param = 149;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.norm_param_), _Internal::kHasBitsOffset + 52, 53, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.PriorBoxParameter prior_box_param = 150;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.prior_box_param_), _Internal::kHasBitsOffset + 53, 54, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ProposalParameter proposal_param = 201;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.proposal_param_), _Internal::kHasBitsOffset + 54, 55, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.PSROIPoolingParameter psroi_pooling_param = 10002;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.psroi_pooling_param_), _Internal::kHasBitsOffset + 55, 56, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ROIPoolingParameter roi_pooling_param = 8266711;
    {PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.roi_pooling_param_), _Internal::kHasBitsOffset + 56, 57, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::ParamSpec>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::BlobProto>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::NetStateRule>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::NetStateRule>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::TransformationParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::LossParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::AccuracyParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ArgMaxParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ConcatParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ContrastiveLossParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ConvolutionParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::DataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::DropoutParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::DummyDataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::EltwiseParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ExpParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::HDF5DataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::HDF5OutputParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::HingeLossParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ImageDataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::InfogainLossParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::InnerProductParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::LRNParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::MemoryDataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::MVNParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::PoolingParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::PowerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ReLUParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::SigmoidParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::SoftmaxParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::SliceParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::TanHParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ThresholdParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::WindowDataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::PythonParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::PReLUParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::SPPParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ReshapeParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::LogParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::FlattenParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ReductionParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::EmbedParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::TileParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::BatchNormParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ELUParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::BiasParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ScaleParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::InputParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::CropParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ParameterParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::RecurrentParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::DetectionOutputParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::PermuteParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::NormalizeBBoxParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::PriorBoxParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ProposalParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::PSROIPoolingParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ROIPoolingParameter>()},
      {0, 1},
  }},
  {{
    "\33\4\4\6\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
    "opencv_caffe.LayerParameter"
    "name"
    "type"
    "bottom"
    "top"
  }},
};
PROTOBUF_NOINLINE void LayerParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.LayerParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.bottom_.Clear();
  _impl_.top_.Clear();
  _impl_.loss_weight_.Clear();
  _impl_.param_.Clear();
  _impl_.blobs_.Clear();
  _impl_.include_.Clear();
  _impl_.exclude_.Clear();
  _impl_.propagate_down_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _impl_.name_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _impl_.type_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      ABSL_DCHECK(_impl_.transform_param_ != nullptr);
      _impl_.transform_param_->Clear();
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      ABSL_DCHECK(_impl_.loss_param_ != nullptr);
      _impl_.loss_param_->Clear();
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      ABSL_DCHECK(_impl_.accuracy_param_ != nullptr);
      _impl_.accuracy_param_->Clear();
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      ABSL_DCHECK(_impl_.argmax_param_ != nullptr);
      _impl_.argmax_param_->Clear();
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      ABSL_DCHECK(_impl_.concat_param_ != nullptr);
      _impl_.concat_param_->Clear();
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      ABSL_DCHECK(_impl_.contrastive_loss_param_ != nullptr);
      _impl_.contrastive_loss_param_->Clear();
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      ABSL_DCHECK(_impl_.convolution_param_ != nullptr);
      _impl_.convolution_param_->Clear();
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      ABSL_DCHECK(_impl_.data_param_ != nullptr);
      _impl_.data_param_->Clear();
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      ABSL_DCHECK(_impl_.dropout_param_ != nullptr);
      _impl_.dropout_param_->Clear();
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      ABSL_DCHECK(_impl_.dummy_data_param_ != nullptr);
      _impl_.dummy_data_param_->Clear();
    }
    if ((cached_has_bits & 0x00001000U) != 0) {
      ABSL_DCHECK(_impl_.eltwise_param_ != nullptr);
      _impl_.eltwise_param_->Clear();
    }
    if ((cached_has_bits & 0x00002000U) != 0) {
      ABSL_DCHECK(_impl_.exp_param_ != nullptr);
      _impl_.exp_param_->Clear();
    }
    if ((cached_has_bits & 0x00004000U) != 0) {
      ABSL_DCHECK(_impl_.hdf5_data_param_ != nullptr);
      _impl_.hdf5_data_param_->Clear();
    }
    if ((cached_has_bits & 0x00008000U) != 0) {
      ABSL_DCHECK(_impl_.hdf5_output_param_ != nullptr);
      _impl_.hdf5_output_param_->Clear();
    }
  }
  if ((cached_has_bits & 0x00030000U) != 0) {
    if ((cached_has_bits & 0x00010000U) != 0) {
      ABSL_DCHECK(_impl_.hinge_loss_param_ != nullptr);
      _impl_.hinge_loss_param_->Clear();
    }
    if ((cached_has_bits & 0x00020000U) != 0) {
      ABSL_DCHECK(_impl_.image_data_param_ != nullptr);
      _impl_.image_data_param_->Clear();
    }
  }
  if ((cached_has_bits & 0x00fc0000U) != 0) {
    _impl_.phase_ = 0;
    if ((cached_has_bits & 0x00080000U) != 0) {
      ABSL_DCHECK(_impl_.infogain_loss_param_ != nullptr);
      _impl_.infogain_loss_param_->Clear();
    }
    if ((cached_has_bits & 0x00100000U) != 0) {
      ABSL_DCHECK(_impl_.inner_product_param_ != nullptr);
      _impl_.inner_product_param_->Clear();
    }
    if ((cached_has_bits & 0x00200000U) != 0) {
      ABSL_DCHECK(_impl_.lrn_param_ != nullptr);
      _impl_.lrn_param_->Clear();
    }
    if ((cached_has_bits & 0x00400000U) != 0) {
      ABSL_DCHECK(_impl_.memory_data_param_ != nullptr);
      _impl_.memory_data_param_->Clear();
    }
    if ((cached_has_bits & 0x00800000U) != 0) {
      ABSL_DCHECK(_impl_.mvn_param_ != nullptr);
      _impl_.mvn_param_->Clear();
    }
  }
  if ((cached_has_bits & 0xff000000U) != 0) {
    if ((cached_has_bits & 0x01000000U) != 0) {
      ABSL_DCHECK(_impl_.pooling_param_ != nullptr);
      _impl_.pooling_param_->Clear();
    }
    if ((cached_has_bits & 0x02000000U) != 0) {
      ABSL_DCHECK(_impl_.power_param_ != nullptr);
      _impl_.power_param_->Clear();
    }
    if ((cached_has_bits & 0x04000000U) != 0) {
      ABSL_DCHECK(_impl_.relu_param_ != nullptr);
      _impl_.relu_param_->Clear();
    }
    if ((cached_has_bits & 0x08000000U) != 0) {
      ABSL_DCHECK(_impl_.sigmoid_param_ != nullptr);
      _impl_.sigmoid_param_->Clear();
    }
    if ((cached_has_bits & 0x10000000U) != 0) {
      ABSL_DCHECK(_impl_.softmax_param_ != nullptr);
      _impl_.softmax_param_->Clear();
    }
    if ((cached_has_bits & 0x20000000U) != 0) {
      ABSL_DCHECK(_impl_.slice_param_ != nullptr);
      _impl_.slice_param_->Clear();
    }
    if ((cached_has_bits & 0x40000000U) != 0) {
      ABSL_DCHECK(_impl_.tanh_param_ != nullptr);
      _impl_.tanh_param_->Clear();
    }
    if ((cached_has_bits & 0x80000000U) != 0) {
      ABSL_DCHECK(_impl_.threshold_param_ != nullptr);
      _impl_.threshold_param_->Clear();
    }
  }
  cached_has_bits = _impl_._has_bits_[1];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(_impl_.window_data_param_ != nullptr);
      _impl_.window_data_param_->Clear();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(_impl_.python_param_ != nullptr);
      _impl_.python_param_->Clear();
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      ABSL_DCHECK(_impl_.prelu_param_ != nullptr);
      _impl_.prelu_param_->Clear();
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      ABSL_DCHECK(_impl_.spp_param_ != nullptr);
      _impl_.spp_param_->Clear();
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      ABSL_DCHECK(_impl_.reshape_param_ != nullptr);
      _impl_.reshape_param_->Clear();
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      ABSL_DCHECK(_impl_.log_param_ != nullptr);
      _impl_.log_param_->Clear();
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      ABSL_DCHECK(_impl_.flatten_param_ != nullptr);
      _impl_.flatten_param_->Clear();
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      ABSL_DCHECK(_impl_.reduction_param_ != nullptr);
      _impl_.reduction_param_->Clear();
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      ABSL_DCHECK(_impl_.embed_param_ != nullptr);
      _impl_.embed_param_->Clear();
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      ABSL_DCHECK(_impl_.tile_param_ != nullptr);
      _impl_.tile_param_->Clear();
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      ABSL_DCHECK(_impl_.batch_norm_param_ != nullptr);
      _impl_.batch_norm_param_->Clear();
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      ABSL_DCHECK(_impl_.elu_param_ != nullptr);
      _impl_.elu_param_->Clear();
    }
    if ((cached_has_bits & 0x00001000U) != 0) {
      ABSL_DCHECK(_impl_.bias_param_ != nullptr);
      _impl_.bias_param_->Clear();
    }
    if ((cached_has_bits & 0x00002000U) != 0) {
      ABSL_DCHECK(_impl_.scale_param_ != nullptr);
      _impl_.scale_param_->Clear();
    }
    if ((cached_has_bits & 0x00004000U) != 0) {
      ABSL_DCHECK(_impl_.input_param_ != nullptr);
      _impl_.input_param_->Clear();
    }
    if ((cached_has_bits & 0x00008000U) != 0) {
      ABSL_DCHECK(_impl_.crop_param_ != nullptr);
      _impl_.crop_param_->Clear();
    }
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    if ((cached_has_bits & 0x00010000U) != 0) {
      ABSL_DCHECK(_impl_.parameter_param_ != nullptr);
      _impl_.parameter_param_->Clear();
    }
    if ((cached_has_bits & 0x00020000U) != 0) {
      ABSL_DCHECK(_impl_.recurrent_param_ != nullptr);
      _impl_.recurrent_param_->Clear();
    }
    if ((cached_has_bits & 0x00040000U) != 0) {
      ABSL_DCHECK(_impl_.detection_output_param_ != nullptr);
      _impl_.detection_output_param_->Clear();
    }
    if ((cached_has_bits & 0x00080000U) != 0) {
      ABSL_DCHECK(_impl_.permute_param_ != nullptr);
      _impl_.permute_param_->Clear();
    }
    if ((cached_has_bits & 0x00100000U) != 0) {
      ABSL_DCHECK(_impl_.norm_param_ != nullptr);
      _impl_.norm_param_->Clear();
    }
    if ((cached_has_bits & 0x00200000U) != 0) {
      ABSL_DCHECK(_impl_.prior_box_param_ != nullptr);
      _impl_.prior_box_param_->Clear();
    }
    if ((cached_has_bits & 0x00400000U) != 0) {
      ABSL_DCHECK(_impl_.proposal_param_ != nullptr);
      _impl_.proposal_param_->Clear();
    }
    if ((cached_has_bits & 0x00800000U) != 0) {
      ABSL_DCHECK(_impl_.psroi_pooling_param_ != nullptr);
      _impl_.psroi_pooling_param_->Clear();
    }
  }
  if ((cached_has_bits & 0x01000000U) != 0) {
    ABSL_DCHECK(_impl_.roi_pooling_param_ != nullptr);
    _impl_.roi_pooling_param_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL LayerParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const LayerParameter& this_ = static_cast<const LayerParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL LayerParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const LayerParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.LayerParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string name = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_name();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.LayerParameter.name");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional string type = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    const ::std::string& _s = this_._internal_type();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.LayerParameter.type");
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // repeated string bottom = 3;
  for (int i = 0, n = this_._internal_bottom_size(); i < n; ++i) {
    const auto& s = this_._internal_bottom().Get(i);
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.LayerParameter.bottom");
    target = stream->WriteString(3, s, target);
  }

  // repeated string top = 4;
  for (int i = 0, n = this_._internal_top_size(); i < n; ++i) {
    const auto& s = this_._internal_top().Get(i);
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.LayerParameter.top");
    target = stream->WriteString(4, s, target);
  }

  // repeated float loss_weight = 5;
  for (int i = 0, n = this_._internal_loss_weight_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        5, this_._internal_loss_weight().Get(i), target);
  }

  // repeated .opencv_caffe.ParamSpec param = 6;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_param_size());
       i < n; i++) {
    const auto& repfield = this_._internal_param().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            6, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // repeated .opencv_caffe.BlobProto blobs = 7;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_blobs_size());
       i < n; i++) {
    const auto& repfield = this_._internal_blobs().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            7, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // repeated .opencv_caffe.NetStateRule include = 8;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_include_size());
       i < n; i++) {
    const auto& repfield = this_._internal_include().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            8, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // repeated .opencv_caffe.NetStateRule exclude = 9;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_exclude_size());
       i < n; i++) {
    const auto& repfield = this_._internal_exclude().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            9, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // optional .opencv_caffe.Phase phase = 10;
  if ((cached_has_bits & 0x00040000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        10, this_._internal_phase(), target);
  }

  // repeated bool propagate_down = 11;
  for (int i = 0, n = this_._internal_propagate_down_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        11, this_._internal_propagate_down().Get(i), target);
  }

  // optional .opencv_caffe.TransformationParameter transform_param = 100;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        100, *this_._impl_.transform_param_, this_._impl_.transform_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.LossParameter loss_param = 101;
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        101, *this_._impl_.loss_param_, this_._impl_.loss_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.AccuracyParameter accuracy_param = 102;
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        102, *this_._impl_.accuracy_param_, this_._impl_.accuracy_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ArgMaxParameter argmax_param = 103;
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        103, *this_._impl_.argmax_param_, this_._impl_.argmax_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ConcatParameter concat_param = 104;
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        104, *this_._impl_.concat_param_, this_._impl_.concat_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ContrastiveLossParameter contrastive_loss_param = 105;
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        105, *this_._impl_.contrastive_loss_param_, this_._impl_.contrastive_loss_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ConvolutionParameter convolution_param = 106;
  if ((cached_has_bits & 0x00000100U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        106, *this_._impl_.convolution_param_, this_._impl_.convolution_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.DataParameter data_param = 107;
  if ((cached_has_bits & 0x00000200U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        107, *this_._impl_.data_param_, this_._impl_.data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.DropoutParameter dropout_param = 108;
  if ((cached_has_bits & 0x00000400U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        108, *this_._impl_.dropout_param_, this_._impl_.dropout_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.DummyDataParameter dummy_data_param = 109;
  if ((cached_has_bits & 0x00000800U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        109, *this_._impl_.dummy_data_param_, this_._impl_.dummy_data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.EltwiseParameter eltwise_param = 110;
  if ((cached_has_bits & 0x00001000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        110, *this_._impl_.eltwise_param_, this_._impl_.eltwise_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ExpParameter exp_param = 111;
  if ((cached_has_bits & 0x00002000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        111, *this_._impl_.exp_param_, this_._impl_.exp_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.HDF5DataParameter hdf5_data_param = 112;
  if ((cached_has_bits & 0x00004000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        112, *this_._impl_.hdf5_data_param_, this_._impl_.hdf5_data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 113;
  if ((cached_has_bits & 0x00008000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        113, *this_._impl_.hdf5_output_param_, this_._impl_.hdf5_output_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.HingeLossParameter hinge_loss_param = 114;
  if ((cached_has_bits & 0x00010000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        114, *this_._impl_.hinge_loss_param_, this_._impl_.hinge_loss_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ImageDataParameter image_data_param = 115;
  if ((cached_has_bits & 0x00020000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        115, *this_._impl_.image_data_param_, this_._impl_.image_data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.InfogainLossParameter infogain_loss_param = 116;
  if ((cached_has_bits & 0x00080000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        116, *this_._impl_.infogain_loss_param_, this_._impl_.infogain_loss_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.InnerProductParameter inner_product_param = 117;
  if ((cached_has_bits & 0x00100000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        117, *this_._impl_.inner_product_param_, this_._impl_.inner_product_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.LRNParameter lrn_param = 118;
  if ((cached_has_bits & 0x00200000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        118, *this_._impl_.lrn_param_, this_._impl_.lrn_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.MemoryDataParameter memory_data_param = 119;
  if ((cached_has_bits & 0x00400000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        119, *this_._impl_.memory_data_param_, this_._impl_.memory_data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.MVNParameter mvn_param = 120;
  if ((cached_has_bits & 0x00800000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        120, *this_._impl_.mvn_param_, this_._impl_.mvn_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.PoolingParameter pooling_param = 121;
  if ((cached_has_bits & 0x01000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        121, *this_._impl_.pooling_param_, this_._impl_.pooling_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.PowerParameter power_param = 122;
  if ((cached_has_bits & 0x02000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        122, *this_._impl_.power_param_, this_._impl_.power_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ReLUParameter relu_param = 123;
  if ((cached_has_bits & 0x04000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        123, *this_._impl_.relu_param_, this_._impl_.relu_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.SigmoidParameter sigmoid_param = 124;
  if ((cached_has_bits & 0x08000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        124, *this_._impl_.sigmoid_param_, this_._impl_.sigmoid_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.SoftmaxParameter softmax_param = 125;
  if ((cached_has_bits & 0x10000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        125, *this_._impl_.softmax_param_, this_._impl_.softmax_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.SliceParameter slice_param = 126;
  if ((cached_has_bits & 0x20000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        126, *this_._impl_.slice_param_, this_._impl_.slice_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.TanHParameter tanh_param = 127;
  if ((cached_has_bits & 0x40000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        127, *this_._impl_.tanh_param_, this_._impl_.tanh_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ThresholdParameter threshold_param = 128;
  if ((cached_has_bits & 0x80000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        128, *this_._impl_.threshold_param_, this_._impl_.threshold_param_->GetCachedSize(), target,
        stream);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional .opencv_caffe.WindowDataParameter window_data_param = 129;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        129, *this_._impl_.window_data_param_, this_._impl_.window_data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.PythonParameter python_param = 130;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        130, *this_._impl_.python_param_, this_._impl_.python_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.PReLUParameter prelu_param = 131;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        131, *this_._impl_.prelu_param_, this_._impl_.prelu_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.SPPParameter spp_param = 132;
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        132, *this_._impl_.spp_param_, this_._impl_.spp_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ReshapeParameter reshape_param = 133;
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        133, *this_._impl_.reshape_param_, this_._impl_.reshape_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.LogParameter log_param = 134;
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        134, *this_._impl_.log_param_, this_._impl_.log_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.FlattenParameter flatten_param = 135;
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        135, *this_._impl_.flatten_param_, this_._impl_.flatten_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ReductionParameter reduction_param = 136;
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        136, *this_._impl_.reduction_param_, this_._impl_.reduction_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.EmbedParameter embed_param = 137;
  if ((cached_has_bits & 0x00000100U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        137, *this_._impl_.embed_param_, this_._impl_.embed_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.TileParameter tile_param = 138;
  if ((cached_has_bits & 0x00000200U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        138, *this_._impl_.tile_param_, this_._impl_.tile_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.BatchNormParameter batch_norm_param = 139;
  if ((cached_has_bits & 0x00000400U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        139, *this_._impl_.batch_norm_param_, this_._impl_.batch_norm_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ELUParameter elu_param = 140;
  if ((cached_has_bits & 0x00000800U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        140, *this_._impl_.elu_param_, this_._impl_.elu_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.BiasParameter bias_param = 141;
  if ((cached_has_bits & 0x00001000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        141, *this_._impl_.bias_param_, this_._impl_.bias_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ScaleParameter scale_param = 142;
  if ((cached_has_bits & 0x00002000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        142, *this_._impl_.scale_param_, this_._impl_.scale_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.InputParameter input_param = 143;
  if ((cached_has_bits & 0x00004000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        143, *this_._impl_.input_param_, this_._impl_.input_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.CropParameter crop_param = 144;
  if ((cached_has_bits & 0x00008000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        144, *this_._impl_.crop_param_, this_._impl_.crop_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ParameterParameter parameter_param = 145;
  if ((cached_has_bits & 0x00010000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        145, *this_._impl_.parameter_param_, this_._impl_.parameter_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.RecurrentParameter recurrent_param = 146;
  if ((cached_has_bits & 0x00020000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        146, *this_._impl_.recurrent_param_, this_._impl_.recurrent_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.DetectionOutputParameter detection_output_param = 147;
  if ((cached_has_bits & 0x00040000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        147, *this_._impl_.detection_output_param_, this_._impl_.detection_output_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.PermuteParameter permute_param = 148;
  if ((cached_has_bits & 0x00080000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        148, *this_._impl_.permute_param_, this_._impl_.permute_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.NormalizeBBoxParameter norm_param = 149;
  if ((cached_has_bits & 0x00100000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        149, *this_._impl_.norm_param_, this_._impl_.norm_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.PriorBoxParameter prior_box_param = 150;
  if ((cached_has_bits & 0x00200000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        150, *this_._impl_.prior_box_param_, this_._impl_.prior_box_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ProposalParameter proposal_param = 201;
  if ((cached_has_bits & 0x00400000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        201, *this_._impl_.proposal_param_, this_._impl_.proposal_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.PSROIPoolingParameter psroi_pooling_param = 10002;
  if ((cached_has_bits & 0x00800000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10002, *this_._impl_.psroi_pooling_param_, this_._impl_.psroi_pooling_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ROIPoolingParameter roi_pooling_param = 8266711;
  if ((cached_has_bits & 0x01000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        8266711, *this_._impl_.roi_pooling_param_, this_._impl_.roi_pooling_param_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.LayerParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t LayerParameter::ByteSizeLong(const MessageLite& base) {
  const LayerParameter& this_ = static_cast<const LayerParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t LayerParameter::ByteSizeLong() const {
  const LayerParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.LayerParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated string bottom = 3;
    {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_bottom().size());
      for (int i = 0, n = this_._internal_bottom().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_bottom().Get(i));
      }
    }
    // repeated string top = 4;
    {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_top().size());
      for (int i = 0, n = this_._internal_top().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_top().Get(i));
      }
    }
    // repeated float loss_weight = 5;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_loss_weight_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_loss_weight_size());
      total_size += tag_size + data_size;
    }
    // repeated .opencv_caffe.ParamSpec param = 6;
    {
      total_size += 1UL * this_._internal_param_size();
      for (const auto& msg : this_._internal_param()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .opencv_caffe.BlobProto blobs = 7;
    {
      total_size += 1UL * this_._internal_blobs_size();
      for (const auto& msg : this_._internal_blobs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .opencv_caffe.NetStateRule include = 8;
    {
      total_size += 1UL * this_._internal_include_size();
      for (const auto& msg : this_._internal_include()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .opencv_caffe.NetStateRule exclude = 9;
    {
      total_size += 1UL * this_._internal_exclude_size();
      for (const auto& msg : this_._internal_exclude()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated bool propagate_down = 11;
    {
      ::size_t data_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_propagate_down_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_propagate_down_size());
      total_size += tag_size + data_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    // optional string name = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_name());
    }
    // optional string type = 2;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_type());
    }
    // optional .opencv_caffe.TransformationParameter transform_param = 100;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.transform_param_);
    }
    // optional .opencv_caffe.LossParameter loss_param = 101;
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.loss_param_);
    }
    // optional .opencv_caffe.AccuracyParameter accuracy_param = 102;
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.accuracy_param_);
    }
    // optional .opencv_caffe.ArgMaxParameter argmax_param = 103;
    if ((cached_has_bits & 0x00000020U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.argmax_param_);
    }
    // optional .opencv_caffe.ConcatParameter concat_param = 104;
    if ((cached_has_bits & 0x00000040U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.concat_param_);
    }
    // optional .opencv_caffe.ContrastiveLossParameter contrastive_loss_param = 105;
    if ((cached_has_bits & 0x00000080U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.contrastive_loss_param_);
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    // optional .opencv_caffe.ConvolutionParameter convolution_param = 106;
    if ((cached_has_bits & 0x00000100U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.convolution_param_);
    }
    // optional .opencv_caffe.DataParameter data_param = 107;
    if ((cached_has_bits & 0x00000200U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.data_param_);
    }
    // optional .opencv_caffe.DropoutParameter dropout_param = 108;
    if ((cached_has_bits & 0x00000400U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.dropout_param_);
    }
    // optional .opencv_caffe.DummyDataParameter dummy_data_param = 109;
    if ((cached_has_bits & 0x00000800U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.dummy_data_param_);
    }
    // optional .opencv_caffe.EltwiseParameter eltwise_param = 110;
    if ((cached_has_bits & 0x00001000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.eltwise_param_);
    }
    // optional .opencv_caffe.ExpParameter exp_param = 111;
    if ((cached_has_bits & 0x00002000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.exp_param_);
    }
    // optional .opencv_caffe.HDF5DataParameter hdf5_data_param = 112;
    if ((cached_has_bits & 0x00004000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.hdf5_data_param_);
    }
    // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 113;
    if ((cached_has_bits & 0x00008000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.hdf5_output_param_);
    }
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    // optional .opencv_caffe.HingeLossParameter hinge_loss_param = 114;
    if ((cached_has_bits & 0x00010000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.hinge_loss_param_);
    }
    // optional .opencv_caffe.ImageDataParameter image_data_param = 115;
    if ((cached_has_bits & 0x00020000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.image_data_param_);
    }
    // optional .opencv_caffe.Phase phase = 10;
    if ((cached_has_bits & 0x00040000U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_phase());
    }
    // optional .opencv_caffe.InfogainLossParameter infogain_loss_param = 116;
    if ((cached_has_bits & 0x00080000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.infogain_loss_param_);
    }
    // optional .opencv_caffe.InnerProductParameter inner_product_param = 117;
    if ((cached_has_bits & 0x00100000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.inner_product_param_);
    }
    // optional .opencv_caffe.LRNParameter lrn_param = 118;
    if ((cached_has_bits & 0x00200000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.lrn_param_);
    }
    // optional .opencv_caffe.MemoryDataParameter memory_data_param = 119;
    if ((cached_has_bits & 0x00400000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.memory_data_param_);
    }
    // optional .opencv_caffe.MVNParameter mvn_param = 120;
    if ((cached_has_bits & 0x00800000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.mvn_param_);
    }
  }
  if ((cached_has_bits & 0xff000000U) != 0) {
    // optional .opencv_caffe.PoolingParameter pooling_param = 121;
    if ((cached_has_bits & 0x01000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.pooling_param_);
    }
    // optional .opencv_caffe.PowerParameter power_param = 122;
    if ((cached_has_bits & 0x02000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.power_param_);
    }
    // optional .opencv_caffe.ReLUParameter relu_param = 123;
    if ((cached_has_bits & 0x04000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.relu_param_);
    }
    // optional .opencv_caffe.SigmoidParameter sigmoid_param = 124;
    if ((cached_has_bits & 0x08000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.sigmoid_param_);
    }
    // optional .opencv_caffe.SoftmaxParameter softmax_param = 125;
    if ((cached_has_bits & 0x10000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.softmax_param_);
    }
    // optional .opencv_caffe.SliceParameter slice_param = 126;
    if ((cached_has_bits & 0x20000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.slice_param_);
    }
    // optional .opencv_caffe.TanHParameter tanh_param = 127;
    if ((cached_has_bits & 0x40000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.tanh_param_);
    }
    // optional .opencv_caffe.ThresholdParameter threshold_param = 128;
    if ((cached_has_bits & 0x80000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.threshold_param_);
    }
  }
  cached_has_bits = this_._impl_._has_bits_[1];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    // optional .opencv_caffe.WindowDataParameter window_data_param = 129;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.window_data_param_);
    }
    // optional .opencv_caffe.PythonParameter python_param = 130;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.python_param_);
    }
    // optional .opencv_caffe.PReLUParameter prelu_param = 131;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.prelu_param_);
    }
    // optional .opencv_caffe.SPPParameter spp_param = 132;
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.spp_param_);
    }
    // optional .opencv_caffe.ReshapeParameter reshape_param = 133;
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.reshape_param_);
    }
    // optional .opencv_caffe.LogParameter log_param = 134;
    if ((cached_has_bits & 0x00000020U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.log_param_);
    }
    // optional .opencv_caffe.FlattenParameter flatten_param = 135;
    if ((cached_has_bits & 0x00000040U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.flatten_param_);
    }
    // optional .opencv_caffe.ReductionParameter reduction_param = 136;
    if ((cached_has_bits & 0x00000080U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.reduction_param_);
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    // optional .opencv_caffe.EmbedParameter embed_param = 137;
    if ((cached_has_bits & 0x00000100U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.embed_param_);
    }
    // optional .opencv_caffe.TileParameter tile_param = 138;
    if ((cached_has_bits & 0x00000200U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.tile_param_);
    }
    // optional .opencv_caffe.BatchNormParameter batch_norm_param = 139;
    if ((cached_has_bits & 0x00000400U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.batch_norm_param_);
    }
    // optional .opencv_caffe.ELUParameter elu_param = 140;
    if ((cached_has_bits & 0x00000800U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.elu_param_);
    }
    // optional .opencv_caffe.BiasParameter bias_param = 141;
    if ((cached_has_bits & 0x00001000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bias_param_);
    }
    // optional .opencv_caffe.ScaleParameter scale_param = 142;
    if ((cached_has_bits & 0x00002000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.scale_param_);
    }
    // optional .opencv_caffe.InputParameter input_param = 143;
    if ((cached_has_bits & 0x00004000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.input_param_);
    }
    // optional .opencv_caffe.CropParameter crop_param = 144;
    if ((cached_has_bits & 0x00008000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.crop_param_);
    }
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    // optional .opencv_caffe.ParameterParameter parameter_param = 145;
    if ((cached_has_bits & 0x00010000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.parameter_param_);
    }
    // optional .opencv_caffe.RecurrentParameter recurrent_param = 146;
    if ((cached_has_bits & 0x00020000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.recurrent_param_);
    }
    // optional .opencv_caffe.DetectionOutputParameter detection_output_param = 147;
    if ((cached_has_bits & 0x00040000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.detection_output_param_);
    }
    // optional .opencv_caffe.PermuteParameter permute_param = 148;
    if ((cached_has_bits & 0x00080000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.permute_param_);
    }
    // optional .opencv_caffe.NormalizeBBoxParameter norm_param = 149;
    if ((cached_has_bits & 0x00100000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.norm_param_);
    }
    // optional .opencv_caffe.PriorBoxParameter prior_box_param = 150;
    if ((cached_has_bits & 0x00200000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.prior_box_param_);
    }
    // optional .opencv_caffe.ProposalParameter proposal_param = 201;
    if ((cached_has_bits & 0x00400000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.proposal_param_);
    }
    // optional .opencv_caffe.PSROIPoolingParameter psroi_pooling_param = 10002;
    if ((cached_has_bits & 0x00800000U) != 0) {
      total_size += 3 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.psroi_pooling_param_);
    }
  }
   {
    // optional .opencv_caffe.ROIPoolingParameter roi_pooling_param = 8266711;
    if ((cached_has_bits & 0x01000000U) != 0) {
      total_size += 4 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.roi_pooling_param_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void LayerParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<LayerParameter*>(&to_msg);
  auto& from = static_cast<const LayerParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.LayerParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_bottom()->MergeFrom(from._internal_bottom());
  _this->_internal_mutable_top()->MergeFrom(from._internal_top());
  _this->_internal_mutable_loss_weight()->MergeFrom(from._internal_loss_weight());
  _this->_internal_mutable_param()->MergeFrom(
      from._internal_param());
  _this->_internal_mutable_blobs()->MergeFrom(
      from._internal_blobs());
  _this->_internal_mutable_include()->MergeFrom(
      from._internal_include());
  _this->_internal_mutable_exclude()->MergeFrom(
      from._internal_exclude());
  _this->_internal_mutable_propagate_down()->MergeFrom(from._internal_propagate_down());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_name(from._internal_name());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_internal_set_type(from._internal_type());
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      ABSL_DCHECK(from._impl_.transform_param_ != nullptr);
      if (_this->_impl_.transform_param_ == nullptr) {
        _this->_impl_.transform_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.transform_param_);
      } else {
        _this->_impl_.transform_param_->MergeFrom(*from._impl_.transform_param_);
      }
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      ABSL_DCHECK(from._impl_.loss_param_ != nullptr);
      if (_this->_impl_.loss_param_ == nullptr) {
        _this->_impl_.loss_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.loss_param_);
      } else {
        _this->_impl_.loss_param_->MergeFrom(*from._impl_.loss_param_);
      }
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      ABSL_DCHECK(from._impl_.accuracy_param_ != nullptr);
      if (_this->_impl_.accuracy_param_ == nullptr) {
        _this->_impl_.accuracy_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.accuracy_param_);
      } else {
        _this->_impl_.accuracy_param_->MergeFrom(*from._impl_.accuracy_param_);
      }
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      ABSL_DCHECK(from._impl_.argmax_param_ != nullptr);
      if (_this->_impl_.argmax_param_ == nullptr) {
        _this->_impl_.argmax_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.argmax_param_);
      } else {
        _this->_impl_.argmax_param_->MergeFrom(*from._impl_.argmax_param_);
      }
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      ABSL_DCHECK(from._impl_.concat_param_ != nullptr);
      if (_this->_impl_.concat_param_ == nullptr) {
        _this->_impl_.concat_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.concat_param_);
      } else {
        _this->_impl_.concat_param_->MergeFrom(*from._impl_.concat_param_);
      }
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      ABSL_DCHECK(from._impl_.contrastive_loss_param_ != nullptr);
      if (_this->_impl_.contrastive_loss_param_ == nullptr) {
        _this->_impl_.contrastive_loss_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.contrastive_loss_param_);
      } else {
        _this->_impl_.contrastive_loss_param_->MergeFrom(*from._impl_.contrastive_loss_param_);
      }
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      ABSL_DCHECK(from._impl_.convolution_param_ != nullptr);
      if (_this->_impl_.convolution_param_ == nullptr) {
        _this->_impl_.convolution_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.convolution_param_);
      } else {
        _this->_impl_.convolution_param_->MergeFrom(*from._impl_.convolution_param_);
      }
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      ABSL_DCHECK(from._impl_.data_param_ != nullptr);
      if (_this->_impl_.data_param_ == nullptr) {
        _this->_impl_.data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_param_);
      } else {
        _this->_impl_.data_param_->MergeFrom(*from._impl_.data_param_);
      }
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      ABSL_DCHECK(from._impl_.dropout_param_ != nullptr);
      if (_this->_impl_.dropout_param_ == nullptr) {
        _this->_impl_.dropout_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.dropout_param_);
      } else {
        _this->_impl_.dropout_param_->MergeFrom(*from._impl_.dropout_param_);
      }
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      ABSL_DCHECK(from._impl_.dummy_data_param_ != nullptr);
      if (_this->_impl_.dummy_data_param_ == nullptr) {
        _this->_impl_.dummy_data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.dummy_data_param_);
      } else {
        _this->_impl_.dummy_data_param_->MergeFrom(*from._impl_.dummy_data_param_);
      }
    }
    if ((cached_has_bits & 0x00001000U) != 0) {
      ABSL_DCHECK(from._impl_.eltwise_param_ != nullptr);
      if (_this->_impl_.eltwise_param_ == nullptr) {
        _this->_impl_.eltwise_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.eltwise_param_);
      } else {
        _this->_impl_.eltwise_param_->MergeFrom(*from._impl_.eltwise_param_);
      }
    }
    if ((cached_has_bits & 0x00002000U) != 0) {
      ABSL_DCHECK(from._impl_.exp_param_ != nullptr);
      if (_this->_impl_.exp_param_ == nullptr) {
        _this->_impl_.exp_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exp_param_);
      } else {
        _this->_impl_.exp_param_->MergeFrom(*from._impl_.exp_param_);
      }
    }
    if ((cached_has_bits & 0x00004000U) != 0) {
      ABSL_DCHECK(from._impl_.hdf5_data_param_ != nullptr);
      if (_this->_impl_.hdf5_data_param_ == nullptr) {
        _this->_impl_.hdf5_data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hdf5_data_param_);
      } else {
        _this->_impl_.hdf5_data_param_->MergeFrom(*from._impl_.hdf5_data_param_);
      }
    }
    if ((cached_has_bits & 0x00008000U) != 0) {
      ABSL_DCHECK(from._impl_.hdf5_output_param_ != nullptr);
      if (_this->_impl_.hdf5_output_param_ == nullptr) {
        _this->_impl_.hdf5_output_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hdf5_output_param_);
      } else {
        _this->_impl_.hdf5_output_param_->MergeFrom(*from._impl_.hdf5_output_param_);
      }
    }
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    if ((cached_has_bits & 0x00010000U) != 0) {
      ABSL_DCHECK(from._impl_.hinge_loss_param_ != nullptr);
      if (_this->_impl_.hinge_loss_param_ == nullptr) {
        _this->_impl_.hinge_loss_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hinge_loss_param_);
      } else {
        _this->_impl_.hinge_loss_param_->MergeFrom(*from._impl_.hinge_loss_param_);
      }
    }
    if ((cached_has_bits & 0x00020000U) != 0) {
      ABSL_DCHECK(from._impl_.image_data_param_ != nullptr);
      if (_this->_impl_.image_data_param_ == nullptr) {
        _this->_impl_.image_data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.image_data_param_);
      } else {
        _this->_impl_.image_data_param_->MergeFrom(*from._impl_.image_data_param_);
      }
    }
    if ((cached_has_bits & 0x00040000U) != 0) {
      _this->_impl_.phase_ = from._impl_.phase_;
    }
    if ((cached_has_bits & 0x00080000U) != 0) {
      ABSL_DCHECK(from._impl_.infogain_loss_param_ != nullptr);
      if (_this->_impl_.infogain_loss_param_ == nullptr) {
        _this->_impl_.infogain_loss_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.infogain_loss_param_);
      } else {
        _this->_impl_.infogain_loss_param_->MergeFrom(*from._impl_.infogain_loss_param_);
      }
    }
    if ((cached_has_bits & 0x00100000U) != 0) {
      ABSL_DCHECK(from._impl_.inner_product_param_ != nullptr);
      if (_this->_impl_.inner_product_param_ == nullptr) {
        _this->_impl_.inner_product_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.inner_product_param_);
      } else {
        _this->_impl_.inner_product_param_->MergeFrom(*from._impl_.inner_product_param_);
      }
    }
    if ((cached_has_bits & 0x00200000U) != 0) {
      ABSL_DCHECK(from._impl_.lrn_param_ != nullptr);
      if (_this->_impl_.lrn_param_ == nullptr) {
        _this->_impl_.lrn_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lrn_param_);
      } else {
        _this->_impl_.lrn_param_->MergeFrom(*from._impl_.lrn_param_);
      }
    }
    if ((cached_has_bits & 0x00400000U) != 0) {
      ABSL_DCHECK(from._impl_.memory_data_param_ != nullptr);
      if (_this->_impl_.memory_data_param_ == nullptr) {
        _this->_impl_.memory_data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.memory_data_param_);
      } else {
        _this->_impl_.memory_data_param_->MergeFrom(*from._impl_.memory_data_param_);
      }
    }
    if ((cached_has_bits & 0x00800000U) != 0) {
      ABSL_DCHECK(from._impl_.mvn_param_ != nullptr);
      if (_this->_impl_.mvn_param_ == nullptr) {
        _this->_impl_.mvn_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.mvn_param_);
      } else {
        _this->_impl_.mvn_param_->MergeFrom(*from._impl_.mvn_param_);
      }
    }
  }
  if ((cached_has_bits & 0xff000000U) != 0) {
    if ((cached_has_bits & 0x01000000U) != 0) {
      ABSL_DCHECK(from._impl_.pooling_param_ != nullptr);
      if (_this->_impl_.pooling_param_ == nullptr) {
        _this->_impl_.pooling_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.pooling_param_);
      } else {
        _this->_impl_.pooling_param_->MergeFrom(*from._impl_.pooling_param_);
      }
    }
    if ((cached_has_bits & 0x02000000U) != 0) {
      ABSL_DCHECK(from._impl_.power_param_ != nullptr);
      if (_this->_impl_.power_param_ == nullptr) {
        _this->_impl_.power_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.power_param_);
      } else {
        _this->_impl_.power_param_->MergeFrom(*from._impl_.power_param_);
      }
    }
    if ((cached_has_bits & 0x04000000U) != 0) {
      ABSL_DCHECK(from._impl_.relu_param_ != nullptr);
      if (_this->_impl_.relu_param_ == nullptr) {
        _this->_impl_.relu_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.relu_param_);
      } else {
        _this->_impl_.relu_param_->MergeFrom(*from._impl_.relu_param_);
      }
    }
    if ((cached_has_bits & 0x08000000U) != 0) {
      ABSL_DCHECK(from._impl_.sigmoid_param_ != nullptr);
      if (_this->_impl_.sigmoid_param_ == nullptr) {
        _this->_impl_.sigmoid_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sigmoid_param_);
      } else {
        _this->_impl_.sigmoid_param_->MergeFrom(*from._impl_.sigmoid_param_);
      }
    }
    if ((cached_has_bits & 0x10000000U) != 0) {
      ABSL_DCHECK(from._impl_.softmax_param_ != nullptr);
      if (_this->_impl_.softmax_param_ == nullptr) {
        _this->_impl_.softmax_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.softmax_param_);
      } else {
        _this->_impl_.softmax_param_->MergeFrom(*from._impl_.softmax_param_);
      }
    }
    if ((cached_has_bits & 0x20000000U) != 0) {
      ABSL_DCHECK(from._impl_.slice_param_ != nullptr);
      if (_this->_impl_.slice_param_ == nullptr) {
        _this->_impl_.slice_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.slice_param_);
      } else {
        _this->_impl_.slice_param_->MergeFrom(*from._impl_.slice_param_);
      }
    }
    if ((cached_has_bits & 0x40000000U) != 0) {
      ABSL_DCHECK(from._impl_.tanh_param_ != nullptr);
      if (_this->_impl_.tanh_param_ == nullptr) {
        _this->_impl_.tanh_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.tanh_param_);
      } else {
        _this->_impl_.tanh_param_->MergeFrom(*from._impl_.tanh_param_);
      }
    }
    if ((cached_has_bits & 0x80000000U) != 0) {
      ABSL_DCHECK(from._impl_.threshold_param_ != nullptr);
      if (_this->_impl_.threshold_param_ == nullptr) {
        _this->_impl_.threshold_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.threshold_param_);
      } else {
        _this->_impl_.threshold_param_->MergeFrom(*from._impl_.threshold_param_);
      }
    }
  }
  cached_has_bits = from._impl_._has_bits_[1];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(from._impl_.window_data_param_ != nullptr);
      if (_this->_impl_.window_data_param_ == nullptr) {
        _this->_impl_.window_data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.window_data_param_);
      } else {
        _this->_impl_.window_data_param_->MergeFrom(*from._impl_.window_data_param_);
      }
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(from._impl_.python_param_ != nullptr);
      if (_this->_impl_.python_param_ == nullptr) {
        _this->_impl_.python_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.python_param_);
      } else {
        _this->_impl_.python_param_->MergeFrom(*from._impl_.python_param_);
      }
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      ABSL_DCHECK(from._impl_.prelu_param_ != nullptr);
      if (_this->_impl_.prelu_param_ == nullptr) {
        _this->_impl_.prelu_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.prelu_param_);
      } else {
        _this->_impl_.prelu_param_->MergeFrom(*from._impl_.prelu_param_);
      }
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      ABSL_DCHECK(from._impl_.spp_param_ != nullptr);
      if (_this->_impl_.spp_param_ == nullptr) {
        _this->_impl_.spp_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.spp_param_);
      } else {
        _this->_impl_.spp_param_->MergeFrom(*from._impl_.spp_param_);
      }
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      ABSL_DCHECK(from._impl_.reshape_param_ != nullptr);
      if (_this->_impl_.reshape_param_ == nullptr) {
        _this->_impl_.reshape_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reshape_param_);
      } else {
        _this->_impl_.reshape_param_->MergeFrom(*from._impl_.reshape_param_);
      }
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      ABSL_DCHECK(from._impl_.log_param_ != nullptr);
      if (_this->_impl_.log_param_ == nullptr) {
        _this->_impl_.log_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.log_param_);
      } else {
        _this->_impl_.log_param_->MergeFrom(*from._impl_.log_param_);
      }
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      ABSL_DCHECK(from._impl_.flatten_param_ != nullptr);
      if (_this->_impl_.flatten_param_ == nullptr) {
        _this->_impl_.flatten_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.flatten_param_);
      } else {
        _this->_impl_.flatten_param_->MergeFrom(*from._impl_.flatten_param_);
      }
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      ABSL_DCHECK(from._impl_.reduction_param_ != nullptr);
      if (_this->_impl_.reduction_param_ == nullptr) {
        _this->_impl_.reduction_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.reduction_param_);
      } else {
        _this->_impl_.reduction_param_->MergeFrom(*from._impl_.reduction_param_);
      }
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      ABSL_DCHECK(from._impl_.embed_param_ != nullptr);
      if (_this->_impl_.embed_param_ == nullptr) {
        _this->_impl_.embed_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.embed_param_);
      } else {
        _this->_impl_.embed_param_->MergeFrom(*from._impl_.embed_param_);
      }
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      ABSL_DCHECK(from._impl_.tile_param_ != nullptr);
      if (_this->_impl_.tile_param_ == nullptr) {
        _this->_impl_.tile_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.tile_param_);
      } else {
        _this->_impl_.tile_param_->MergeFrom(*from._impl_.tile_param_);
      }
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      ABSL_DCHECK(from._impl_.batch_norm_param_ != nullptr);
      if (_this->_impl_.batch_norm_param_ == nullptr) {
        _this->_impl_.batch_norm_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.batch_norm_param_);
      } else {
        _this->_impl_.batch_norm_param_->MergeFrom(*from._impl_.batch_norm_param_);
      }
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      ABSL_DCHECK(from._impl_.elu_param_ != nullptr);
      if (_this->_impl_.elu_param_ == nullptr) {
        _this->_impl_.elu_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.elu_param_);
      } else {
        _this->_impl_.elu_param_->MergeFrom(*from._impl_.elu_param_);
      }
    }
    if ((cached_has_bits & 0x00001000U) != 0) {
      ABSL_DCHECK(from._impl_.bias_param_ != nullptr);
      if (_this->_impl_.bias_param_ == nullptr) {
        _this->_impl_.bias_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_param_);
      } else {
        _this->_impl_.bias_param_->MergeFrom(*from._impl_.bias_param_);
      }
    }
    if ((cached_has_bits & 0x00002000U) != 0) {
      ABSL_DCHECK(from._impl_.scale_param_ != nullptr);
      if (_this->_impl_.scale_param_ == nullptr) {
        _this->_impl_.scale_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.scale_param_);
      } else {
        _this->_impl_.scale_param_->MergeFrom(*from._impl_.scale_param_);
      }
    }
    if ((cached_has_bits & 0x00004000U) != 0) {
      ABSL_DCHECK(from._impl_.input_param_ != nullptr);
      if (_this->_impl_.input_param_ == nullptr) {
        _this->_impl_.input_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.input_param_);
      } else {
        _this->_impl_.input_param_->MergeFrom(*from._impl_.input_param_);
      }
    }
    if ((cached_has_bits & 0x00008000U) != 0) {
      ABSL_DCHECK(from._impl_.crop_param_ != nullptr);
      if (_this->_impl_.crop_param_ == nullptr) {
        _this->_impl_.crop_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.crop_param_);
      } else {
        _this->_impl_.crop_param_->MergeFrom(*from._impl_.crop_param_);
      }
    }
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    if ((cached_has_bits & 0x00010000U) != 0) {
      ABSL_DCHECK(from._impl_.parameter_param_ != nullptr);
      if (_this->_impl_.parameter_param_ == nullptr) {
        _this->_impl_.parameter_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.parameter_param_);
      } else {
        _this->_impl_.parameter_param_->MergeFrom(*from._impl_.parameter_param_);
      }
    }
    if ((cached_has_bits & 0x00020000U) != 0) {
      ABSL_DCHECK(from._impl_.recurrent_param_ != nullptr);
      if (_this->_impl_.recurrent_param_ == nullptr) {
        _this->_impl_.recurrent_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.recurrent_param_);
      } else {
        _this->_impl_.recurrent_param_->MergeFrom(*from._impl_.recurrent_param_);
      }
    }
    if ((cached_has_bits & 0x00040000U) != 0) {
      ABSL_DCHECK(from._impl_.detection_output_param_ != nullptr);
      if (_this->_impl_.detection_output_param_ == nullptr) {
        _this->_impl_.detection_output_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.detection_output_param_);
      } else {
        _this->_impl_.detection_output_param_->MergeFrom(*from._impl_.detection_output_param_);
      }
    }
    if ((cached_has_bits & 0x00080000U) != 0) {
      ABSL_DCHECK(from._impl_.permute_param_ != nullptr);
      if (_this->_impl_.permute_param_ == nullptr) {
        _this->_impl_.permute_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.permute_param_);
      } else {
        _this->_impl_.permute_param_->MergeFrom(*from._impl_.permute_param_);
      }
    }
    if ((cached_has_bits & 0x00100000U) != 0) {
      ABSL_DCHECK(from._impl_.norm_param_ != nullptr);
      if (_this->_impl_.norm_param_ == nullptr) {
        _this->_impl_.norm_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.norm_param_);
      } else {
        _this->_impl_.norm_param_->MergeFrom(*from._impl_.norm_param_);
      }
    }
    if ((cached_has_bits & 0x00200000U) != 0) {
      ABSL_DCHECK(from._impl_.prior_box_param_ != nullptr);
      if (_this->_impl_.prior_box_param_ == nullptr) {
        _this->_impl_.prior_box_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.prior_box_param_);
      } else {
        _this->_impl_.prior_box_param_->MergeFrom(*from._impl_.prior_box_param_);
      }
    }
    if ((cached_has_bits & 0x00400000U) != 0) {
      ABSL_DCHECK(from._impl_.proposal_param_ != nullptr);
      if (_this->_impl_.proposal_param_ == nullptr) {
        _this->_impl_.proposal_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.proposal_param_);
      } else {
        _this->_impl_.proposal_param_->MergeFrom(*from._impl_.proposal_param_);
      }
    }
    if ((cached_has_bits & 0x00800000U) != 0) {
      ABSL_DCHECK(from._impl_.psroi_pooling_param_ != nullptr);
      if (_this->_impl_.psroi_pooling_param_ == nullptr) {
        _this->_impl_.psroi_pooling_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.psroi_pooling_param_);
      } else {
        _this->_impl_.psroi_pooling_param_->MergeFrom(*from._impl_.psroi_pooling_param_);
      }
    }
  }
  if ((cached_has_bits & 0x01000000U) != 0) {
    ABSL_DCHECK(from._impl_.roi_pooling_param_ != nullptr);
    if (_this->_impl_.roi_pooling_param_ == nullptr) {
      _this->_impl_.roi_pooling_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.roi_pooling_param_);
    } else {
      _this->_impl_.roi_pooling_param_->MergeFrom(*from._impl_.roi_pooling_param_);
    }
  }
  _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void LayerParameter::CopyFrom(const LayerParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.LayerParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool LayerParameter::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const LayerParameter&>(msg);
  if ((this_._impl_._has_bits_[1] & 0x00800000U) != 0) {
    if (!this_._impl_.psroi_pooling_param_->IsInitialized()) return false;
  }
  return true;
}

void LayerParameter::InternalSwap(LayerParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
  _impl_.bottom_.InternalSwap(&other->_impl_.bottom_);
  _impl_.top_.InternalSwap(&other->_impl_.top_);
  _impl_.loss_weight_.InternalSwap(&other->_impl_.loss_weight_);
  _impl_.param_.InternalSwap(&other->_impl_.param_);
  _impl_.blobs_.InternalSwap(&other->_impl_.blobs_);
  _impl_.include_.InternalSwap(&other->_impl_.include_);
  _impl_.exclude_.InternalSwap(&other->_impl_.exclude_);
  _impl_.propagate_down_.InternalSwap(&other->_impl_.propagate_down_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.type_, &other->_impl_.type_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.roi_pooling_param_)
      + sizeof(LayerParameter::_impl_.roi_pooling_param_)
      - PROTOBUF_FIELD_OFFSET(LayerParameter, _impl_.transform_param_)>(
          reinterpret_cast<char*>(&_impl_.transform_param_),
          reinterpret_cast<char*>(&other->_impl_.transform_param_));
}

::google::protobuf::Metadata LayerParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class TransformationParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<TransformationParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_._has_bits_);
};

TransformationParameter::TransformationParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TransformationParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.TransformationParameter)
}
PROTOBUF_NDEBUG_INLINE TransformationParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::TransformationParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        mean_value_{visibility, arena, from.mean_value_},
        mean_file_(arena, from.mean_file_) {}

TransformationParameter::TransformationParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const TransformationParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TransformationParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  TransformationParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, crop_size_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, crop_size_),
           offsetof(Impl_, scale_) -
               offsetof(Impl_, crop_size_) +
               sizeof(Impl_::scale_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.TransformationParameter)
}
PROTOBUF_NDEBUG_INLINE TransformationParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        mean_value_{visibility, arena},
        mean_file_(arena),
        scale_{1} {}

inline void TransformationParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, crop_size_),
           0,
           offsetof(Impl_, force_gray_) -
               offsetof(Impl_, crop_size_) +
               sizeof(Impl_::force_gray_));
}
TransformationParameter::~TransformationParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.TransformationParameter)
  SharedDtor(*this);
}
inline void TransformationParameter::SharedDtor(MessageLite& self) {
  TransformationParameter& this_ = static_cast<TransformationParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.mean_file_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL TransformationParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TransformationParameter(arena);
}
constexpr auto TransformationParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.mean_value_) +
          decltype(TransformationParameter::_impl_.mean_value_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(TransformationParameter), alignof(TransformationParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&TransformationParameter::PlacementNew_,
                                 sizeof(TransformationParameter),
                                 alignof(TransformationParameter));
  }
}
constexpr auto TransformationParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_TransformationParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &TransformationParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TransformationParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TransformationParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TransformationParameter>(), &TransformationParameter::ByteSizeLong,
              &TransformationParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_._cached_size_),
          false,
      },
      &TransformationParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TransformationParameter_class_data_ =
        TransformationParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TransformationParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TransformationParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TransformationParameter_class_data_.tc_table);
  return TransformationParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 7, 0, 54, 2>
TransformationParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_._has_bits_),
    0, // no _extensions_
    7, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967168,  // skipmap
    offsetof(decltype(_table_), field_entries),
    7,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    TransformationParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::TransformationParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional float scale = 1 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {13, 5, 0, PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.scale_)}},
    // optional bool mirror = 2 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(TransformationParameter, _impl_.mirror_), 2>(),
     {16, 2, 0, PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.mirror_)}},
    // optional uint32 crop_size = 3 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TransformationParameter, _impl_.crop_size_), 1>(),
     {24, 1, 0, PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.crop_size_)}},
    // optional string mean_file = 4;
    {::_pbi::TcParser::FastSS1,
     {34, 0, 0, PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.mean_file_)}},
    // repeated float mean_value = 5;
    {::_pbi::TcParser::FastF32R1,
     {45, 63, 0, PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.mean_value_)}},
    // optional bool force_color = 6 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(TransformationParameter, _impl_.force_color_), 3>(),
     {48, 3, 0, PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.force_color_)}},
    // optional bool force_gray = 7 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(TransformationParameter, _impl_.force_gray_), 4>(),
     {56, 4, 0, PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.force_gray_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float scale = 1 [default = 1];
    {PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.scale_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional bool mirror = 2 [default = false];
    {PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.mirror_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional uint32 crop_size = 3 [default = 0];
    {PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.crop_size_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional string mean_file = 4;
    {PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.mean_file_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // repeated float mean_value = 5;
    {PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.mean_value_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // optional bool force_color = 6 [default = false];
    {PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.force_color_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional bool force_gray = 7 [default = false];
    {PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.force_gray_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  // no aux_entries
  {{
    "\44\0\0\0\11\0\0\0"
    "opencv_caffe.TransformationParameter"
    "mean_file"
  }},
};
PROTOBUF_NOINLINE void TransformationParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.TransformationParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.mean_value_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _impl_.mean_file_.ClearNonDefaultToEmpty();
  }
  if ((cached_has_bits & 0x0000003eU) != 0) {
    ::memset(&_impl_.crop_size_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.force_gray_) -
        reinterpret_cast<char*>(&_impl_.crop_size_)) + sizeof(_impl_.force_gray_));
    _impl_.scale_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL TransformationParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const TransformationParameter& this_ = static_cast<const TransformationParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL TransformationParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const TransformationParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.TransformationParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float scale = 1 [default = 1];
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_scale(), target);
  }

  // optional bool mirror = 2 [default = false];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_mirror(), target);
  }

  // optional uint32 crop_size = 3 [default = 0];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        3, this_._internal_crop_size(), target);
  }

  // optional string mean_file = 4;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_mean_file();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.TransformationParameter.mean_file");
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  // repeated float mean_value = 5;
  for (int i = 0, n = this_._internal_mean_value_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        5, this_._internal_mean_value().Get(i), target);
  }

  // optional bool force_color = 6 [default = false];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_force_color(), target);
  }

  // optional bool force_gray = 7 [default = false];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        7, this_._internal_force_gray(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.TransformationParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t TransformationParameter::ByteSizeLong(const MessageLite& base) {
  const TransformationParameter& this_ = static_cast<const TransformationParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t TransformationParameter::ByteSizeLong() const {
  const TransformationParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.TransformationParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated float mean_value = 5;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_mean_value_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_mean_value_size());
      total_size += tag_size + data_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000020U & cached_has_bits) * 5;
  total_size += ::absl::popcount(0x0000001cU & cached_has_bits) * 2;
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional string mean_file = 4;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_mean_file());
    }
    // optional uint32 crop_size = 3 [default = 0];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_crop_size());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void TransformationParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<TransformationParameter*>(&to_msg);
  auto& from = static_cast<const TransformationParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.TransformationParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_mean_value()->MergeFrom(from._internal_mean_value());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000003fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_mean_file(from._internal_mean_file());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.crop_size_ = from._impl_.crop_size_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.mirror_ = from._impl_.mirror_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.force_color_ = from._impl_.force_color_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.force_gray_ = from._impl_.force_gray_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.scale_ = from._impl_.scale_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void TransformationParameter::CopyFrom(const TransformationParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.TransformationParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void TransformationParameter::InternalSwap(TransformationParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.mean_value_.InternalSwap(&other->_impl_.mean_value_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.mean_file_, &other->_impl_.mean_file_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.scale_)
      + sizeof(TransformationParameter::_impl_.scale_)
      - PROTOBUF_FIELD_OFFSET(TransformationParameter, _impl_.crop_size_)>(
          reinterpret_cast<char*>(&_impl_.crop_size_),
          reinterpret_cast<char*>(&other->_impl_.crop_size_));
}

::google::protobuf::Metadata TransformationParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class LossParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<LossParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(LossParameter, _impl_._has_bits_);
};

LossParameter::LossParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LossParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.LossParameter)
}
LossParameter::LossParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LossParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LossParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE LossParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        normalization_{static_cast< ::opencv_caffe::LossParameter_NormalizationMode >(1)} {}

inline void LossParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, ignore_label_),
           0,
           offsetof(Impl_, normalize_) -
               offsetof(Impl_, ignore_label_) +
               sizeof(Impl_::normalize_));
}
LossParameter::~LossParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.LossParameter)
  SharedDtor(*this);
}
inline void LossParameter::SharedDtor(MessageLite& self) {
  LossParameter& this_ = static_cast<LossParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL LossParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LossParameter(arena);
}
constexpr auto LossParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LossParameter),
                                            alignof(LossParameter));
}
constexpr auto LossParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_LossParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &LossParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LossParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LossParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LossParameter>(), &LossParameter::ByteSizeLong,
              &LossParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LossParameter, _impl_._cached_size_),
          false,
      },
      &LossParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LossParameter_class_data_ =
        LossParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LossParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LossParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LossParameter_class_data_.tc_table);
  return LossParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 1, 0, 2>
LossParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(LossParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    LossParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::LossParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional int32 ignore_label = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LossParameter, _impl_.ignore_label_), 0>(),
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(LossParameter, _impl_.ignore_label_)}},
    // optional bool normalize = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LossParameter, _impl_.normalize_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(LossParameter, _impl_.normalize_)}},
    // optional .opencv_caffe.LossParameter.NormalizationMode normalization = 3 [default = VALID];
    {::_pbi::TcParser::FastEr0S1,
     {24, 2, 3, PROTOBUF_FIELD_OFFSET(LossParameter, _impl_.normalization_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 ignore_label = 1;
    {PROTOBUF_FIELD_OFFSET(LossParameter, _impl_.ignore_label_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional bool normalize = 2;
    {PROTOBUF_FIELD_OFFSET(LossParameter, _impl_.normalize_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional .opencv_caffe.LossParameter.NormalizationMode normalization = 3 [default = VALID];
    {PROTOBUF_FIELD_OFFSET(LossParameter, _impl_.normalization_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
  }},
  {{
      {0, 3},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void LossParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.LossParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    ::memset(&_impl_.ignore_label_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.normalize_) -
        reinterpret_cast<char*>(&_impl_.ignore_label_)) + sizeof(_impl_.normalize_));
    _impl_.normalization_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL LossParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const LossParameter& this_ = static_cast<const LossParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL LossParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const LossParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.LossParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 ignore_label = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_ignore_label(), target);
  }

  // optional bool normalize = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_normalize(), target);
  }

  // optional .opencv_caffe.LossParameter.NormalizationMode normalization = 3 [default = VALID];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        3, this_._internal_normalization(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.LossParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t LossParameter::ByteSizeLong(const MessageLite& base) {
  const LossParameter& this_ = static_cast<const LossParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t LossParameter::ByteSizeLong() const {
  const LossParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.LossParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000002U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x00000005U) != 0) {
    // optional int32 ignore_label = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_ignore_label());
    }
    // optional .opencv_caffe.LossParameter.NormalizationMode normalization = 3 [default = VALID];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_normalization());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void LossParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<LossParameter*>(&to_msg);
  auto& from = static_cast<const LossParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.LossParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.ignore_label_ = from._impl_.ignore_label_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.normalize_ = from._impl_.normalize_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.normalization_ = from._impl_.normalization_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void LossParameter::CopyFrom(const LossParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.LossParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void LossParameter::InternalSwap(LossParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LossParameter, _impl_.normalization_)
      + sizeof(LossParameter::_impl_.normalization_)
      - PROTOBUF_FIELD_OFFSET(LossParameter, _impl_.ignore_label_)>(
          reinterpret_cast<char*>(&_impl_.ignore_label_),
          reinterpret_cast<char*>(&other->_impl_.ignore_label_));
}

::google::protobuf::Metadata LossParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class AccuracyParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<AccuracyParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(AccuracyParameter, _impl_._has_bits_);
};

AccuracyParameter::AccuracyParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AccuracyParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.AccuracyParameter)
}
AccuracyParameter::AccuracyParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const AccuracyParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, AccuracyParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE AccuracyParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        top_k_{1u},
        axis_{1} {}

inline void AccuracyParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.ignore_label_ = {};
}
AccuracyParameter::~AccuracyParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.AccuracyParameter)
  SharedDtor(*this);
}
inline void AccuracyParameter::SharedDtor(MessageLite& self) {
  AccuracyParameter& this_ = static_cast<AccuracyParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL AccuracyParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) AccuracyParameter(arena);
}
constexpr auto AccuracyParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(AccuracyParameter),
                                            alignof(AccuracyParameter));
}
constexpr auto AccuracyParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_AccuracyParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &AccuracyParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<AccuracyParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &AccuracyParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<AccuracyParameter>(), &AccuracyParameter::ByteSizeLong,
              &AccuracyParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(AccuracyParameter, _impl_._cached_size_),
          false,
      },
      &AccuracyParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull AccuracyParameter_class_data_ =
        AccuracyParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
AccuracyParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&AccuracyParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(AccuracyParameter_class_data_.tc_table);
  return AccuracyParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
AccuracyParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(AccuracyParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    AccuracyParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::AccuracyParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional uint32 top_k = 1 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(AccuracyParameter, _impl_.top_k_), 1>(),
     {8, 1, 0, PROTOBUF_FIELD_OFFSET(AccuracyParameter, _impl_.top_k_)}},
    // optional int32 axis = 2 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(AccuracyParameter, _impl_.axis_), 2>(),
     {16, 2, 0, PROTOBUF_FIELD_OFFSET(AccuracyParameter, _impl_.axis_)}},
    // optional int32 ignore_label = 3;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(AccuracyParameter, _impl_.ignore_label_), 0>(),
     {24, 0, 0, PROTOBUF_FIELD_OFFSET(AccuracyParameter, _impl_.ignore_label_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 top_k = 1 [default = 1];
    {PROTOBUF_FIELD_OFFSET(AccuracyParameter, _impl_.top_k_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional int32 axis = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(AccuracyParameter, _impl_.axis_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 ignore_label = 3;
    {PROTOBUF_FIELD_OFFSET(AccuracyParameter, _impl_.ignore_label_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void AccuracyParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.AccuracyParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    _impl_.ignore_label_ = 0;
    _impl_.top_k_ = 1u;
    _impl_.axis_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL AccuracyParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const AccuracyParameter& this_ = static_cast<const AccuracyParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL AccuracyParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const AccuracyParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.AccuracyParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 top_k = 1 [default = 1];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_top_k(), target);
  }

  // optional int32 axis = 2 [default = 1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_axis(), target);
  }

  // optional int32 ignore_label = 3;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_ignore_label(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.AccuracyParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t AccuracyParameter::ByteSizeLong(const MessageLite& base) {
  const AccuracyParameter& this_ = static_cast<const AccuracyParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t AccuracyParameter::ByteSizeLong() const {
  const AccuracyParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.AccuracyParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    // optional int32 ignore_label = 3;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_ignore_label());
    }
    // optional uint32 top_k = 1 [default = 1];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_top_k());
    }
    // optional int32 axis = 2 [default = 1];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void AccuracyParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<AccuracyParameter*>(&to_msg);
  auto& from = static_cast<const AccuracyParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.AccuracyParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.ignore_label_ = from._impl_.ignore_label_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.top_k_ = from._impl_.top_k_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void AccuracyParameter::CopyFrom(const AccuracyParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.AccuracyParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void AccuracyParameter::InternalSwap(AccuracyParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(AccuracyParameter, _impl_.axis_)
      + sizeof(AccuracyParameter::_impl_.axis_)
      - PROTOBUF_FIELD_OFFSET(AccuracyParameter, _impl_.ignore_label_)>(
          reinterpret_cast<char*>(&_impl_.ignore_label_),
          reinterpret_cast<char*>(&other->_impl_.ignore_label_));
}

::google::protobuf::Metadata AccuracyParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ArgMaxParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ArgMaxParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ArgMaxParameter, _impl_._has_bits_);
};

ArgMaxParameter::ArgMaxParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ArgMaxParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ArgMaxParameter)
}
ArgMaxParameter::ArgMaxParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ArgMaxParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ArgMaxParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ArgMaxParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        top_k_{1u} {}

inline void ArgMaxParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, out_max_val_),
           0,
           offsetof(Impl_, axis_) -
               offsetof(Impl_, out_max_val_) +
               sizeof(Impl_::axis_));
}
ArgMaxParameter::~ArgMaxParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ArgMaxParameter)
  SharedDtor(*this);
}
inline void ArgMaxParameter::SharedDtor(MessageLite& self) {
  ArgMaxParameter& this_ = static_cast<ArgMaxParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ArgMaxParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ArgMaxParameter(arena);
}
constexpr auto ArgMaxParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ArgMaxParameter),
                                            alignof(ArgMaxParameter));
}
constexpr auto ArgMaxParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ArgMaxParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ArgMaxParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ArgMaxParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ArgMaxParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ArgMaxParameter>(), &ArgMaxParameter::ByteSizeLong,
              &ArgMaxParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ArgMaxParameter, _impl_._cached_size_),
          false,
      },
      &ArgMaxParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ArgMaxParameter_class_data_ =
        ArgMaxParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ArgMaxParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ArgMaxParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ArgMaxParameter_class_data_.tc_table);
  return ArgMaxParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
ArgMaxParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ArgMaxParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    ArgMaxParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ArgMaxParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional bool out_max_val = 1 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(ArgMaxParameter, _impl_.out_max_val_), 0>(),
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(ArgMaxParameter, _impl_.out_max_val_)}},
    // optional uint32 top_k = 2 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ArgMaxParameter, _impl_.top_k_), 2>(),
     {16, 2, 0, PROTOBUF_FIELD_OFFSET(ArgMaxParameter, _impl_.top_k_)}},
    // optional int32 axis = 3;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ArgMaxParameter, _impl_.axis_), 1>(),
     {24, 1, 0, PROTOBUF_FIELD_OFFSET(ArgMaxParameter, _impl_.axis_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional bool out_max_val = 1 [default = false];
    {PROTOBUF_FIELD_OFFSET(ArgMaxParameter, _impl_.out_max_val_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional uint32 top_k = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ArgMaxParameter, _impl_.top_k_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional int32 axis = 3;
    {PROTOBUF_FIELD_OFFSET(ArgMaxParameter, _impl_.axis_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void ArgMaxParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ArgMaxParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    ::memset(&_impl_.out_max_val_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.axis_) -
        reinterpret_cast<char*>(&_impl_.out_max_val_)) + sizeof(_impl_.axis_));
    _impl_.top_k_ = 1u;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ArgMaxParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ArgMaxParameter& this_ = static_cast<const ArgMaxParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ArgMaxParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ArgMaxParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ArgMaxParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bool out_max_val = 1 [default = false];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        1, this_._internal_out_max_val(), target);
  }

  // optional uint32 top_k = 2 [default = 1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_top_k(), target);
  }

  // optional int32 axis = 3;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_axis(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ArgMaxParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ArgMaxParameter::ByteSizeLong(const MessageLite& base) {
  const ArgMaxParameter& this_ = static_cast<const ArgMaxParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ArgMaxParameter::ByteSizeLong() const {
  const ArgMaxParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ArgMaxParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000001U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x00000006U) != 0) {
    // optional int32 axis = 3;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
    // optional uint32 top_k = 2 [default = 1];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_top_k());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ArgMaxParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ArgMaxParameter*>(&to_msg);
  auto& from = static_cast<const ArgMaxParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ArgMaxParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.out_max_val_ = from._impl_.out_max_val_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.top_k_ = from._impl_.top_k_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ArgMaxParameter::CopyFrom(const ArgMaxParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ArgMaxParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ArgMaxParameter::InternalSwap(ArgMaxParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ArgMaxParameter, _impl_.top_k_)
      + sizeof(ArgMaxParameter::_impl_.top_k_)
      - PROTOBUF_FIELD_OFFSET(ArgMaxParameter, _impl_.out_max_val_)>(
          reinterpret_cast<char*>(&_impl_.out_max_val_),
          reinterpret_cast<char*>(&other->_impl_.out_max_val_));
}

::google::protobuf::Metadata ArgMaxParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ConcatParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ConcatParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ConcatParameter, _impl_._has_bits_);
};

ConcatParameter::ConcatParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ConcatParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ConcatParameter)
}
ConcatParameter::ConcatParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ConcatParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ConcatParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ConcatParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        concat_dim_{1u},
        axis_{1} {}

inline void ConcatParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ConcatParameter::~ConcatParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ConcatParameter)
  SharedDtor(*this);
}
inline void ConcatParameter::SharedDtor(MessageLite& self) {
  ConcatParameter& this_ = static_cast<ConcatParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ConcatParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ConcatParameter(arena);
}
constexpr auto ConcatParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ConcatParameter),
                                            alignof(ConcatParameter));
}
constexpr auto ConcatParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ConcatParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ConcatParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ConcatParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ConcatParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ConcatParameter>(), &ConcatParameter::ByteSizeLong,
              &ConcatParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ConcatParameter, _impl_._cached_size_),
          false,
      },
      &ConcatParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ConcatParameter_class_data_ =
        ConcatParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ConcatParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ConcatParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ConcatParameter_class_data_.tc_table);
  return ConcatParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 0, 0, 2>
ConcatParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ConcatParameter, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    ConcatParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ConcatParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional int32 axis = 2 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConcatParameter, _impl_.axis_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(ConcatParameter, _impl_.axis_)}},
    // optional uint32 concat_dim = 1 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConcatParameter, _impl_.concat_dim_), 0>(),
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(ConcatParameter, _impl_.concat_dim_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 concat_dim = 1 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ConcatParameter, _impl_.concat_dim_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional int32 axis = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ConcatParameter, _impl_.axis_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void ConcatParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ConcatParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    _impl_.concat_dim_ = 1u;
    _impl_.axis_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ConcatParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ConcatParameter& this_ = static_cast<const ConcatParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ConcatParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ConcatParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ConcatParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 concat_dim = 1 [default = 1];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_concat_dim(), target);
  }

  // optional int32 axis = 2 [default = 1];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_axis(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ConcatParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ConcatParameter::ByteSizeLong(const MessageLite& base) {
  const ConcatParameter& this_ = static_cast<const ConcatParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ConcatParameter::ByteSizeLong() const {
  const ConcatParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ConcatParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional uint32 concat_dim = 1 [default = 1];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_concat_dim());
    }
    // optional int32 axis = 2 [default = 1];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ConcatParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ConcatParameter*>(&to_msg);
  auto& from = static_cast<const ConcatParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ConcatParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.concat_dim_ = from._impl_.concat_dim_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ConcatParameter::CopyFrom(const ConcatParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ConcatParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ConcatParameter::InternalSwap(ConcatParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ConcatParameter, _impl_.axis_)
      + sizeof(ConcatParameter::_impl_.axis_)
      - PROTOBUF_FIELD_OFFSET(ConcatParameter, _impl_.concat_dim_)>(
          reinterpret_cast<char*>(&_impl_.concat_dim_),
          reinterpret_cast<char*>(&other->_impl_.concat_dim_));
}

::google::protobuf::Metadata ConcatParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class BatchNormParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<BatchNormParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_._has_bits_);
};

BatchNormParameter::BatchNormParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, BatchNormParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.BatchNormParameter)
}
BatchNormParameter::BatchNormParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const BatchNormParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, BatchNormParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE BatchNormParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        moving_average_fraction_{0.999f},
        eps_{1e-05f} {}

inline void BatchNormParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, use_global_stats_),
           0,
           offsetof(Impl_, scale_bias_) -
               offsetof(Impl_, use_global_stats_) +
               sizeof(Impl_::scale_bias_));
}
BatchNormParameter::~BatchNormParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.BatchNormParameter)
  SharedDtor(*this);
}
inline void BatchNormParameter::SharedDtor(MessageLite& self) {
  BatchNormParameter& this_ = static_cast<BatchNormParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL BatchNormParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) BatchNormParameter(arena);
}
constexpr auto BatchNormParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(BatchNormParameter),
                                            alignof(BatchNormParameter));
}
constexpr auto BatchNormParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_BatchNormParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &BatchNormParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<BatchNormParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &BatchNormParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<BatchNormParameter>(), &BatchNormParameter::ByteSizeLong,
              &BatchNormParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_._cached_size_),
          false,
      },
      &BatchNormParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull BatchNormParameter_class_data_ =
        BatchNormParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
BatchNormParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&BatchNormParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(BatchNormParameter_class_data_.tc_table);
  return BatchNormParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 4, 0, 0, 2>
BatchNormParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_._has_bits_),
    0, // no _extensions_
    7, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967224,  // skipmap
    offsetof(decltype(_table_), field_entries),
    4,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    BatchNormParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::BatchNormParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional bool use_global_stats = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(BatchNormParameter, _impl_.use_global_stats_), 0>(),
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_.use_global_stats_)}},
    // optional float moving_average_fraction = 2 [default = 0.999];
    {::_pbi::TcParser::FastF32S1,
     {21, 2, 0, PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_.moving_average_fraction_)}},
    // optional float eps = 3 [default = 1e-05];
    {::_pbi::TcParser::FastF32S1,
     {29, 3, 0, PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_.eps_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    // optional bool scale_bias = 7 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(BatchNormParameter, _impl_.scale_bias_), 1>(),
     {56, 1, 0, PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_.scale_bias_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional bool use_global_stats = 1;
    {PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_.use_global_stats_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional float moving_average_fraction = 2 [default = 0.999];
    {PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_.moving_average_fraction_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float eps = 3 [default = 1e-05];
    {PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_.eps_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional bool scale_bias = 7 [default = false];
    {PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_.scale_bias_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void BatchNormParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.BatchNormParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  ::memset(&_impl_.use_global_stats_, 0, static_cast<::size_t>(
      reinterpret_cast<char*>(&_impl_.scale_bias_) -
      reinterpret_cast<char*>(&_impl_.use_global_stats_)) + sizeof(_impl_.scale_bias_));
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000000cU) != 0) {
    _impl_.moving_average_fraction_ = 0.999f;
    _impl_.eps_ = 1e-05f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL BatchNormParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const BatchNormParameter& this_ = static_cast<const BatchNormParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL BatchNormParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const BatchNormParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.BatchNormParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bool use_global_stats = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        1, this_._internal_use_global_stats(), target);
  }

  // optional float moving_average_fraction = 2 [default = 0.999];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_moving_average_fraction(), target);
  }

  // optional float eps = 3 [default = 1e-05];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_eps(), target);
  }

  // optional bool scale_bias = 7 [default = false];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        7, this_._internal_scale_bias(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.BatchNormParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t BatchNormParameter::ByteSizeLong(const MessageLite& base) {
  const BatchNormParameter& this_ = static_cast<const BatchNormParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t BatchNormParameter::ByteSizeLong() const {
  const BatchNormParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.BatchNormParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x0000000cU & cached_has_bits) * 5;
  total_size += ::absl::popcount(0x00000003U & cached_has_bits) * 2;
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void BatchNormParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<BatchNormParameter*>(&to_msg);
  auto& from = static_cast<const BatchNormParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.BatchNormParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000000fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.use_global_stats_ = from._impl_.use_global_stats_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.scale_bias_ = from._impl_.scale_bias_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.moving_average_fraction_ = from._impl_.moving_average_fraction_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.eps_ = from._impl_.eps_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void BatchNormParameter::CopyFrom(const BatchNormParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.BatchNormParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void BatchNormParameter::InternalSwap(BatchNormParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_.eps_)
      + sizeof(BatchNormParameter::_impl_.eps_)
      - PROTOBUF_FIELD_OFFSET(BatchNormParameter, _impl_.use_global_stats_)>(
          reinterpret_cast<char*>(&_impl_.use_global_stats_),
          reinterpret_cast<char*>(&other->_impl_.use_global_stats_));
}

::google::protobuf::Metadata BatchNormParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class BiasParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<BiasParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(BiasParameter, _impl_._has_bits_);
};

BiasParameter::BiasParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, BiasParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.BiasParameter)
}
PROTOBUF_NDEBUG_INLINE BiasParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::BiasParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

BiasParameter::BiasParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const BiasParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, BiasParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  BiasParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.filler_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.filler_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, axis_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, axis_),
           offsetof(Impl_, num_axes_) -
               offsetof(Impl_, axis_) +
               sizeof(Impl_::num_axes_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.BiasParameter)
}
PROTOBUF_NDEBUG_INLINE BiasParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        axis_{1},
        num_axes_{1} {}

inline void BiasParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.filler_ = {};
}
BiasParameter::~BiasParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.BiasParameter)
  SharedDtor(*this);
}
inline void BiasParameter::SharedDtor(MessageLite& self) {
  BiasParameter& this_ = static_cast<BiasParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.filler_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL BiasParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) BiasParameter(arena);
}
constexpr auto BiasParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(BiasParameter),
                                            alignof(BiasParameter));
}
constexpr auto BiasParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_BiasParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &BiasParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<BiasParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &BiasParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<BiasParameter>(), &BiasParameter::ByteSizeLong,
              &BiasParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(BiasParameter, _impl_._cached_size_),
          false,
      },
      &BiasParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull BiasParameter_class_data_ =
        BiasParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
BiasParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&BiasParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(BiasParameter_class_data_.tc_table);
  return BiasParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 1, 0, 2>
BiasParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(BiasParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    BiasParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::BiasParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional int32 axis = 1 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BiasParameter, _impl_.axis_), 1>(),
     {8, 1, 0, PROTOBUF_FIELD_OFFSET(BiasParameter, _impl_.axis_)}},
    // optional int32 num_axes = 2 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(BiasParameter, _impl_.num_axes_), 2>(),
     {16, 2, 0, PROTOBUF_FIELD_OFFSET(BiasParameter, _impl_.num_axes_)}},
    // optional .opencv_caffe.FillerParameter filler = 3;
    {::_pbi::TcParser::FastMtS1,
     {26, 0, 0, PROTOBUF_FIELD_OFFSET(BiasParameter, _impl_.filler_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 axis = 1 [default = 1];
    {PROTOBUF_FIELD_OFFSET(BiasParameter, _impl_.axis_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 num_axes = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(BiasParameter, _impl_.num_axes_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional .opencv_caffe.FillerParameter filler = 3;
    {PROTOBUF_FIELD_OFFSET(BiasParameter, _impl_.filler_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void BiasParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.BiasParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(_impl_.filler_ != nullptr);
      _impl_.filler_->Clear();
    }
    _impl_.axis_ = 1;
    _impl_.num_axes_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL BiasParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const BiasParameter& this_ = static_cast<const BiasParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL BiasParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const BiasParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.BiasParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 axis = 1 [default = 1];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_axis(), target);
  }

  // optional int32 num_axes = 2 [default = 1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_num_axes(), target);
  }

  // optional .opencv_caffe.FillerParameter filler = 3;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.filler_, this_._impl_.filler_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.BiasParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t BiasParameter::ByteSizeLong(const MessageLite& base) {
  const BiasParameter& this_ = static_cast<const BiasParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t BiasParameter::ByteSizeLong() const {
  const BiasParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.BiasParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    // optional .opencv_caffe.FillerParameter filler = 3;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.filler_);
    }
    // optional int32 axis = 1 [default = 1];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
    // optional int32 num_axes = 2 [default = 1];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_num_axes());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void BiasParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<BiasParameter*>(&to_msg);
  auto& from = static_cast<const BiasParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.BiasParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(from._impl_.filler_ != nullptr);
      if (_this->_impl_.filler_ == nullptr) {
        _this->_impl_.filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.filler_);
      } else {
        _this->_impl_.filler_->MergeFrom(*from._impl_.filler_);
      }
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.num_axes_ = from._impl_.num_axes_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void BiasParameter::CopyFrom(const BiasParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.BiasParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void BiasParameter::InternalSwap(BiasParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(BiasParameter, _impl_.num_axes_)
      + sizeof(BiasParameter::_impl_.num_axes_)
      - PROTOBUF_FIELD_OFFSET(BiasParameter, _impl_.filler_)>(
          reinterpret_cast<char*>(&_impl_.filler_),
          reinterpret_cast<char*>(&other->_impl_.filler_));
}

::google::protobuf::Metadata BiasParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ContrastiveLossParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ContrastiveLossParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ContrastiveLossParameter, _impl_._has_bits_);
};

ContrastiveLossParameter::ContrastiveLossParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ContrastiveLossParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ContrastiveLossParameter)
}
ContrastiveLossParameter::ContrastiveLossParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ContrastiveLossParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ContrastiveLossParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ContrastiveLossParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        margin_{1} {}

inline void ContrastiveLossParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.legacy_version_ = {};
}
ContrastiveLossParameter::~ContrastiveLossParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ContrastiveLossParameter)
  SharedDtor(*this);
}
inline void ContrastiveLossParameter::SharedDtor(MessageLite& self) {
  ContrastiveLossParameter& this_ = static_cast<ContrastiveLossParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ContrastiveLossParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ContrastiveLossParameter(arena);
}
constexpr auto ContrastiveLossParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ContrastiveLossParameter),
                                            alignof(ContrastiveLossParameter));
}
constexpr auto ContrastiveLossParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ContrastiveLossParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ContrastiveLossParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ContrastiveLossParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ContrastiveLossParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ContrastiveLossParameter>(), &ContrastiveLossParameter::ByteSizeLong,
              &ContrastiveLossParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ContrastiveLossParameter, _impl_._cached_size_),
          false,
      },
      &ContrastiveLossParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ContrastiveLossParameter_class_data_ =
        ContrastiveLossParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ContrastiveLossParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ContrastiveLossParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ContrastiveLossParameter_class_data_.tc_table);
  return ContrastiveLossParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 0, 0, 2>
ContrastiveLossParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ContrastiveLossParameter, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    ContrastiveLossParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ContrastiveLossParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional bool legacy_version = 2 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(ContrastiveLossParameter, _impl_.legacy_version_), 0>(),
     {16, 0, 0, PROTOBUF_FIELD_OFFSET(ContrastiveLossParameter, _impl_.legacy_version_)}},
    // optional float margin = 1 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {13, 1, 0, PROTOBUF_FIELD_OFFSET(ContrastiveLossParameter, _impl_.margin_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float margin = 1 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ContrastiveLossParameter, _impl_.margin_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional bool legacy_version = 2 [default = false];
    {PROTOBUF_FIELD_OFFSET(ContrastiveLossParameter, _impl_.legacy_version_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void ContrastiveLossParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ContrastiveLossParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    _impl_.legacy_version_ = false;
    _impl_.margin_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ContrastiveLossParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ContrastiveLossParameter& this_ = static_cast<const ContrastiveLossParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ContrastiveLossParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ContrastiveLossParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ContrastiveLossParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float margin = 1 [default = 1];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_margin(), target);
  }

  // optional bool legacy_version = 2 [default = false];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_legacy_version(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ContrastiveLossParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ContrastiveLossParameter::ByteSizeLong(const MessageLite& base) {
  const ContrastiveLossParameter& this_ = static_cast<const ContrastiveLossParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ContrastiveLossParameter::ByteSizeLong() const {
  const ContrastiveLossParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ContrastiveLossParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000002U & cached_has_bits) * 5;
  total_size += static_cast<bool>(0x00000001U & cached_has_bits) * 2;
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ContrastiveLossParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ContrastiveLossParameter*>(&to_msg);
  auto& from = static_cast<const ContrastiveLossParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ContrastiveLossParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.legacy_version_ = from._impl_.legacy_version_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.margin_ = from._impl_.margin_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ContrastiveLossParameter::CopyFrom(const ContrastiveLossParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ContrastiveLossParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ContrastiveLossParameter::InternalSwap(ContrastiveLossParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ContrastiveLossParameter, _impl_.margin_)
      + sizeof(ContrastiveLossParameter::_impl_.margin_)
      - PROTOBUF_FIELD_OFFSET(ContrastiveLossParameter, _impl_.legacy_version_)>(
          reinterpret_cast<char*>(&_impl_.legacy_version_),
          reinterpret_cast<char*>(&other->_impl_.legacy_version_));
}

::google::protobuf::Metadata ContrastiveLossParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ConvolutionParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ConvolutionParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_._has_bits_);
};

ConvolutionParameter::ConvolutionParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ConvolutionParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ConvolutionParameter)
}
PROTOBUF_NDEBUG_INLINE ConvolutionParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::ConvolutionParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        pad_{visibility, arena, from.pad_},
        kernel_size_{visibility, arena, from.kernel_size_},
        stride_{visibility, arena, from.stride_},
        dilation_{visibility, arena, from.dilation_} {}

ConvolutionParameter::ConvolutionParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ConvolutionParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ConvolutionParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ConvolutionParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.weight_filler_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_filler_)
                : nullptr;
  _impl_.bias_filler_ = ((cached_has_bits & 0x00000002U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, num_output_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, num_output_),
           offsetof(Impl_, group_) -
               offsetof(Impl_, num_output_) +
               sizeof(Impl_::group_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.ConvolutionParameter)
}
PROTOBUF_NDEBUG_INLINE ConvolutionParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        pad_{visibility, arena},
        kernel_size_{visibility, arena},
        stride_{visibility, arena},
        dilation_{visibility, arena},
        axis_{1},
        bias_term_{true},
        group_{1u} {}

inline void ConvolutionParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, weight_filler_),
           0,
           offsetof(Impl_, force_nd_im2col_) -
               offsetof(Impl_, weight_filler_) +
               sizeof(Impl_::force_nd_im2col_));
}
ConvolutionParameter::~ConvolutionParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ConvolutionParameter)
  SharedDtor(*this);
}
inline void ConvolutionParameter::SharedDtor(MessageLite& self) {
  ConvolutionParameter& this_ = static_cast<ConvolutionParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.weight_filler_;
  delete this_._impl_.bias_filler_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ConvolutionParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ConvolutionParameter(arena);
}
constexpr auto ConvolutionParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.pad_) +
          decltype(ConvolutionParameter::_impl_.pad_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.kernel_size_) +
          decltype(ConvolutionParameter::_impl_.kernel_size_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.stride_) +
          decltype(ConvolutionParameter::_impl_.stride_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.dilation_) +
          decltype(ConvolutionParameter::_impl_.dilation_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(ConvolutionParameter), alignof(ConvolutionParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&ConvolutionParameter::PlacementNew_,
                                 sizeof(ConvolutionParameter),
                                 alignof(ConvolutionParameter));
  }
}
constexpr auto ConvolutionParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ConvolutionParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ConvolutionParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ConvolutionParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ConvolutionParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ConvolutionParameter>(), &ConvolutionParameter::ByteSizeLong,
              &ConvolutionParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_._cached_size_),
          false,
      },
      &ConvolutionParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ConvolutionParameter_class_data_ =
        ConvolutionParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ConvolutionParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ConvolutionParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ConvolutionParameter_class_data_.tc_table);
  return ConvolutionParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<5, 18, 3, 0, 2>
ConvolutionParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_._has_bits_),
    0, // no _extensions_
    18, 248,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294705152,  // skipmap
    offsetof(decltype(_table_), field_entries),
    18,  // num_field_entries
    3,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    ConvolutionParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ConvolutionParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional uint32 num_output = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConvolutionParameter, _impl_.num_output_), 2>(),
     {8, 2, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.num_output_)}},
    // optional bool bias_term = 2 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(ConvolutionParameter, _impl_.bias_term_), 12>(),
     {16, 12, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.bias_term_)}},
    // repeated uint32 pad = 3;
    {::_pbi::TcParser::FastV32R1,
     {24, 63, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.pad_)}},
    // repeated uint32 kernel_size = 4;
    {::_pbi::TcParser::FastV32R1,
     {32, 63, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.kernel_size_)}},
    // optional uint32 group = 5 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConvolutionParameter, _impl_.group_), 13>(),
     {40, 13, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.group_)}},
    // repeated uint32 stride = 6;
    {::_pbi::TcParser::FastV32R1,
     {48, 63, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.stride_)}},
    // optional .opencv_caffe.FillerParameter weight_filler = 7;
    {::_pbi::TcParser::FastMtS1,
     {58, 0, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.weight_filler_)}},
    // optional .opencv_caffe.FillerParameter bias_filler = 8;
    {::_pbi::TcParser::FastMtS1,
     {66, 1, 1, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.bias_filler_)}},
    // optional uint32 pad_h = 9 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConvolutionParameter, _impl_.pad_h_), 3>(),
     {72, 3, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.pad_h_)}},
    // optional uint32 pad_w = 10 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConvolutionParameter, _impl_.pad_w_), 4>(),
     {80, 4, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.pad_w_)}},
    // optional uint32 kernel_h = 11;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConvolutionParameter, _impl_.kernel_h_), 5>(),
     {88, 5, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.kernel_h_)}},
    // optional uint32 kernel_w = 12;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConvolutionParameter, _impl_.kernel_w_), 6>(),
     {96, 6, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.kernel_w_)}},
    // optional uint32 stride_h = 13;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConvolutionParameter, _impl_.stride_h_), 7>(),
     {104, 7, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.stride_h_)}},
    // optional uint32 stride_w = 14;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ConvolutionParameter, _impl_.stride_w_), 8>(),
     {112, 8, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.stride_w_)}},
    // optional .opencv_caffe.ConvolutionParameter.Engine engine = 15 [default = DEFAULT];
    {::_pbi::TcParser::FastEr0S1,
     {120, 9, 2, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.engine_)}},
    // optional int32 axis = 16 [default = 1];
    {::_pbi::TcParser::FastV32S2,
     {384, 11, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.axis_)}},
    // optional bool force_nd_im2col = 17 [default = false];
    {::_pbi::TcParser::FastV8S2,
     {392, 10, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.force_nd_im2col_)}},
    // repeated uint32 dilation = 18;
    {::_pbi::TcParser::FastV32R2,
     {400, 63, 0, PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.dilation_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 num_output = 1;
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.num_output_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool bias_term = 2 [default = true];
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.bias_term_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // repeated uint32 pad = 3;
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.pad_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
    // repeated uint32 kernel_size = 4;
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.kernel_size_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
    // optional uint32 group = 5 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.group_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // repeated uint32 stride = 6;
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.stride_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
    // optional .opencv_caffe.FillerParameter weight_filler = 7;
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.weight_filler_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.FillerParameter bias_filler = 8;
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.bias_filler_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional uint32 pad_h = 9 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.pad_h_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 pad_w = 10 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.pad_w_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 kernel_h = 11;
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.kernel_h_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 kernel_w = 12;
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.kernel_w_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 stride_h = 13;
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.stride_h_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 stride_w = 14;
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.stride_w_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional .opencv_caffe.ConvolutionParameter.Engine engine = 15 [default = DEFAULT];
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.engine_), _Internal::kHasBitsOffset + 9, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional int32 axis = 16 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.axis_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional bool force_nd_im2col = 17 [default = false];
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.force_nd_im2col_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // repeated uint32 dilation = 18;
    {PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.dilation_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
      {0, 2},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void ConvolutionParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ConvolutionParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.pad_.Clear();
  _impl_.kernel_size_.Clear();
  _impl_.stride_.Clear();
  _impl_.dilation_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(_impl_.weight_filler_ != nullptr);
      _impl_.weight_filler_->Clear();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(_impl_.bias_filler_ != nullptr);
      _impl_.bias_filler_->Clear();
    }
  }
  if ((cached_has_bits & 0x000000fcU) != 0) {
    ::memset(&_impl_.num_output_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.stride_h_) -
        reinterpret_cast<char*>(&_impl_.num_output_)) + sizeof(_impl_.stride_h_));
  }
  if ((cached_has_bits & 0x00003f00U) != 0) {
    ::memset(&_impl_.stride_w_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.force_nd_im2col_) -
        reinterpret_cast<char*>(&_impl_.stride_w_)) + sizeof(_impl_.force_nd_im2col_));
    _impl_.axis_ = 1;
    _impl_.bias_term_ = true;
    _impl_.group_ = 1u;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ConvolutionParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ConvolutionParameter& this_ = static_cast<const ConvolutionParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ConvolutionParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ConvolutionParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ConvolutionParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 num_output = 1;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_num_output(), target);
  }

  // optional bool bias_term = 2 [default = true];
  if ((cached_has_bits & 0x00001000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_bias_term(), target);
  }

  // repeated uint32 pad = 3;
  for (int i = 0, n = this_._internal_pad_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        3, this_._internal_pad().Get(i), target);
  }

  // repeated uint32 kernel_size = 4;
  for (int i = 0, n = this_._internal_kernel_size_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        4, this_._internal_kernel_size().Get(i), target);
  }

  // optional uint32 group = 5 [default = 1];
  if ((cached_has_bits & 0x00002000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        5, this_._internal_group(), target);
  }

  // repeated uint32 stride = 6;
  for (int i = 0, n = this_._internal_stride_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        6, this_._internal_stride().Get(i), target);
  }

  // optional .opencv_caffe.FillerParameter weight_filler = 7;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        7, *this_._impl_.weight_filler_, this_._impl_.weight_filler_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.FillerParameter bias_filler = 8;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        8, *this_._impl_.bias_filler_, this_._impl_.bias_filler_->GetCachedSize(), target,
        stream);
  }

  // optional uint32 pad_h = 9 [default = 0];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        9, this_._internal_pad_h(), target);
  }

  // optional uint32 pad_w = 10 [default = 0];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        10, this_._internal_pad_w(), target);
  }

  // optional uint32 kernel_h = 11;
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        11, this_._internal_kernel_h(), target);
  }

  // optional uint32 kernel_w = 12;
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        12, this_._internal_kernel_w(), target);
  }

  // optional uint32 stride_h = 13;
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        13, this_._internal_stride_h(), target);
  }

  // optional uint32 stride_w = 14;
  if ((cached_has_bits & 0x00000100U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        14, this_._internal_stride_w(), target);
  }

  // optional .opencv_caffe.ConvolutionParameter.Engine engine = 15 [default = DEFAULT];
  if ((cached_has_bits & 0x00000200U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        15, this_._internal_engine(), target);
  }

  // optional int32 axis = 16 [default = 1];
  if ((cached_has_bits & 0x00000800U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        16, this_._internal_axis(), target);
  }

  // optional bool force_nd_im2col = 17 [default = false];
  if ((cached_has_bits & 0x00000400U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        17, this_._internal_force_nd_im2col(), target);
  }

  // repeated uint32 dilation = 18;
  for (int i = 0, n = this_._internal_dilation_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        18, this_._internal_dilation().Get(i), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ConvolutionParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ConvolutionParameter::ByteSizeLong(const MessageLite& base) {
  const ConvolutionParameter& this_ = static_cast<const ConvolutionParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ConvolutionParameter::ByteSizeLong() const {
  const ConvolutionParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ConvolutionParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated uint32 pad = 3;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_pad());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_pad_size());
      total_size += tag_size + data_size;
    }
    // repeated uint32 kernel_size = 4;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_kernel_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_kernel_size_size());
      total_size += tag_size + data_size;
    }
    // repeated uint32 stride = 6;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_stride());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_stride_size());
      total_size += tag_size + data_size;
    }
    // repeated uint32 dilation = 18;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_dilation());
      ::size_t tag_size = ::size_t{2} *
          ::_pbi::FromIntSize(this_._internal_dilation_size());
      total_size += tag_size + data_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000400U & cached_has_bits) * 3;
  total_size += static_cast<bool>(0x00001000U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x000000ffU) != 0) {
    // optional .opencv_caffe.FillerParameter weight_filler = 7;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.weight_filler_);
    }
    // optional .opencv_caffe.FillerParameter bias_filler = 8;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bias_filler_);
    }
    // optional uint32 num_output = 1;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_num_output());
    }
    // optional uint32 pad_h = 9 [default = 0];
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_pad_h());
    }
    // optional uint32 pad_w = 10 [default = 0];
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_pad_w());
    }
    // optional uint32 kernel_h = 11;
    if ((cached_has_bits & 0x00000020U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_kernel_h());
    }
    // optional uint32 kernel_w = 12;
    if ((cached_has_bits & 0x00000040U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_kernel_w());
    }
    // optional uint32 stride_h = 13;
    if ((cached_has_bits & 0x00000080U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_stride_h());
    }
  }
  if ((cached_has_bits & 0x00002b00U) != 0) {
    // optional uint32 stride_w = 14;
    if ((cached_has_bits & 0x00000100U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_stride_w());
    }
    // optional .opencv_caffe.ConvolutionParameter.Engine engine = 15 [default = DEFAULT];
    if ((cached_has_bits & 0x00000200U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_engine());
    }
    // optional int32 axis = 16 [default = 1];
    if ((cached_has_bits & 0x00000800U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_axis());
    }
    // optional uint32 group = 5 [default = 1];
    if ((cached_has_bits & 0x00002000U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_group());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ConvolutionParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ConvolutionParameter*>(&to_msg);
  auto& from = static_cast<const ConvolutionParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ConvolutionParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_pad()->MergeFrom(from._internal_pad());
  _this->_internal_mutable_kernel_size()->MergeFrom(from._internal_kernel_size());
  _this->_internal_mutable_stride()->MergeFrom(from._internal_stride());
  _this->_internal_mutable_dilation()->MergeFrom(from._internal_dilation());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(from._impl_.weight_filler_ != nullptr);
      if (_this->_impl_.weight_filler_ == nullptr) {
        _this->_impl_.weight_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_filler_);
      } else {
        _this->_impl_.weight_filler_->MergeFrom(*from._impl_.weight_filler_);
      }
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(from._impl_.bias_filler_ != nullptr);
      if (_this->_impl_.bias_filler_ == nullptr) {
        _this->_impl_.bias_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_);
      } else {
        _this->_impl_.bias_filler_->MergeFrom(*from._impl_.bias_filler_);
      }
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.num_output_ = from._impl_.num_output_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.pad_h_ = from._impl_.pad_h_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.pad_w_ = from._impl_.pad_w_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.kernel_h_ = from._impl_.kernel_h_;
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      _this->_impl_.kernel_w_ = from._impl_.kernel_w_;
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      _this->_impl_.stride_h_ = from._impl_.stride_h_;
    }
  }
  if ((cached_has_bits & 0x00003f00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      _this->_impl_.stride_w_ = from._impl_.stride_w_;
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      _this->_impl_.engine_ = from._impl_.engine_;
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      _this->_impl_.force_nd_im2col_ = from._impl_.force_nd_im2col_;
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
    if ((cached_has_bits & 0x00001000U) != 0) {
      _this->_impl_.bias_term_ = from._impl_.bias_term_;
    }
    if ((cached_has_bits & 0x00002000U) != 0) {
      _this->_impl_.group_ = from._impl_.group_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ConvolutionParameter::CopyFrom(const ConvolutionParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ConvolutionParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ConvolutionParameter::InternalSwap(ConvolutionParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.pad_.InternalSwap(&other->_impl_.pad_);
  _impl_.kernel_size_.InternalSwap(&other->_impl_.kernel_size_);
  _impl_.stride_.InternalSwap(&other->_impl_.stride_);
  _impl_.dilation_.InternalSwap(&other->_impl_.dilation_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.group_)
      + sizeof(ConvolutionParameter::_impl_.group_)
      - PROTOBUF_FIELD_OFFSET(ConvolutionParameter, _impl_.weight_filler_)>(
          reinterpret_cast<char*>(&_impl_.weight_filler_),
          reinterpret_cast<char*>(&other->_impl_.weight_filler_));
}

::google::protobuf::Metadata ConvolutionParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class CropParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<CropParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(CropParameter, _impl_._has_bits_);
};

CropParameter::CropParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, CropParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.CropParameter)
}
PROTOBUF_NDEBUG_INLINE CropParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::CropParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        offset_{visibility, arena, from.offset_} {}

CropParameter::CropParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const CropParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, CropParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  CropParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.axis_ = from._impl_.axis_;

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.CropParameter)
}
PROTOBUF_NDEBUG_INLINE CropParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        offset_{visibility, arena},
        axis_{2} {}

inline void CropParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
CropParameter::~CropParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.CropParameter)
  SharedDtor(*this);
}
inline void CropParameter::SharedDtor(MessageLite& self) {
  CropParameter& this_ = static_cast<CropParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL CropParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) CropParameter(arena);
}
constexpr auto CropParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(CropParameter, _impl_.offset_) +
          decltype(CropParameter::_impl_.offset_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(CropParameter), alignof(CropParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&CropParameter::PlacementNew_,
                                 sizeof(CropParameter),
                                 alignof(CropParameter));
  }
}
constexpr auto CropParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_CropParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &CropParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<CropParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &CropParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<CropParameter>(), &CropParameter::ByteSizeLong,
              &CropParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(CropParameter, _impl_._cached_size_),
          false,
      },
      &CropParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull CropParameter_class_data_ =
        CropParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
CropParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&CropParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(CropParameter_class_data_.tc_table);
  return CropParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 0, 0, 2>
CropParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(CropParameter, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    CropParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::CropParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // repeated uint32 offset = 2;
    {::_pbi::TcParser::FastV32R1,
     {16, 63, 0, PROTOBUF_FIELD_OFFSET(CropParameter, _impl_.offset_)}},
    // optional int32 axis = 1 [default = 2];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(CropParameter, _impl_.axis_), 0>(),
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(CropParameter, _impl_.axis_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 axis = 1 [default = 2];
    {PROTOBUF_FIELD_OFFSET(CropParameter, _impl_.axis_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // repeated uint32 offset = 2;
    {PROTOBUF_FIELD_OFFSET(CropParameter, _impl_.offset_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void CropParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.CropParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.offset_.Clear();
  _impl_.axis_ = 2;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL CropParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const CropParameter& this_ = static_cast<const CropParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL CropParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const CropParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.CropParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 axis = 1 [default = 2];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_axis(), target);
  }

  // repeated uint32 offset = 2;
  for (int i = 0, n = this_._internal_offset_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_offset().Get(i), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.CropParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t CropParameter::ByteSizeLong(const MessageLite& base) {
  const CropParameter& this_ = static_cast<const CropParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t CropParameter::ByteSizeLong() const {
  const CropParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.CropParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated uint32 offset = 2;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_offset());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_offset_size());
      total_size += tag_size + data_size;
    }
  }
   {
    // optional int32 axis = 1 [default = 2];
    cached_has_bits = this_._impl_._has_bits_[0];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void CropParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<CropParameter*>(&to_msg);
  auto& from = static_cast<const CropParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.CropParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_offset()->MergeFrom(from._internal_offset());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _this->_impl_.axis_ = from._impl_.axis_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void CropParameter::CopyFrom(const CropParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.CropParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void CropParameter::InternalSwap(CropParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.offset_.InternalSwap(&other->_impl_.offset_);
  swap(_impl_.axis_, other->_impl_.axis_);
}

::google::protobuf::Metadata CropParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class DataParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<DataParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(DataParameter, _impl_._has_bits_);
};

DataParameter::DataParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, DataParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.DataParameter)
}
PROTOBUF_NDEBUG_INLINE DataParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::DataParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        source_(arena, from.source_),
        mean_file_(arena, from.mean_file_) {}

DataParameter::DataParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const DataParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, DataParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  DataParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, batch_size_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, batch_size_),
           offsetof(Impl_, prefetch_) -
               offsetof(Impl_, batch_size_) +
               sizeof(Impl_::prefetch_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.DataParameter)
}
PROTOBUF_NDEBUG_INLINE DataParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        source_(arena),
        mean_file_(arena),
        scale_{1},
        prefetch_{4u} {}

inline void DataParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, batch_size_),
           0,
           offsetof(Impl_, backend_) -
               offsetof(Impl_, batch_size_) +
               sizeof(Impl_::backend_));
}
DataParameter::~DataParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.DataParameter)
  SharedDtor(*this);
}
inline void DataParameter::SharedDtor(MessageLite& self) {
  DataParameter& this_ = static_cast<DataParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.source_.Destroy();
  this_._impl_.mean_file_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL DataParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) DataParameter(arena);
}
constexpr auto DataParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(DataParameter),
                                            alignof(DataParameter));
}
constexpr auto DataParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_DataParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &DataParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<DataParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &DataParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<DataParameter>(), &DataParameter::ByteSizeLong,
              &DataParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(DataParameter, _impl_._cached_size_),
          false,
      },
      &DataParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull DataParameter_class_data_ =
        DataParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DataParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&DataParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(DataParameter_class_data_.tc_table);
  return DataParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<4, 10, 1, 58, 2>
DataParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(DataParameter, _impl_._has_bits_),
    0, // no _extensions_
    10, 120,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294966272,  // skipmap
    offsetof(decltype(_table_), field_entries),
    10,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    DataParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::DataParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional string source = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.source_)}},
    // optional float scale = 2 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {21, 8, 0, PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.scale_)}},
    // optional string mean_file = 3;
    {::_pbi::TcParser::FastSS1,
     {26, 1, 0, PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.mean_file_)}},
    // optional uint32 batch_size = 4;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(DataParameter, _impl_.batch_size_), 2>(),
     {32, 2, 0, PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.batch_size_)}},
    // optional uint32 crop_size = 5 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(DataParameter, _impl_.crop_size_), 3>(),
     {40, 3, 0, PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.crop_size_)}},
    // optional bool mirror = 6 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(DataParameter, _impl_.mirror_), 5>(),
     {48, 5, 0, PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.mirror_)}},
    // optional uint32 rand_skip = 7 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(DataParameter, _impl_.rand_skip_), 4>(),
     {56, 4, 0, PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.rand_skip_)}},
    // optional .opencv_caffe.DataParameter.DB backend = 8 [default = LEVELDB];
    {::_pbi::TcParser::FastEr0S1,
     {64, 7, 1, PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.backend_)}},
    // optional bool force_encoded_color = 9 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(DataParameter, _impl_.force_encoded_color_), 6>(),
     {72, 6, 0, PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.force_encoded_color_)}},
    // optional uint32 prefetch = 10 [default = 4];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(DataParameter, _impl_.prefetch_), 9>(),
     {80, 9, 0, PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.prefetch_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional string source = 1;
    {PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.source_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional float scale = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.scale_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional string mean_file = 3;
    {PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.mean_file_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional uint32 batch_size = 4;
    {PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.batch_size_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 crop_size = 5 [default = 0];
    {PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.crop_size_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool mirror = 6 [default = false];
    {PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.mirror_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional uint32 rand_skip = 7 [default = 0];
    {PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.rand_skip_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional .opencv_caffe.DataParameter.DB backend = 8 [default = LEVELDB];
    {PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.backend_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional bool force_encoded_color = 9 [default = false];
    {PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.force_encoded_color_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional uint32 prefetch = 10 [default = 4];
    {PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.prefetch_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
  }},
  {{
      {0, 1},
  }},
  {{
    "\32\6\0\11\0\0\0\0\0\0\0\0\0\0\0\0"
    "opencv_caffe.DataParameter"
    "source"
    "mean_file"
  }},
};
PROTOBUF_NOINLINE void DataParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.DataParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _impl_.source_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _impl_.mean_file_.ClearNonDefaultToEmpty();
    }
  }
  if ((cached_has_bits & 0x000000fcU) != 0) {
    ::memset(&_impl_.batch_size_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.backend_) -
        reinterpret_cast<char*>(&_impl_.batch_size_)) + sizeof(_impl_.backend_));
  }
  if ((cached_has_bits & 0x00000300U) != 0) {
    _impl_.scale_ = 1;
    _impl_.prefetch_ = 4u;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL DataParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const DataParameter& this_ = static_cast<const DataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL DataParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const DataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.DataParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string source = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_source();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.DataParameter.source");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional float scale = 2 [default = 1];
  if ((cached_has_bits & 0x00000100U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_scale(), target);
  }

  // optional string mean_file = 3;
  if ((cached_has_bits & 0x00000002U) != 0) {
    const ::std::string& _s = this_._internal_mean_file();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.DataParameter.mean_file");
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // optional uint32 batch_size = 4;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        4, this_._internal_batch_size(), target);
  }

  // optional uint32 crop_size = 5 [default = 0];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        5, this_._internal_crop_size(), target);
  }

  // optional bool mirror = 6 [default = false];
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_mirror(), target);
  }

  // optional uint32 rand_skip = 7 [default = 0];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        7, this_._internal_rand_skip(), target);
  }

  // optional .opencv_caffe.DataParameter.DB backend = 8 [default = LEVELDB];
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        8, this_._internal_backend(), target);
  }

  // optional bool force_encoded_color = 9 [default = false];
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        9, this_._internal_force_encoded_color(), target);
  }

  // optional uint32 prefetch = 10 [default = 4];
  if ((cached_has_bits & 0x00000200U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        10, this_._internal_prefetch(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.DataParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t DataParameter::ByteSizeLong(const MessageLite& base) {
  const DataParameter& this_ = static_cast<const DataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t DataParameter::ByteSizeLong() const {
  const DataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.DataParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000100U & cached_has_bits) * 5;
  total_size += ::absl::popcount(0x00000060U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x0000009fU) != 0) {
    // optional string source = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_source());
    }
    // optional string mean_file = 3;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_mean_file());
    }
    // optional uint32 batch_size = 4;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_batch_size());
    }
    // optional uint32 crop_size = 5 [default = 0];
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_crop_size());
    }
    // optional uint32 rand_skip = 7 [default = 0];
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_rand_skip());
    }
    // optional .opencv_caffe.DataParameter.DB backend = 8 [default = LEVELDB];
    if ((cached_has_bits & 0x00000080U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_backend());
    }
  }
   {
    // optional uint32 prefetch = 10 [default = 4];
    if ((cached_has_bits & 0x00000200U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_prefetch());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void DataParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<DataParameter*>(&to_msg);
  auto& from = static_cast<const DataParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.DataParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_source(from._internal_source());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_internal_set_mean_file(from._internal_mean_file());
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.batch_size_ = from._impl_.batch_size_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.crop_size_ = from._impl_.crop_size_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.rand_skip_ = from._impl_.rand_skip_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.mirror_ = from._impl_.mirror_;
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      _this->_impl_.force_encoded_color_ = from._impl_.force_encoded_color_;
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      _this->_impl_.backend_ = from._impl_.backend_;
    }
  }
  if ((cached_has_bits & 0x00000300U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      _this->_impl_.scale_ = from._impl_.scale_;
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      _this->_impl_.prefetch_ = from._impl_.prefetch_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void DataParameter::CopyFrom(const DataParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.DataParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void DataParameter::InternalSwap(DataParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.source_, &other->_impl_.source_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.mean_file_, &other->_impl_.mean_file_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.prefetch_)
      + sizeof(DataParameter::_impl_.prefetch_)
      - PROTOBUF_FIELD_OFFSET(DataParameter, _impl_.batch_size_)>(
          reinterpret_cast<char*>(&_impl_.batch_size_),
          reinterpret_cast<char*>(&other->_impl_.batch_size_));
}

::google::protobuf::Metadata DataParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class NonMaximumSuppressionParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<NonMaximumSuppressionParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NonMaximumSuppressionParameter, _impl_._has_bits_);
};

NonMaximumSuppressionParameter::NonMaximumSuppressionParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NonMaximumSuppressionParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.NonMaximumSuppressionParameter)
}
NonMaximumSuppressionParameter::NonMaximumSuppressionParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const NonMaximumSuppressionParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NonMaximumSuppressionParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE NonMaximumSuppressionParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        nms_threshold_{0.3f},
        eta_{1} {}

inline void NonMaximumSuppressionParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.top_k_ = {};
}
NonMaximumSuppressionParameter::~NonMaximumSuppressionParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.NonMaximumSuppressionParameter)
  SharedDtor(*this);
}
inline void NonMaximumSuppressionParameter::SharedDtor(MessageLite& self) {
  NonMaximumSuppressionParameter& this_ = static_cast<NonMaximumSuppressionParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL NonMaximumSuppressionParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NonMaximumSuppressionParameter(arena);
}
constexpr auto NonMaximumSuppressionParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(NonMaximumSuppressionParameter),
                                            alignof(NonMaximumSuppressionParameter));
}
constexpr auto NonMaximumSuppressionParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_NonMaximumSuppressionParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &NonMaximumSuppressionParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NonMaximumSuppressionParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NonMaximumSuppressionParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NonMaximumSuppressionParameter>(), &NonMaximumSuppressionParameter::ByteSizeLong,
              &NonMaximumSuppressionParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NonMaximumSuppressionParameter, _impl_._cached_size_),
          false,
      },
      &NonMaximumSuppressionParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NonMaximumSuppressionParameter_class_data_ =
        NonMaximumSuppressionParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NonMaximumSuppressionParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NonMaximumSuppressionParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NonMaximumSuppressionParameter_class_data_.tc_table);
  return NonMaximumSuppressionParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
NonMaximumSuppressionParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(NonMaximumSuppressionParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    NonMaximumSuppressionParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::NonMaximumSuppressionParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional float nms_threshold = 1 [default = 0.3];
    {::_pbi::TcParser::FastF32S1,
     {13, 1, 0, PROTOBUF_FIELD_OFFSET(NonMaximumSuppressionParameter, _impl_.nms_threshold_)}},
    // optional int32 top_k = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NonMaximumSuppressionParameter, _impl_.top_k_), 0>(),
     {16, 0, 0, PROTOBUF_FIELD_OFFSET(NonMaximumSuppressionParameter, _impl_.top_k_)}},
    // optional float eta = 3 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {29, 2, 0, PROTOBUF_FIELD_OFFSET(NonMaximumSuppressionParameter, _impl_.eta_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float nms_threshold = 1 [default = 0.3];
    {PROTOBUF_FIELD_OFFSET(NonMaximumSuppressionParameter, _impl_.nms_threshold_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional int32 top_k = 2;
    {PROTOBUF_FIELD_OFFSET(NonMaximumSuppressionParameter, _impl_.top_k_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional float eta = 3 [default = 1];
    {PROTOBUF_FIELD_OFFSET(NonMaximumSuppressionParameter, _impl_.eta_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void NonMaximumSuppressionParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.NonMaximumSuppressionParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    _impl_.top_k_ = 0;
    _impl_.nms_threshold_ = 0.3f;
    _impl_.eta_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NonMaximumSuppressionParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NonMaximumSuppressionParameter& this_ = static_cast<const NonMaximumSuppressionParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NonMaximumSuppressionParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NonMaximumSuppressionParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.NonMaximumSuppressionParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float nms_threshold = 1 [default = 0.3];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_nms_threshold(), target);
  }

  // optional int32 top_k = 2;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_top_k(), target);
  }

  // optional float eta = 3 [default = 1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_eta(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.NonMaximumSuppressionParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NonMaximumSuppressionParameter::ByteSizeLong(const MessageLite& base) {
  const NonMaximumSuppressionParameter& this_ = static_cast<const NonMaximumSuppressionParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NonMaximumSuppressionParameter::ByteSizeLong() const {
  const NonMaximumSuppressionParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.NonMaximumSuppressionParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00000006U & cached_has_bits) * 5;
   {
    // optional int32 top_k = 2;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_top_k());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NonMaximumSuppressionParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<NonMaximumSuppressionParameter*>(&to_msg);
  auto& from = static_cast<const NonMaximumSuppressionParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.NonMaximumSuppressionParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.top_k_ = from._impl_.top_k_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.nms_threshold_ = from._impl_.nms_threshold_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.eta_ = from._impl_.eta_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void NonMaximumSuppressionParameter::CopyFrom(const NonMaximumSuppressionParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.NonMaximumSuppressionParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void NonMaximumSuppressionParameter::InternalSwap(NonMaximumSuppressionParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NonMaximumSuppressionParameter, _impl_.eta_)
      + sizeof(NonMaximumSuppressionParameter::_impl_.eta_)
      - PROTOBUF_FIELD_OFFSET(NonMaximumSuppressionParameter, _impl_.top_k_)>(
          reinterpret_cast<char*>(&_impl_.top_k_),
          reinterpret_cast<char*>(&other->_impl_.top_k_));
}

::google::protobuf::Metadata NonMaximumSuppressionParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class SaveOutputParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<SaveOutputParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_._has_bits_);
};

SaveOutputParameter::SaveOutputParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SaveOutputParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.SaveOutputParameter)
}
PROTOBUF_NDEBUG_INLINE SaveOutputParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::SaveOutputParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        output_directory_(arena, from.output_directory_),
        output_name_prefix_(arena, from.output_name_prefix_),
        output_format_(arena, from.output_format_),
        label_map_file_(arena, from.label_map_file_),
        name_size_file_(arena, from.name_size_file_) {}

SaveOutputParameter::SaveOutputParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SaveOutputParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SaveOutputParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SaveOutputParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.num_test_image_ = from._impl_.num_test_image_;

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.SaveOutputParameter)
}
PROTOBUF_NDEBUG_INLINE SaveOutputParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        output_directory_(arena),
        output_name_prefix_(arena),
        output_format_(arena),
        label_map_file_(arena),
        name_size_file_(arena) {}

inline void SaveOutputParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.num_test_image_ = {};
}
SaveOutputParameter::~SaveOutputParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.SaveOutputParameter)
  SharedDtor(*this);
}
inline void SaveOutputParameter::SharedDtor(MessageLite& self) {
  SaveOutputParameter& this_ = static_cast<SaveOutputParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.output_directory_.Destroy();
  this_._impl_.output_name_prefix_.Destroy();
  this_._impl_.output_format_.Destroy();
  this_._impl_.label_map_file_.Destroy();
  this_._impl_.name_size_file_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL SaveOutputParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SaveOutputParameter(arena);
}
constexpr auto SaveOutputParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SaveOutputParameter),
                                            alignof(SaveOutputParameter));
}
constexpr auto SaveOutputParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_SaveOutputParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &SaveOutputParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SaveOutputParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SaveOutputParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SaveOutputParameter>(), &SaveOutputParameter::ByteSizeLong,
              &SaveOutputParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_._cached_size_),
          false,
      },
      &SaveOutputParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SaveOutputParameter_class_data_ =
        SaveOutputParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SaveOutputParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SaveOutputParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SaveOutputParameter_class_data_.tc_table);
  return SaveOutputParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 6, 0, 116, 2>
SaveOutputParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_._has_bits_),
    0, // no _extensions_
    6, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967232,  // skipmap
    offsetof(decltype(_table_), field_entries),
    6,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    SaveOutputParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::SaveOutputParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional string output_directory = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.output_directory_)}},
    // optional string output_name_prefix = 2;
    {::_pbi::TcParser::FastSS1,
     {18, 1, 0, PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.output_name_prefix_)}},
    // optional string output_format = 3;
    {::_pbi::TcParser::FastSS1,
     {26, 2, 0, PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.output_format_)}},
    // optional string label_map_file = 4;
    {::_pbi::TcParser::FastSS1,
     {34, 3, 0, PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.label_map_file_)}},
    // optional string name_size_file = 5;
    {::_pbi::TcParser::FastSS1,
     {42, 4, 0, PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.name_size_file_)}},
    // optional uint32 num_test_image = 6;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SaveOutputParameter, _impl_.num_test_image_), 5>(),
     {48, 5, 0, PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.num_test_image_)}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional string output_directory = 1;
    {PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.output_directory_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional string output_name_prefix = 2;
    {PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.output_name_prefix_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional string output_format = 3;
    {PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.output_format_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional string label_map_file = 4;
    {PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.label_map_file_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional string name_size_file = 5;
    {PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.name_size_file_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional uint32 num_test_image = 6;
    {PROTOBUF_FIELD_OFFSET(SaveOutputParameter, _impl_.num_test_image_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
  }},
  // no aux_entries
  {{
    "\40\20\22\15\16\16\0\0"
    "opencv_caffe.SaveOutputParameter"
    "output_directory"
    "output_name_prefix"
    "output_format"
    "label_map_file"
    "name_size_file"
  }},
};
PROTOBUF_NOINLINE void SaveOutputParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.SaveOutputParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000001fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _impl_.output_directory_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _impl_.output_name_prefix_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _impl_.output_format_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _impl_.label_map_file_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _impl_.name_size_file_.ClearNonDefaultToEmpty();
    }
  }
  _impl_.num_test_image_ = 0u;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SaveOutputParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SaveOutputParameter& this_ = static_cast<const SaveOutputParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SaveOutputParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SaveOutputParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.SaveOutputParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string output_directory = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_output_directory();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SaveOutputParameter.output_directory");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional string output_name_prefix = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    const ::std::string& _s = this_._internal_output_name_prefix();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SaveOutputParameter.output_name_prefix");
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // optional string output_format = 3;
  if ((cached_has_bits & 0x00000004U) != 0) {
    const ::std::string& _s = this_._internal_output_format();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SaveOutputParameter.output_format");
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // optional string label_map_file = 4;
  if ((cached_has_bits & 0x00000008U) != 0) {
    const ::std::string& _s = this_._internal_label_map_file();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SaveOutputParameter.label_map_file");
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  // optional string name_size_file = 5;
  if ((cached_has_bits & 0x00000010U) != 0) {
    const ::std::string& _s = this_._internal_name_size_file();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.SaveOutputParameter.name_size_file");
    target = stream->WriteStringMaybeAliased(5, _s, target);
  }

  // optional uint32 num_test_image = 6;
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        6, this_._internal_num_test_image(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.SaveOutputParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SaveOutputParameter::ByteSizeLong(const MessageLite& base) {
  const SaveOutputParameter& this_ = static_cast<const SaveOutputParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SaveOutputParameter::ByteSizeLong() const {
  const SaveOutputParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.SaveOutputParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000003fU) != 0) {
    // optional string output_directory = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_output_directory());
    }
    // optional string output_name_prefix = 2;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_output_name_prefix());
    }
    // optional string output_format = 3;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_output_format());
    }
    // optional string label_map_file = 4;
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_label_map_file());
    }
    // optional string name_size_file = 5;
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_name_size_file());
    }
    // optional uint32 num_test_image = 6;
    if ((cached_has_bits & 0x00000020U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_num_test_image());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SaveOutputParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<SaveOutputParameter*>(&to_msg);
  auto& from = static_cast<const SaveOutputParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.SaveOutputParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000003fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_output_directory(from._internal_output_directory());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_internal_set_output_name_prefix(from._internal_output_name_prefix());
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_internal_set_output_format(from._internal_output_format());
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_internal_set_label_map_file(from._internal_label_map_file());
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_internal_set_name_size_file(from._internal_name_size_file());
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.num_test_image_ = from._impl_.num_test_image_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void SaveOutputParameter::CopyFrom(const SaveOutputParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.SaveOutputParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void SaveOutputParameter::InternalSwap(SaveOutputParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.output_directory_, &other->_impl_.output_directory_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.output_name_prefix_, &other->_impl_.output_name_prefix_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.output_format_, &other->_impl_.output_format_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.label_map_file_, &other->_impl_.label_map_file_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_size_file_, &other->_impl_.name_size_file_, arena);
  swap(_impl_.num_test_image_, other->_impl_.num_test_image_);
}

::google::protobuf::Metadata SaveOutputParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class DropoutParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<DropoutParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(DropoutParameter, _impl_._has_bits_);
};

DropoutParameter::DropoutParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, DropoutParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.DropoutParameter)
}
DropoutParameter::DropoutParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const DropoutParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, DropoutParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE DropoutParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        dropout_ratio_{0.5f},
        scale_train_{true} {}

inline void DropoutParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
DropoutParameter::~DropoutParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.DropoutParameter)
  SharedDtor(*this);
}
inline void DropoutParameter::SharedDtor(MessageLite& self) {
  DropoutParameter& this_ = static_cast<DropoutParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL DropoutParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) DropoutParameter(arena);
}
constexpr auto DropoutParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(DropoutParameter),
                                            alignof(DropoutParameter));
}
constexpr auto DropoutParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_DropoutParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &DropoutParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<DropoutParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &DropoutParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<DropoutParameter>(), &DropoutParameter::ByteSizeLong,
              &DropoutParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(DropoutParameter, _impl_._cached_size_),
          false,
      },
      &DropoutParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull DropoutParameter_class_data_ =
        DropoutParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DropoutParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&DropoutParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(DropoutParameter_class_data_.tc_table);
  return DropoutParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 0, 0, 2>
DropoutParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(DropoutParameter, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    DropoutParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::DropoutParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional bool scale_train = 2 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(DropoutParameter, _impl_.scale_train_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(DropoutParameter, _impl_.scale_train_)}},
    // optional float dropout_ratio = 1 [default = 0.5];
    {::_pbi::TcParser::FastF32S1,
     {13, 0, 0, PROTOBUF_FIELD_OFFSET(DropoutParameter, _impl_.dropout_ratio_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float dropout_ratio = 1 [default = 0.5];
    {PROTOBUF_FIELD_OFFSET(DropoutParameter, _impl_.dropout_ratio_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional bool scale_train = 2 [default = true];
    {PROTOBUF_FIELD_OFFSET(DropoutParameter, _impl_.scale_train_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void DropoutParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.DropoutParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    _impl_.dropout_ratio_ = 0.5f;
    _impl_.scale_train_ = true;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL DropoutParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const DropoutParameter& this_ = static_cast<const DropoutParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL DropoutParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const DropoutParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.DropoutParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float dropout_ratio = 1 [default = 0.5];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_dropout_ratio(), target);
  }

  // optional bool scale_train = 2 [default = true];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_scale_train(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.DropoutParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t DropoutParameter::ByteSizeLong(const MessageLite& base) {
  const DropoutParameter& this_ = static_cast<const DropoutParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t DropoutParameter::ByteSizeLong() const {
  const DropoutParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.DropoutParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000001U & cached_has_bits) * 5;
  total_size += static_cast<bool>(0x00000002U & cached_has_bits) * 2;
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void DropoutParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<DropoutParameter*>(&to_msg);
  auto& from = static_cast<const DropoutParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.DropoutParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.dropout_ratio_ = from._impl_.dropout_ratio_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.scale_train_ = from._impl_.scale_train_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void DropoutParameter::CopyFrom(const DropoutParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.DropoutParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void DropoutParameter::InternalSwap(DropoutParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(DropoutParameter, _impl_.scale_train_)
      + sizeof(DropoutParameter::_impl_.scale_train_)
      - PROTOBUF_FIELD_OFFSET(DropoutParameter, _impl_.dropout_ratio_)>(
          reinterpret_cast<char*>(&_impl_.dropout_ratio_),
          reinterpret_cast<char*>(&other->_impl_.dropout_ratio_));
}

::google::protobuf::Metadata DropoutParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class DummyDataParameter::_Internal {
 public:
};

DummyDataParameter::DummyDataParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, DummyDataParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.DummyDataParameter)
}
PROTOBUF_NDEBUG_INLINE DummyDataParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::DummyDataParameter& from_msg)
      : data_filler_{visibility, arena, from.data_filler_},
        num_{visibility, arena, from.num_},
        channels_{visibility, arena, from.channels_},
        height_{visibility, arena, from.height_},
        width_{visibility, arena, from.width_},
        shape_{visibility, arena, from.shape_},
        _cached_size_{0} {}

DummyDataParameter::DummyDataParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const DummyDataParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, DummyDataParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  DummyDataParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.DummyDataParameter)
}
PROTOBUF_NDEBUG_INLINE DummyDataParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : data_filler_{visibility, arena},
        num_{visibility, arena},
        channels_{visibility, arena},
        height_{visibility, arena},
        width_{visibility, arena},
        shape_{visibility, arena},
        _cached_size_{0} {}

inline void DummyDataParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
DummyDataParameter::~DummyDataParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.DummyDataParameter)
  SharedDtor(*this);
}
inline void DummyDataParameter::SharedDtor(MessageLite& self) {
  DummyDataParameter& this_ = static_cast<DummyDataParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL DummyDataParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) DummyDataParameter(arena);
}
constexpr auto DummyDataParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.data_filler_) +
          decltype(DummyDataParameter::_impl_.data_filler_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.shape_) +
          decltype(DummyDataParameter::_impl_.shape_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.num_) +
          decltype(DummyDataParameter::_impl_.num_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.channels_) +
          decltype(DummyDataParameter::_impl_.channels_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.height_) +
          decltype(DummyDataParameter::_impl_.height_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.width_) +
          decltype(DummyDataParameter::_impl_.width_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(DummyDataParameter), alignof(DummyDataParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&DummyDataParameter::PlacementNew_,
                                 sizeof(DummyDataParameter),
                                 alignof(DummyDataParameter));
  }
}
constexpr auto DummyDataParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_DummyDataParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &DummyDataParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<DummyDataParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &DummyDataParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<DummyDataParameter>(), &DummyDataParameter::ByteSizeLong,
              &DummyDataParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_._cached_size_),
          false,
      },
      &DummyDataParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull DummyDataParameter_class_data_ =
        DummyDataParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
DummyDataParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&DummyDataParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(DummyDataParameter_class_data_.tc_table);
  return DummyDataParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 6, 2, 0, 2>
DummyDataParameter::_table_ = {
  {
    0,  // no _has_bits_
    0, // no _extensions_
    6, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967232,  // skipmap
    offsetof(decltype(_table_), field_entries),
    6,  // num_field_entries
    2,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    DummyDataParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::DummyDataParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // repeated .opencv_caffe.FillerParameter data_filler = 1;
    {::_pbi::TcParser::FastMtR1,
     {10, 63, 0, PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.data_filler_)}},
    // repeated uint32 num = 2;
    {::_pbi::TcParser::FastV32R1,
     {16, 63, 0, PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.num_)}},
    // repeated uint32 channels = 3;
    {::_pbi::TcParser::FastV32R1,
     {24, 63, 0, PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.channels_)}},
    // repeated uint32 height = 4;
    {::_pbi::TcParser::FastV32R1,
     {32, 63, 0, PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.height_)}},
    // repeated uint32 width = 5;
    {::_pbi::TcParser::FastV32R1,
     {40, 63, 0, PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.width_)}},
    // repeated .opencv_caffe.BlobShape shape = 6;
    {::_pbi::TcParser::FastMtR1,
     {50, 63, 1, PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.shape_)}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // repeated .opencv_caffe.FillerParameter data_filler = 1;
    {PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.data_filler_), 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated uint32 num = 2;
    {PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.num_), 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
    // repeated uint32 channels = 3;
    {PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.channels_), 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
    // repeated uint32 height = 4;
    {PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.height_), 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
    // repeated uint32 width = 5;
    {PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.width_), 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
    // repeated .opencv_caffe.BlobShape shape = 6;
    {PROTOBUF_FIELD_OFFSET(DummyDataParameter, _impl_.shape_), 0, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::BlobShape>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void DummyDataParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.DummyDataParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.data_filler_.Clear();
  _impl_.num_.Clear();
  _impl_.channels_.Clear();
  _impl_.height_.Clear();
  _impl_.width_.Clear();
  _impl_.shape_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL DummyDataParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const DummyDataParameter& this_ = static_cast<const DummyDataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL DummyDataParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const DummyDataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.DummyDataParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  // repeated .opencv_caffe.FillerParameter data_filler = 1;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_data_filler_size());
       i < n; i++) {
    const auto& repfield = this_._internal_data_filler().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            1, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // repeated uint32 num = 2;
  for (int i = 0, n = this_._internal_num_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_num().Get(i), target);
  }

  // repeated uint32 channels = 3;
  for (int i = 0, n = this_._internal_channels_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        3, this_._internal_channels().Get(i), target);
  }

  // repeated uint32 height = 4;
  for (int i = 0, n = this_._internal_height_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        4, this_._internal_height().Get(i), target);
  }

  // repeated uint32 width = 5;
  for (int i = 0, n = this_._internal_width_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        5, this_._internal_width().Get(i), target);
  }

  // repeated .opencv_caffe.BlobShape shape = 6;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_shape_size());
       i < n; i++) {
    const auto& repfield = this_._internal_shape().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            6, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.DummyDataParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t DummyDataParameter::ByteSizeLong(const MessageLite& base) {
  const DummyDataParameter& this_ = static_cast<const DummyDataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t DummyDataParameter::ByteSizeLong() const {
  const DummyDataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.DummyDataParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .opencv_caffe.FillerParameter data_filler = 1;
    {
      total_size += 1UL * this_._internal_data_filler_size();
      for (const auto& msg : this_._internal_data_filler()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated uint32 num = 2;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_num());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_num_size());
      total_size += tag_size + data_size;
    }
    // repeated uint32 channels = 3;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_channels());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_channels_size());
      total_size += tag_size + data_size;
    }
    // repeated uint32 height = 4;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_height());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_height_size());
      total_size += tag_size + data_size;
    }
    // repeated uint32 width = 5;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_width());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_width_size());
      total_size += tag_size + data_size;
    }
    // repeated .opencv_caffe.BlobShape shape = 6;
    {
      total_size += 1UL * this_._internal_shape_size();
      for (const auto& msg : this_._internal_shape()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void DummyDataParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<DummyDataParameter*>(&to_msg);
  auto& from = static_cast<const DummyDataParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.DummyDataParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_data_filler()->MergeFrom(
      from._internal_data_filler());
  _this->_internal_mutable_num()->MergeFrom(from._internal_num());
  _this->_internal_mutable_channels()->MergeFrom(from._internal_channels());
  _this->_internal_mutable_height()->MergeFrom(from._internal_height());
  _this->_internal_mutable_width()->MergeFrom(from._internal_width());
  _this->_internal_mutable_shape()->MergeFrom(
      from._internal_shape());
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void DummyDataParameter::CopyFrom(const DummyDataParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.DummyDataParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void DummyDataParameter::InternalSwap(DummyDataParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.data_filler_.InternalSwap(&other->_impl_.data_filler_);
  _impl_.num_.InternalSwap(&other->_impl_.num_);
  _impl_.channels_.InternalSwap(&other->_impl_.channels_);
  _impl_.height_.InternalSwap(&other->_impl_.height_);
  _impl_.width_.InternalSwap(&other->_impl_.width_);
  _impl_.shape_.InternalSwap(&other->_impl_.shape_);
}

::google::protobuf::Metadata DummyDataParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class EltwiseParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<EltwiseParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_._has_bits_);
};

EltwiseParameter::EltwiseParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EltwiseParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.EltwiseParameter)
}
PROTOBUF_NDEBUG_INLINE EltwiseParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::EltwiseParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        coeff_{visibility, arena, from.coeff_} {}

EltwiseParameter::EltwiseParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const EltwiseParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EltwiseParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  EltwiseParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, operation_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, operation_),
           offsetof(Impl_, stable_prod_grad_) -
               offsetof(Impl_, operation_) +
               sizeof(Impl_::stable_prod_grad_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.EltwiseParameter)
}
PROTOBUF_NDEBUG_INLINE EltwiseParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        coeff_{visibility, arena},
        operation_{static_cast< ::opencv_caffe::EltwiseParameter_EltwiseOp >(1)},
        stable_prod_grad_{true} {}

inline void EltwiseParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
EltwiseParameter::~EltwiseParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.EltwiseParameter)
  SharedDtor(*this);
}
inline void EltwiseParameter::SharedDtor(MessageLite& self) {
  EltwiseParameter& this_ = static_cast<EltwiseParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL EltwiseParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) EltwiseParameter(arena);
}
constexpr auto EltwiseParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_.coeff_) +
          decltype(EltwiseParameter::_impl_.coeff_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(EltwiseParameter), alignof(EltwiseParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&EltwiseParameter::PlacementNew_,
                                 sizeof(EltwiseParameter),
                                 alignof(EltwiseParameter));
  }
}
constexpr auto EltwiseParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_EltwiseParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &EltwiseParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<EltwiseParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &EltwiseParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<EltwiseParameter>(), &EltwiseParameter::ByteSizeLong,
              &EltwiseParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_._cached_size_),
          false,
      },
      &EltwiseParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull EltwiseParameter_class_data_ =
        EltwiseParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EltwiseParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EltwiseParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(EltwiseParameter_class_data_.tc_table);
  return EltwiseParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 1, 0, 2>
EltwiseParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    EltwiseParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::EltwiseParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional .opencv_caffe.EltwiseParameter.EltwiseOp operation = 1 [default = SUM];
    {::_pbi::TcParser::FastEr0S1,
     {8, 0, 2, PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_.operation_)}},
    // repeated float coeff = 2;
    {::_pbi::TcParser::FastF32R1,
     {21, 63, 0, PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_.coeff_)}},
    // optional bool stable_prod_grad = 3 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(EltwiseParameter, _impl_.stable_prod_grad_), 1>(),
     {24, 1, 0, PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_.stable_prod_grad_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.EltwiseParameter.EltwiseOp operation = 1 [default = SUM];
    {PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_.operation_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // repeated float coeff = 2;
    {PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_.coeff_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // optional bool stable_prod_grad = 3 [default = true];
    {PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_.stable_prod_grad_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  {{
      {0, 2},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void EltwiseParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.EltwiseParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.coeff_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    _impl_.operation_ = 1;
    _impl_.stable_prod_grad_ = true;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL EltwiseParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const EltwiseParameter& this_ = static_cast<const EltwiseParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL EltwiseParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const EltwiseParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.EltwiseParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.EltwiseParameter.EltwiseOp operation = 1 [default = SUM];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_operation(), target);
  }

  // repeated float coeff = 2;
  for (int i = 0, n = this_._internal_coeff_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_coeff().Get(i), target);
  }

  // optional bool stable_prod_grad = 3 [default = true];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        3, this_._internal_stable_prod_grad(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.EltwiseParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t EltwiseParameter::ByteSizeLong(const MessageLite& base) {
  const EltwiseParameter& this_ = static_cast<const EltwiseParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t EltwiseParameter::ByteSizeLong() const {
  const EltwiseParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.EltwiseParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated float coeff = 2;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_coeff_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_coeff_size());
      total_size += tag_size + data_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000002U & cached_has_bits) * 2;
   {
    // optional .opencv_caffe.EltwiseParameter.EltwiseOp operation = 1 [default = SUM];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_operation());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void EltwiseParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<EltwiseParameter*>(&to_msg);
  auto& from = static_cast<const EltwiseParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.EltwiseParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_coeff()->MergeFrom(from._internal_coeff());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.operation_ = from._impl_.operation_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.stable_prod_grad_ = from._impl_.stable_prod_grad_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void EltwiseParameter::CopyFrom(const EltwiseParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.EltwiseParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void EltwiseParameter::InternalSwap(EltwiseParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.coeff_.InternalSwap(&other->_impl_.coeff_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_.stable_prod_grad_)
      + sizeof(EltwiseParameter::_impl_.stable_prod_grad_)
      - PROTOBUF_FIELD_OFFSET(EltwiseParameter, _impl_.operation_)>(
          reinterpret_cast<char*>(&_impl_.operation_),
          reinterpret_cast<char*>(&other->_impl_.operation_));
}

::google::protobuf::Metadata EltwiseParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ELUParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ELUParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ELUParameter, _impl_._has_bits_);
};

ELUParameter::ELUParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ELUParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ELUParameter)
}
ELUParameter::ELUParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ELUParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ELUParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ELUParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        alpha_{1} {}

inline void ELUParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ELUParameter::~ELUParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ELUParameter)
  SharedDtor(*this);
}
inline void ELUParameter::SharedDtor(MessageLite& self) {
  ELUParameter& this_ = static_cast<ELUParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ELUParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ELUParameter(arena);
}
constexpr auto ELUParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ELUParameter),
                                            alignof(ELUParameter));
}
constexpr auto ELUParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ELUParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ELUParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ELUParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ELUParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ELUParameter>(), &ELUParameter::ByteSizeLong,
              &ELUParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ELUParameter, _impl_._cached_size_),
          false,
      },
      &ELUParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ELUParameter_class_data_ =
        ELUParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ELUParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ELUParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ELUParameter_class_data_.tc_table);
  return ELUParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 0, 0, 2>
ELUParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ELUParameter, _impl_._has_bits_),
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    ELUParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ELUParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional float alpha = 1 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {13, 0, 0, PROTOBUF_FIELD_OFFSET(ELUParameter, _impl_.alpha_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float alpha = 1 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ELUParameter, _impl_.alpha_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void ELUParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ELUParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.alpha_ = 1;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ELUParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ELUParameter& this_ = static_cast<const ELUParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ELUParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ELUParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ELUParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float alpha = 1 [default = 1];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_alpha(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ELUParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ELUParameter::ByteSizeLong(const MessageLite& base) {
  const ELUParameter& this_ = static_cast<const ELUParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ELUParameter::ByteSizeLong() const {
  const ELUParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ELUParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000001U & cached_has_bits) * 5;
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ELUParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ELUParameter*>(&to_msg);
  auto& from = static_cast<const ELUParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ELUParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _this->_impl_.alpha_ = from._impl_.alpha_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ELUParameter::CopyFrom(const ELUParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ELUParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ELUParameter::InternalSwap(ELUParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.alpha_, other->_impl_.alpha_);
}

::google::protobuf::Metadata ELUParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class EmbedParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<EmbedParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_._has_bits_);
};

EmbedParameter::EmbedParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EmbedParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.EmbedParameter)
}
PROTOBUF_NDEBUG_INLINE EmbedParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::EmbedParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

EmbedParameter::EmbedParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const EmbedParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, EmbedParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  EmbedParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.weight_filler_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_filler_)
                : nullptr;
  _impl_.bias_filler_ = ((cached_has_bits & 0x00000002U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, num_output_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, num_output_),
           offsetof(Impl_, bias_term_) -
               offsetof(Impl_, num_output_) +
               sizeof(Impl_::bias_term_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.EmbedParameter)
}
PROTOBUF_NDEBUG_INLINE EmbedParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        bias_term_{true} {}

inline void EmbedParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, weight_filler_),
           0,
           offsetof(Impl_, input_dim_) -
               offsetof(Impl_, weight_filler_) +
               sizeof(Impl_::input_dim_));
}
EmbedParameter::~EmbedParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.EmbedParameter)
  SharedDtor(*this);
}
inline void EmbedParameter::SharedDtor(MessageLite& self) {
  EmbedParameter& this_ = static_cast<EmbedParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.weight_filler_;
  delete this_._impl_.bias_filler_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL EmbedParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) EmbedParameter(arena);
}
constexpr auto EmbedParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(EmbedParameter),
                                            alignof(EmbedParameter));
}
constexpr auto EmbedParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_EmbedParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &EmbedParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<EmbedParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &EmbedParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<EmbedParameter>(), &EmbedParameter::ByteSizeLong,
              &EmbedParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_._cached_size_),
          false,
      },
      &EmbedParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull EmbedParameter_class_data_ =
        EmbedParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
EmbedParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&EmbedParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(EmbedParameter_class_data_.tc_table);
  return EmbedParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 5, 2, 0, 2>
EmbedParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_._has_bits_),
    0, // no _extensions_
    5, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967264,  // skipmap
    offsetof(decltype(_table_), field_entries),
    5,  // num_field_entries
    2,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    EmbedParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::EmbedParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional uint32 num_output = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EmbedParameter, _impl_.num_output_), 2>(),
     {8, 2, 0, PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.num_output_)}},
    // optional uint32 input_dim = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(EmbedParameter, _impl_.input_dim_), 3>(),
     {16, 3, 0, PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.input_dim_)}},
    // optional bool bias_term = 3 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(EmbedParameter, _impl_.bias_term_), 4>(),
     {24, 4, 0, PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.bias_term_)}},
    // optional .opencv_caffe.FillerParameter weight_filler = 4;
    {::_pbi::TcParser::FastMtS1,
     {34, 0, 0, PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.weight_filler_)}},
    // optional .opencv_caffe.FillerParameter bias_filler = 5;
    {::_pbi::TcParser::FastMtS1,
     {42, 1, 1, PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.bias_filler_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 num_output = 1;
    {PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.num_output_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 input_dim = 2;
    {PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.input_dim_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool bias_term = 3 [default = true];
    {PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.bias_term_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional .opencv_caffe.FillerParameter weight_filler = 4;
    {PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.weight_filler_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.FillerParameter bias_filler = 5;
    {PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.bias_filler_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void EmbedParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.EmbedParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(_impl_.weight_filler_ != nullptr);
      _impl_.weight_filler_->Clear();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(_impl_.bias_filler_ != nullptr);
      _impl_.bias_filler_->Clear();
    }
  }
  if ((cached_has_bits & 0x0000001cU) != 0) {
    ::memset(&_impl_.num_output_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.input_dim_) -
        reinterpret_cast<char*>(&_impl_.num_output_)) + sizeof(_impl_.input_dim_));
    _impl_.bias_term_ = true;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL EmbedParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const EmbedParameter& this_ = static_cast<const EmbedParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL EmbedParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const EmbedParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.EmbedParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 num_output = 1;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_num_output(), target);
  }

  // optional uint32 input_dim = 2;
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_input_dim(), target);
  }

  // optional bool bias_term = 3 [default = true];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        3, this_._internal_bias_term(), target);
  }

  // optional .opencv_caffe.FillerParameter weight_filler = 4;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.weight_filler_, this_._impl_.weight_filler_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.FillerParameter bias_filler = 5;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.bias_filler_, this_._impl_.bias_filler_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.EmbedParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t EmbedParameter::ByteSizeLong(const MessageLite& base) {
  const EmbedParameter& this_ = static_cast<const EmbedParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t EmbedParameter::ByteSizeLong() const {
  const EmbedParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.EmbedParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000010U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x0000000fU) != 0) {
    // optional .opencv_caffe.FillerParameter weight_filler = 4;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.weight_filler_);
    }
    // optional .opencv_caffe.FillerParameter bias_filler = 5;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bias_filler_);
    }
    // optional uint32 num_output = 1;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_num_output());
    }
    // optional uint32 input_dim = 2;
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_input_dim());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void EmbedParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<EmbedParameter*>(&to_msg);
  auto& from = static_cast<const EmbedParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.EmbedParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000001fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(from._impl_.weight_filler_ != nullptr);
      if (_this->_impl_.weight_filler_ == nullptr) {
        _this->_impl_.weight_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_filler_);
      } else {
        _this->_impl_.weight_filler_->MergeFrom(*from._impl_.weight_filler_);
      }
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(from._impl_.bias_filler_ != nullptr);
      if (_this->_impl_.bias_filler_ == nullptr) {
        _this->_impl_.bias_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_);
      } else {
        _this->_impl_.bias_filler_->MergeFrom(*from._impl_.bias_filler_);
      }
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.num_output_ = from._impl_.num_output_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.input_dim_ = from._impl_.input_dim_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.bias_term_ = from._impl_.bias_term_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void EmbedParameter::CopyFrom(const EmbedParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.EmbedParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void EmbedParameter::InternalSwap(EmbedParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.bias_term_)
      + sizeof(EmbedParameter::_impl_.bias_term_)
      - PROTOBUF_FIELD_OFFSET(EmbedParameter, _impl_.weight_filler_)>(
          reinterpret_cast<char*>(&_impl_.weight_filler_),
          reinterpret_cast<char*>(&other->_impl_.weight_filler_));
}

::google::protobuf::Metadata EmbedParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ExpParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ExpParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ExpParameter, _impl_._has_bits_);
};

ExpParameter::ExpParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExpParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ExpParameter)
}
ExpParameter::ExpParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ExpParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ExpParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ExpParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        base_{-1},
        scale_{1} {}

inline void ExpParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.shift_ = {};
}
ExpParameter::~ExpParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ExpParameter)
  SharedDtor(*this);
}
inline void ExpParameter::SharedDtor(MessageLite& self) {
  ExpParameter& this_ = static_cast<ExpParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ExpParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ExpParameter(arena);
}
constexpr auto ExpParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ExpParameter),
                                            alignof(ExpParameter));
}
constexpr auto ExpParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ExpParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ExpParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ExpParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ExpParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ExpParameter>(), &ExpParameter::ByteSizeLong,
              &ExpParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ExpParameter, _impl_._cached_size_),
          false,
      },
      &ExpParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ExpParameter_class_data_ =
        ExpParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ExpParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ExpParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ExpParameter_class_data_.tc_table);
  return ExpParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
ExpParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ExpParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    ExpParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ExpParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional float base = 1 [default = -1];
    {::_pbi::TcParser::FastF32S1,
     {13, 1, 0, PROTOBUF_FIELD_OFFSET(ExpParameter, _impl_.base_)}},
    // optional float scale = 2 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {21, 2, 0, PROTOBUF_FIELD_OFFSET(ExpParameter, _impl_.scale_)}},
    // optional float shift = 3 [default = 0];
    {::_pbi::TcParser::FastF32S1,
     {29, 0, 0, PROTOBUF_FIELD_OFFSET(ExpParameter, _impl_.shift_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float base = 1 [default = -1];
    {PROTOBUF_FIELD_OFFSET(ExpParameter, _impl_.base_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float scale = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ExpParameter, _impl_.scale_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float shift = 3 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ExpParameter, _impl_.shift_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void ExpParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ExpParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    _impl_.shift_ = 0;
    _impl_.base_ = -1;
    _impl_.scale_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ExpParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ExpParameter& this_ = static_cast<const ExpParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ExpParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ExpParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ExpParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float base = 1 [default = -1];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_base(), target);
  }

  // optional float scale = 2 [default = 1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_scale(), target);
  }

  // optional float shift = 3 [default = 0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_shift(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ExpParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ExpParameter::ByteSizeLong(const MessageLite& base) {
  const ExpParameter& this_ = static_cast<const ExpParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ExpParameter::ByteSizeLong() const {
  const ExpParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ExpParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00000007U & cached_has_bits) * 5;
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ExpParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ExpParameter*>(&to_msg);
  auto& from = static_cast<const ExpParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ExpParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.shift_ = from._impl_.shift_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.base_ = from._impl_.base_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.scale_ = from._impl_.scale_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ExpParameter::CopyFrom(const ExpParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ExpParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ExpParameter::InternalSwap(ExpParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ExpParameter, _impl_.scale_)
      + sizeof(ExpParameter::_impl_.scale_)
      - PROTOBUF_FIELD_OFFSET(ExpParameter, _impl_.shift_)>(
          reinterpret_cast<char*>(&_impl_.shift_),
          reinterpret_cast<char*>(&other->_impl_.shift_));
}

::google::protobuf::Metadata ExpParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class FlattenParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<FlattenParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(FlattenParameter, _impl_._has_bits_);
};

FlattenParameter::FlattenParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlattenParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.FlattenParameter)
}
FlattenParameter::FlattenParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const FlattenParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, FlattenParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE FlattenParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        axis_{1},
        end_axis_{-1} {}

inline void FlattenParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
FlattenParameter::~FlattenParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.FlattenParameter)
  SharedDtor(*this);
}
inline void FlattenParameter::SharedDtor(MessageLite& self) {
  FlattenParameter& this_ = static_cast<FlattenParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL FlattenParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) FlattenParameter(arena);
}
constexpr auto FlattenParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(FlattenParameter),
                                            alignof(FlattenParameter));
}
constexpr auto FlattenParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_FlattenParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &FlattenParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<FlattenParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &FlattenParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<FlattenParameter>(), &FlattenParameter::ByteSizeLong,
              &FlattenParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(FlattenParameter, _impl_._cached_size_),
          false,
      },
      &FlattenParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull FlattenParameter_class_data_ =
        FlattenParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
FlattenParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&FlattenParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(FlattenParameter_class_data_.tc_table);
  return FlattenParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 0, 0, 2>
FlattenParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(FlattenParameter, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    FlattenParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::FlattenParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional int32 end_axis = 2 [default = -1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FlattenParameter, _impl_.end_axis_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(FlattenParameter, _impl_.end_axis_)}},
    // optional int32 axis = 1 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(FlattenParameter, _impl_.axis_), 0>(),
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(FlattenParameter, _impl_.axis_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 axis = 1 [default = 1];
    {PROTOBUF_FIELD_OFFSET(FlattenParameter, _impl_.axis_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 end_axis = 2 [default = -1];
    {PROTOBUF_FIELD_OFFSET(FlattenParameter, _impl_.end_axis_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void FlattenParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.FlattenParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    _impl_.axis_ = 1;
    _impl_.end_axis_ = -1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL FlattenParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const FlattenParameter& this_ = static_cast<const FlattenParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL FlattenParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const FlattenParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.FlattenParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 axis = 1 [default = 1];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_axis(), target);
  }

  // optional int32 end_axis = 2 [default = -1];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_end_axis(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.FlattenParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t FlattenParameter::ByteSizeLong(const MessageLite& base) {
  const FlattenParameter& this_ = static_cast<const FlattenParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t FlattenParameter::ByteSizeLong() const {
  const FlattenParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.FlattenParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional int32 axis = 1 [default = 1];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
    // optional int32 end_axis = 2 [default = -1];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_end_axis());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void FlattenParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<FlattenParameter*>(&to_msg);
  auto& from = static_cast<const FlattenParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.FlattenParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.end_axis_ = from._impl_.end_axis_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void FlattenParameter::CopyFrom(const FlattenParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.FlattenParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void FlattenParameter::InternalSwap(FlattenParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(FlattenParameter, _impl_.end_axis_)
      + sizeof(FlattenParameter::_impl_.end_axis_)
      - PROTOBUF_FIELD_OFFSET(FlattenParameter, _impl_.axis_)>(
          reinterpret_cast<char*>(&_impl_.axis_),
          reinterpret_cast<char*>(&other->_impl_.axis_));
}

::google::protobuf::Metadata FlattenParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class HDF5DataParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<HDF5DataParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(HDF5DataParameter, _impl_._has_bits_);
};

HDF5DataParameter::HDF5DataParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, HDF5DataParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.HDF5DataParameter)
}
PROTOBUF_NDEBUG_INLINE HDF5DataParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::HDF5DataParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        source_(arena, from.source_) {}

HDF5DataParameter::HDF5DataParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const HDF5DataParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, HDF5DataParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  HDF5DataParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, batch_size_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, batch_size_),
           offsetof(Impl_, shuffle_) -
               offsetof(Impl_, batch_size_) +
               sizeof(Impl_::shuffle_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.HDF5DataParameter)
}
PROTOBUF_NDEBUG_INLINE HDF5DataParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        source_(arena) {}

inline void HDF5DataParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, batch_size_),
           0,
           offsetof(Impl_, shuffle_) -
               offsetof(Impl_, batch_size_) +
               sizeof(Impl_::shuffle_));
}
HDF5DataParameter::~HDF5DataParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.HDF5DataParameter)
  SharedDtor(*this);
}
inline void HDF5DataParameter::SharedDtor(MessageLite& self) {
  HDF5DataParameter& this_ = static_cast<HDF5DataParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.source_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL HDF5DataParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HDF5DataParameter(arena);
}
constexpr auto HDF5DataParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(HDF5DataParameter),
                                            alignof(HDF5DataParameter));
}
constexpr auto HDF5DataParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_HDF5DataParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &HDF5DataParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<HDF5DataParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HDF5DataParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<HDF5DataParameter>(), &HDF5DataParameter::ByteSizeLong,
              &HDF5DataParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HDF5DataParameter, _impl_._cached_size_),
          false,
      },
      &HDF5DataParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull HDF5DataParameter_class_data_ =
        HDF5DataParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HDF5DataParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&HDF5DataParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(HDF5DataParameter_class_data_.tc_table);
  return HDF5DataParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 45, 2>
HDF5DataParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(HDF5DataParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    HDF5DataParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::HDF5DataParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional string source = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(HDF5DataParameter, _impl_.source_)}},
    // optional uint32 batch_size = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(HDF5DataParameter, _impl_.batch_size_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(HDF5DataParameter, _impl_.batch_size_)}},
    // optional bool shuffle = 3 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(HDF5DataParameter, _impl_.shuffle_), 2>(),
     {24, 2, 0, PROTOBUF_FIELD_OFFSET(HDF5DataParameter, _impl_.shuffle_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional string source = 1;
    {PROTOBUF_FIELD_OFFSET(HDF5DataParameter, _impl_.source_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional uint32 batch_size = 2;
    {PROTOBUF_FIELD_OFFSET(HDF5DataParameter, _impl_.batch_size_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool shuffle = 3 [default = false];
    {PROTOBUF_FIELD_OFFSET(HDF5DataParameter, _impl_.shuffle_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  // no aux_entries
  {{
    "\36\6\0\0\0\0\0\0"
    "opencv_caffe.HDF5DataParameter"
    "source"
  }},
};
PROTOBUF_NOINLINE void HDF5DataParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.HDF5DataParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _impl_.source_.ClearNonDefaultToEmpty();
  }
  if ((cached_has_bits & 0x00000006U) != 0) {
    ::memset(&_impl_.batch_size_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.shuffle_) -
        reinterpret_cast<char*>(&_impl_.batch_size_)) + sizeof(_impl_.shuffle_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL HDF5DataParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const HDF5DataParameter& this_ = static_cast<const HDF5DataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL HDF5DataParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const HDF5DataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.HDF5DataParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string source = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_source();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.HDF5DataParameter.source");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional uint32 batch_size = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_batch_size(), target);
  }

  // optional bool shuffle = 3 [default = false];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        3, this_._internal_shuffle(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.HDF5DataParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t HDF5DataParameter::ByteSizeLong(const MessageLite& base) {
  const HDF5DataParameter& this_ = static_cast<const HDF5DataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t HDF5DataParameter::ByteSizeLong() const {
  const HDF5DataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.HDF5DataParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000004U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional string source = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_source());
    }
    // optional uint32 batch_size = 2;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_batch_size());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void HDF5DataParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<HDF5DataParameter*>(&to_msg);
  auto& from = static_cast<const HDF5DataParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.HDF5DataParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_source(from._internal_source());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.batch_size_ = from._impl_.batch_size_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.shuffle_ = from._impl_.shuffle_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void HDF5DataParameter::CopyFrom(const HDF5DataParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.HDF5DataParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void HDF5DataParameter::InternalSwap(HDF5DataParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.source_, &other->_impl_.source_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(HDF5DataParameter, _impl_.shuffle_)
      + sizeof(HDF5DataParameter::_impl_.shuffle_)
      - PROTOBUF_FIELD_OFFSET(HDF5DataParameter, _impl_.batch_size_)>(
          reinterpret_cast<char*>(&_impl_.batch_size_),
          reinterpret_cast<char*>(&other->_impl_.batch_size_));
}

::google::protobuf::Metadata HDF5DataParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class HDF5OutputParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<HDF5OutputParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(HDF5OutputParameter, _impl_._has_bits_);
};

HDF5OutputParameter::HDF5OutputParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, HDF5OutputParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.HDF5OutputParameter)
}
PROTOBUF_NDEBUG_INLINE HDF5OutputParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::HDF5OutputParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        file_name_(arena, from.file_name_) {}

HDF5OutputParameter::HDF5OutputParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const HDF5OutputParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, HDF5OutputParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  HDF5OutputParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.HDF5OutputParameter)
}
PROTOBUF_NDEBUG_INLINE HDF5OutputParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        file_name_(arena) {}

inline void HDF5OutputParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
HDF5OutputParameter::~HDF5OutputParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.HDF5OutputParameter)
  SharedDtor(*this);
}
inline void HDF5OutputParameter::SharedDtor(MessageLite& self) {
  HDF5OutputParameter& this_ = static_cast<HDF5OutputParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.file_name_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL HDF5OutputParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HDF5OutputParameter(arena);
}
constexpr auto HDF5OutputParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(HDF5OutputParameter),
                                            alignof(HDF5OutputParameter));
}
constexpr auto HDF5OutputParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_HDF5OutputParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &HDF5OutputParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<HDF5OutputParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HDF5OutputParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<HDF5OutputParameter>(), &HDF5OutputParameter::ByteSizeLong,
              &HDF5OutputParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HDF5OutputParameter, _impl_._cached_size_),
          false,
      },
      &HDF5OutputParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull HDF5OutputParameter_class_data_ =
        HDF5OutputParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HDF5OutputParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&HDF5OutputParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(HDF5OutputParameter_class_data_.tc_table);
  return HDF5OutputParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 0, 50, 2>
HDF5OutputParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(HDF5OutputParameter, _impl_._has_bits_),
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    HDF5OutputParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::HDF5OutputParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional string file_name = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(HDF5OutputParameter, _impl_.file_name_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional string file_name = 1;
    {PROTOBUF_FIELD_OFFSET(HDF5OutputParameter, _impl_.file_name_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
  }},
  // no aux_entries
  {{
    "\40\11\0\0\0\0\0\0"
    "opencv_caffe.HDF5OutputParameter"
    "file_name"
  }},
};
PROTOBUF_NOINLINE void HDF5OutputParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.HDF5OutputParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _impl_.file_name_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL HDF5OutputParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const HDF5OutputParameter& this_ = static_cast<const HDF5OutputParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL HDF5OutputParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const HDF5OutputParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.HDF5OutputParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string file_name = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_file_name();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.HDF5OutputParameter.file_name");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.HDF5OutputParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t HDF5OutputParameter::ByteSizeLong(const MessageLite& base) {
  const HDF5OutputParameter& this_ = static_cast<const HDF5OutputParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t HDF5OutputParameter::ByteSizeLong() const {
  const HDF5OutputParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.HDF5OutputParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // optional string file_name = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_file_name());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void HDF5OutputParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<HDF5OutputParameter*>(&to_msg);
  auto& from = static_cast<const HDF5OutputParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.HDF5OutputParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _this->_internal_set_file_name(from._internal_file_name());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void HDF5OutputParameter::CopyFrom(const HDF5OutputParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.HDF5OutputParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void HDF5OutputParameter::InternalSwap(HDF5OutputParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.file_name_, &other->_impl_.file_name_, arena);
}

::google::protobuf::Metadata HDF5OutputParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class HingeLossParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<HingeLossParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(HingeLossParameter, _impl_._has_bits_);
};

HingeLossParameter::HingeLossParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, HingeLossParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.HingeLossParameter)
}
HingeLossParameter::HingeLossParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const HingeLossParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, HingeLossParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE HingeLossParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        norm_{static_cast< ::opencv_caffe::HingeLossParameter_Norm >(1)} {}

inline void HingeLossParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
HingeLossParameter::~HingeLossParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.HingeLossParameter)
  SharedDtor(*this);
}
inline void HingeLossParameter::SharedDtor(MessageLite& self) {
  HingeLossParameter& this_ = static_cast<HingeLossParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL HingeLossParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) HingeLossParameter(arena);
}
constexpr auto HingeLossParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(HingeLossParameter),
                                            alignof(HingeLossParameter));
}
constexpr auto HingeLossParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_HingeLossParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &HingeLossParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<HingeLossParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &HingeLossParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<HingeLossParameter>(), &HingeLossParameter::ByteSizeLong,
              &HingeLossParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(HingeLossParameter, _impl_._cached_size_),
          false,
      },
      &HingeLossParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull HingeLossParameter_class_data_ =
        HingeLossParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
HingeLossParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&HingeLossParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(HingeLossParameter_class_data_.tc_table);
  return HingeLossParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 1, 0, 2>
HingeLossParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(HingeLossParameter, _impl_._has_bits_),
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    HingeLossParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::HingeLossParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional .opencv_caffe.HingeLossParameter.Norm norm = 1 [default = L1];
    {::_pbi::TcParser::FastEr1S1,
     {8, 0, 2, PROTOBUF_FIELD_OFFSET(HingeLossParameter, _impl_.norm_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.HingeLossParameter.Norm norm = 1 [default = L1];
    {PROTOBUF_FIELD_OFFSET(HingeLossParameter, _impl_.norm_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
  }},
  {{
      {1, 2},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void HingeLossParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.HingeLossParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.norm_ = 1;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL HingeLossParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const HingeLossParameter& this_ = static_cast<const HingeLossParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL HingeLossParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const HingeLossParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.HingeLossParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.HingeLossParameter.Norm norm = 1 [default = L1];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_norm(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.HingeLossParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t HingeLossParameter::ByteSizeLong(const MessageLite& base) {
  const HingeLossParameter& this_ = static_cast<const HingeLossParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t HingeLossParameter::ByteSizeLong() const {
  const HingeLossParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.HingeLossParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // optional .opencv_caffe.HingeLossParameter.Norm norm = 1 [default = L1];
    cached_has_bits = this_._impl_._has_bits_[0];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_norm());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void HingeLossParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<HingeLossParameter*>(&to_msg);
  auto& from = static_cast<const HingeLossParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.HingeLossParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _this->_impl_.norm_ = from._impl_.norm_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void HingeLossParameter::CopyFrom(const HingeLossParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.HingeLossParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void HingeLossParameter::InternalSwap(HingeLossParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.norm_, other->_impl_.norm_);
}

::google::protobuf::Metadata HingeLossParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ImageDataParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ImageDataParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_._has_bits_);
};

ImageDataParameter::ImageDataParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ImageDataParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ImageDataParameter)
}
PROTOBUF_NDEBUG_INLINE ImageDataParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::ImageDataParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        source_(arena, from.source_),
        mean_file_(arena, from.mean_file_),
        root_folder_(arena, from.root_folder_) {}

ImageDataParameter::ImageDataParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ImageDataParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ImageDataParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ImageDataParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, crop_size_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, crop_size_),
           offsetof(Impl_, batch_size_) -
               offsetof(Impl_, crop_size_) +
               sizeof(Impl_::batch_size_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.ImageDataParameter)
}
PROTOBUF_NDEBUG_INLINE ImageDataParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        source_(arena),
        mean_file_(arena),
        root_folder_(arena),
        is_color_{true},
        scale_{1},
        batch_size_{1u} {}

inline void ImageDataParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, crop_size_),
           0,
           offsetof(Impl_, new_width_) -
               offsetof(Impl_, crop_size_) +
               sizeof(Impl_::new_width_));
}
ImageDataParameter::~ImageDataParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ImageDataParameter)
  SharedDtor(*this);
}
inline void ImageDataParameter::SharedDtor(MessageLite& self) {
  ImageDataParameter& this_ = static_cast<ImageDataParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.source_.Destroy();
  this_._impl_.mean_file_.Destroy();
  this_._impl_.root_folder_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ImageDataParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ImageDataParameter(arena);
}
constexpr auto ImageDataParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ImageDataParameter),
                                            alignof(ImageDataParameter));
}
constexpr auto ImageDataParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ImageDataParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ImageDataParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ImageDataParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ImageDataParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ImageDataParameter>(), &ImageDataParameter::ByteSizeLong,
              &ImageDataParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_._cached_size_),
          false,
      },
      &ImageDataParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ImageDataParameter_class_data_ =
        ImageDataParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ImageDataParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ImageDataParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ImageDataParameter_class_data_.tc_table);
  return ImageDataParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<4, 12, 0, 74, 2>
ImageDataParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_._has_bits_),
    0, // no _extensions_
    12, 120,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294963200,  // skipmap
    offsetof(decltype(_table_), field_entries),
    12,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    ImageDataParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ImageDataParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional string source = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.source_)}},
    // optional float scale = 2 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {21, 10, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.scale_)}},
    // optional string mean_file = 3;
    {::_pbi::TcParser::FastSS1,
     {26, 1, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.mean_file_)}},
    // optional uint32 batch_size = 4 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImageDataParameter, _impl_.batch_size_), 11>(),
     {32, 11, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.batch_size_)}},
    // optional uint32 crop_size = 5 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImageDataParameter, _impl_.crop_size_), 3>(),
     {40, 3, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.crop_size_)}},
    // optional bool mirror = 6 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(ImageDataParameter, _impl_.mirror_), 5>(),
     {48, 5, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.mirror_)}},
    // optional uint32 rand_skip = 7 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImageDataParameter, _impl_.rand_skip_), 4>(),
     {56, 4, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.rand_skip_)}},
    // optional bool shuffle = 8 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(ImageDataParameter, _impl_.shuffle_), 6>(),
     {64, 6, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.shuffle_)}},
    // optional uint32 new_height = 9 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImageDataParameter, _impl_.new_height_), 7>(),
     {72, 7, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.new_height_)}},
    // optional uint32 new_width = 10 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ImageDataParameter, _impl_.new_width_), 8>(),
     {80, 8, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.new_width_)}},
    // optional bool is_color = 11 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(ImageDataParameter, _impl_.is_color_), 9>(),
     {88, 9, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.is_color_)}},
    // optional string root_folder = 12 [default = ""];
    {::_pbi::TcParser::FastSS1,
     {98, 2, 0, PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.root_folder_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional string source = 1;
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.source_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional float scale = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.scale_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional string mean_file = 3;
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.mean_file_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional uint32 batch_size = 4 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.batch_size_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 crop_size = 5 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.crop_size_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool mirror = 6 [default = false];
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.mirror_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional uint32 rand_skip = 7 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.rand_skip_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool shuffle = 8 [default = false];
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.shuffle_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional uint32 new_height = 9 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.new_height_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 new_width = 10 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.new_width_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool is_color = 11 [default = true];
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.is_color_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional string root_folder = 12 [default = ""];
    {PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.root_folder_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
  }},
  // no aux_entries
  {{
    "\37\6\0\11\0\0\0\0\0\0\0\0\13\0\0\0"
    "opencv_caffe.ImageDataParameter"
    "source"
    "mean_file"
    "root_folder"
  }},
};
PROTOBUF_NOINLINE void ImageDataParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ImageDataParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _impl_.source_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _impl_.mean_file_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _impl_.root_folder_.ClearNonDefaultToEmpty();
    }
  }
  if ((cached_has_bits & 0x000000f8U) != 0) {
    ::memset(&_impl_.crop_size_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.new_height_) -
        reinterpret_cast<char*>(&_impl_.crop_size_)) + sizeof(_impl_.new_height_));
  }
  if ((cached_has_bits & 0x00000f00U) != 0) {
    _impl_.new_width_ = 0u;
    _impl_.is_color_ = true;
    _impl_.scale_ = 1;
    _impl_.batch_size_ = 1u;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ImageDataParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ImageDataParameter& this_ = static_cast<const ImageDataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ImageDataParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ImageDataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ImageDataParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string source = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_source();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.ImageDataParameter.source");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional float scale = 2 [default = 1];
  if ((cached_has_bits & 0x00000400U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_scale(), target);
  }

  // optional string mean_file = 3;
  if ((cached_has_bits & 0x00000002U) != 0) {
    const ::std::string& _s = this_._internal_mean_file();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.ImageDataParameter.mean_file");
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // optional uint32 batch_size = 4 [default = 1];
  if ((cached_has_bits & 0x00000800U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        4, this_._internal_batch_size(), target);
  }

  // optional uint32 crop_size = 5 [default = 0];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        5, this_._internal_crop_size(), target);
  }

  // optional bool mirror = 6 [default = false];
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_mirror(), target);
  }

  // optional uint32 rand_skip = 7 [default = 0];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        7, this_._internal_rand_skip(), target);
  }

  // optional bool shuffle = 8 [default = false];
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        8, this_._internal_shuffle(), target);
  }

  // optional uint32 new_height = 9 [default = 0];
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        9, this_._internal_new_height(), target);
  }

  // optional uint32 new_width = 10 [default = 0];
  if ((cached_has_bits & 0x00000100U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        10, this_._internal_new_width(), target);
  }

  // optional bool is_color = 11 [default = true];
  if ((cached_has_bits & 0x00000200U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        11, this_._internal_is_color(), target);
  }

  // optional string root_folder = 12 [default = ""];
  if ((cached_has_bits & 0x00000004U) != 0) {
    const ::std::string& _s = this_._internal_root_folder();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.ImageDataParameter.root_folder");
    target = stream->WriteStringMaybeAliased(12, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ImageDataParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ImageDataParameter::ByteSizeLong(const MessageLite& base) {
  const ImageDataParameter& this_ = static_cast<const ImageDataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ImageDataParameter::ByteSizeLong() const {
  const ImageDataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ImageDataParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000400U & cached_has_bits) * 5;
  total_size += ::absl::popcount(0x00000260U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x0000009fU) != 0) {
    // optional string source = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_source());
    }
    // optional string mean_file = 3;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_mean_file());
    }
    // optional string root_folder = 12 [default = ""];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_root_folder());
    }
    // optional uint32 crop_size = 5 [default = 0];
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_crop_size());
    }
    // optional uint32 rand_skip = 7 [default = 0];
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_rand_skip());
    }
    // optional uint32 new_height = 9 [default = 0];
    if ((cached_has_bits & 0x00000080U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_new_height());
    }
  }
  if ((cached_has_bits & 0x00000900U) != 0) {
    // optional uint32 new_width = 10 [default = 0];
    if ((cached_has_bits & 0x00000100U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_new_width());
    }
    // optional uint32 batch_size = 4 [default = 1];
    if ((cached_has_bits & 0x00000800U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_batch_size());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ImageDataParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ImageDataParameter*>(&to_msg);
  auto& from = static_cast<const ImageDataParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ImageDataParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_source(from._internal_source());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_internal_set_mean_file(from._internal_mean_file());
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_internal_set_root_folder(from._internal_root_folder());
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.crop_size_ = from._impl_.crop_size_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.rand_skip_ = from._impl_.rand_skip_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.mirror_ = from._impl_.mirror_;
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      _this->_impl_.shuffle_ = from._impl_.shuffle_;
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      _this->_impl_.new_height_ = from._impl_.new_height_;
    }
  }
  if ((cached_has_bits & 0x00000f00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      _this->_impl_.new_width_ = from._impl_.new_width_;
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      _this->_impl_.is_color_ = from._impl_.is_color_;
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      _this->_impl_.scale_ = from._impl_.scale_;
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      _this->_impl_.batch_size_ = from._impl_.batch_size_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ImageDataParameter::CopyFrom(const ImageDataParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ImageDataParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ImageDataParameter::InternalSwap(ImageDataParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.source_, &other->_impl_.source_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.mean_file_, &other->_impl_.mean_file_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.root_folder_, &other->_impl_.root_folder_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.batch_size_)
      + sizeof(ImageDataParameter::_impl_.batch_size_)
      - PROTOBUF_FIELD_OFFSET(ImageDataParameter, _impl_.crop_size_)>(
          reinterpret_cast<char*>(&_impl_.crop_size_),
          reinterpret_cast<char*>(&other->_impl_.crop_size_));
}

::google::protobuf::Metadata ImageDataParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class InfogainLossParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<InfogainLossParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(InfogainLossParameter, _impl_._has_bits_);
};

InfogainLossParameter::InfogainLossParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, InfogainLossParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.InfogainLossParameter)
}
PROTOBUF_NDEBUG_INLINE InfogainLossParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::InfogainLossParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        source_(arena, from.source_) {}

InfogainLossParameter::InfogainLossParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const InfogainLossParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, InfogainLossParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  InfogainLossParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.InfogainLossParameter)
}
PROTOBUF_NDEBUG_INLINE InfogainLossParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        source_(arena) {}

inline void InfogainLossParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
InfogainLossParameter::~InfogainLossParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.InfogainLossParameter)
  SharedDtor(*this);
}
inline void InfogainLossParameter::SharedDtor(MessageLite& self) {
  InfogainLossParameter& this_ = static_cast<InfogainLossParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.source_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL InfogainLossParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) InfogainLossParameter(arena);
}
constexpr auto InfogainLossParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(InfogainLossParameter),
                                            alignof(InfogainLossParameter));
}
constexpr auto InfogainLossParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_InfogainLossParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &InfogainLossParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<InfogainLossParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &InfogainLossParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<InfogainLossParameter>(), &InfogainLossParameter::ByteSizeLong,
              &InfogainLossParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(InfogainLossParameter, _impl_._cached_size_),
          false,
      },
      &InfogainLossParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull InfogainLossParameter_class_data_ =
        InfogainLossParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
InfogainLossParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&InfogainLossParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(InfogainLossParameter_class_data_.tc_table);
  return InfogainLossParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 0, 49, 2>
InfogainLossParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(InfogainLossParameter, _impl_._has_bits_),
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    InfogainLossParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::InfogainLossParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional string source = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(InfogainLossParameter, _impl_.source_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional string source = 1;
    {PROTOBUF_FIELD_OFFSET(InfogainLossParameter, _impl_.source_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
  }},
  // no aux_entries
  {{
    "\42\6\0\0\0\0\0\0"
    "opencv_caffe.InfogainLossParameter"
    "source"
  }},
};
PROTOBUF_NOINLINE void InfogainLossParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.InfogainLossParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _impl_.source_.ClearNonDefaultToEmpty();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL InfogainLossParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const InfogainLossParameter& this_ = static_cast<const InfogainLossParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL InfogainLossParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const InfogainLossParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.InfogainLossParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string source = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_source();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.InfogainLossParameter.source");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.InfogainLossParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t InfogainLossParameter::ByteSizeLong(const MessageLite& base) {
  const InfogainLossParameter& this_ = static_cast<const InfogainLossParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t InfogainLossParameter::ByteSizeLong() const {
  const InfogainLossParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.InfogainLossParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // optional string source = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_source());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void InfogainLossParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<InfogainLossParameter*>(&to_msg);
  auto& from = static_cast<const InfogainLossParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.InfogainLossParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _this->_internal_set_source(from._internal_source());
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void InfogainLossParameter::CopyFrom(const InfogainLossParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.InfogainLossParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void InfogainLossParameter::InternalSwap(InfogainLossParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.source_, &other->_impl_.source_, arena);
}

::google::protobuf::Metadata InfogainLossParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class InnerProductParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<InnerProductParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_._has_bits_);
};

InnerProductParameter::InnerProductParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, InnerProductParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.InnerProductParameter)
}
PROTOBUF_NDEBUG_INLINE InnerProductParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::InnerProductParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

InnerProductParameter::InnerProductParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const InnerProductParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, InnerProductParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  InnerProductParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.weight_filler_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_filler_)
                : nullptr;
  _impl_.bias_filler_ = ((cached_has_bits & 0x00000002U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, num_output_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, num_output_),
           offsetof(Impl_, axis_) -
               offsetof(Impl_, num_output_) +
               sizeof(Impl_::axis_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.InnerProductParameter)
}
PROTOBUF_NDEBUG_INLINE InnerProductParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        bias_term_{true},
        axis_{1} {}

inline void InnerProductParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, weight_filler_),
           0,
           offsetof(Impl_, transpose_) -
               offsetof(Impl_, weight_filler_) +
               sizeof(Impl_::transpose_));
}
InnerProductParameter::~InnerProductParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.InnerProductParameter)
  SharedDtor(*this);
}
inline void InnerProductParameter::SharedDtor(MessageLite& self) {
  InnerProductParameter& this_ = static_cast<InnerProductParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.weight_filler_;
  delete this_._impl_.bias_filler_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL InnerProductParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) InnerProductParameter(arena);
}
constexpr auto InnerProductParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(InnerProductParameter),
                                            alignof(InnerProductParameter));
}
constexpr auto InnerProductParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_InnerProductParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &InnerProductParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<InnerProductParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &InnerProductParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<InnerProductParameter>(), &InnerProductParameter::ByteSizeLong,
              &InnerProductParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_._cached_size_),
          false,
      },
      &InnerProductParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull InnerProductParameter_class_data_ =
        InnerProductParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
InnerProductParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&InnerProductParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(InnerProductParameter_class_data_.tc_table);
  return InnerProductParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 6, 2, 0, 2>
InnerProductParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_._has_bits_),
    0, // no _extensions_
    6, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967232,  // skipmap
    offsetof(decltype(_table_), field_entries),
    6,  // num_field_entries
    2,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    InnerProductParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::InnerProductParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional uint32 num_output = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(InnerProductParameter, _impl_.num_output_), 2>(),
     {8, 2, 0, PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.num_output_)}},
    // optional bool bias_term = 2 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(InnerProductParameter, _impl_.bias_term_), 4>(),
     {16, 4, 0, PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.bias_term_)}},
    // optional .opencv_caffe.FillerParameter weight_filler = 3;
    {::_pbi::TcParser::FastMtS1,
     {26, 0, 0, PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.weight_filler_)}},
    // optional .opencv_caffe.FillerParameter bias_filler = 4;
    {::_pbi::TcParser::FastMtS1,
     {34, 1, 1, PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.bias_filler_)}},
    // optional int32 axis = 5 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(InnerProductParameter, _impl_.axis_), 5>(),
     {40, 5, 0, PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.axis_)}},
    // optional bool transpose = 6 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(InnerProductParameter, _impl_.transpose_), 3>(),
     {48, 3, 0, PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.transpose_)}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 num_output = 1;
    {PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.num_output_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool bias_term = 2 [default = true];
    {PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.bias_term_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional .opencv_caffe.FillerParameter weight_filler = 3;
    {PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.weight_filler_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.FillerParameter bias_filler = 4;
    {PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.bias_filler_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional int32 axis = 5 [default = 1];
    {PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.axis_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional bool transpose = 6 [default = false];
    {PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.transpose_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void InnerProductParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.InnerProductParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(_impl_.weight_filler_ != nullptr);
      _impl_.weight_filler_->Clear();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(_impl_.bias_filler_ != nullptr);
      _impl_.bias_filler_->Clear();
    }
  }
  if ((cached_has_bits & 0x0000003cU) != 0) {
    ::memset(&_impl_.num_output_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.transpose_) -
        reinterpret_cast<char*>(&_impl_.num_output_)) + sizeof(_impl_.transpose_));
    _impl_.bias_term_ = true;
    _impl_.axis_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL InnerProductParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const InnerProductParameter& this_ = static_cast<const InnerProductParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL InnerProductParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const InnerProductParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.InnerProductParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 num_output = 1;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_num_output(), target);
  }

  // optional bool bias_term = 2 [default = true];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_bias_term(), target);
  }

  // optional .opencv_caffe.FillerParameter weight_filler = 3;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.weight_filler_, this_._impl_.weight_filler_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.FillerParameter bias_filler = 4;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.bias_filler_, this_._impl_.bias_filler_->GetCachedSize(), target,
        stream);
  }

  // optional int32 axis = 5 [default = 1];
  if ((cached_has_bits & 0x00000020U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_axis(), target);
  }

  // optional bool transpose = 6 [default = false];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_transpose(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.InnerProductParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t InnerProductParameter::ByteSizeLong(const MessageLite& base) {
  const InnerProductParameter& this_ = static_cast<const InnerProductParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t InnerProductParameter::ByteSizeLong() const {
  const InnerProductParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.InnerProductParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00000018U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x00000027U) != 0) {
    // optional .opencv_caffe.FillerParameter weight_filler = 3;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.weight_filler_);
    }
    // optional .opencv_caffe.FillerParameter bias_filler = 4;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bias_filler_);
    }
    // optional uint32 num_output = 1;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_num_output());
    }
    // optional int32 axis = 5 [default = 1];
    if ((cached_has_bits & 0x00000020U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void InnerProductParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<InnerProductParameter*>(&to_msg);
  auto& from = static_cast<const InnerProductParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.InnerProductParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000003fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(from._impl_.weight_filler_ != nullptr);
      if (_this->_impl_.weight_filler_ == nullptr) {
        _this->_impl_.weight_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_filler_);
      } else {
        _this->_impl_.weight_filler_->MergeFrom(*from._impl_.weight_filler_);
      }
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(from._impl_.bias_filler_ != nullptr);
      if (_this->_impl_.bias_filler_ == nullptr) {
        _this->_impl_.bias_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_);
      } else {
        _this->_impl_.bias_filler_->MergeFrom(*from._impl_.bias_filler_);
      }
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.num_output_ = from._impl_.num_output_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.transpose_ = from._impl_.transpose_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.bias_term_ = from._impl_.bias_term_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void InnerProductParameter::CopyFrom(const InnerProductParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.InnerProductParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void InnerProductParameter::InternalSwap(InnerProductParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.axis_)
      + sizeof(InnerProductParameter::_impl_.axis_)
      - PROTOBUF_FIELD_OFFSET(InnerProductParameter, _impl_.weight_filler_)>(
          reinterpret_cast<char*>(&_impl_.weight_filler_),
          reinterpret_cast<char*>(&other->_impl_.weight_filler_));
}

::google::protobuf::Metadata InnerProductParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class InputParameter::_Internal {
 public:
};

InputParameter::InputParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, InputParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.InputParameter)
}
PROTOBUF_NDEBUG_INLINE InputParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::InputParameter& from_msg)
      : shape_{visibility, arena, from.shape_},
        _cached_size_{0} {}

InputParameter::InputParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const InputParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, InputParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  InputParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.InputParameter)
}
PROTOBUF_NDEBUG_INLINE InputParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : shape_{visibility, arena},
        _cached_size_{0} {}

inline void InputParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
InputParameter::~InputParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.InputParameter)
  SharedDtor(*this);
}
inline void InputParameter::SharedDtor(MessageLite& self) {
  InputParameter& this_ = static_cast<InputParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL InputParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) InputParameter(arena);
}
constexpr auto InputParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(InputParameter, _impl_.shape_) +
          decltype(InputParameter::_impl_.shape_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::ZeroInit(
        sizeof(InputParameter), alignof(InputParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&InputParameter::PlacementNew_,
                                 sizeof(InputParameter),
                                 alignof(InputParameter));
  }
}
constexpr auto InputParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_InputParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &InputParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<InputParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &InputParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<InputParameter>(), &InputParameter::ByteSizeLong,
              &InputParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(InputParameter, _impl_._cached_size_),
          false,
      },
      &InputParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull InputParameter_class_data_ =
        InputParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
InputParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&InputParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(InputParameter_class_data_.tc_table);
  return InputParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 1, 0, 2>
InputParameter::_table_ = {
  {
    0,  // no _has_bits_
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    InputParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::InputParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // repeated .opencv_caffe.BlobShape shape = 1;
    {::_pbi::TcParser::FastMtR1,
     {10, 63, 0, PROTOBUF_FIELD_OFFSET(InputParameter, _impl_.shape_)}},
  }}, {{
    65535, 65535
  }}, {{
    // repeated .opencv_caffe.BlobShape shape = 1;
    {PROTOBUF_FIELD_OFFSET(InputParameter, _impl_.shape_), 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::BlobShape>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void InputParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.InputParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.shape_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL InputParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const InputParameter& this_ = static_cast<const InputParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL InputParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const InputParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.InputParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  // repeated .opencv_caffe.BlobShape shape = 1;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_shape_size());
       i < n; i++) {
    const auto& repfield = this_._internal_shape().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            1, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.InputParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t InputParameter::ByteSizeLong(const MessageLite& base) {
  const InputParameter& this_ = static_cast<const InputParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t InputParameter::ByteSizeLong() const {
  const InputParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.InputParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .opencv_caffe.BlobShape shape = 1;
    {
      total_size += 1UL * this_._internal_shape_size();
      for (const auto& msg : this_._internal_shape()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void InputParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<InputParameter*>(&to_msg);
  auto& from = static_cast<const InputParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.InputParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_shape()->MergeFrom(
      from._internal_shape());
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void InputParameter::CopyFrom(const InputParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.InputParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void InputParameter::InternalSwap(InputParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  _impl_.shape_.InternalSwap(&other->_impl_.shape_);
}

::google::protobuf::Metadata InputParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class LogParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<LogParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(LogParameter, _impl_._has_bits_);
};

LogParameter::LogParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LogParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.LogParameter)
}
LogParameter::LogParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LogParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LogParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE LogParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        base_{-1},
        scale_{1} {}

inline void LogParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.shift_ = {};
}
LogParameter::~LogParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.LogParameter)
  SharedDtor(*this);
}
inline void LogParameter::SharedDtor(MessageLite& self) {
  LogParameter& this_ = static_cast<LogParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL LogParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LogParameter(arena);
}
constexpr auto LogParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LogParameter),
                                            alignof(LogParameter));
}
constexpr auto LogParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_LogParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &LogParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LogParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LogParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LogParameter>(), &LogParameter::ByteSizeLong,
              &LogParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LogParameter, _impl_._cached_size_),
          false,
      },
      &LogParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LogParameter_class_data_ =
        LogParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LogParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LogParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LogParameter_class_data_.tc_table);
  return LogParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
LogParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(LogParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    LogParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::LogParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional float base = 1 [default = -1];
    {::_pbi::TcParser::FastF32S1,
     {13, 1, 0, PROTOBUF_FIELD_OFFSET(LogParameter, _impl_.base_)}},
    // optional float scale = 2 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {21, 2, 0, PROTOBUF_FIELD_OFFSET(LogParameter, _impl_.scale_)}},
    // optional float shift = 3 [default = 0];
    {::_pbi::TcParser::FastF32S1,
     {29, 0, 0, PROTOBUF_FIELD_OFFSET(LogParameter, _impl_.shift_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float base = 1 [default = -1];
    {PROTOBUF_FIELD_OFFSET(LogParameter, _impl_.base_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float scale = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(LogParameter, _impl_.scale_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float shift = 3 [default = 0];
    {PROTOBUF_FIELD_OFFSET(LogParameter, _impl_.shift_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void LogParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.LogParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    _impl_.shift_ = 0;
    _impl_.base_ = -1;
    _impl_.scale_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL LogParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const LogParameter& this_ = static_cast<const LogParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL LogParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const LogParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.LogParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float base = 1 [default = -1];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_base(), target);
  }

  // optional float scale = 2 [default = 1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_scale(), target);
  }

  // optional float shift = 3 [default = 0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_shift(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.LogParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t LogParameter::ByteSizeLong(const MessageLite& base) {
  const LogParameter& this_ = static_cast<const LogParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t LogParameter::ByteSizeLong() const {
  const LogParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.LogParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00000007U & cached_has_bits) * 5;
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void LogParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<LogParameter*>(&to_msg);
  auto& from = static_cast<const LogParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.LogParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.shift_ = from._impl_.shift_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.base_ = from._impl_.base_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.scale_ = from._impl_.scale_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void LogParameter::CopyFrom(const LogParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.LogParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void LogParameter::InternalSwap(LogParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LogParameter, _impl_.scale_)
      + sizeof(LogParameter::_impl_.scale_)
      - PROTOBUF_FIELD_OFFSET(LogParameter, _impl_.shift_)>(
          reinterpret_cast<char*>(&_impl_.shift_),
          reinterpret_cast<char*>(&other->_impl_.shift_));
}

::google::protobuf::Metadata LogParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class LRNParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<LRNParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_._has_bits_);
};

LRNParameter::LRNParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LRNParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.LRNParameter)
}
LRNParameter::LRNParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const LRNParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, LRNParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE LRNParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        local_size_{5u},
        alpha_{1},
        beta_{0.75f},
        k_{1} {}

inline void LRNParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, norm_region_),
           0,
           offsetof(Impl_, engine_) -
               offsetof(Impl_, norm_region_) +
               sizeof(Impl_::engine_));
}
LRNParameter::~LRNParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.LRNParameter)
  SharedDtor(*this);
}
inline void LRNParameter::SharedDtor(MessageLite& self) {
  LRNParameter& this_ = static_cast<LRNParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL LRNParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LRNParameter(arena);
}
constexpr auto LRNParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LRNParameter),
                                            alignof(LRNParameter));
}
constexpr auto LRNParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_LRNParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &LRNParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<LRNParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LRNParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<LRNParameter>(), &LRNParameter::ByteSizeLong,
              &LRNParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_._cached_size_),
          false,
      },
      &LRNParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LRNParameter_class_data_ =
        LRNParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LRNParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LRNParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LRNParameter_class_data_.tc_table);
  return LRNParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 6, 2, 0, 2>
LRNParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_._has_bits_),
    0, // no _extensions_
    6, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967232,  // skipmap
    offsetof(decltype(_table_), field_entries),
    6,  // num_field_entries
    2,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    LRNParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::LRNParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional uint32 local_size = 1 [default = 5];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LRNParameter, _impl_.local_size_), 2>(),
     {8, 2, 0, PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.local_size_)}},
    // optional float alpha = 2 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {21, 3, 0, PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.alpha_)}},
    // optional float beta = 3 [default = 0.75];
    {::_pbi::TcParser::FastF32S1,
     {29, 4, 0, PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.beta_)}},
    // optional .opencv_caffe.LRNParameter.NormRegion norm_region = 4 [default = ACROSS_CHANNELS];
    {::_pbi::TcParser::FastEr0S1,
     {32, 0, 1, PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.norm_region_)}},
    // optional float k = 5 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {45, 5, 0, PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.k_)}},
    // optional .opencv_caffe.LRNParameter.Engine engine = 6 [default = DEFAULT];
    {::_pbi::TcParser::FastEr0S1,
     {48, 1, 2, PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.engine_)}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 local_size = 1 [default = 5];
    {PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.local_size_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional float alpha = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.alpha_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float beta = 3 [default = 0.75];
    {PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.beta_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional .opencv_caffe.LRNParameter.NormRegion norm_region = 4 [default = ACROSS_CHANNELS];
    {PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.norm_region_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional float k = 5 [default = 1];
    {PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.k_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional .opencv_caffe.LRNParameter.Engine engine = 6 [default = DEFAULT];
    {PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.engine_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
  }},
  {{
      {0, 1},
      {0, 2},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void LRNParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.LRNParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000003fU) != 0) {
    ::memset(&_impl_.norm_region_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.engine_) -
        reinterpret_cast<char*>(&_impl_.norm_region_)) + sizeof(_impl_.engine_));
    _impl_.local_size_ = 5u;
    _impl_.alpha_ = 1;
    _impl_.beta_ = 0.75f;
    _impl_.k_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL LRNParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const LRNParameter& this_ = static_cast<const LRNParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL LRNParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const LRNParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.LRNParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 local_size = 1 [default = 5];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_local_size(), target);
  }

  // optional float alpha = 2 [default = 1];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_alpha(), target);
  }

  // optional float beta = 3 [default = 0.75];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_beta(), target);
  }

  // optional .opencv_caffe.LRNParameter.NormRegion norm_region = 4 [default = ACROSS_CHANNELS];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        4, this_._internal_norm_region(), target);
  }

  // optional float k = 5 [default = 1];
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        5, this_._internal_k(), target);
  }

  // optional .opencv_caffe.LRNParameter.Engine engine = 6 [default = DEFAULT];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        6, this_._internal_engine(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.LRNParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t LRNParameter::ByteSizeLong(const MessageLite& base) {
  const LRNParameter& this_ = static_cast<const LRNParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t LRNParameter::ByteSizeLong() const {
  const LRNParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.LRNParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00000038U & cached_has_bits) * 5;
  if ((cached_has_bits & 0x00000007U) != 0) {
    // optional .opencv_caffe.LRNParameter.NormRegion norm_region = 4 [default = ACROSS_CHANNELS];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_norm_region());
    }
    // optional .opencv_caffe.LRNParameter.Engine engine = 6 [default = DEFAULT];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_engine());
    }
    // optional uint32 local_size = 1 [default = 5];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_local_size());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void LRNParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<LRNParameter*>(&to_msg);
  auto& from = static_cast<const LRNParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.LRNParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000003fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.norm_region_ = from._impl_.norm_region_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.engine_ = from._impl_.engine_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.local_size_ = from._impl_.local_size_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.alpha_ = from._impl_.alpha_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.beta_ = from._impl_.beta_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.k_ = from._impl_.k_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void LRNParameter::CopyFrom(const LRNParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.LRNParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void LRNParameter::InternalSwap(LRNParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.k_)
      + sizeof(LRNParameter::_impl_.k_)
      - PROTOBUF_FIELD_OFFSET(LRNParameter, _impl_.norm_region_)>(
          reinterpret_cast<char*>(&_impl_.norm_region_),
          reinterpret_cast<char*>(&other->_impl_.norm_region_));
}

::google::protobuf::Metadata LRNParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class MemoryDataParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<MemoryDataParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_._has_bits_);
};

MemoryDataParameter::MemoryDataParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MemoryDataParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.MemoryDataParameter)
}
MemoryDataParameter::MemoryDataParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MemoryDataParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MemoryDataParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE MemoryDataParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void MemoryDataParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, batch_size_),
           0,
           offsetof(Impl_, width_) -
               offsetof(Impl_, batch_size_) +
               sizeof(Impl_::width_));
}
MemoryDataParameter::~MemoryDataParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.MemoryDataParameter)
  SharedDtor(*this);
}
inline void MemoryDataParameter::SharedDtor(MessageLite& self) {
  MemoryDataParameter& this_ = static_cast<MemoryDataParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL MemoryDataParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MemoryDataParameter(arena);
}
constexpr auto MemoryDataParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(MemoryDataParameter),
                                            alignof(MemoryDataParameter));
}
constexpr auto MemoryDataParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_MemoryDataParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &MemoryDataParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MemoryDataParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MemoryDataParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MemoryDataParameter>(), &MemoryDataParameter::ByteSizeLong,
              &MemoryDataParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_._cached_size_),
          false,
      },
      &MemoryDataParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MemoryDataParameter_class_data_ =
        MemoryDataParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MemoryDataParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MemoryDataParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MemoryDataParameter_class_data_.tc_table);
  return MemoryDataParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 4, 0, 0, 2>
MemoryDataParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_._has_bits_),
    0, // no _extensions_
    4, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967280,  // skipmap
    offsetof(decltype(_table_), field_entries),
    4,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    MemoryDataParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::MemoryDataParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional uint32 width = 4;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MemoryDataParameter, _impl_.width_), 3>(),
     {32, 3, 0, PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_.width_)}},
    // optional uint32 batch_size = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MemoryDataParameter, _impl_.batch_size_), 0>(),
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_.batch_size_)}},
    // optional uint32 channels = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MemoryDataParameter, _impl_.channels_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_.channels_)}},
    // optional uint32 height = 3;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(MemoryDataParameter, _impl_.height_), 2>(),
     {24, 2, 0, PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_.height_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 batch_size = 1;
    {PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_.batch_size_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 channels = 2;
    {PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_.channels_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 height = 3;
    {PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_.height_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 width = 4;
    {PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_.width_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void MemoryDataParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.MemoryDataParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000000fU) != 0) {
    ::memset(&_impl_.batch_size_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.width_) -
        reinterpret_cast<char*>(&_impl_.batch_size_)) + sizeof(_impl_.width_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL MemoryDataParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const MemoryDataParameter& this_ = static_cast<const MemoryDataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL MemoryDataParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const MemoryDataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.MemoryDataParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 batch_size = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_batch_size(), target);
  }

  // optional uint32 channels = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_channels(), target);
  }

  // optional uint32 height = 3;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        3, this_._internal_height(), target);
  }

  // optional uint32 width = 4;
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        4, this_._internal_width(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.MemoryDataParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t MemoryDataParameter::ByteSizeLong(const MessageLite& base) {
  const MemoryDataParameter& this_ = static_cast<const MemoryDataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t MemoryDataParameter::ByteSizeLong() const {
  const MemoryDataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.MemoryDataParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000000fU) != 0) {
    // optional uint32 batch_size = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_batch_size());
    }
    // optional uint32 channels = 2;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_channels());
    }
    // optional uint32 height = 3;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_height());
    }
    // optional uint32 width = 4;
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_width());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void MemoryDataParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<MemoryDataParameter*>(&to_msg);
  auto& from = static_cast<const MemoryDataParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.MemoryDataParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000000fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.batch_size_ = from._impl_.batch_size_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.channels_ = from._impl_.channels_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.height_ = from._impl_.height_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.width_ = from._impl_.width_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void MemoryDataParameter::CopyFrom(const MemoryDataParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.MemoryDataParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void MemoryDataParameter::InternalSwap(MemoryDataParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_.width_)
      + sizeof(MemoryDataParameter::_impl_.width_)
      - PROTOBUF_FIELD_OFFSET(MemoryDataParameter, _impl_.batch_size_)>(
          reinterpret_cast<char*>(&_impl_.batch_size_),
          reinterpret_cast<char*>(&other->_impl_.batch_size_));
}

::google::protobuf::Metadata MemoryDataParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class MVNParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<MVNParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(MVNParameter, _impl_._has_bits_);
};

MVNParameter::MVNParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MVNParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.MVNParameter)
}
MVNParameter::MVNParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const MVNParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, MVNParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE MVNParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        normalize_variance_{true},
        eps_{1e-09f} {}

inline void MVNParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.across_channels_ = {};
}
MVNParameter::~MVNParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.MVNParameter)
  SharedDtor(*this);
}
inline void MVNParameter::SharedDtor(MessageLite& self) {
  MVNParameter& this_ = static_cast<MVNParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL MVNParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) MVNParameter(arena);
}
constexpr auto MVNParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(MVNParameter),
                                            alignof(MVNParameter));
}
constexpr auto MVNParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_MVNParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &MVNParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<MVNParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &MVNParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<MVNParameter>(), &MVNParameter::ByteSizeLong,
              &MVNParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(MVNParameter, _impl_._cached_size_),
          false,
      },
      &MVNParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull MVNParameter_class_data_ =
        MVNParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
MVNParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&MVNParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(MVNParameter_class_data_.tc_table);
  return MVNParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
MVNParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(MVNParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    MVNParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::MVNParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional bool normalize_variance = 1 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(MVNParameter, _impl_.normalize_variance_), 1>(),
     {8, 1, 0, PROTOBUF_FIELD_OFFSET(MVNParameter, _impl_.normalize_variance_)}},
    // optional bool across_channels = 2 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(MVNParameter, _impl_.across_channels_), 0>(),
     {16, 0, 0, PROTOBUF_FIELD_OFFSET(MVNParameter, _impl_.across_channels_)}},
    // optional float eps = 3 [default = 1e-09];
    {::_pbi::TcParser::FastF32S1,
     {29, 2, 0, PROTOBUF_FIELD_OFFSET(MVNParameter, _impl_.eps_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional bool normalize_variance = 1 [default = true];
    {PROTOBUF_FIELD_OFFSET(MVNParameter, _impl_.normalize_variance_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional bool across_channels = 2 [default = false];
    {PROTOBUF_FIELD_OFFSET(MVNParameter, _impl_.across_channels_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional float eps = 3 [default = 1e-09];
    {PROTOBUF_FIELD_OFFSET(MVNParameter, _impl_.eps_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void MVNParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.MVNParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    _impl_.across_channels_ = false;
    _impl_.normalize_variance_ = true;
    _impl_.eps_ = 1e-09f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL MVNParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const MVNParameter& this_ = static_cast<const MVNParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL MVNParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const MVNParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.MVNParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bool normalize_variance = 1 [default = true];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        1, this_._internal_normalize_variance(), target);
  }

  // optional bool across_channels = 2 [default = false];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_across_channels(), target);
  }

  // optional float eps = 3 [default = 1e-09];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_eps(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.MVNParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t MVNParameter::ByteSizeLong(const MessageLite& base) {
  const MVNParameter& this_ = static_cast<const MVNParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t MVNParameter::ByteSizeLong() const {
  const MVNParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.MVNParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000004U & cached_has_bits) * 5;
  total_size += ::absl::popcount(0x00000003U & cached_has_bits) * 2;
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void MVNParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<MVNParameter*>(&to_msg);
  auto& from = static_cast<const MVNParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.MVNParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.across_channels_ = from._impl_.across_channels_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.normalize_variance_ = from._impl_.normalize_variance_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.eps_ = from._impl_.eps_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void MVNParameter::CopyFrom(const MVNParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.MVNParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void MVNParameter::InternalSwap(MVNParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(MVNParameter, _impl_.eps_)
      + sizeof(MVNParameter::_impl_.eps_)
      - PROTOBUF_FIELD_OFFSET(MVNParameter, _impl_.across_channels_)>(
          reinterpret_cast<char*>(&_impl_.across_channels_),
          reinterpret_cast<char*>(&other->_impl_.across_channels_));
}

::google::protobuf::Metadata MVNParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ParameterParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ParameterParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ParameterParameter, _impl_._has_bits_);
};

ParameterParameter::ParameterParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ParameterParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ParameterParameter)
}
PROTOBUF_NDEBUG_INLINE ParameterParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::ParameterParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

ParameterParameter::ParameterParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ParameterParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ParameterParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ParameterParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.shape_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.shape_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.ParameterParameter)
}
PROTOBUF_NDEBUG_INLINE ParameterParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ParameterParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.shape_ = {};
}
ParameterParameter::~ParameterParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ParameterParameter)
  SharedDtor(*this);
}
inline void ParameterParameter::SharedDtor(MessageLite& self) {
  ParameterParameter& this_ = static_cast<ParameterParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.shape_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ParameterParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ParameterParameter(arena);
}
constexpr auto ParameterParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ParameterParameter),
                                            alignof(ParameterParameter));
}
constexpr auto ParameterParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ParameterParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ParameterParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ParameterParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ParameterParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ParameterParameter>(), &ParameterParameter::ByteSizeLong,
              &ParameterParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ParameterParameter, _impl_._cached_size_),
          false,
      },
      &ParameterParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ParameterParameter_class_data_ =
        ParameterParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ParameterParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ParameterParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ParameterParameter_class_data_.tc_table);
  return ParameterParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 1, 0, 2>
ParameterParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ParameterParameter, _impl_._has_bits_),
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    ParameterParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ParameterParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional .opencv_caffe.BlobShape shape = 1;
    {::_pbi::TcParser::FastMtS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(ParameterParameter, _impl_.shape_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.BlobShape shape = 1;
    {PROTOBUF_FIELD_OFFSET(ParameterParameter, _impl_.shape_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::BlobShape>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void ParameterParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ParameterParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    ABSL_DCHECK(_impl_.shape_ != nullptr);
    _impl_.shape_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ParameterParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ParameterParameter& this_ = static_cast<const ParameterParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ParameterParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ParameterParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ParameterParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.BlobShape shape = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.shape_, this_._impl_.shape_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ParameterParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ParameterParameter::ByteSizeLong(const MessageLite& base) {
  const ParameterParameter& this_ = static_cast<const ParameterParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ParameterParameter::ByteSizeLong() const {
  const ParameterParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ParameterParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // optional .opencv_caffe.BlobShape shape = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.shape_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ParameterParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ParameterParameter*>(&to_msg);
  auto& from = static_cast<const ParameterParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ParameterParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    ABSL_DCHECK(from._impl_.shape_ != nullptr);
    if (_this->_impl_.shape_ == nullptr) {
      _this->_impl_.shape_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.shape_);
    } else {
      _this->_impl_.shape_->MergeFrom(*from._impl_.shape_);
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ParameterParameter::CopyFrom(const ParameterParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ParameterParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ParameterParameter::InternalSwap(ParameterParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.shape_, other->_impl_.shape_);
}

::google::protobuf::Metadata ParameterParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class PoolingParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<PoolingParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_._has_bits_);
};

PoolingParameter::PoolingParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PoolingParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.PoolingParameter)
}
PoolingParameter::PoolingParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PoolingParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PoolingParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE PoolingParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        stride_{1u},
        ceil_mode_{true} {}

inline void PoolingParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, pool_),
           0,
           offsetof(Impl_, global_pooling_) -
               offsetof(Impl_, pool_) +
               sizeof(Impl_::global_pooling_));
}
PoolingParameter::~PoolingParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.PoolingParameter)
  SharedDtor(*this);
}
inline void PoolingParameter::SharedDtor(MessageLite& self) {
  PoolingParameter& this_ = static_cast<PoolingParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL PoolingParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PoolingParameter(arena);
}
constexpr auto PoolingParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PoolingParameter),
                                            alignof(PoolingParameter));
}
constexpr auto PoolingParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_PoolingParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &PoolingParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<PoolingParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PoolingParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<PoolingParameter>(), &PoolingParameter::ByteSizeLong,
              &PoolingParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_._cached_size_),
          false,
      },
      &PoolingParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull PoolingParameter_class_data_ =
        PoolingParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PoolingParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&PoolingParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(PoolingParameter_class_data_.tc_table);
  return PoolingParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<4, 13, 2, 0, 2>
PoolingParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_._has_bits_),
    0, // no _extensions_
    13, 120,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294959104,  // skipmap
    offsetof(decltype(_table_), field_entries),
    13,  // num_field_entries
    2,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    PoolingParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::PoolingParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional .opencv_caffe.PoolingParameter.PoolMethod pool = 1 [default = MAX];
    {::_pbi::TcParser::FastEr0S1,
     {8, 0, 2, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.pool_)}},
    // optional uint32 kernel_size = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PoolingParameter, _impl_.kernel_size_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.kernel_size_)}},
    // optional uint32 stride = 3 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PoolingParameter, _impl_.stride_), 11>(),
     {24, 11, 0, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.stride_)}},
    // optional uint32 pad = 4 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PoolingParameter, _impl_.pad_), 2>(),
     {32, 2, 0, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.pad_)}},
    // optional uint32 kernel_h = 5;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PoolingParameter, _impl_.kernel_h_), 3>(),
     {40, 3, 0, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.kernel_h_)}},
    // optional uint32 kernel_w = 6;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PoolingParameter, _impl_.kernel_w_), 4>(),
     {48, 4, 0, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.kernel_w_)}},
    // optional uint32 stride_h = 7;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PoolingParameter, _impl_.stride_h_), 5>(),
     {56, 5, 0, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.stride_h_)}},
    // optional uint32 stride_w = 8;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PoolingParameter, _impl_.stride_w_), 6>(),
     {64, 6, 0, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.stride_w_)}},
    // optional uint32 pad_h = 9 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PoolingParameter, _impl_.pad_h_), 7>(),
     {72, 7, 0, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.pad_h_)}},
    // optional uint32 pad_w = 10 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PoolingParameter, _impl_.pad_w_), 8>(),
     {80, 8, 0, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.pad_w_)}},
    // optional .opencv_caffe.PoolingParameter.Engine engine = 11 [default = DEFAULT];
    {::_pbi::TcParser::FastEr0S1,
     {88, 9, 2, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.engine_)}},
    // optional bool global_pooling = 12 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(PoolingParameter, _impl_.global_pooling_), 10>(),
     {96, 10, 0, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.global_pooling_)}},
    // optional bool ceil_mode = 13 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(PoolingParameter, _impl_.ceil_mode_), 12>(),
     {104, 12, 0, PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.ceil_mode_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.PoolingParameter.PoolMethod pool = 1 [default = MAX];
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.pool_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional uint32 kernel_size = 2;
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.kernel_size_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 stride = 3 [default = 1];
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.stride_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 pad = 4 [default = 0];
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.pad_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 kernel_h = 5;
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.kernel_h_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 kernel_w = 6;
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.kernel_w_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 stride_h = 7;
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.stride_h_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 stride_w = 8;
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.stride_w_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 pad_h = 9 [default = 0];
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.pad_h_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 pad_w = 10 [default = 0];
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.pad_w_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional .opencv_caffe.PoolingParameter.Engine engine = 11 [default = DEFAULT];
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.engine_), _Internal::kHasBitsOffset + 9, 1, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional bool global_pooling = 12 [default = false];
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.global_pooling_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional bool ceil_mode = 13 [default = true];
    {PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.ceil_mode_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  {{
      {0, 2},
      {0, 2},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void PoolingParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.PoolingParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    ::memset(&_impl_.pool_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.pad_h_) -
        reinterpret_cast<char*>(&_impl_.pool_)) + sizeof(_impl_.pad_h_));
  }
  if ((cached_has_bits & 0x00001f00U) != 0) {
    ::memset(&_impl_.pad_w_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.global_pooling_) -
        reinterpret_cast<char*>(&_impl_.pad_w_)) + sizeof(_impl_.global_pooling_));
    _impl_.stride_ = 1u;
    _impl_.ceil_mode_ = true;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PoolingParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PoolingParameter& this_ = static_cast<const PoolingParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PoolingParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PoolingParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.PoolingParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.PoolingParameter.PoolMethod pool = 1 [default = MAX];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_pool(), target);
  }

  // optional uint32 kernel_size = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_kernel_size(), target);
  }

  // optional uint32 stride = 3 [default = 1];
  if ((cached_has_bits & 0x00000800U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        3, this_._internal_stride(), target);
  }

  // optional uint32 pad = 4 [default = 0];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        4, this_._internal_pad(), target);
  }

  // optional uint32 kernel_h = 5;
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        5, this_._internal_kernel_h(), target);
  }

  // optional uint32 kernel_w = 6;
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        6, this_._internal_kernel_w(), target);
  }

  // optional uint32 stride_h = 7;
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        7, this_._internal_stride_h(), target);
  }

  // optional uint32 stride_w = 8;
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        8, this_._internal_stride_w(), target);
  }

  // optional uint32 pad_h = 9 [default = 0];
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        9, this_._internal_pad_h(), target);
  }

  // optional uint32 pad_w = 10 [default = 0];
  if ((cached_has_bits & 0x00000100U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        10, this_._internal_pad_w(), target);
  }

  // optional .opencv_caffe.PoolingParameter.Engine engine = 11 [default = DEFAULT];
  if ((cached_has_bits & 0x00000200U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        11, this_._internal_engine(), target);
  }

  // optional bool global_pooling = 12 [default = false];
  if ((cached_has_bits & 0x00000400U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        12, this_._internal_global_pooling(), target);
  }

  // optional bool ceil_mode = 13 [default = true];
  if ((cached_has_bits & 0x00001000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        13, this_._internal_ceil_mode(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.PoolingParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PoolingParameter::ByteSizeLong(const MessageLite& base) {
  const PoolingParameter& this_ = static_cast<const PoolingParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PoolingParameter::ByteSizeLong() const {
  const PoolingParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.PoolingParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00001400U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x000000ffU) != 0) {
    // optional .opencv_caffe.PoolingParameter.PoolMethod pool = 1 [default = MAX];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_pool());
    }
    // optional uint32 kernel_size = 2;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_kernel_size());
    }
    // optional uint32 pad = 4 [default = 0];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_pad());
    }
    // optional uint32 kernel_h = 5;
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_kernel_h());
    }
    // optional uint32 kernel_w = 6;
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_kernel_w());
    }
    // optional uint32 stride_h = 7;
    if ((cached_has_bits & 0x00000020U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_stride_h());
    }
    // optional uint32 stride_w = 8;
    if ((cached_has_bits & 0x00000040U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_stride_w());
    }
    // optional uint32 pad_h = 9 [default = 0];
    if ((cached_has_bits & 0x00000080U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_pad_h());
    }
  }
  if ((cached_has_bits & 0x00000b00U) != 0) {
    // optional uint32 pad_w = 10 [default = 0];
    if ((cached_has_bits & 0x00000100U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_pad_w());
    }
    // optional .opencv_caffe.PoolingParameter.Engine engine = 11 [default = DEFAULT];
    if ((cached_has_bits & 0x00000200U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_engine());
    }
    // optional uint32 stride = 3 [default = 1];
    if ((cached_has_bits & 0x00000800U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_stride());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void PoolingParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<PoolingParameter*>(&to_msg);
  auto& from = static_cast<const PoolingParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.PoolingParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.pool_ = from._impl_.pool_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.kernel_size_ = from._impl_.kernel_size_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.pad_ = from._impl_.pad_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.kernel_h_ = from._impl_.kernel_h_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.kernel_w_ = from._impl_.kernel_w_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.stride_h_ = from._impl_.stride_h_;
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      _this->_impl_.stride_w_ = from._impl_.stride_w_;
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      _this->_impl_.pad_h_ = from._impl_.pad_h_;
    }
  }
  if ((cached_has_bits & 0x00001f00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      _this->_impl_.pad_w_ = from._impl_.pad_w_;
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      _this->_impl_.engine_ = from._impl_.engine_;
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      _this->_impl_.global_pooling_ = from._impl_.global_pooling_;
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      _this->_impl_.stride_ = from._impl_.stride_;
    }
    if ((cached_has_bits & 0x00001000U) != 0) {
      _this->_impl_.ceil_mode_ = from._impl_.ceil_mode_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void PoolingParameter::CopyFrom(const PoolingParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.PoolingParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void PoolingParameter::InternalSwap(PoolingParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.ceil_mode_)
      + sizeof(PoolingParameter::_impl_.ceil_mode_)
      - PROTOBUF_FIELD_OFFSET(PoolingParameter, _impl_.pool_)>(
          reinterpret_cast<char*>(&_impl_.pool_),
          reinterpret_cast<char*>(&other->_impl_.pool_));
}

::google::protobuf::Metadata PoolingParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class PowerParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<PowerParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PowerParameter, _impl_._has_bits_);
};

PowerParameter::PowerParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PowerParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.PowerParameter)
}
PowerParameter::PowerParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PowerParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PowerParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE PowerParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        power_{1},
        scale_{1} {}

inline void PowerParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.shift_ = {};
}
PowerParameter::~PowerParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.PowerParameter)
  SharedDtor(*this);
}
inline void PowerParameter::SharedDtor(MessageLite& self) {
  PowerParameter& this_ = static_cast<PowerParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL PowerParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PowerParameter(arena);
}
constexpr auto PowerParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PowerParameter),
                                            alignof(PowerParameter));
}
constexpr auto PowerParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_PowerParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &PowerParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<PowerParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PowerParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<PowerParameter>(), &PowerParameter::ByteSizeLong,
              &PowerParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PowerParameter, _impl_._cached_size_),
          false,
      },
      &PowerParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull PowerParameter_class_data_ =
        PowerParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PowerParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&PowerParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(PowerParameter_class_data_.tc_table);
  return PowerParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
PowerParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(PowerParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    PowerParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::PowerParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional float power = 1 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {13, 1, 0, PROTOBUF_FIELD_OFFSET(PowerParameter, _impl_.power_)}},
    // optional float scale = 2 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {21, 2, 0, PROTOBUF_FIELD_OFFSET(PowerParameter, _impl_.scale_)}},
    // optional float shift = 3 [default = 0];
    {::_pbi::TcParser::FastF32S1,
     {29, 0, 0, PROTOBUF_FIELD_OFFSET(PowerParameter, _impl_.shift_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float power = 1 [default = 1];
    {PROTOBUF_FIELD_OFFSET(PowerParameter, _impl_.power_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float scale = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(PowerParameter, _impl_.scale_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float shift = 3 [default = 0];
    {PROTOBUF_FIELD_OFFSET(PowerParameter, _impl_.shift_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void PowerParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.PowerParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    _impl_.shift_ = 0;
    _impl_.power_ = 1;
    _impl_.scale_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PowerParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PowerParameter& this_ = static_cast<const PowerParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PowerParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PowerParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.PowerParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float power = 1 [default = 1];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_power(), target);
  }

  // optional float scale = 2 [default = 1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_scale(), target);
  }

  // optional float shift = 3 [default = 0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_shift(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.PowerParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PowerParameter::ByteSizeLong(const MessageLite& base) {
  const PowerParameter& this_ = static_cast<const PowerParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PowerParameter::ByteSizeLong() const {
  const PowerParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.PowerParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00000007U & cached_has_bits) * 5;
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void PowerParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<PowerParameter*>(&to_msg);
  auto& from = static_cast<const PowerParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.PowerParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.shift_ = from._impl_.shift_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.power_ = from._impl_.power_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.scale_ = from._impl_.scale_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void PowerParameter::CopyFrom(const PowerParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.PowerParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void PowerParameter::InternalSwap(PowerParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PowerParameter, _impl_.scale_)
      + sizeof(PowerParameter::_impl_.scale_)
      - PROTOBUF_FIELD_OFFSET(PowerParameter, _impl_.shift_)>(
          reinterpret_cast<char*>(&_impl_.shift_),
          reinterpret_cast<char*>(&other->_impl_.shift_));
}

::google::protobuf::Metadata PowerParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class PythonParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<PythonParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PythonParameter, _impl_._has_bits_);
};

PythonParameter::PythonParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PythonParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.PythonParameter)
}
PROTOBUF_NDEBUG_INLINE PythonParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::PythonParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        module_(arena, from.module_),
        layer_(arena, from.layer_),
        param_str_(arena, from.param_str_) {}

PythonParameter::PythonParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const PythonParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PythonParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PythonParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  _impl_.share_in_parallel_ = from._impl_.share_in_parallel_;

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.PythonParameter)
}
PROTOBUF_NDEBUG_INLINE PythonParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        module_(arena),
        layer_(arena),
        param_str_(arena) {}

inline void PythonParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.share_in_parallel_ = {};
}
PythonParameter::~PythonParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.PythonParameter)
  SharedDtor(*this);
}
inline void PythonParameter::SharedDtor(MessageLite& self) {
  PythonParameter& this_ = static_cast<PythonParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.module_.Destroy();
  this_._impl_.layer_.Destroy();
  this_._impl_.param_str_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL PythonParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PythonParameter(arena);
}
constexpr auto PythonParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(PythonParameter),
                                            alignof(PythonParameter));
}
constexpr auto PythonParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_PythonParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &PythonParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<PythonParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PythonParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<PythonParameter>(), &PythonParameter::ByteSizeLong,
              &PythonParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PythonParameter, _impl_._cached_size_),
          false,
      },
      &PythonParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull PythonParameter_class_data_ =
        PythonParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PythonParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&PythonParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(PythonParameter_class_data_.tc_table);
  return PythonParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 4, 0, 57, 2>
PythonParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(PythonParameter, _impl_._has_bits_),
    0, // no _extensions_
    4, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967280,  // skipmap
    offsetof(decltype(_table_), field_entries),
    4,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    PythonParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::PythonParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional bool share_in_parallel = 4 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(PythonParameter, _impl_.share_in_parallel_), 3>(),
     {32, 3, 0, PROTOBUF_FIELD_OFFSET(PythonParameter, _impl_.share_in_parallel_)}},
    // optional string module = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(PythonParameter, _impl_.module_)}},
    // optional string layer = 2;
    {::_pbi::TcParser::FastSS1,
     {18, 1, 0, PROTOBUF_FIELD_OFFSET(PythonParameter, _impl_.layer_)}},
    // optional string param_str = 3 [default = ""];
    {::_pbi::TcParser::FastSS1,
     {26, 2, 0, PROTOBUF_FIELD_OFFSET(PythonParameter, _impl_.param_str_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional string module = 1;
    {PROTOBUF_FIELD_OFFSET(PythonParameter, _impl_.module_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional string layer = 2;
    {PROTOBUF_FIELD_OFFSET(PythonParameter, _impl_.layer_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional string param_str = 3 [default = ""];
    {PROTOBUF_FIELD_OFFSET(PythonParameter, _impl_.param_str_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional bool share_in_parallel = 4 [default = false];
    {PROTOBUF_FIELD_OFFSET(PythonParameter, _impl_.share_in_parallel_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  // no aux_entries
  {{
    "\34\6\5\11\0\0\0\0"
    "opencv_caffe.PythonParameter"
    "module"
    "layer"
    "param_str"
  }},
};
PROTOBUF_NOINLINE void PythonParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.PythonParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _impl_.module_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _impl_.layer_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _impl_.param_str_.ClearNonDefaultToEmpty();
    }
  }
  _impl_.share_in_parallel_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PythonParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PythonParameter& this_ = static_cast<const PythonParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PythonParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PythonParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.PythonParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string module = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_module();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.PythonParameter.module");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional string layer = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    const ::std::string& _s = this_._internal_layer();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.PythonParameter.layer");
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // optional string param_str = 3 [default = ""];
  if ((cached_has_bits & 0x00000004U) != 0) {
    const ::std::string& _s = this_._internal_param_str();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.PythonParameter.param_str");
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // optional bool share_in_parallel = 4 [default = false];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        4, this_._internal_share_in_parallel(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.PythonParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PythonParameter::ByteSizeLong(const MessageLite& base) {
  const PythonParameter& this_ = static_cast<const PythonParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PythonParameter::ByteSizeLong() const {
  const PythonParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.PythonParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000008U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x00000007U) != 0) {
    // optional string module = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_module());
    }
    // optional string layer = 2;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_layer());
    }
    // optional string param_str = 3 [default = ""];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_param_str());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void PythonParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<PythonParameter*>(&to_msg);
  auto& from = static_cast<const PythonParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.PythonParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000000fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_module(from._internal_module());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_internal_set_layer(from._internal_layer());
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_internal_set_param_str(from._internal_param_str());
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.share_in_parallel_ = from._impl_.share_in_parallel_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void PythonParameter::CopyFrom(const PythonParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.PythonParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void PythonParameter::InternalSwap(PythonParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.module_, &other->_impl_.module_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.layer_, &other->_impl_.layer_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.param_str_, &other->_impl_.param_str_, arena);
  swap(_impl_.share_in_parallel_, other->_impl_.share_in_parallel_);
}

::google::protobuf::Metadata PythonParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class RecurrentParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<RecurrentParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_._has_bits_);
};

RecurrentParameter::RecurrentParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RecurrentParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.RecurrentParameter)
}
PROTOBUF_NDEBUG_INLINE RecurrentParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::RecurrentParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

RecurrentParameter::RecurrentParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const RecurrentParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, RecurrentParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  RecurrentParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.weight_filler_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_filler_)
                : nullptr;
  _impl_.bias_filler_ = ((cached_has_bits & 0x00000002U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, num_output_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, num_output_),
           offsetof(Impl_, expose_hidden_) -
               offsetof(Impl_, num_output_) +
               sizeof(Impl_::expose_hidden_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.RecurrentParameter)
}
PROTOBUF_NDEBUG_INLINE RecurrentParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void RecurrentParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, weight_filler_),
           0,
           offsetof(Impl_, expose_hidden_) -
               offsetof(Impl_, weight_filler_) +
               sizeof(Impl_::expose_hidden_));
}
RecurrentParameter::~RecurrentParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.RecurrentParameter)
  SharedDtor(*this);
}
inline void RecurrentParameter::SharedDtor(MessageLite& self) {
  RecurrentParameter& this_ = static_cast<RecurrentParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.weight_filler_;
  delete this_._impl_.bias_filler_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL RecurrentParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) RecurrentParameter(arena);
}
constexpr auto RecurrentParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RecurrentParameter),
                                            alignof(RecurrentParameter));
}
constexpr auto RecurrentParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_RecurrentParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &RecurrentParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<RecurrentParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &RecurrentParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<RecurrentParameter>(), &RecurrentParameter::ByteSizeLong,
              &RecurrentParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_._cached_size_),
          false,
      },
      &RecurrentParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull RecurrentParameter_class_data_ =
        RecurrentParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
RecurrentParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&RecurrentParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(RecurrentParameter_class_data_.tc_table);
  return RecurrentParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 5, 2, 0, 2>
RecurrentParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_._has_bits_),
    0, // no _extensions_
    5, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967264,  // skipmap
    offsetof(decltype(_table_), field_entries),
    5,  // num_field_entries
    2,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    RecurrentParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::RecurrentParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional uint32 num_output = 1 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(RecurrentParameter, _impl_.num_output_), 2>(),
     {8, 2, 0, PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.num_output_)}},
    // optional .opencv_caffe.FillerParameter weight_filler = 2;
    {::_pbi::TcParser::FastMtS1,
     {18, 0, 0, PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.weight_filler_)}},
    // optional .opencv_caffe.FillerParameter bias_filler = 3;
    {::_pbi::TcParser::FastMtS1,
     {26, 1, 1, PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.bias_filler_)}},
    // optional bool debug_info = 4 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(RecurrentParameter, _impl_.debug_info_), 3>(),
     {32, 3, 0, PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.debug_info_)}},
    // optional bool expose_hidden = 5 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(RecurrentParameter, _impl_.expose_hidden_), 4>(),
     {40, 4, 0, PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.expose_hidden_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 num_output = 1 [default = 0];
    {PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.num_output_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional .opencv_caffe.FillerParameter weight_filler = 2;
    {PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.weight_filler_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.FillerParameter bias_filler = 3;
    {PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.bias_filler_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional bool debug_info = 4 [default = false];
    {PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.debug_info_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional bool expose_hidden = 5 [default = false];
    {PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.expose_hidden_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void RecurrentParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.RecurrentParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(_impl_.weight_filler_ != nullptr);
      _impl_.weight_filler_->Clear();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(_impl_.bias_filler_ != nullptr);
      _impl_.bias_filler_->Clear();
    }
  }
  if ((cached_has_bits & 0x0000001cU) != 0) {
    ::memset(&_impl_.num_output_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.expose_hidden_) -
        reinterpret_cast<char*>(&_impl_.num_output_)) + sizeof(_impl_.expose_hidden_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL RecurrentParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const RecurrentParameter& this_ = static_cast<const RecurrentParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL RecurrentParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const RecurrentParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.RecurrentParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 num_output = 1 [default = 0];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_num_output(), target);
  }

  // optional .opencv_caffe.FillerParameter weight_filler = 2;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        2, *this_._impl_.weight_filler_, this_._impl_.weight_filler_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.FillerParameter bias_filler = 3;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.bias_filler_, this_._impl_.bias_filler_->GetCachedSize(), target,
        stream);
  }

  // optional bool debug_info = 4 [default = false];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        4, this_._internal_debug_info(), target);
  }

  // optional bool expose_hidden = 5 [default = false];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        5, this_._internal_expose_hidden(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.RecurrentParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t RecurrentParameter::ByteSizeLong(const MessageLite& base) {
  const RecurrentParameter& this_ = static_cast<const RecurrentParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t RecurrentParameter::ByteSizeLong() const {
  const RecurrentParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.RecurrentParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00000018U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x00000007U) != 0) {
    // optional .opencv_caffe.FillerParameter weight_filler = 2;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.weight_filler_);
    }
    // optional .opencv_caffe.FillerParameter bias_filler = 3;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bias_filler_);
    }
    // optional uint32 num_output = 1 [default = 0];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_num_output());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void RecurrentParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<RecurrentParameter*>(&to_msg);
  auto& from = static_cast<const RecurrentParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.RecurrentParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000001fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(from._impl_.weight_filler_ != nullptr);
      if (_this->_impl_.weight_filler_ == nullptr) {
        _this->_impl_.weight_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_filler_);
      } else {
        _this->_impl_.weight_filler_->MergeFrom(*from._impl_.weight_filler_);
      }
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(from._impl_.bias_filler_ != nullptr);
      if (_this->_impl_.bias_filler_ == nullptr) {
        _this->_impl_.bias_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_);
      } else {
        _this->_impl_.bias_filler_->MergeFrom(*from._impl_.bias_filler_);
      }
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.num_output_ = from._impl_.num_output_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.debug_info_ = from._impl_.debug_info_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.expose_hidden_ = from._impl_.expose_hidden_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void RecurrentParameter::CopyFrom(const RecurrentParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.RecurrentParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void RecurrentParameter::InternalSwap(RecurrentParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.expose_hidden_)
      + sizeof(RecurrentParameter::_impl_.expose_hidden_)
      - PROTOBUF_FIELD_OFFSET(RecurrentParameter, _impl_.weight_filler_)>(
          reinterpret_cast<char*>(&_impl_.weight_filler_),
          reinterpret_cast<char*>(&other->_impl_.weight_filler_));
}

::google::protobuf::Metadata RecurrentParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ReductionParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ReductionParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ReductionParameter, _impl_._has_bits_);
};

ReductionParameter::ReductionParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReductionParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ReductionParameter)
}
ReductionParameter::ReductionParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ReductionParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReductionParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ReductionParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        operation_{static_cast< ::opencv_caffe::ReductionParameter_ReductionOp >(1)},
        coeff_{1} {}

inline void ReductionParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.axis_ = {};
}
ReductionParameter::~ReductionParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ReductionParameter)
  SharedDtor(*this);
}
inline void ReductionParameter::SharedDtor(MessageLite& self) {
  ReductionParameter& this_ = static_cast<ReductionParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ReductionParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReductionParameter(arena);
}
constexpr auto ReductionParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ReductionParameter),
                                            alignof(ReductionParameter));
}
constexpr auto ReductionParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ReductionParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ReductionParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ReductionParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReductionParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ReductionParameter>(), &ReductionParameter::ByteSizeLong,
              &ReductionParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReductionParameter, _impl_._cached_size_),
          false,
      },
      &ReductionParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReductionParameter_class_data_ =
        ReductionParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReductionParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReductionParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReductionParameter_class_data_.tc_table);
  return ReductionParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 1, 0, 2>
ReductionParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ReductionParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    ReductionParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ReductionParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional .opencv_caffe.ReductionParameter.ReductionOp operation = 1 [default = SUM];
    {::_pbi::TcParser::FastEr1S1,
     {8, 1, 4, PROTOBUF_FIELD_OFFSET(ReductionParameter, _impl_.operation_)}},
    // optional int32 axis = 2 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ReductionParameter, _impl_.axis_), 0>(),
     {16, 0, 0, PROTOBUF_FIELD_OFFSET(ReductionParameter, _impl_.axis_)}},
    // optional float coeff = 3 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {29, 2, 0, PROTOBUF_FIELD_OFFSET(ReductionParameter, _impl_.coeff_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.ReductionParameter.ReductionOp operation = 1 [default = SUM];
    {PROTOBUF_FIELD_OFFSET(ReductionParameter, _impl_.operation_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional int32 axis = 2 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ReductionParameter, _impl_.axis_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional float coeff = 3 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ReductionParameter, _impl_.coeff_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  {{
      {1, 4},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void ReductionParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ReductionParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    _impl_.axis_ = 0;
    _impl_.operation_ = 1;
    _impl_.coeff_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ReductionParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ReductionParameter& this_ = static_cast<const ReductionParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ReductionParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ReductionParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ReductionParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.ReductionParameter.ReductionOp operation = 1 [default = SUM];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_operation(), target);
  }

  // optional int32 axis = 2 [default = 0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_axis(), target);
  }

  // optional float coeff = 3 [default = 1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_coeff(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ReductionParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ReductionParameter::ByteSizeLong(const MessageLite& base) {
  const ReductionParameter& this_ = static_cast<const ReductionParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ReductionParameter::ByteSizeLong() const {
  const ReductionParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ReductionParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000004U & cached_has_bits) * 5;
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional int32 axis = 2 [default = 0];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
    // optional .opencv_caffe.ReductionParameter.ReductionOp operation = 1 [default = SUM];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_operation());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ReductionParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ReductionParameter*>(&to_msg);
  auto& from = static_cast<const ReductionParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ReductionParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.operation_ = from._impl_.operation_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.coeff_ = from._impl_.coeff_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ReductionParameter::CopyFrom(const ReductionParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ReductionParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ReductionParameter::InternalSwap(ReductionParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ReductionParameter, _impl_.coeff_)
      + sizeof(ReductionParameter::_impl_.coeff_)
      - PROTOBUF_FIELD_OFFSET(ReductionParameter, _impl_.axis_)>(
          reinterpret_cast<char*>(&_impl_.axis_),
          reinterpret_cast<char*>(&other->_impl_.axis_));
}

::google::protobuf::Metadata ReductionParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ReLUParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ReLUParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ReLUParameter, _impl_._has_bits_);
};

ReLUParameter::ReLUParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReLUParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ReLUParameter)
}
ReLUParameter::ReLUParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ReLUParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReLUParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ReLUParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ReLUParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, negative_slope_),
           0,
           offsetof(Impl_, engine_) -
               offsetof(Impl_, negative_slope_) +
               sizeof(Impl_::engine_));
}
ReLUParameter::~ReLUParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ReLUParameter)
  SharedDtor(*this);
}
inline void ReLUParameter::SharedDtor(MessageLite& self) {
  ReLUParameter& this_ = static_cast<ReLUParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ReLUParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReLUParameter(arena);
}
constexpr auto ReLUParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ReLUParameter),
                                            alignof(ReLUParameter));
}
constexpr auto ReLUParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ReLUParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ReLUParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ReLUParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReLUParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ReLUParameter>(), &ReLUParameter::ByteSizeLong,
              &ReLUParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReLUParameter, _impl_._cached_size_),
          false,
      },
      &ReLUParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReLUParameter_class_data_ =
        ReLUParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReLUParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReLUParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReLUParameter_class_data_.tc_table);
  return ReLUParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 1, 0, 2>
ReLUParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ReLUParameter, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    ReLUParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ReLUParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional .opencv_caffe.ReLUParameter.Engine engine = 2 [default = DEFAULT];
    {::_pbi::TcParser::FastEr0S1,
     {16, 1, 2, PROTOBUF_FIELD_OFFSET(ReLUParameter, _impl_.engine_)}},
    // optional float negative_slope = 1 [default = 0];
    {::_pbi::TcParser::FastF32S1,
     {13, 0, 0, PROTOBUF_FIELD_OFFSET(ReLUParameter, _impl_.negative_slope_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float negative_slope = 1 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ReLUParameter, _impl_.negative_slope_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional .opencv_caffe.ReLUParameter.Engine engine = 2 [default = DEFAULT];
    {PROTOBUF_FIELD_OFFSET(ReLUParameter, _impl_.engine_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
  }},
  {{
      {0, 2},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void ReLUParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ReLUParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    ::memset(&_impl_.negative_slope_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.engine_) -
        reinterpret_cast<char*>(&_impl_.negative_slope_)) + sizeof(_impl_.engine_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ReLUParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ReLUParameter& this_ = static_cast<const ReLUParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ReLUParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ReLUParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ReLUParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float negative_slope = 1 [default = 0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_negative_slope(), target);
  }

  // optional .opencv_caffe.ReLUParameter.Engine engine = 2 [default = DEFAULT];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_engine(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ReLUParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ReLUParameter::ByteSizeLong(const MessageLite& base) {
  const ReLUParameter& this_ = static_cast<const ReLUParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ReLUParameter::ByteSizeLong() const {
  const ReLUParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ReLUParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000001U & cached_has_bits) * 5;
   {
    // optional .opencv_caffe.ReLUParameter.Engine engine = 2 [default = DEFAULT];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_engine());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ReLUParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ReLUParameter*>(&to_msg);
  auto& from = static_cast<const ReLUParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ReLUParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.negative_slope_ = from._impl_.negative_slope_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.engine_ = from._impl_.engine_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ReLUParameter::CopyFrom(const ReLUParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ReLUParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ReLUParameter::InternalSwap(ReLUParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ReLUParameter, _impl_.engine_)
      + sizeof(ReLUParameter::_impl_.engine_)
      - PROTOBUF_FIELD_OFFSET(ReLUParameter, _impl_.negative_slope_)>(
          reinterpret_cast<char*>(&_impl_.negative_slope_),
          reinterpret_cast<char*>(&other->_impl_.negative_slope_));
}

::google::protobuf::Metadata ReLUParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ReshapeParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ReshapeParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ReshapeParameter, _impl_._has_bits_);
};

ReshapeParameter::ReshapeParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReshapeParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ReshapeParameter)
}
PROTOBUF_NDEBUG_INLINE ReshapeParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::ReshapeParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

ReshapeParameter::ReshapeParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ReshapeParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ReshapeParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ReshapeParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.shape_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.shape_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, axis_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, axis_),
           offsetof(Impl_, num_axes_) -
               offsetof(Impl_, axis_) +
               sizeof(Impl_::num_axes_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.ReshapeParameter)
}
PROTOBUF_NDEBUG_INLINE ReshapeParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        num_axes_{-1} {}

inline void ReshapeParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, shape_),
           0,
           offsetof(Impl_, axis_) -
               offsetof(Impl_, shape_) +
               sizeof(Impl_::axis_));
}
ReshapeParameter::~ReshapeParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ReshapeParameter)
  SharedDtor(*this);
}
inline void ReshapeParameter::SharedDtor(MessageLite& self) {
  ReshapeParameter& this_ = static_cast<ReshapeParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.shape_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ReshapeParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ReshapeParameter(arena);
}
constexpr auto ReshapeParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ReshapeParameter),
                                            alignof(ReshapeParameter));
}
constexpr auto ReshapeParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ReshapeParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ReshapeParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ReshapeParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ReshapeParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ReshapeParameter>(), &ReshapeParameter::ByteSizeLong,
              &ReshapeParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ReshapeParameter, _impl_._cached_size_),
          false,
      },
      &ReshapeParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ReshapeParameter_class_data_ =
        ReshapeParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ReshapeParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ReshapeParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ReshapeParameter_class_data_.tc_table);
  return ReshapeParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 1, 0, 2>
ReshapeParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ReshapeParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    ReshapeParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ReshapeParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional .opencv_caffe.BlobShape shape = 1;
    {::_pbi::TcParser::FastMtS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(ReshapeParameter, _impl_.shape_)}},
    // optional int32 axis = 2 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ReshapeParameter, _impl_.axis_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(ReshapeParameter, _impl_.axis_)}},
    // optional int32 num_axes = 3 [default = -1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ReshapeParameter, _impl_.num_axes_), 2>(),
     {24, 2, 0, PROTOBUF_FIELD_OFFSET(ReshapeParameter, _impl_.num_axes_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.BlobShape shape = 1;
    {PROTOBUF_FIELD_OFFSET(ReshapeParameter, _impl_.shape_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional int32 axis = 2 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ReshapeParameter, _impl_.axis_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 num_axes = 3 [default = -1];
    {PROTOBUF_FIELD_OFFSET(ReshapeParameter, _impl_.num_axes_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::BlobShape>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void ReshapeParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ReshapeParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    ABSL_DCHECK(_impl_.shape_ != nullptr);
    _impl_.shape_->Clear();
  }
  if ((cached_has_bits & 0x00000006U) != 0) {
    _impl_.axis_ = 0;
    _impl_.num_axes_ = -1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ReshapeParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ReshapeParameter& this_ = static_cast<const ReshapeParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ReshapeParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ReshapeParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ReshapeParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.BlobShape shape = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.shape_, this_._impl_.shape_->GetCachedSize(), target,
        stream);
  }

  // optional int32 axis = 2 [default = 0];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_axis(), target);
  }

  // optional int32 num_axes = 3 [default = -1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_num_axes(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ReshapeParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ReshapeParameter::ByteSizeLong(const MessageLite& base) {
  const ReshapeParameter& this_ = static_cast<const ReshapeParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ReshapeParameter::ByteSizeLong() const {
  const ReshapeParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ReshapeParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    // optional .opencv_caffe.BlobShape shape = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.shape_);
    }
    // optional int32 axis = 2 [default = 0];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
    // optional int32 num_axes = 3 [default = -1];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_num_axes());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ReshapeParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ReshapeParameter*>(&to_msg);
  auto& from = static_cast<const ReshapeParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ReshapeParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(from._impl_.shape_ != nullptr);
      if (_this->_impl_.shape_ == nullptr) {
        _this->_impl_.shape_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.shape_);
      } else {
        _this->_impl_.shape_->MergeFrom(*from._impl_.shape_);
      }
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.num_axes_ = from._impl_.num_axes_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ReshapeParameter::CopyFrom(const ReshapeParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ReshapeParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ReshapeParameter::InternalSwap(ReshapeParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ReshapeParameter, _impl_.num_axes_)
      + sizeof(ReshapeParameter::_impl_.num_axes_)
      - PROTOBUF_FIELD_OFFSET(ReshapeParameter, _impl_.shape_)>(
          reinterpret_cast<char*>(&_impl_.shape_),
          reinterpret_cast<char*>(&other->_impl_.shape_));
}

::google::protobuf::Metadata ReshapeParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ScaleParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ScaleParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_._has_bits_);
};

ScaleParameter::ScaleParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ScaleParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ScaleParameter)
}
PROTOBUF_NDEBUG_INLINE ScaleParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::ScaleParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

ScaleParameter::ScaleParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ScaleParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ScaleParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ScaleParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.filler_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.filler_)
                : nullptr;
  _impl_.bias_filler_ = ((cached_has_bits & 0x00000002U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, bias_term_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, bias_term_),
           offsetof(Impl_, num_axes_) -
               offsetof(Impl_, bias_term_) +
               sizeof(Impl_::num_axes_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.ScaleParameter)
}
PROTOBUF_NDEBUG_INLINE ScaleParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        axis_{1},
        num_axes_{1} {}

inline void ScaleParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, filler_),
           0,
           offsetof(Impl_, bias_term_) -
               offsetof(Impl_, filler_) +
               sizeof(Impl_::bias_term_));
}
ScaleParameter::~ScaleParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ScaleParameter)
  SharedDtor(*this);
}
inline void ScaleParameter::SharedDtor(MessageLite& self) {
  ScaleParameter& this_ = static_cast<ScaleParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.filler_;
  delete this_._impl_.bias_filler_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ScaleParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ScaleParameter(arena);
}
constexpr auto ScaleParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ScaleParameter),
                                            alignof(ScaleParameter));
}
constexpr auto ScaleParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ScaleParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ScaleParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ScaleParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ScaleParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ScaleParameter>(), &ScaleParameter::ByteSizeLong,
              &ScaleParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_._cached_size_),
          false,
      },
      &ScaleParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ScaleParameter_class_data_ =
        ScaleParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ScaleParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ScaleParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ScaleParameter_class_data_.tc_table);
  return ScaleParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 5, 2, 0, 2>
ScaleParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_._has_bits_),
    0, // no _extensions_
    5, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967264,  // skipmap
    offsetof(decltype(_table_), field_entries),
    5,  // num_field_entries
    2,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    ScaleParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ScaleParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional int32 axis = 1 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ScaleParameter, _impl_.axis_), 3>(),
     {8, 3, 0, PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.axis_)}},
    // optional int32 num_axes = 2 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ScaleParameter, _impl_.num_axes_), 4>(),
     {16, 4, 0, PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.num_axes_)}},
    // optional .opencv_caffe.FillerParameter filler = 3;
    {::_pbi::TcParser::FastMtS1,
     {26, 0, 0, PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.filler_)}},
    // optional bool bias_term = 4 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(ScaleParameter, _impl_.bias_term_), 2>(),
     {32, 2, 0, PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.bias_term_)}},
    // optional .opencv_caffe.FillerParameter bias_filler = 5;
    {::_pbi::TcParser::FastMtS1,
     {42, 1, 1, PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.bias_filler_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 axis = 1 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.axis_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 num_axes = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.num_axes_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional .opencv_caffe.FillerParameter filler = 3;
    {PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.filler_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional bool bias_term = 4 [default = false];
    {PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.bias_term_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional .opencv_caffe.FillerParameter bias_filler = 5;
    {PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.bias_filler_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void ScaleParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ScaleParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(_impl_.filler_ != nullptr);
      _impl_.filler_->Clear();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(_impl_.bias_filler_ != nullptr);
      _impl_.bias_filler_->Clear();
    }
  }
  if ((cached_has_bits & 0x0000001cU) != 0) {
    _impl_.bias_term_ = false;
    _impl_.axis_ = 1;
    _impl_.num_axes_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ScaleParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ScaleParameter& this_ = static_cast<const ScaleParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ScaleParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ScaleParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ScaleParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 axis = 1 [default = 1];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_axis(), target);
  }

  // optional int32 num_axes = 2 [default = 1];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_num_axes(), target);
  }

  // optional .opencv_caffe.FillerParameter filler = 3;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        3, *this_._impl_.filler_, this_._impl_.filler_->GetCachedSize(), target,
        stream);
  }

  // optional bool bias_term = 4 [default = false];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        4, this_._internal_bias_term(), target);
  }

  // optional .opencv_caffe.FillerParameter bias_filler = 5;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.bias_filler_, this_._impl_.bias_filler_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ScaleParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ScaleParameter::ByteSizeLong(const MessageLite& base) {
  const ScaleParameter& this_ = static_cast<const ScaleParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ScaleParameter::ByteSizeLong() const {
  const ScaleParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ScaleParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000004U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x0000001bU) != 0) {
    // optional .opencv_caffe.FillerParameter filler = 3;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.filler_);
    }
    // optional .opencv_caffe.FillerParameter bias_filler = 5;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bias_filler_);
    }
    // optional int32 axis = 1 [default = 1];
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
    // optional int32 num_axes = 2 [default = 1];
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_num_axes());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ScaleParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ScaleParameter*>(&to_msg);
  auto& from = static_cast<const ScaleParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ScaleParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000001fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(from._impl_.filler_ != nullptr);
      if (_this->_impl_.filler_ == nullptr) {
        _this->_impl_.filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.filler_);
      } else {
        _this->_impl_.filler_->MergeFrom(*from._impl_.filler_);
      }
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(from._impl_.bias_filler_ != nullptr);
      if (_this->_impl_.bias_filler_ == nullptr) {
        _this->_impl_.bias_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_);
      } else {
        _this->_impl_.bias_filler_->MergeFrom(*from._impl_.bias_filler_);
      }
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.bias_term_ = from._impl_.bias_term_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.num_axes_ = from._impl_.num_axes_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ScaleParameter::CopyFrom(const ScaleParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ScaleParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ScaleParameter::InternalSwap(ScaleParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.num_axes_)
      + sizeof(ScaleParameter::_impl_.num_axes_)
      - PROTOBUF_FIELD_OFFSET(ScaleParameter, _impl_.filler_)>(
          reinterpret_cast<char*>(&_impl_.filler_),
          reinterpret_cast<char*>(&other->_impl_.filler_));
}

::google::protobuf::Metadata ScaleParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class SigmoidParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<SigmoidParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(SigmoidParameter, _impl_._has_bits_);
};

SigmoidParameter::SigmoidParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SigmoidParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.SigmoidParameter)
}
SigmoidParameter::SigmoidParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SigmoidParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SigmoidParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE SigmoidParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void SigmoidParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.engine_ = {};
}
SigmoidParameter::~SigmoidParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.SigmoidParameter)
  SharedDtor(*this);
}
inline void SigmoidParameter::SharedDtor(MessageLite& self) {
  SigmoidParameter& this_ = static_cast<SigmoidParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL SigmoidParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SigmoidParameter(arena);
}
constexpr auto SigmoidParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SigmoidParameter),
                                            alignof(SigmoidParameter));
}
constexpr auto SigmoidParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_SigmoidParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &SigmoidParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SigmoidParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SigmoidParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SigmoidParameter>(), &SigmoidParameter::ByteSizeLong,
              &SigmoidParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SigmoidParameter, _impl_._cached_size_),
          false,
      },
      &SigmoidParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SigmoidParameter_class_data_ =
        SigmoidParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SigmoidParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SigmoidParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SigmoidParameter_class_data_.tc_table);
  return SigmoidParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 1, 0, 2>
SigmoidParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(SigmoidParameter, _impl_._has_bits_),
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    SigmoidParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::SigmoidParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional .opencv_caffe.SigmoidParameter.Engine engine = 1 [default = DEFAULT];
    {::_pbi::TcParser::FastEr0S1,
     {8, 0, 2, PROTOBUF_FIELD_OFFSET(SigmoidParameter, _impl_.engine_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.SigmoidParameter.Engine engine = 1 [default = DEFAULT];
    {PROTOBUF_FIELD_OFFSET(SigmoidParameter, _impl_.engine_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
  }},
  {{
      {0, 2},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void SigmoidParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.SigmoidParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.engine_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SigmoidParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SigmoidParameter& this_ = static_cast<const SigmoidParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SigmoidParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SigmoidParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.SigmoidParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.SigmoidParameter.Engine engine = 1 [default = DEFAULT];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_engine(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.SigmoidParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SigmoidParameter::ByteSizeLong(const MessageLite& base) {
  const SigmoidParameter& this_ = static_cast<const SigmoidParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SigmoidParameter::ByteSizeLong() const {
  const SigmoidParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.SigmoidParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // optional .opencv_caffe.SigmoidParameter.Engine engine = 1 [default = DEFAULT];
    cached_has_bits = this_._impl_._has_bits_[0];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_engine());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SigmoidParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<SigmoidParameter*>(&to_msg);
  auto& from = static_cast<const SigmoidParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.SigmoidParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _this->_impl_.engine_ = from._impl_.engine_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void SigmoidParameter::CopyFrom(const SigmoidParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.SigmoidParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void SigmoidParameter::InternalSwap(SigmoidParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.engine_, other->_impl_.engine_);
}

::google::protobuf::Metadata SigmoidParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class SliceParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<SliceParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_._has_bits_);
};

SliceParameter::SliceParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SliceParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.SliceParameter)
}
PROTOBUF_NDEBUG_INLINE SliceParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::SliceParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        slice_point_{visibility, arena, from.slice_point_} {}

SliceParameter::SliceParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SliceParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SliceParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SliceParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, slice_dim_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, slice_dim_),
           offsetof(Impl_, axis_) -
               offsetof(Impl_, slice_dim_) +
               sizeof(Impl_::axis_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.SliceParameter)
}
PROTOBUF_NDEBUG_INLINE SliceParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        slice_point_{visibility, arena},
        slice_dim_{1u},
        axis_{1} {}

inline void SliceParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
SliceParameter::~SliceParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.SliceParameter)
  SharedDtor(*this);
}
inline void SliceParameter::SharedDtor(MessageLite& self) {
  SliceParameter& this_ = static_cast<SliceParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL SliceParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SliceParameter(arena);
}
constexpr auto SliceParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_.slice_point_) +
          decltype(SliceParameter::_impl_.slice_point_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(SliceParameter), alignof(SliceParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&SliceParameter::PlacementNew_,
                                 sizeof(SliceParameter),
                                 alignof(SliceParameter));
  }
}
constexpr auto SliceParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_SliceParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &SliceParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SliceParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SliceParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SliceParameter>(), &SliceParameter::ByteSizeLong,
              &SliceParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_._cached_size_),
          false,
      },
      &SliceParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SliceParameter_class_data_ =
        SliceParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SliceParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SliceParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SliceParameter_class_data_.tc_table);
  return SliceParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
SliceParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    SliceParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::SliceParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional uint32 slice_dim = 1 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SliceParameter, _impl_.slice_dim_), 0>(),
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_.slice_dim_)}},
    // repeated uint32 slice_point = 2;
    {::_pbi::TcParser::FastV32R1,
     {16, 63, 0, PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_.slice_point_)}},
    // optional int32 axis = 3 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SliceParameter, _impl_.axis_), 1>(),
     {24, 1, 0, PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_.axis_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 slice_dim = 1 [default = 1];
    {PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_.slice_dim_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // repeated uint32 slice_point = 2;
    {PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_.slice_point_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kUInt32)},
    // optional int32 axis = 3 [default = 1];
    {PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_.axis_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void SliceParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.SliceParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.slice_point_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    _impl_.slice_dim_ = 1u;
    _impl_.axis_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SliceParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SliceParameter& this_ = static_cast<const SliceParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SliceParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SliceParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.SliceParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 slice_dim = 1 [default = 1];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_slice_dim(), target);
  }

  // repeated uint32 slice_point = 2;
  for (int i = 0, n = this_._internal_slice_point_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_slice_point().Get(i), target);
  }

  // optional int32 axis = 3 [default = 1];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_axis(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.SliceParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SliceParameter::ByteSizeLong(const MessageLite& base) {
  const SliceParameter& this_ = static_cast<const SliceParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SliceParameter::ByteSizeLong() const {
  const SliceParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.SliceParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated uint32 slice_point = 2;
    {
      ::size_t data_size = ::_pbi::WireFormatLite::UInt32Size(
          this_._internal_slice_point());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_slice_point_size());
      total_size += tag_size + data_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional uint32 slice_dim = 1 [default = 1];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_slice_dim());
    }
    // optional int32 axis = 3 [default = 1];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SliceParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<SliceParameter*>(&to_msg);
  auto& from = static_cast<const SliceParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.SliceParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_slice_point()->MergeFrom(from._internal_slice_point());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.slice_dim_ = from._impl_.slice_dim_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void SliceParameter::CopyFrom(const SliceParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.SliceParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void SliceParameter::InternalSwap(SliceParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.slice_point_.InternalSwap(&other->_impl_.slice_point_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_.axis_)
      + sizeof(SliceParameter::_impl_.axis_)
      - PROTOBUF_FIELD_OFFSET(SliceParameter, _impl_.slice_dim_)>(
          reinterpret_cast<char*>(&_impl_.slice_dim_),
          reinterpret_cast<char*>(&other->_impl_.slice_dim_));
}

::google::protobuf::Metadata SliceParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class SoftmaxParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<SoftmaxParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(SoftmaxParameter, _impl_._has_bits_);
};

SoftmaxParameter::SoftmaxParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SoftmaxParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.SoftmaxParameter)
}
SoftmaxParameter::SoftmaxParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SoftmaxParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SoftmaxParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE SoftmaxParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        axis_{1} {}

inline void SoftmaxParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.engine_ = {};
}
SoftmaxParameter::~SoftmaxParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.SoftmaxParameter)
  SharedDtor(*this);
}
inline void SoftmaxParameter::SharedDtor(MessageLite& self) {
  SoftmaxParameter& this_ = static_cast<SoftmaxParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL SoftmaxParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SoftmaxParameter(arena);
}
constexpr auto SoftmaxParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SoftmaxParameter),
                                            alignof(SoftmaxParameter));
}
constexpr auto SoftmaxParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_SoftmaxParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &SoftmaxParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SoftmaxParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SoftmaxParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SoftmaxParameter>(), &SoftmaxParameter::ByteSizeLong,
              &SoftmaxParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SoftmaxParameter, _impl_._cached_size_),
          false,
      },
      &SoftmaxParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SoftmaxParameter_class_data_ =
        SoftmaxParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SoftmaxParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SoftmaxParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SoftmaxParameter_class_data_.tc_table);
  return SoftmaxParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 1, 0, 2>
SoftmaxParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(SoftmaxParameter, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    SoftmaxParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::SoftmaxParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional int32 axis = 2 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SoftmaxParameter, _impl_.axis_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(SoftmaxParameter, _impl_.axis_)}},
    // optional .opencv_caffe.SoftmaxParameter.Engine engine = 1 [default = DEFAULT];
    {::_pbi::TcParser::FastEr0S1,
     {8, 0, 2, PROTOBUF_FIELD_OFFSET(SoftmaxParameter, _impl_.engine_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.SoftmaxParameter.Engine engine = 1 [default = DEFAULT];
    {PROTOBUF_FIELD_OFFSET(SoftmaxParameter, _impl_.engine_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional int32 axis = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(SoftmaxParameter, _impl_.axis_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
  }},
  {{
      {0, 2},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void SoftmaxParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.SoftmaxParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    _impl_.engine_ = 0;
    _impl_.axis_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SoftmaxParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SoftmaxParameter& this_ = static_cast<const SoftmaxParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SoftmaxParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SoftmaxParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.SoftmaxParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.SoftmaxParameter.Engine engine = 1 [default = DEFAULT];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_engine(), target);
  }

  // optional int32 axis = 2 [default = 1];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_axis(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.SoftmaxParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SoftmaxParameter::ByteSizeLong(const MessageLite& base) {
  const SoftmaxParameter& this_ = static_cast<const SoftmaxParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SoftmaxParameter::ByteSizeLong() const {
  const SoftmaxParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.SoftmaxParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional .opencv_caffe.SoftmaxParameter.Engine engine = 1 [default = DEFAULT];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_engine());
    }
    // optional int32 axis = 2 [default = 1];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SoftmaxParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<SoftmaxParameter*>(&to_msg);
  auto& from = static_cast<const SoftmaxParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.SoftmaxParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.engine_ = from._impl_.engine_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void SoftmaxParameter::CopyFrom(const SoftmaxParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.SoftmaxParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void SoftmaxParameter::InternalSwap(SoftmaxParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SoftmaxParameter, _impl_.axis_)
      + sizeof(SoftmaxParameter::_impl_.axis_)
      - PROTOBUF_FIELD_OFFSET(SoftmaxParameter, _impl_.engine_)>(
          reinterpret_cast<char*>(&_impl_.engine_),
          reinterpret_cast<char*>(&other->_impl_.engine_));
}

::google::protobuf::Metadata SoftmaxParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class TanHParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<TanHParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(TanHParameter, _impl_._has_bits_);
};

TanHParameter::TanHParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TanHParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.TanHParameter)
}
TanHParameter::TanHParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TanHParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TanHParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TanHParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void TanHParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.engine_ = {};
}
TanHParameter::~TanHParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.TanHParameter)
  SharedDtor(*this);
}
inline void TanHParameter::SharedDtor(MessageLite& self) {
  TanHParameter& this_ = static_cast<TanHParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL TanHParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TanHParameter(arena);
}
constexpr auto TanHParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(TanHParameter),
                                            alignof(TanHParameter));
}
constexpr auto TanHParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_TanHParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &TanHParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TanHParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TanHParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TanHParameter>(), &TanHParameter::ByteSizeLong,
              &TanHParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TanHParameter, _impl_._cached_size_),
          false,
      },
      &TanHParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TanHParameter_class_data_ =
        TanHParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TanHParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TanHParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TanHParameter_class_data_.tc_table);
  return TanHParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 1, 0, 2>
TanHParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(TanHParameter, _impl_._has_bits_),
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    TanHParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::TanHParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional .opencv_caffe.TanHParameter.Engine engine = 1 [default = DEFAULT];
    {::_pbi::TcParser::FastEr0S1,
     {8, 0, 2, PROTOBUF_FIELD_OFFSET(TanHParameter, _impl_.engine_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.TanHParameter.Engine engine = 1 [default = DEFAULT];
    {PROTOBUF_FIELD_OFFSET(TanHParameter, _impl_.engine_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
  }},
  {{
      {0, 2},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void TanHParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.TanHParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.engine_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL TanHParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const TanHParameter& this_ = static_cast<const TanHParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL TanHParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const TanHParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.TanHParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.TanHParameter.Engine engine = 1 [default = DEFAULT];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1, this_._internal_engine(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.TanHParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t TanHParameter::ByteSizeLong(const MessageLite& base) {
  const TanHParameter& this_ = static_cast<const TanHParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t TanHParameter::ByteSizeLong() const {
  const TanHParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.TanHParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // optional .opencv_caffe.TanHParameter.Engine engine = 1 [default = DEFAULT];
    cached_has_bits = this_._impl_._has_bits_[0];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_engine());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void TanHParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<TanHParameter*>(&to_msg);
  auto& from = static_cast<const TanHParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.TanHParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _this->_impl_.engine_ = from._impl_.engine_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void TanHParameter::CopyFrom(const TanHParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.TanHParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void TanHParameter::InternalSwap(TanHParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.engine_, other->_impl_.engine_);
}

::google::protobuf::Metadata TanHParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class TileParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<TileParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(TileParameter, _impl_._has_bits_);
};

TileParameter::TileParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TileParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.TileParameter)
}
TileParameter::TileParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const TileParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, TileParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE TileParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        axis_{1} {}

inline void TileParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.tiles_ = {};
}
TileParameter::~TileParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.TileParameter)
  SharedDtor(*this);
}
inline void TileParameter::SharedDtor(MessageLite& self) {
  TileParameter& this_ = static_cast<TileParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL TileParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) TileParameter(arena);
}
constexpr auto TileParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(TileParameter),
                                            alignof(TileParameter));
}
constexpr auto TileParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_TileParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &TileParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<TileParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &TileParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<TileParameter>(), &TileParameter::ByteSizeLong,
              &TileParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(TileParameter, _impl_._cached_size_),
          false,
      },
      &TileParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull TileParameter_class_data_ =
        TileParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
TileParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&TileParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(TileParameter_class_data_.tc_table);
  return TileParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 0, 0, 2>
TileParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(TileParameter, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    TileParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::TileParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional int32 tiles = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TileParameter, _impl_.tiles_), 0>(),
     {16, 0, 0, PROTOBUF_FIELD_OFFSET(TileParameter, _impl_.tiles_)}},
    // optional int32 axis = 1 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(TileParameter, _impl_.axis_), 1>(),
     {8, 1, 0, PROTOBUF_FIELD_OFFSET(TileParameter, _impl_.axis_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional int32 axis = 1 [default = 1];
    {PROTOBUF_FIELD_OFFSET(TileParameter, _impl_.axis_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 tiles = 2;
    {PROTOBUF_FIELD_OFFSET(TileParameter, _impl_.tiles_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void TileParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.TileParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    _impl_.tiles_ = 0;
    _impl_.axis_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL TileParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const TileParameter& this_ = static_cast<const TileParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL TileParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const TileParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.TileParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 axis = 1 [default = 1];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_axis(), target);
  }

  // optional int32 tiles = 2;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_tiles(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.TileParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t TileParameter::ByteSizeLong(const MessageLite& base) {
  const TileParameter& this_ = static_cast<const TileParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t TileParameter::ByteSizeLong() const {
  const TileParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.TileParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional int32 tiles = 2;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_tiles());
    }
    // optional int32 axis = 1 [default = 1];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_axis());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void TileParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<TileParameter*>(&to_msg);
  auto& from = static_cast<const TileParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.TileParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.tiles_ = from._impl_.tiles_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.axis_ = from._impl_.axis_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void TileParameter::CopyFrom(const TileParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.TileParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void TileParameter::InternalSwap(TileParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(TileParameter, _impl_.axis_)
      + sizeof(TileParameter::_impl_.axis_)
      - PROTOBUF_FIELD_OFFSET(TileParameter, _impl_.tiles_)>(
          reinterpret_cast<char*>(&_impl_.tiles_),
          reinterpret_cast<char*>(&other->_impl_.tiles_));
}

::google::protobuf::Metadata TileParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ThresholdParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ThresholdParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ThresholdParameter, _impl_._has_bits_);
};

ThresholdParameter::ThresholdParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ThresholdParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ThresholdParameter)
}
ThresholdParameter::ThresholdParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ThresholdParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ThresholdParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ThresholdParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ThresholdParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.threshold_ = {};
}
ThresholdParameter::~ThresholdParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ThresholdParameter)
  SharedDtor(*this);
}
inline void ThresholdParameter::SharedDtor(MessageLite& self) {
  ThresholdParameter& this_ = static_cast<ThresholdParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ThresholdParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ThresholdParameter(arena);
}
constexpr auto ThresholdParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ThresholdParameter),
                                            alignof(ThresholdParameter));
}
constexpr auto ThresholdParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ThresholdParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ThresholdParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ThresholdParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ThresholdParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ThresholdParameter>(), &ThresholdParameter::ByteSizeLong,
              &ThresholdParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ThresholdParameter, _impl_._cached_size_),
          false,
      },
      &ThresholdParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ThresholdParameter_class_data_ =
        ThresholdParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ThresholdParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ThresholdParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ThresholdParameter_class_data_.tc_table);
  return ThresholdParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<0, 1, 0, 0, 2>
ThresholdParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ThresholdParameter, _impl_._has_bits_),
    0, // no _extensions_
    1, 0,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967294,  // skipmap
    offsetof(decltype(_table_), field_entries),
    1,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    ThresholdParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ThresholdParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional float threshold = 1 [default = 0];
    {::_pbi::TcParser::FastF32S1,
     {13, 0, 0, PROTOBUF_FIELD_OFFSET(ThresholdParameter, _impl_.threshold_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float threshold = 1 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ThresholdParameter, _impl_.threshold_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void ThresholdParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ThresholdParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.threshold_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ThresholdParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ThresholdParameter& this_ = static_cast<const ThresholdParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ThresholdParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ThresholdParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ThresholdParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float threshold = 1 [default = 0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_threshold(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ThresholdParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ThresholdParameter::ByteSizeLong(const MessageLite& base) {
  const ThresholdParameter& this_ = static_cast<const ThresholdParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ThresholdParameter::ByteSizeLong() const {
  const ThresholdParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ThresholdParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000001U & cached_has_bits) * 5;
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ThresholdParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ThresholdParameter*>(&to_msg);
  auto& from = static_cast<const ThresholdParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ThresholdParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    _this->_impl_.threshold_ = from._impl_.threshold_;
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ThresholdParameter::CopyFrom(const ThresholdParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ThresholdParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ThresholdParameter::InternalSwap(ThresholdParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.threshold_, other->_impl_.threshold_);
}

::google::protobuf::Metadata ThresholdParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class WindowDataParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<WindowDataParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_._has_bits_);
};

/*static*/ const ::_pbi::LazyString WindowDataParameter::Impl_::_i_give_permission_to_break_this_code_default_crop_mode_{
    {{"warp", 4}},
    {nullptr},
};
WindowDataParameter::WindowDataParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, WindowDataParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.WindowDataParameter)
}
PROTOBUF_NDEBUG_INLINE WindowDataParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::WindowDataParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        source_(arena, from.source_),
        mean_file_(arena, from.mean_file_),
        crop_mode_(arena, from.crop_mode_, _i_give_permission_to_break_this_code_default_crop_mode_),
        root_folder_(arena, from.root_folder_) {}

WindowDataParameter::WindowDataParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const WindowDataParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, WindowDataParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  WindowDataParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, batch_size_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, batch_size_),
           offsetof(Impl_, fg_fraction_) -
               offsetof(Impl_, batch_size_) +
               sizeof(Impl_::fg_fraction_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.WindowDataParameter)
}
PROTOBUF_NDEBUG_INLINE WindowDataParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        source_(arena),
        mean_file_(arena),
        crop_mode_(arena, Impl_::_i_give_permission_to_break_this_code_default_crop_mode_),
        root_folder_(arena),
        scale_{1},
        fg_threshold_{0.5f},
        bg_threshold_{0.5f},
        fg_fraction_{0.25f} {}

inline void WindowDataParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, batch_size_),
           0,
           offsetof(Impl_, context_pad_) -
               offsetof(Impl_, batch_size_) +
               sizeof(Impl_::context_pad_));
}
WindowDataParameter::~WindowDataParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.WindowDataParameter)
  SharedDtor(*this);
}
inline void WindowDataParameter::SharedDtor(MessageLite& self) {
  WindowDataParameter& this_ = static_cast<WindowDataParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.source_.Destroy();
  this_._impl_.mean_file_.Destroy();
  this_._impl_.crop_mode_.Destroy();
  this_._impl_.root_folder_.Destroy();
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL WindowDataParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) WindowDataParameter(arena);
}
constexpr auto WindowDataParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(WindowDataParameter),
                                            alignof(WindowDataParameter));
}
constexpr auto WindowDataParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_WindowDataParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &WindowDataParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<WindowDataParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &WindowDataParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<WindowDataParameter>(), &WindowDataParameter::ByteSizeLong,
              &WindowDataParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_._cached_size_),
          false,
      },
      &WindowDataParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull WindowDataParameter_class_data_ =
        WindowDataParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
WindowDataParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&WindowDataParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(WindowDataParameter_class_data_.tc_table);
  return WindowDataParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<4, 13, 0, 84, 2>
WindowDataParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_._has_bits_),
    0, // no _extensions_
    13, 120,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294959104,  // skipmap
    offsetof(decltype(_table_), field_entries),
    13,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    WindowDataParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::WindowDataParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional string source = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.source_)}},
    // optional float scale = 2 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {21, 9, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.scale_)}},
    // optional string mean_file = 3;
    {::_pbi::TcParser::FastSS1,
     {26, 1, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.mean_file_)}},
    // optional uint32 batch_size = 4;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(WindowDataParameter, _impl_.batch_size_), 4>(),
     {32, 4, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.batch_size_)}},
    // optional uint32 crop_size = 5 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(WindowDataParameter, _impl_.crop_size_), 5>(),
     {40, 5, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.crop_size_)}},
    // optional bool mirror = 6 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(WindowDataParameter, _impl_.mirror_), 6>(),
     {48, 6, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.mirror_)}},
    // optional float fg_threshold = 7 [default = 0.5];
    {::_pbi::TcParser::FastF32S1,
     {61, 10, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.fg_threshold_)}},
    // optional float bg_threshold = 8 [default = 0.5];
    {::_pbi::TcParser::FastF32S1,
     {69, 11, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.bg_threshold_)}},
    // optional float fg_fraction = 9 [default = 0.25];
    {::_pbi::TcParser::FastF32S1,
     {77, 12, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.fg_fraction_)}},
    // optional uint32 context_pad = 10 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(WindowDataParameter, _impl_.context_pad_), 8>(),
     {80, 8, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.context_pad_)}},
    // optional string crop_mode = 11 [default = "warp"];
    {::_pbi::TcParser::FastSS1,
     {90, 2, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.crop_mode_)}},
    // optional bool cache_images = 12 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(WindowDataParameter, _impl_.cache_images_), 7>(),
     {96, 7, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.cache_images_)}},
    // optional string root_folder = 13 [default = ""];
    {::_pbi::TcParser::FastSS1,
     {106, 3, 0, PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.root_folder_)}},
    {::_pbi::TcParser::MiniParse, {}},
    {::_pbi::TcParser::MiniParse, {}},
  }}, {{
    65535, 65535
  }}, {{
    // optional string source = 1;
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.source_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional float scale = 2 [default = 1];
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.scale_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional string mean_file = 3;
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.mean_file_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional uint32 batch_size = 4;
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.batch_size_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 crop_size = 5 [default = 0];
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.crop_size_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool mirror = 6 [default = false];
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.mirror_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional float fg_threshold = 7 [default = 0.5];
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.fg_threshold_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float bg_threshold = 8 [default = 0.5];
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.bg_threshold_), _Internal::kHasBitsOffset + 11, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float fg_fraction = 9 [default = 0.25];
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.fg_fraction_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional uint32 context_pad = 10 [default = 0];
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.context_pad_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional string crop_mode = 11 [default = "warp"];
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.crop_mode_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional bool cache_images = 12 [default = false];
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.cache_images_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional string root_folder = 13 [default = ""];
    {PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.root_folder_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
  }},
  // no aux_entries
  {{
    "\40\6\0\11\0\0\0\0\0\0\0\11\0\13\0\0"
    "opencv_caffe.WindowDataParameter"
    "source"
    "mean_file"
    "crop_mode"
    "root_folder"
  }},
};
PROTOBUF_NOINLINE void WindowDataParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.WindowDataParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000000fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _impl_.source_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _impl_.mean_file_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _impl_.crop_mode_.ClearToDefault(::opencv_caffe::WindowDataParameter::Impl_::_i_give_permission_to_break_this_code_default_crop_mode_, GetArena());
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _impl_.root_folder_.ClearNonDefaultToEmpty();
    }
  }
  if ((cached_has_bits & 0x000000f0U) != 0) {
    ::memset(&_impl_.batch_size_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.cache_images_) -
        reinterpret_cast<char*>(&_impl_.batch_size_)) + sizeof(_impl_.cache_images_));
  }
  if ((cached_has_bits & 0x00001f00U) != 0) {
    _impl_.context_pad_ = 0u;
    _impl_.scale_ = 1;
    _impl_.fg_threshold_ = 0.5f;
    _impl_.bg_threshold_ = 0.5f;
    _impl_.fg_fraction_ = 0.25f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL WindowDataParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const WindowDataParameter& this_ = static_cast<const WindowDataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL WindowDataParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const WindowDataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.WindowDataParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string source = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_source();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.WindowDataParameter.source");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional float scale = 2 [default = 1];
  if ((cached_has_bits & 0x00000200U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_scale(), target);
  }

  // optional string mean_file = 3;
  if ((cached_has_bits & 0x00000002U) != 0) {
    const ::std::string& _s = this_._internal_mean_file();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.WindowDataParameter.mean_file");
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // optional uint32 batch_size = 4;
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        4, this_._internal_batch_size(), target);
  }

  // optional uint32 crop_size = 5 [default = 0];
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        5, this_._internal_crop_size(), target);
  }

  // optional bool mirror = 6 [default = false];
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_mirror(), target);
  }

  // optional float fg_threshold = 7 [default = 0.5];
  if ((cached_has_bits & 0x00000400U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        7, this_._internal_fg_threshold(), target);
  }

  // optional float bg_threshold = 8 [default = 0.5];
  if ((cached_has_bits & 0x00000800U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        8, this_._internal_bg_threshold(), target);
  }

  // optional float fg_fraction = 9 [default = 0.25];
  if ((cached_has_bits & 0x00001000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        9, this_._internal_fg_fraction(), target);
  }

  // optional uint32 context_pad = 10 [default = 0];
  if ((cached_has_bits & 0x00000100U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        10, this_._internal_context_pad(), target);
  }

  // optional string crop_mode = 11 [default = "warp"];
  if ((cached_has_bits & 0x00000004U) != 0) {
    const ::std::string& _s = this_._internal_crop_mode();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.WindowDataParameter.crop_mode");
    target = stream->WriteStringMaybeAliased(11, _s, target);
  }

  // optional bool cache_images = 12 [default = false];
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        12, this_._internal_cache_images(), target);
  }

  // optional string root_folder = 13 [default = ""];
  if ((cached_has_bits & 0x00000008U) != 0) {
    const ::std::string& _s = this_._internal_root_folder();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.WindowDataParameter.root_folder");
    target = stream->WriteStringMaybeAliased(13, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.WindowDataParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t WindowDataParameter::ByteSizeLong(const MessageLite& base) {
  const WindowDataParameter& this_ = static_cast<const WindowDataParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t WindowDataParameter::ByteSizeLong() const {
  const WindowDataParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.WindowDataParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x00001e00U & cached_has_bits) * 5;
  total_size += ::absl::popcount(0x000000c0U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x0000003fU) != 0) {
    // optional string source = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_source());
    }
    // optional string mean_file = 3;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_mean_file());
    }
    // optional string crop_mode = 11 [default = "warp"];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_crop_mode());
    }
    // optional string root_folder = 13 [default = ""];
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_root_folder());
    }
    // optional uint32 batch_size = 4;
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_batch_size());
    }
    // optional uint32 crop_size = 5 [default = 0];
    if ((cached_has_bits & 0x00000020U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_crop_size());
    }
  }
   {
    // optional uint32 context_pad = 10 [default = 0];
    if ((cached_has_bits & 0x00000100U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_context_pad());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void WindowDataParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<WindowDataParameter*>(&to_msg);
  auto& from = static_cast<const WindowDataParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.WindowDataParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_source(from._internal_source());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_internal_set_mean_file(from._internal_mean_file());
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_internal_set_crop_mode(from._internal_crop_mode());
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_internal_set_root_folder(from._internal_root_folder());
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.batch_size_ = from._impl_.batch_size_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.crop_size_ = from._impl_.crop_size_;
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      _this->_impl_.mirror_ = from._impl_.mirror_;
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      _this->_impl_.cache_images_ = from._impl_.cache_images_;
    }
  }
  if ((cached_has_bits & 0x00001f00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      _this->_impl_.context_pad_ = from._impl_.context_pad_;
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      _this->_impl_.scale_ = from._impl_.scale_;
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      _this->_impl_.fg_threshold_ = from._impl_.fg_threshold_;
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      _this->_impl_.bg_threshold_ = from._impl_.bg_threshold_;
    }
    if ((cached_has_bits & 0x00001000U) != 0) {
      _this->_impl_.fg_fraction_ = from._impl_.fg_fraction_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void WindowDataParameter::CopyFrom(const WindowDataParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.WindowDataParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void WindowDataParameter::InternalSwap(WindowDataParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.source_, &other->_impl_.source_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.mean_file_, &other->_impl_.mean_file_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.crop_mode_, &other->_impl_.crop_mode_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.root_folder_, &other->_impl_.root_folder_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.fg_fraction_)
      + sizeof(WindowDataParameter::_impl_.fg_fraction_)
      - PROTOBUF_FIELD_OFFSET(WindowDataParameter, _impl_.batch_size_)>(
          reinterpret_cast<char*>(&_impl_.batch_size_),
          reinterpret_cast<char*>(&other->_impl_.batch_size_));
}

::google::protobuf::Metadata WindowDataParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class SPPParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<SPPParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(SPPParameter, _impl_._has_bits_);
};

SPPParameter::SPPParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SPPParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.SPPParameter)
}
SPPParameter::SPPParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const SPPParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, SPPParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE SPPParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void SPPParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, pyramid_height_),
           0,
           offsetof(Impl_, engine_) -
               offsetof(Impl_, pyramid_height_) +
               sizeof(Impl_::engine_));
}
SPPParameter::~SPPParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.SPPParameter)
  SharedDtor(*this);
}
inline void SPPParameter::SharedDtor(MessageLite& self) {
  SPPParameter& this_ = static_cast<SPPParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL SPPParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SPPParameter(arena);
}
constexpr auto SPPParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(SPPParameter),
                                            alignof(SPPParameter));
}
constexpr auto SPPParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_SPPParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &SPPParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<SPPParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SPPParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<SPPParameter>(), &SPPParameter::ByteSizeLong,
              &SPPParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SPPParameter, _impl_._cached_size_),
          false,
      },
      &SPPParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SPPParameter_class_data_ =
        SPPParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SPPParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SPPParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SPPParameter_class_data_.tc_table);
  return SPPParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 3, 2, 0, 2>
SPPParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(SPPParameter, _impl_._has_bits_),
    0, // no _extensions_
    6, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967260,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    2,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    SPPParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::SPPParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional .opencv_caffe.SPPParameter.PoolMethod pool = 2 [default = MAX];
    {::_pbi::TcParser::FastEr0S1,
     {16, 1, 2, PROTOBUF_FIELD_OFFSET(SPPParameter, _impl_.pool_)}},
    // optional uint32 pyramid_height = 1;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SPPParameter, _impl_.pyramid_height_), 0>(),
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(SPPParameter, _impl_.pyramid_height_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 pyramid_height = 1;
    {PROTOBUF_FIELD_OFFSET(SPPParameter, _impl_.pyramid_height_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional .opencv_caffe.SPPParameter.PoolMethod pool = 2 [default = MAX];
    {PROTOBUF_FIELD_OFFSET(SPPParameter, _impl_.pool_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional .opencv_caffe.SPPParameter.Engine engine = 6 [default = DEFAULT];
    {PROTOBUF_FIELD_OFFSET(SPPParameter, _impl_.engine_), _Internal::kHasBitsOffset + 2, 1, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
  }},
  {{
      {0, 2},
      {0, 2},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void SPPParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.SPPParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    ::memset(&_impl_.pyramid_height_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.engine_) -
        reinterpret_cast<char*>(&_impl_.pyramid_height_)) + sizeof(_impl_.engine_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SPPParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SPPParameter& this_ = static_cast<const SPPParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SPPParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SPPParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.SPPParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 pyramid_height = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_pyramid_height(), target);
  }

  // optional .opencv_caffe.SPPParameter.PoolMethod pool = 2 [default = MAX];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        2, this_._internal_pool(), target);
  }

  // optional .opencv_caffe.SPPParameter.Engine engine = 6 [default = DEFAULT];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        6, this_._internal_engine(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.SPPParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SPPParameter::ByteSizeLong(const MessageLite& base) {
  const SPPParameter& this_ = static_cast<const SPPParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SPPParameter::ByteSizeLong() const {
  const SPPParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.SPPParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    // optional uint32 pyramid_height = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_pyramid_height());
    }
    // optional .opencv_caffe.SPPParameter.PoolMethod pool = 2 [default = MAX];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_pool());
    }
    // optional .opencv_caffe.SPPParameter.Engine engine = 6 [default = DEFAULT];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_engine());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SPPParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<SPPParameter*>(&to_msg);
  auto& from = static_cast<const SPPParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.SPPParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.pyramid_height_ = from._impl_.pyramid_height_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.pool_ = from._impl_.pool_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.engine_ = from._impl_.engine_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void SPPParameter::CopyFrom(const SPPParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.SPPParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void SPPParameter::InternalSwap(SPPParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SPPParameter, _impl_.engine_)
      + sizeof(SPPParameter::_impl_.engine_)
      - PROTOBUF_FIELD_OFFSET(SPPParameter, _impl_.pyramid_height_)>(
          reinterpret_cast<char*>(&_impl_.pyramid_height_),
          reinterpret_cast<char*>(&other->_impl_.pyramid_height_));
}

::google::protobuf::Metadata SPPParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class V1LayerParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<V1LayerParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_._has_bits_);
};

V1LayerParameter::V1LayerParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, V1LayerParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.V1LayerParameter)
}
PROTOBUF_NDEBUG_INLINE V1LayerParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::V1LayerParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        bottom_{visibility, arena, from.bottom_},
        top_{visibility, arena, from.top_},
        blobs_{visibility, arena, from.blobs_},
        blobs_lr_{visibility, arena, from.blobs_lr_},
        weight_decay_{visibility, arena, from.weight_decay_},
        include_{visibility, arena, from.include_},
        exclude_{visibility, arena, from.exclude_},
        loss_weight_{visibility, arena, from.loss_weight_},
        param_{visibility, arena, from.param_},
        blob_share_mode_{visibility, arena, from.blob_share_mode_},
        name_(arena, from.name_) {}

V1LayerParameter::V1LayerParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const V1LayerParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, V1LayerParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  V1LayerParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.layer_ = ((cached_has_bits & 0x00000002U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.layer_)
                : nullptr;
  _impl_.concat_param_ = ((cached_has_bits & 0x00000004U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.concat_param_)
                : nullptr;
  _impl_.convolution_param_ = ((cached_has_bits & 0x00000008U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.convolution_param_)
                : nullptr;
  _impl_.data_param_ = ((cached_has_bits & 0x00000010U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_param_)
                : nullptr;
  _impl_.dropout_param_ = ((cached_has_bits & 0x00000020U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.dropout_param_)
                : nullptr;
  _impl_.hdf5_data_param_ = ((cached_has_bits & 0x00000040U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hdf5_data_param_)
                : nullptr;
  _impl_.hdf5_output_param_ = ((cached_has_bits & 0x00000080U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hdf5_output_param_)
                : nullptr;
  _impl_.image_data_param_ = ((cached_has_bits & 0x00000100U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.image_data_param_)
                : nullptr;
  _impl_.infogain_loss_param_ = ((cached_has_bits & 0x00000200U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.infogain_loss_param_)
                : nullptr;
  _impl_.inner_product_param_ = ((cached_has_bits & 0x00000400U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.inner_product_param_)
                : nullptr;
  _impl_.lrn_param_ = ((cached_has_bits & 0x00000800U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lrn_param_)
                : nullptr;
  _impl_.pooling_param_ = ((cached_has_bits & 0x00001000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.pooling_param_)
                : nullptr;
  _impl_.window_data_param_ = ((cached_has_bits & 0x00002000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.window_data_param_)
                : nullptr;
  _impl_.power_param_ = ((cached_has_bits & 0x00004000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.power_param_)
                : nullptr;
  _impl_.memory_data_param_ = ((cached_has_bits & 0x00008000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.memory_data_param_)
                : nullptr;
  _impl_.argmax_param_ = ((cached_has_bits & 0x00010000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.argmax_param_)
                : nullptr;
  _impl_.eltwise_param_ = ((cached_has_bits & 0x00020000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.eltwise_param_)
                : nullptr;
  _impl_.threshold_param_ = ((cached_has_bits & 0x00040000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.threshold_param_)
                : nullptr;
  _impl_.dummy_data_param_ = ((cached_has_bits & 0x00080000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.dummy_data_param_)
                : nullptr;
  _impl_.accuracy_param_ = ((cached_has_bits & 0x00100000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.accuracy_param_)
                : nullptr;
  _impl_.hinge_loss_param_ = ((cached_has_bits & 0x00200000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hinge_loss_param_)
                : nullptr;
  _impl_.relu_param_ = ((cached_has_bits & 0x00400000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.relu_param_)
                : nullptr;
  _impl_.slice_param_ = ((cached_has_bits & 0x00800000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.slice_param_)
                : nullptr;
  _impl_.type_ = from._impl_.type_;
  _impl_.mvn_param_ = ((cached_has_bits & 0x02000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.mvn_param_)
                : nullptr;
  _impl_.transform_param_ = ((cached_has_bits & 0x04000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.transform_param_)
                : nullptr;
  _impl_.tanh_param_ = ((cached_has_bits & 0x08000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.tanh_param_)
                : nullptr;
  _impl_.sigmoid_param_ = ((cached_has_bits & 0x10000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sigmoid_param_)
                : nullptr;
  _impl_.softmax_param_ = ((cached_has_bits & 0x20000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.softmax_param_)
                : nullptr;
  _impl_.contrastive_loss_param_ = ((cached_has_bits & 0x40000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.contrastive_loss_param_)
                : nullptr;
  _impl_.exp_param_ = ((cached_has_bits & 0x80000000U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exp_param_)
                : nullptr;
  cached_has_bits = _impl_._has_bits_[1];
  _impl_.loss_param_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.loss_param_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.V1LayerParameter)
}
PROTOBUF_NDEBUG_INLINE V1LayerParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        bottom_{visibility, arena},
        top_{visibility, arena},
        blobs_{visibility, arena},
        blobs_lr_{visibility, arena},
        weight_decay_{visibility, arena},
        include_{visibility, arena},
        exclude_{visibility, arena},
        loss_weight_{visibility, arena},
        param_{visibility, arena},
        blob_share_mode_{visibility, arena},
        name_(arena) {}

inline void V1LayerParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, layer_),
           0,
           offsetof(Impl_, loss_param_) -
               offsetof(Impl_, layer_) +
               sizeof(Impl_::loss_param_));
}
V1LayerParameter::~V1LayerParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.V1LayerParameter)
  SharedDtor(*this);
}
inline void V1LayerParameter::SharedDtor(MessageLite& self) {
  V1LayerParameter& this_ = static_cast<V1LayerParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.name_.Destroy();
  delete this_._impl_.layer_;
  delete this_._impl_.concat_param_;
  delete this_._impl_.convolution_param_;
  delete this_._impl_.data_param_;
  delete this_._impl_.dropout_param_;
  delete this_._impl_.hdf5_data_param_;
  delete this_._impl_.hdf5_output_param_;
  delete this_._impl_.image_data_param_;
  delete this_._impl_.infogain_loss_param_;
  delete this_._impl_.inner_product_param_;
  delete this_._impl_.lrn_param_;
  delete this_._impl_.pooling_param_;
  delete this_._impl_.window_data_param_;
  delete this_._impl_.power_param_;
  delete this_._impl_.memory_data_param_;
  delete this_._impl_.argmax_param_;
  delete this_._impl_.eltwise_param_;
  delete this_._impl_.threshold_param_;
  delete this_._impl_.dummy_data_param_;
  delete this_._impl_.accuracy_param_;
  delete this_._impl_.hinge_loss_param_;
  delete this_._impl_.relu_param_;
  delete this_._impl_.slice_param_;
  delete this_._impl_.mvn_param_;
  delete this_._impl_.transform_param_;
  delete this_._impl_.tanh_param_;
  delete this_._impl_.sigmoid_param_;
  delete this_._impl_.softmax_param_;
  delete this_._impl_.contrastive_loss_param_;
  delete this_._impl_.exp_param_;
  delete this_._impl_.loss_param_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL V1LayerParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) V1LayerParameter(arena);
}
constexpr auto V1LayerParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.bottom_) +
          decltype(V1LayerParameter::_impl_.bottom_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.top_) +
          decltype(V1LayerParameter::_impl_.top_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.include_) +
          decltype(V1LayerParameter::_impl_.include_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.exclude_) +
          decltype(V1LayerParameter::_impl_.exclude_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.blobs_) +
          decltype(V1LayerParameter::_impl_.blobs_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.param_) +
          decltype(V1LayerParameter::_impl_.param_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.blob_share_mode_) +
          decltype(V1LayerParameter::_impl_.blob_share_mode_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.blobs_lr_) +
          decltype(V1LayerParameter::_impl_.blobs_lr_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.weight_decay_) +
          decltype(V1LayerParameter::_impl_.weight_decay_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.loss_weight_) +
          decltype(V1LayerParameter::_impl_.loss_weight_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(V1LayerParameter), alignof(V1LayerParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&V1LayerParameter::PlacementNew_,
                                 sizeof(V1LayerParameter),
                                 alignof(V1LayerParameter));
  }
}
constexpr auto V1LayerParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_V1LayerParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &V1LayerParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<V1LayerParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &V1LayerParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<V1LayerParameter>(), &V1LayerParameter::ByteSizeLong,
              &V1LayerParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_._cached_size_),
          false,
      },
      &V1LayerParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull V1LayerParameter_class_data_ =
        V1LayerParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
V1LayerParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&V1LayerParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(V1LayerParameter_class_data_.tc_table);
  return V1LayerParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<5, 43, 36, 96, 12>
V1LayerParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_._has_bits_),
    0, // no _extensions_
    1002, 248,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    134217728,  // skipmap
    offsetof(decltype(_table_), field_entries),
    43,  // num_field_entries
    36,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    V1LayerParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::V1LayerParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional .opencv_caffe.V0LayerParameter layer = 1;
    {::_pbi::TcParser::FastMtS1,
     {10, 1, 0, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.layer_)}},
    // repeated string bottom = 2;
    {::_pbi::TcParser::FastSR1,
     {18, 63, 0, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.bottom_)}},
    // repeated string top = 3;
    {::_pbi::TcParser::FastSR1,
     {26, 63, 0, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.top_)}},
    // optional string name = 4;
    {::_pbi::TcParser::FastSS1,
     {34, 0, 0, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.name_)}},
    // optional .opencv_caffe.V1LayerParameter.LayerType type = 5;
    {::_pbi::TcParser::FastEr0S1,
     {40, 24, 39, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.type_)}},
    // repeated .opencv_caffe.BlobProto blobs = 6;
    {::_pbi::TcParser::FastMtR1,
     {50, 63, 1, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.blobs_)}},
    // repeated float blobs_lr = 7;
    {::_pbi::TcParser::FastF32R1,
     {61, 63, 0, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.blobs_lr_)}},
    // repeated float weight_decay = 8;
    {::_pbi::TcParser::FastF32R1,
     {69, 63, 0, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.weight_decay_)}},
    // optional .opencv_caffe.ConcatParameter concat_param = 9;
    {::_pbi::TcParser::FastMtS1,
     {74, 2, 2, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.concat_param_)}},
    // optional .opencv_caffe.ConvolutionParameter convolution_param = 10;
    {::_pbi::TcParser::FastMtS1,
     {82, 3, 3, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.convolution_param_)}},
    // optional .opencv_caffe.DataParameter data_param = 11;
    {::_pbi::TcParser::FastMtS1,
     {90, 4, 4, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.data_param_)}},
    // optional .opencv_caffe.DropoutParameter dropout_param = 12;
    {::_pbi::TcParser::FastMtS1,
     {98, 5, 5, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.dropout_param_)}},
    // optional .opencv_caffe.HDF5DataParameter hdf5_data_param = 13;
    {::_pbi::TcParser::FastMtS1,
     {106, 6, 6, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.hdf5_data_param_)}},
    // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 14;
    {::_pbi::TcParser::FastMtS1,
     {114, 7, 7, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.hdf5_output_param_)}},
    // optional .opencv_caffe.ImageDataParameter image_data_param = 15;
    {::_pbi::TcParser::FastMtS1,
     {122, 8, 8, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.image_data_param_)}},
    // optional .opencv_caffe.InfogainLossParameter infogain_loss_param = 16;
    {::_pbi::TcParser::FastMtS2,
     {386, 9, 9, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.infogain_loss_param_)}},
    // optional .opencv_caffe.InnerProductParameter inner_product_param = 17;
    {::_pbi::TcParser::FastMtS2,
     {394, 10, 10, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.inner_product_param_)}},
    // optional .opencv_caffe.LRNParameter lrn_param = 18;
    {::_pbi::TcParser::FastMtS2,
     {402, 11, 11, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.lrn_param_)}},
    // optional .opencv_caffe.PoolingParameter pooling_param = 19;
    {::_pbi::TcParser::FastMtS2,
     {410, 12, 12, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.pooling_param_)}},
    // optional .opencv_caffe.WindowDataParameter window_data_param = 20;
    {::_pbi::TcParser::FastMtS2,
     {418, 13, 13, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.window_data_param_)}},
    // optional .opencv_caffe.PowerParameter power_param = 21;
    {::_pbi::TcParser::FastMtS2,
     {426, 14, 14, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.power_param_)}},
    // optional .opencv_caffe.MemoryDataParameter memory_data_param = 22;
    {::_pbi::TcParser::FastMtS2,
     {434, 15, 15, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.memory_data_param_)}},
    // optional .opencv_caffe.ArgMaxParameter argmax_param = 23;
    {::_pbi::TcParser::FastMtS2,
     {442, 16, 16, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.argmax_param_)}},
    // optional .opencv_caffe.EltwiseParameter eltwise_param = 24;
    {::_pbi::TcParser::FastMtS2,
     {450, 17, 17, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.eltwise_param_)}},
    // optional .opencv_caffe.ThresholdParameter threshold_param = 25;
    {::_pbi::TcParser::FastMtS2,
     {458, 18, 18, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.threshold_param_)}},
    // optional .opencv_caffe.DummyDataParameter dummy_data_param = 26;
    {::_pbi::TcParser::FastMtS2,
     {466, 19, 19, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.dummy_data_param_)}},
    // optional .opencv_caffe.AccuracyParameter accuracy_param = 27;
    {::_pbi::TcParser::FastMtS2,
     {474, 20, 20, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.accuracy_param_)}},
    {::_pbi::TcParser::MiniParse, {}},
    // optional .opencv_caffe.HingeLossParameter hinge_loss_param = 29;
    {::_pbi::TcParser::FastMtS2,
     {490, 21, 21, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.hinge_loss_param_)}},
    // optional .opencv_caffe.ReLUParameter relu_param = 30;
    {::_pbi::TcParser::FastMtS2,
     {498, 22, 22, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.relu_param_)}},
    // optional .opencv_caffe.SliceParameter slice_param = 31;
    {::_pbi::TcParser::FastMtS2,
     {506, 23, 23, PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.slice_param_)}},
  }}, {{
    33, 0, 1,
    64512, 31,
    1001, 0, 1,
    65532, 41,
    65535, 65535
  }}, {{
    // optional .opencv_caffe.V0LayerParameter layer = 1;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.layer_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated string bottom = 2;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.bottom_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
    // repeated string top = 3;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.top_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
    // optional string name = 4;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.name_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional .opencv_caffe.V1LayerParameter.LayerType type = 5;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.type_), _Internal::kHasBitsOffset + 24, 34, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // repeated .opencv_caffe.BlobProto blobs = 6;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.blobs_), -1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated float blobs_lr = 7;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.blobs_lr_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // repeated float weight_decay = 8;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.weight_decay_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // optional .opencv_caffe.ConcatParameter concat_param = 9;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.concat_param_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ConvolutionParameter convolution_param = 10;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.convolution_param_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.DataParameter data_param = 11;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.data_param_), _Internal::kHasBitsOffset + 4, 4, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.DropoutParameter dropout_param = 12;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.dropout_param_), _Internal::kHasBitsOffset + 5, 5, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.HDF5DataParameter hdf5_data_param = 13;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.hdf5_data_param_), _Internal::kHasBitsOffset + 6, 6, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 14;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.hdf5_output_param_), _Internal::kHasBitsOffset + 7, 7, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ImageDataParameter image_data_param = 15;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.image_data_param_), _Internal::kHasBitsOffset + 8, 8, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.InfogainLossParameter infogain_loss_param = 16;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.infogain_loss_param_), _Internal::kHasBitsOffset + 9, 9, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.InnerProductParameter inner_product_param = 17;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.inner_product_param_), _Internal::kHasBitsOffset + 10, 10, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.LRNParameter lrn_param = 18;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.lrn_param_), _Internal::kHasBitsOffset + 11, 11, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.PoolingParameter pooling_param = 19;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.pooling_param_), _Internal::kHasBitsOffset + 12, 12, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.WindowDataParameter window_data_param = 20;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.window_data_param_), _Internal::kHasBitsOffset + 13, 13, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.PowerParameter power_param = 21;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.power_param_), _Internal::kHasBitsOffset + 14, 14, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.MemoryDataParameter memory_data_param = 22;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.memory_data_param_), _Internal::kHasBitsOffset + 15, 15, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ArgMaxParameter argmax_param = 23;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.argmax_param_), _Internal::kHasBitsOffset + 16, 16, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.EltwiseParameter eltwise_param = 24;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.eltwise_param_), _Internal::kHasBitsOffset + 17, 17, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ThresholdParameter threshold_param = 25;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.threshold_param_), _Internal::kHasBitsOffset + 18, 18, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.DummyDataParameter dummy_data_param = 26;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.dummy_data_param_), _Internal::kHasBitsOffset + 19, 19, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.AccuracyParameter accuracy_param = 27;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.accuracy_param_), _Internal::kHasBitsOffset + 20, 20, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.HingeLossParameter hinge_loss_param = 29;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.hinge_loss_param_), _Internal::kHasBitsOffset + 21, 21, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ReLUParameter relu_param = 30;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.relu_param_), _Internal::kHasBitsOffset + 22, 22, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.SliceParameter slice_param = 31;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.slice_param_), _Internal::kHasBitsOffset + 23, 23, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated .opencv_caffe.NetStateRule include = 32;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.include_), -1, 24, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated .opencv_caffe.NetStateRule exclude = 33;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.exclude_), -1, 25, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.MVNParameter mvn_param = 34;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.mvn_param_), _Internal::kHasBitsOffset + 25, 26, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated float loss_weight = 35;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.loss_weight_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // optional .opencv_caffe.TransformationParameter transform_param = 36;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.transform_param_), _Internal::kHasBitsOffset + 26, 27, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.TanHParameter tanh_param = 37;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.tanh_param_), _Internal::kHasBitsOffset + 27, 28, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.SigmoidParameter sigmoid_param = 38;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.sigmoid_param_), _Internal::kHasBitsOffset + 28, 29, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.SoftmaxParameter softmax_param = 39;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.softmax_param_), _Internal::kHasBitsOffset + 29, 30, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ContrastiveLossParameter contrastive_loss_param = 40;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.contrastive_loss_param_), _Internal::kHasBitsOffset + 30, 31, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.ExpParameter exp_param = 41;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.exp_param_), _Internal::kHasBitsOffset + 31, 32, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.LossParameter loss_param = 42;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.loss_param_), _Internal::kHasBitsOffset + 32, 33, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated string param = 1001;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.param_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kRawString | ::_fl::kRepSString)},
    // repeated .opencv_caffe.V1LayerParameter.DimCheckMode blob_share_mode = 1002;
    {PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.blob_share_mode_), -1, 35, (0 | ::_fl::kFcRepeated | ::_fl::kEnumRange)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::V0LayerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::BlobProto>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ConcatParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ConvolutionParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::DataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::DropoutParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::HDF5DataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::HDF5OutputParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ImageDataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::InfogainLossParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::InnerProductParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::LRNParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::PoolingParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::WindowDataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::PowerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::MemoryDataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ArgMaxParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::EltwiseParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ThresholdParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::DummyDataParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::AccuracyParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::HingeLossParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ReLUParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::SliceParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::NetStateRule>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::NetStateRule>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::MVNParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::TransformationParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::TanHParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::SigmoidParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::SoftmaxParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ContrastiveLossParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::ExpParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::LossParameter>()},
      {0, 39},
      {0, 1},
  }},
  {{
    "\35\0\6\3\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\0\0"
    "opencv_caffe.V1LayerParameter"
    "bottom"
    "top"
    "name"
    "param"
  }},
};
PROTOBUF_NOINLINE void V1LayerParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.V1LayerParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.bottom_.Clear();
  _impl_.top_.Clear();
  _impl_.blobs_.Clear();
  _impl_.blobs_lr_.Clear();
  _impl_.weight_decay_.Clear();
  _impl_.include_.Clear();
  _impl_.exclude_.Clear();
  _impl_.loss_weight_.Clear();
  _impl_.param_.Clear();
  _impl_.blob_share_mode_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _impl_.name_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(_impl_.layer_ != nullptr);
      _impl_.layer_->Clear();
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      ABSL_DCHECK(_impl_.concat_param_ != nullptr);
      _impl_.concat_param_->Clear();
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      ABSL_DCHECK(_impl_.convolution_param_ != nullptr);
      _impl_.convolution_param_->Clear();
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      ABSL_DCHECK(_impl_.data_param_ != nullptr);
      _impl_.data_param_->Clear();
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      ABSL_DCHECK(_impl_.dropout_param_ != nullptr);
      _impl_.dropout_param_->Clear();
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      ABSL_DCHECK(_impl_.hdf5_data_param_ != nullptr);
      _impl_.hdf5_data_param_->Clear();
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      ABSL_DCHECK(_impl_.hdf5_output_param_ != nullptr);
      _impl_.hdf5_output_param_->Clear();
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      ABSL_DCHECK(_impl_.image_data_param_ != nullptr);
      _impl_.image_data_param_->Clear();
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      ABSL_DCHECK(_impl_.infogain_loss_param_ != nullptr);
      _impl_.infogain_loss_param_->Clear();
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      ABSL_DCHECK(_impl_.inner_product_param_ != nullptr);
      _impl_.inner_product_param_->Clear();
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      ABSL_DCHECK(_impl_.lrn_param_ != nullptr);
      _impl_.lrn_param_->Clear();
    }
    if ((cached_has_bits & 0x00001000U) != 0) {
      ABSL_DCHECK(_impl_.pooling_param_ != nullptr);
      _impl_.pooling_param_->Clear();
    }
    if ((cached_has_bits & 0x00002000U) != 0) {
      ABSL_DCHECK(_impl_.window_data_param_ != nullptr);
      _impl_.window_data_param_->Clear();
    }
    if ((cached_has_bits & 0x00004000U) != 0) {
      ABSL_DCHECK(_impl_.power_param_ != nullptr);
      _impl_.power_param_->Clear();
    }
    if ((cached_has_bits & 0x00008000U) != 0) {
      ABSL_DCHECK(_impl_.memory_data_param_ != nullptr);
      _impl_.memory_data_param_->Clear();
    }
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    if ((cached_has_bits & 0x00010000U) != 0) {
      ABSL_DCHECK(_impl_.argmax_param_ != nullptr);
      _impl_.argmax_param_->Clear();
    }
    if ((cached_has_bits & 0x00020000U) != 0) {
      ABSL_DCHECK(_impl_.eltwise_param_ != nullptr);
      _impl_.eltwise_param_->Clear();
    }
    if ((cached_has_bits & 0x00040000U) != 0) {
      ABSL_DCHECK(_impl_.threshold_param_ != nullptr);
      _impl_.threshold_param_->Clear();
    }
    if ((cached_has_bits & 0x00080000U) != 0) {
      ABSL_DCHECK(_impl_.dummy_data_param_ != nullptr);
      _impl_.dummy_data_param_->Clear();
    }
    if ((cached_has_bits & 0x00100000U) != 0) {
      ABSL_DCHECK(_impl_.accuracy_param_ != nullptr);
      _impl_.accuracy_param_->Clear();
    }
    if ((cached_has_bits & 0x00200000U) != 0) {
      ABSL_DCHECK(_impl_.hinge_loss_param_ != nullptr);
      _impl_.hinge_loss_param_->Clear();
    }
    if ((cached_has_bits & 0x00400000U) != 0) {
      ABSL_DCHECK(_impl_.relu_param_ != nullptr);
      _impl_.relu_param_->Clear();
    }
    if ((cached_has_bits & 0x00800000U) != 0) {
      ABSL_DCHECK(_impl_.slice_param_ != nullptr);
      _impl_.slice_param_->Clear();
    }
  }
  if ((cached_has_bits & 0xff000000U) != 0) {
    _impl_.type_ = 0;
    if ((cached_has_bits & 0x02000000U) != 0) {
      ABSL_DCHECK(_impl_.mvn_param_ != nullptr);
      _impl_.mvn_param_->Clear();
    }
    if ((cached_has_bits & 0x04000000U) != 0) {
      ABSL_DCHECK(_impl_.transform_param_ != nullptr);
      _impl_.transform_param_->Clear();
    }
    if ((cached_has_bits & 0x08000000U) != 0) {
      ABSL_DCHECK(_impl_.tanh_param_ != nullptr);
      _impl_.tanh_param_->Clear();
    }
    if ((cached_has_bits & 0x10000000U) != 0) {
      ABSL_DCHECK(_impl_.sigmoid_param_ != nullptr);
      _impl_.sigmoid_param_->Clear();
    }
    if ((cached_has_bits & 0x20000000U) != 0) {
      ABSL_DCHECK(_impl_.softmax_param_ != nullptr);
      _impl_.softmax_param_->Clear();
    }
    if ((cached_has_bits & 0x40000000U) != 0) {
      ABSL_DCHECK(_impl_.contrastive_loss_param_ != nullptr);
      _impl_.contrastive_loss_param_->Clear();
    }
    if ((cached_has_bits & 0x80000000U) != 0) {
      ABSL_DCHECK(_impl_.exp_param_ != nullptr);
      _impl_.exp_param_->Clear();
    }
  }
  cached_has_bits = _impl_._has_bits_[1];
  if ((cached_has_bits & 0x00000001U) != 0) {
    ABSL_DCHECK(_impl_.loss_param_ != nullptr);
    _impl_.loss_param_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL V1LayerParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const V1LayerParameter& this_ = static_cast<const V1LayerParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL V1LayerParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const V1LayerParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.V1LayerParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.V0LayerParameter layer = 1;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.layer_, this_._impl_.layer_->GetCachedSize(), target,
        stream);
  }

  // repeated string bottom = 2;
  for (int i = 0, n = this_._internal_bottom_size(); i < n; ++i) {
    const auto& s = this_._internal_bottom().Get(i);
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.V1LayerParameter.bottom");
    target = stream->WriteString(2, s, target);
  }

  // repeated string top = 3;
  for (int i = 0, n = this_._internal_top_size(); i < n; ++i) {
    const auto& s = this_._internal_top().Get(i);
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.V1LayerParameter.top");
    target = stream->WriteString(3, s, target);
  }

  // optional string name = 4;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_name();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.V1LayerParameter.name");
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  // optional .opencv_caffe.V1LayerParameter.LayerType type = 5;
  if ((cached_has_bits & 0x01000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        5, this_._internal_type(), target);
  }

  // repeated .opencv_caffe.BlobProto blobs = 6;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_blobs_size());
       i < n; i++) {
    const auto& repfield = this_._internal_blobs().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            6, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // repeated float blobs_lr = 7;
  for (int i = 0, n = this_._internal_blobs_lr_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        7, this_._internal_blobs_lr().Get(i), target);
  }

  // repeated float weight_decay = 8;
  for (int i = 0, n = this_._internal_weight_decay_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        8, this_._internal_weight_decay().Get(i), target);
  }

  // optional .opencv_caffe.ConcatParameter concat_param = 9;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        9, *this_._impl_.concat_param_, this_._impl_.concat_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ConvolutionParameter convolution_param = 10;
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        10, *this_._impl_.convolution_param_, this_._impl_.convolution_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.DataParameter data_param = 11;
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        11, *this_._impl_.data_param_, this_._impl_.data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.DropoutParameter dropout_param = 12;
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        12, *this_._impl_.dropout_param_, this_._impl_.dropout_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.HDF5DataParameter hdf5_data_param = 13;
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        13, *this_._impl_.hdf5_data_param_, this_._impl_.hdf5_data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 14;
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        14, *this_._impl_.hdf5_output_param_, this_._impl_.hdf5_output_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ImageDataParameter image_data_param = 15;
  if ((cached_has_bits & 0x00000100U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        15, *this_._impl_.image_data_param_, this_._impl_.image_data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.InfogainLossParameter infogain_loss_param = 16;
  if ((cached_has_bits & 0x00000200U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        16, *this_._impl_.infogain_loss_param_, this_._impl_.infogain_loss_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.InnerProductParameter inner_product_param = 17;
  if ((cached_has_bits & 0x00000400U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        17, *this_._impl_.inner_product_param_, this_._impl_.inner_product_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.LRNParameter lrn_param = 18;
  if ((cached_has_bits & 0x00000800U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        18, *this_._impl_.lrn_param_, this_._impl_.lrn_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.PoolingParameter pooling_param = 19;
  if ((cached_has_bits & 0x00001000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        19, *this_._impl_.pooling_param_, this_._impl_.pooling_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.WindowDataParameter window_data_param = 20;
  if ((cached_has_bits & 0x00002000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        20, *this_._impl_.window_data_param_, this_._impl_.window_data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.PowerParameter power_param = 21;
  if ((cached_has_bits & 0x00004000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        21, *this_._impl_.power_param_, this_._impl_.power_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.MemoryDataParameter memory_data_param = 22;
  if ((cached_has_bits & 0x00008000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        22, *this_._impl_.memory_data_param_, this_._impl_.memory_data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ArgMaxParameter argmax_param = 23;
  if ((cached_has_bits & 0x00010000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        23, *this_._impl_.argmax_param_, this_._impl_.argmax_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.EltwiseParameter eltwise_param = 24;
  if ((cached_has_bits & 0x00020000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        24, *this_._impl_.eltwise_param_, this_._impl_.eltwise_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ThresholdParameter threshold_param = 25;
  if ((cached_has_bits & 0x00040000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        25, *this_._impl_.threshold_param_, this_._impl_.threshold_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.DummyDataParameter dummy_data_param = 26;
  if ((cached_has_bits & 0x00080000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        26, *this_._impl_.dummy_data_param_, this_._impl_.dummy_data_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.AccuracyParameter accuracy_param = 27;
  if ((cached_has_bits & 0x00100000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        27, *this_._impl_.accuracy_param_, this_._impl_.accuracy_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.HingeLossParameter hinge_loss_param = 29;
  if ((cached_has_bits & 0x00200000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        29, *this_._impl_.hinge_loss_param_, this_._impl_.hinge_loss_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ReLUParameter relu_param = 30;
  if ((cached_has_bits & 0x00400000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        30, *this_._impl_.relu_param_, this_._impl_.relu_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.SliceParameter slice_param = 31;
  if ((cached_has_bits & 0x00800000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        31, *this_._impl_.slice_param_, this_._impl_.slice_param_->GetCachedSize(), target,
        stream);
  }

  // repeated .opencv_caffe.NetStateRule include = 32;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_include_size());
       i < n; i++) {
    const auto& repfield = this_._internal_include().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            32, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // repeated .opencv_caffe.NetStateRule exclude = 33;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_exclude_size());
       i < n; i++) {
    const auto& repfield = this_._internal_exclude().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            33, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // optional .opencv_caffe.MVNParameter mvn_param = 34;
  if ((cached_has_bits & 0x02000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        34, *this_._impl_.mvn_param_, this_._impl_.mvn_param_->GetCachedSize(), target,
        stream);
  }

  // repeated float loss_weight = 35;
  for (int i = 0, n = this_._internal_loss_weight_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        35, this_._internal_loss_weight().Get(i), target);
  }

  // optional .opencv_caffe.TransformationParameter transform_param = 36;
  if ((cached_has_bits & 0x04000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        36, *this_._impl_.transform_param_, this_._impl_.transform_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.TanHParameter tanh_param = 37;
  if ((cached_has_bits & 0x08000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        37, *this_._impl_.tanh_param_, this_._impl_.tanh_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.SigmoidParameter sigmoid_param = 38;
  if ((cached_has_bits & 0x10000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        38, *this_._impl_.sigmoid_param_, this_._impl_.sigmoid_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.SoftmaxParameter softmax_param = 39;
  if ((cached_has_bits & 0x20000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        39, *this_._impl_.softmax_param_, this_._impl_.softmax_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ContrastiveLossParameter contrastive_loss_param = 40;
  if ((cached_has_bits & 0x40000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        40, *this_._impl_.contrastive_loss_param_, this_._impl_.contrastive_loss_param_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.ExpParameter exp_param = 41;
  if ((cached_has_bits & 0x80000000U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        41, *this_._impl_.exp_param_, this_._impl_.exp_param_->GetCachedSize(), target,
        stream);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional .opencv_caffe.LossParameter loss_param = 42;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        42, *this_._impl_.loss_param_, this_._impl_.loss_param_->GetCachedSize(), target,
        stream);
  }

  // repeated string param = 1001;
  for (int i = 0, n = this_._internal_param_size(); i < n; ++i) {
    const auto& s = this_._internal_param().Get(i);
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(s.data(), static_cast<int>(s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.V1LayerParameter.param");
    target = stream->WriteString(1001, s, target);
  }

  // repeated .opencv_caffe.V1LayerParameter.DimCheckMode blob_share_mode = 1002;
  for (int i = 0, n = this_._internal_blob_share_mode_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        1002, static_cast<::opencv_caffe::V1LayerParameter_DimCheckMode>(this_._internal_blob_share_mode().Get(i)),
        target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.V1LayerParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t V1LayerParameter::ByteSizeLong(const MessageLite& base) {
  const V1LayerParameter& this_ = static_cast<const V1LayerParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t V1LayerParameter::ByteSizeLong() const {
  const V1LayerParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.V1LayerParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated string bottom = 2;
    {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_bottom().size());
      for (int i = 0, n = this_._internal_bottom().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_bottom().Get(i));
      }
    }
    // repeated string top = 3;
    {
      total_size +=
          1 * ::google::protobuf::internal::FromIntSize(this_._internal_top().size());
      for (int i = 0, n = this_._internal_top().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_top().Get(i));
      }
    }
    // repeated .opencv_caffe.BlobProto blobs = 6;
    {
      total_size += 1UL * this_._internal_blobs_size();
      for (const auto& msg : this_._internal_blobs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated float blobs_lr = 7;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_blobs_lr_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_blobs_lr_size());
      total_size += tag_size + data_size;
    }
    // repeated float weight_decay = 8;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_weight_decay_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_weight_decay_size());
      total_size += tag_size + data_size;
    }
    // repeated .opencv_caffe.NetStateRule include = 32;
    {
      total_size += 2UL * this_._internal_include_size();
      for (const auto& msg : this_._internal_include()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .opencv_caffe.NetStateRule exclude = 33;
    {
      total_size += 2UL * this_._internal_exclude_size();
      for (const auto& msg : this_._internal_exclude()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated float loss_weight = 35;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_loss_weight_size());
      ::size_t tag_size = ::size_t{2} *
          ::_pbi::FromIntSize(this_._internal_loss_weight_size());
      total_size += tag_size + data_size;
    }
    // repeated string param = 1001;
    {
      total_size +=
          2 * ::google::protobuf::internal::FromIntSize(this_._internal_param().size());
      for (int i = 0, n = this_._internal_param().size(); i < n; ++i) {
        total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
            this_._internal_param().Get(i));
      }
    }
    // repeated .opencv_caffe.V1LayerParameter.DimCheckMode blob_share_mode = 1002;
    {
      ::size_t data_size =
          ::_pbi::WireFormatLite::EnumSize(this_._internal_blob_share_mode());
      ::size_t tag_size = ::size_t{2} *
          ::_pbi::FromIntSize(this_._internal_blob_share_mode_size());
      total_size += data_size + tag_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    // optional string name = 4;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_name());
    }
    // optional .opencv_caffe.V0LayerParameter layer = 1;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.layer_);
    }
    // optional .opencv_caffe.ConcatParameter concat_param = 9;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.concat_param_);
    }
    // optional .opencv_caffe.ConvolutionParameter convolution_param = 10;
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.convolution_param_);
    }
    // optional .opencv_caffe.DataParameter data_param = 11;
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.data_param_);
    }
    // optional .opencv_caffe.DropoutParameter dropout_param = 12;
    if ((cached_has_bits & 0x00000020U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.dropout_param_);
    }
    // optional .opencv_caffe.HDF5DataParameter hdf5_data_param = 13;
    if ((cached_has_bits & 0x00000040U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.hdf5_data_param_);
    }
    // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 14;
    if ((cached_has_bits & 0x00000080U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.hdf5_output_param_);
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    // optional .opencv_caffe.ImageDataParameter image_data_param = 15;
    if ((cached_has_bits & 0x00000100U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.image_data_param_);
    }
    // optional .opencv_caffe.InfogainLossParameter infogain_loss_param = 16;
    if ((cached_has_bits & 0x00000200U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.infogain_loss_param_);
    }
    // optional .opencv_caffe.InnerProductParameter inner_product_param = 17;
    if ((cached_has_bits & 0x00000400U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.inner_product_param_);
    }
    // optional .opencv_caffe.LRNParameter lrn_param = 18;
    if ((cached_has_bits & 0x00000800U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.lrn_param_);
    }
    // optional .opencv_caffe.PoolingParameter pooling_param = 19;
    if ((cached_has_bits & 0x00001000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.pooling_param_);
    }
    // optional .opencv_caffe.WindowDataParameter window_data_param = 20;
    if ((cached_has_bits & 0x00002000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.window_data_param_);
    }
    // optional .opencv_caffe.PowerParameter power_param = 21;
    if ((cached_has_bits & 0x00004000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.power_param_);
    }
    // optional .opencv_caffe.MemoryDataParameter memory_data_param = 22;
    if ((cached_has_bits & 0x00008000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.memory_data_param_);
    }
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    // optional .opencv_caffe.ArgMaxParameter argmax_param = 23;
    if ((cached_has_bits & 0x00010000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.argmax_param_);
    }
    // optional .opencv_caffe.EltwiseParameter eltwise_param = 24;
    if ((cached_has_bits & 0x00020000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.eltwise_param_);
    }
    // optional .opencv_caffe.ThresholdParameter threshold_param = 25;
    if ((cached_has_bits & 0x00040000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.threshold_param_);
    }
    // optional .opencv_caffe.DummyDataParameter dummy_data_param = 26;
    if ((cached_has_bits & 0x00080000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.dummy_data_param_);
    }
    // optional .opencv_caffe.AccuracyParameter accuracy_param = 27;
    if ((cached_has_bits & 0x00100000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.accuracy_param_);
    }
    // optional .opencv_caffe.HingeLossParameter hinge_loss_param = 29;
    if ((cached_has_bits & 0x00200000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.hinge_loss_param_);
    }
    // optional .opencv_caffe.ReLUParameter relu_param = 30;
    if ((cached_has_bits & 0x00400000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.relu_param_);
    }
    // optional .opencv_caffe.SliceParameter slice_param = 31;
    if ((cached_has_bits & 0x00800000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.slice_param_);
    }
  }
  if ((cached_has_bits & 0xff000000U) != 0) {
    // optional .opencv_caffe.V1LayerParameter.LayerType type = 5;
    if ((cached_has_bits & 0x01000000U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_type());
    }
    // optional .opencv_caffe.MVNParameter mvn_param = 34;
    if ((cached_has_bits & 0x02000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.mvn_param_);
    }
    // optional .opencv_caffe.TransformationParameter transform_param = 36;
    if ((cached_has_bits & 0x04000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.transform_param_);
    }
    // optional .opencv_caffe.TanHParameter tanh_param = 37;
    if ((cached_has_bits & 0x08000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.tanh_param_);
    }
    // optional .opencv_caffe.SigmoidParameter sigmoid_param = 38;
    if ((cached_has_bits & 0x10000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.sigmoid_param_);
    }
    // optional .opencv_caffe.SoftmaxParameter softmax_param = 39;
    if ((cached_has_bits & 0x20000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.softmax_param_);
    }
    // optional .opencv_caffe.ContrastiveLossParameter contrastive_loss_param = 40;
    if ((cached_has_bits & 0x40000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.contrastive_loss_param_);
    }
    // optional .opencv_caffe.ExpParameter exp_param = 41;
    if ((cached_has_bits & 0x80000000U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.exp_param_);
    }
  }
   {
    // optional .opencv_caffe.LossParameter loss_param = 42;
    cached_has_bits = this_._impl_._has_bits_[1];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.loss_param_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void V1LayerParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<V1LayerParameter*>(&to_msg);
  auto& from = static_cast<const V1LayerParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.V1LayerParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_bottom()->MergeFrom(from._internal_bottom());
  _this->_internal_mutable_top()->MergeFrom(from._internal_top());
  _this->_internal_mutable_blobs()->MergeFrom(
      from._internal_blobs());
  _this->_internal_mutable_blobs_lr()->MergeFrom(from._internal_blobs_lr());
  _this->_internal_mutable_weight_decay()->MergeFrom(from._internal_weight_decay());
  _this->_internal_mutable_include()->MergeFrom(
      from._internal_include());
  _this->_internal_mutable_exclude()->MergeFrom(
      from._internal_exclude());
  _this->_internal_mutable_loss_weight()->MergeFrom(from._internal_loss_weight());
  _this->_internal_mutable_param()->MergeFrom(from._internal_param());
  _this->_internal_mutable_blob_share_mode()->MergeFrom(from._internal_blob_share_mode());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_name(from._internal_name());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      ABSL_DCHECK(from._impl_.layer_ != nullptr);
      if (_this->_impl_.layer_ == nullptr) {
        _this->_impl_.layer_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.layer_);
      } else {
        _this->_impl_.layer_->MergeFrom(*from._impl_.layer_);
      }
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      ABSL_DCHECK(from._impl_.concat_param_ != nullptr);
      if (_this->_impl_.concat_param_ == nullptr) {
        _this->_impl_.concat_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.concat_param_);
      } else {
        _this->_impl_.concat_param_->MergeFrom(*from._impl_.concat_param_);
      }
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      ABSL_DCHECK(from._impl_.convolution_param_ != nullptr);
      if (_this->_impl_.convolution_param_ == nullptr) {
        _this->_impl_.convolution_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.convolution_param_);
      } else {
        _this->_impl_.convolution_param_->MergeFrom(*from._impl_.convolution_param_);
      }
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      ABSL_DCHECK(from._impl_.data_param_ != nullptr);
      if (_this->_impl_.data_param_ == nullptr) {
        _this->_impl_.data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.data_param_);
      } else {
        _this->_impl_.data_param_->MergeFrom(*from._impl_.data_param_);
      }
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      ABSL_DCHECK(from._impl_.dropout_param_ != nullptr);
      if (_this->_impl_.dropout_param_ == nullptr) {
        _this->_impl_.dropout_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.dropout_param_);
      } else {
        _this->_impl_.dropout_param_->MergeFrom(*from._impl_.dropout_param_);
      }
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      ABSL_DCHECK(from._impl_.hdf5_data_param_ != nullptr);
      if (_this->_impl_.hdf5_data_param_ == nullptr) {
        _this->_impl_.hdf5_data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hdf5_data_param_);
      } else {
        _this->_impl_.hdf5_data_param_->MergeFrom(*from._impl_.hdf5_data_param_);
      }
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      ABSL_DCHECK(from._impl_.hdf5_output_param_ != nullptr);
      if (_this->_impl_.hdf5_output_param_ == nullptr) {
        _this->_impl_.hdf5_output_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hdf5_output_param_);
      } else {
        _this->_impl_.hdf5_output_param_->MergeFrom(*from._impl_.hdf5_output_param_);
      }
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      ABSL_DCHECK(from._impl_.image_data_param_ != nullptr);
      if (_this->_impl_.image_data_param_ == nullptr) {
        _this->_impl_.image_data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.image_data_param_);
      } else {
        _this->_impl_.image_data_param_->MergeFrom(*from._impl_.image_data_param_);
      }
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      ABSL_DCHECK(from._impl_.infogain_loss_param_ != nullptr);
      if (_this->_impl_.infogain_loss_param_ == nullptr) {
        _this->_impl_.infogain_loss_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.infogain_loss_param_);
      } else {
        _this->_impl_.infogain_loss_param_->MergeFrom(*from._impl_.infogain_loss_param_);
      }
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      ABSL_DCHECK(from._impl_.inner_product_param_ != nullptr);
      if (_this->_impl_.inner_product_param_ == nullptr) {
        _this->_impl_.inner_product_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.inner_product_param_);
      } else {
        _this->_impl_.inner_product_param_->MergeFrom(*from._impl_.inner_product_param_);
      }
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      ABSL_DCHECK(from._impl_.lrn_param_ != nullptr);
      if (_this->_impl_.lrn_param_ == nullptr) {
        _this->_impl_.lrn_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.lrn_param_);
      } else {
        _this->_impl_.lrn_param_->MergeFrom(*from._impl_.lrn_param_);
      }
    }
    if ((cached_has_bits & 0x00001000U) != 0) {
      ABSL_DCHECK(from._impl_.pooling_param_ != nullptr);
      if (_this->_impl_.pooling_param_ == nullptr) {
        _this->_impl_.pooling_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.pooling_param_);
      } else {
        _this->_impl_.pooling_param_->MergeFrom(*from._impl_.pooling_param_);
      }
    }
    if ((cached_has_bits & 0x00002000U) != 0) {
      ABSL_DCHECK(from._impl_.window_data_param_ != nullptr);
      if (_this->_impl_.window_data_param_ == nullptr) {
        _this->_impl_.window_data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.window_data_param_);
      } else {
        _this->_impl_.window_data_param_->MergeFrom(*from._impl_.window_data_param_);
      }
    }
    if ((cached_has_bits & 0x00004000U) != 0) {
      ABSL_DCHECK(from._impl_.power_param_ != nullptr);
      if (_this->_impl_.power_param_ == nullptr) {
        _this->_impl_.power_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.power_param_);
      } else {
        _this->_impl_.power_param_->MergeFrom(*from._impl_.power_param_);
      }
    }
    if ((cached_has_bits & 0x00008000U) != 0) {
      ABSL_DCHECK(from._impl_.memory_data_param_ != nullptr);
      if (_this->_impl_.memory_data_param_ == nullptr) {
        _this->_impl_.memory_data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.memory_data_param_);
      } else {
        _this->_impl_.memory_data_param_->MergeFrom(*from._impl_.memory_data_param_);
      }
    }
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    if ((cached_has_bits & 0x00010000U) != 0) {
      ABSL_DCHECK(from._impl_.argmax_param_ != nullptr);
      if (_this->_impl_.argmax_param_ == nullptr) {
        _this->_impl_.argmax_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.argmax_param_);
      } else {
        _this->_impl_.argmax_param_->MergeFrom(*from._impl_.argmax_param_);
      }
    }
    if ((cached_has_bits & 0x00020000U) != 0) {
      ABSL_DCHECK(from._impl_.eltwise_param_ != nullptr);
      if (_this->_impl_.eltwise_param_ == nullptr) {
        _this->_impl_.eltwise_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.eltwise_param_);
      } else {
        _this->_impl_.eltwise_param_->MergeFrom(*from._impl_.eltwise_param_);
      }
    }
    if ((cached_has_bits & 0x00040000U) != 0) {
      ABSL_DCHECK(from._impl_.threshold_param_ != nullptr);
      if (_this->_impl_.threshold_param_ == nullptr) {
        _this->_impl_.threshold_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.threshold_param_);
      } else {
        _this->_impl_.threshold_param_->MergeFrom(*from._impl_.threshold_param_);
      }
    }
    if ((cached_has_bits & 0x00080000U) != 0) {
      ABSL_DCHECK(from._impl_.dummy_data_param_ != nullptr);
      if (_this->_impl_.dummy_data_param_ == nullptr) {
        _this->_impl_.dummy_data_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.dummy_data_param_);
      } else {
        _this->_impl_.dummy_data_param_->MergeFrom(*from._impl_.dummy_data_param_);
      }
    }
    if ((cached_has_bits & 0x00100000U) != 0) {
      ABSL_DCHECK(from._impl_.accuracy_param_ != nullptr);
      if (_this->_impl_.accuracy_param_ == nullptr) {
        _this->_impl_.accuracy_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.accuracy_param_);
      } else {
        _this->_impl_.accuracy_param_->MergeFrom(*from._impl_.accuracy_param_);
      }
    }
    if ((cached_has_bits & 0x00200000U) != 0) {
      ABSL_DCHECK(from._impl_.hinge_loss_param_ != nullptr);
      if (_this->_impl_.hinge_loss_param_ == nullptr) {
        _this->_impl_.hinge_loss_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hinge_loss_param_);
      } else {
        _this->_impl_.hinge_loss_param_->MergeFrom(*from._impl_.hinge_loss_param_);
      }
    }
    if ((cached_has_bits & 0x00400000U) != 0) {
      ABSL_DCHECK(from._impl_.relu_param_ != nullptr);
      if (_this->_impl_.relu_param_ == nullptr) {
        _this->_impl_.relu_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.relu_param_);
      } else {
        _this->_impl_.relu_param_->MergeFrom(*from._impl_.relu_param_);
      }
    }
    if ((cached_has_bits & 0x00800000U) != 0) {
      ABSL_DCHECK(from._impl_.slice_param_ != nullptr);
      if (_this->_impl_.slice_param_ == nullptr) {
        _this->_impl_.slice_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.slice_param_);
      } else {
        _this->_impl_.slice_param_->MergeFrom(*from._impl_.slice_param_);
      }
    }
  }
  if ((cached_has_bits & 0xff000000U) != 0) {
    if ((cached_has_bits & 0x01000000U) != 0) {
      _this->_impl_.type_ = from._impl_.type_;
    }
    if ((cached_has_bits & 0x02000000U) != 0) {
      ABSL_DCHECK(from._impl_.mvn_param_ != nullptr);
      if (_this->_impl_.mvn_param_ == nullptr) {
        _this->_impl_.mvn_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.mvn_param_);
      } else {
        _this->_impl_.mvn_param_->MergeFrom(*from._impl_.mvn_param_);
      }
    }
    if ((cached_has_bits & 0x04000000U) != 0) {
      ABSL_DCHECK(from._impl_.transform_param_ != nullptr);
      if (_this->_impl_.transform_param_ == nullptr) {
        _this->_impl_.transform_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.transform_param_);
      } else {
        _this->_impl_.transform_param_->MergeFrom(*from._impl_.transform_param_);
      }
    }
    if ((cached_has_bits & 0x08000000U) != 0) {
      ABSL_DCHECK(from._impl_.tanh_param_ != nullptr);
      if (_this->_impl_.tanh_param_ == nullptr) {
        _this->_impl_.tanh_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.tanh_param_);
      } else {
        _this->_impl_.tanh_param_->MergeFrom(*from._impl_.tanh_param_);
      }
    }
    if ((cached_has_bits & 0x10000000U) != 0) {
      ABSL_DCHECK(from._impl_.sigmoid_param_ != nullptr);
      if (_this->_impl_.sigmoid_param_ == nullptr) {
        _this->_impl_.sigmoid_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.sigmoid_param_);
      } else {
        _this->_impl_.sigmoid_param_->MergeFrom(*from._impl_.sigmoid_param_);
      }
    }
    if ((cached_has_bits & 0x20000000U) != 0) {
      ABSL_DCHECK(from._impl_.softmax_param_ != nullptr);
      if (_this->_impl_.softmax_param_ == nullptr) {
        _this->_impl_.softmax_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.softmax_param_);
      } else {
        _this->_impl_.softmax_param_->MergeFrom(*from._impl_.softmax_param_);
      }
    }
    if ((cached_has_bits & 0x40000000U) != 0) {
      ABSL_DCHECK(from._impl_.contrastive_loss_param_ != nullptr);
      if (_this->_impl_.contrastive_loss_param_ == nullptr) {
        _this->_impl_.contrastive_loss_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.contrastive_loss_param_);
      } else {
        _this->_impl_.contrastive_loss_param_->MergeFrom(*from._impl_.contrastive_loss_param_);
      }
    }
    if ((cached_has_bits & 0x80000000U) != 0) {
      ABSL_DCHECK(from._impl_.exp_param_ != nullptr);
      if (_this->_impl_.exp_param_ == nullptr) {
        _this->_impl_.exp_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.exp_param_);
      } else {
        _this->_impl_.exp_param_->MergeFrom(*from._impl_.exp_param_);
      }
    }
  }
  cached_has_bits = from._impl_._has_bits_[1];
  if ((cached_has_bits & 0x00000001U) != 0) {
    ABSL_DCHECK(from._impl_.loss_param_ != nullptr);
    if (_this->_impl_.loss_param_ == nullptr) {
      _this->_impl_.loss_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.loss_param_);
    } else {
      _this->_impl_.loss_param_->MergeFrom(*from._impl_.loss_param_);
    }
  }
  _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void V1LayerParameter::CopyFrom(const V1LayerParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.V1LayerParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void V1LayerParameter::InternalSwap(V1LayerParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
  _impl_.bottom_.InternalSwap(&other->_impl_.bottom_);
  _impl_.top_.InternalSwap(&other->_impl_.top_);
  _impl_.blobs_.InternalSwap(&other->_impl_.blobs_);
  _impl_.blobs_lr_.InternalSwap(&other->_impl_.blobs_lr_);
  _impl_.weight_decay_.InternalSwap(&other->_impl_.weight_decay_);
  _impl_.include_.InternalSwap(&other->_impl_.include_);
  _impl_.exclude_.InternalSwap(&other->_impl_.exclude_);
  _impl_.loss_weight_.InternalSwap(&other->_impl_.loss_weight_);
  _impl_.param_.InternalSwap(&other->_impl_.param_);
  _impl_.blob_share_mode_.InternalSwap(&other->_impl_.blob_share_mode_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.loss_param_)
      + sizeof(V1LayerParameter::_impl_.loss_param_)
      - PROTOBUF_FIELD_OFFSET(V1LayerParameter, _impl_.layer_)>(
          reinterpret_cast<char*>(&_impl_.layer_),
          reinterpret_cast<char*>(&other->_impl_.layer_));
}

::google::protobuf::Metadata V1LayerParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class V0LayerParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<V0LayerParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_._has_bits_);
};

/*static*/ const ::_pbi::LazyString V0LayerParameter::Impl_::_i_give_permission_to_break_this_code_default_det_crop_mode_{
    {{"warp", 4}},
    {nullptr},
};
V0LayerParameter::V0LayerParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, V0LayerParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.V0LayerParameter)
}
PROTOBUF_NDEBUG_INLINE V0LayerParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::V0LayerParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        blobs_{visibility, arena, from.blobs_},
        blobs_lr_{visibility, arena, from.blobs_lr_},
        weight_decay_{visibility, arena, from.weight_decay_},
        name_(arena, from.name_),
        type_(arena, from.type_),
        source_(arena, from.source_),
        meanfile_(arena, from.meanfile_),
        det_crop_mode_(arena, from.det_crop_mode_, _i_give_permission_to_break_this_code_default_det_crop_mode_) {}

V0LayerParameter::V0LayerParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const V0LayerParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, V0LayerParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  V0LayerParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.weight_filler_ = ((cached_has_bits & 0x00000020U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_filler_)
                : nullptr;
  _impl_.bias_filler_ = ((cached_has_bits & 0x00000040U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_)
                : nullptr;
  _impl_.hdf5_output_param_ = ((cached_has_bits & 0x00000080U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hdf5_output_param_)
                : nullptr;
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, num_output_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, num_output_),
           offsetof(Impl_, concat_dim_) -
               offsetof(Impl_, num_output_) +
               sizeof(Impl_::concat_dim_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.V0LayerParameter)
}
PROTOBUF_NDEBUG_INLINE V0LayerParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        blobs_{visibility, arena},
        blobs_lr_{visibility, arena},
        weight_decay_{visibility, arena},
        name_(arena),
        type_(arena),
        source_(arena),
        meanfile_(arena),
        det_crop_mode_(arena, Impl_::_i_give_permission_to_break_this_code_default_det_crop_mode_),
        biasterm_{true},
        group_{1u},
        stride_{1u},
        dropout_ratio_{0.5f},
        local_size_{5u},
        alpha_{1},
        beta_{0.75f},
        scale_{1},
        k_{1},
        det_bg_threshold_{0.5f},
        det_fg_fraction_{0.25f},
        det_fg_threshold_{0.5f},
        concat_dim_{1u} {}

inline void V0LayerParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, weight_filler_),
           0,
           offsetof(Impl_, new_width_) -
               offsetof(Impl_, weight_filler_) +
               sizeof(Impl_::new_width_));
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, rand_skip_),
           0,
           offsetof(Impl_, shuffle_images_) -
               offsetof(Impl_, rand_skip_) +
               sizeof(Impl_::shuffle_images_));
}
V0LayerParameter::~V0LayerParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.V0LayerParameter)
  SharedDtor(*this);
}
inline void V0LayerParameter::SharedDtor(MessageLite& self) {
  V0LayerParameter& this_ = static_cast<V0LayerParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.name_.Destroy();
  this_._impl_.type_.Destroy();
  this_._impl_.source_.Destroy();
  this_._impl_.meanfile_.Destroy();
  this_._impl_.det_crop_mode_.Destroy();
  delete this_._impl_.weight_filler_;
  delete this_._impl_.bias_filler_;
  delete this_._impl_.hdf5_output_param_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL V0LayerParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) V0LayerParameter(arena);
}
constexpr auto V0LayerParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.blobs_) +
          decltype(V0LayerParameter::_impl_.blobs_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.blobs_lr_) +
          decltype(V0LayerParameter::_impl_.blobs_lr_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.weight_decay_) +
          decltype(V0LayerParameter::_impl_.weight_decay_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(V0LayerParameter), alignof(V0LayerParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&V0LayerParameter::PlacementNew_,
                                 sizeof(V0LayerParameter),
                                 alignof(V0LayerParameter));
  }
}
constexpr auto V0LayerParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_V0LayerParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &V0LayerParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<V0LayerParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &V0LayerParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<V0LayerParameter>(), &V0LayerParameter::ByteSizeLong,
              &V0LayerParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_._cached_size_),
          false,
      },
      &V0LayerParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull V0LayerParameter_class_data_ =
        V0LayerParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
V0LayerParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&V0LayerParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(V0LayerParameter_class_data_.tc_table);
  return V0LayerParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<5, 38, 5, 105, 12>
V0LayerParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_._has_bits_),
    0, // no _extensions_
    1001, 248,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4290772992,  // skipmap
    offsetof(decltype(_table_), field_entries),
    38,  // num_field_entries
    5,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    V0LayerParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::V0LayerParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional string name = 1;
    {::_pbi::TcParser::FastSS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.name_)}},
    // optional string type = 2;
    {::_pbi::TcParser::FastSS1,
     {18, 1, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.type_)}},
    // optional uint32 num_output = 3;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(V0LayerParameter, _impl_.num_output_), 8>(),
     {24, 8, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.num_output_)}},
    // optional bool biasterm = 4 [default = true];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(V0LayerParameter, _impl_.biasterm_), 20>(),
     {32, 20, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.biasterm_)}},
    // optional .opencv_caffe.FillerParameter weight_filler = 5;
    {::_pbi::TcParser::FastMtS1,
     {42, 5, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.weight_filler_)}},
    // optional .opencv_caffe.FillerParameter bias_filler = 6;
    {::_pbi::TcParser::FastMtS1,
     {50, 6, 1, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.bias_filler_)}},
    // optional uint32 pad = 7 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(V0LayerParameter, _impl_.pad_), 9>(),
     {56, 9, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.pad_)}},
    // optional uint32 kernelsize = 8;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(V0LayerParameter, _impl_.kernelsize_), 10>(),
     {64, 10, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.kernelsize_)}},
    // optional uint32 group = 9 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(V0LayerParameter, _impl_.group_), 21>(),
     {72, 21, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.group_)}},
    // optional uint32 stride = 10 [default = 1];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(V0LayerParameter, _impl_.stride_), 22>(),
     {80, 22, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.stride_)}},
    // optional .opencv_caffe.V0LayerParameter.PoolMethod pool = 11 [default = MAX];
    {::_pbi::TcParser::FastEr0S1,
     {88, 11, 2, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.pool_)}},
    // optional float dropout_ratio = 12 [default = 0.5];
    {::_pbi::TcParser::FastF32S1,
     {101, 23, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.dropout_ratio_)}},
    // optional uint32 local_size = 13 [default = 5];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(V0LayerParameter, _impl_.local_size_), 24>(),
     {104, 24, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.local_size_)}},
    // optional float alpha = 14 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {117, 25, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.alpha_)}},
    // optional float beta = 15 [default = 0.75];
    {::_pbi::TcParser::FastF32S1,
     {125, 26, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.beta_)}},
    // optional string source = 16;
    {::_pbi::TcParser::FastSS2,
     {386, 2, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.source_)}},
    // optional float scale = 17 [default = 1];
    {::_pbi::TcParser::FastF32S2,
     {397, 27, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.scale_)}},
    // optional string meanfile = 18;
    {::_pbi::TcParser::FastSS2,
     {402, 3, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.meanfile_)}},
    // optional uint32 batchsize = 19;
    {::_pbi::TcParser::FastV32S2,
     {408, 12, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.batchsize_)}},
    // optional uint32 cropsize = 20 [default = 0];
    {::_pbi::TcParser::FastV32S2,
     {416, 13, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.cropsize_)}},
    // optional bool mirror = 21 [default = false];
    {::_pbi::TcParser::FastV8S2,
     {424, 14, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.mirror_)}},
    // optional float k = 22 [default = 1];
    {::_pbi::TcParser::FastF32S2,
     {437, 28, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.k_)}},
    // optional float det_bg_threshold = 55 [default = 0.5];
    {::_pbi::TcParser::FastF32S2,
     {957, 29, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.det_bg_threshold_)}},
    // optional float det_fg_fraction = 56 [default = 0.25];
    {::_pbi::TcParser::FastF32S2,
     {965, 30, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.det_fg_fraction_)}},
    // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 1001;
    {::_pbi::TcParser::FastMtS2,
     {16074, 7, 3, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.hdf5_output_param_)}},
    // optional uint32 det_context_pad = 58 [default = 0];
    {::_pbi::TcParser::FastV32S2,
     {976, 15, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.det_context_pad_)}},
    // optional string det_crop_mode = 59 [default = "warp"];
    {::_pbi::TcParser::FastSS2,
     {986, 4, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.det_crop_mode_)}},
    // optional int32 new_num = 60 [default = 0];
    {::_pbi::TcParser::FastV32S2,
     {992, 16, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.new_num_)}},
    // optional int32 new_channels = 61 [default = 0];
    {::_pbi::TcParser::FastV32S2,
     {1000, 17, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.new_channels_)}},
    // optional int32 new_height = 62 [default = 0];
    {::_pbi::TcParser::FastV32S2,
     {1008, 18, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.new_height_)}},
    // optional int32 new_width = 63 [default = 0];
    {::_pbi::TcParser::FastV32S2,
     {1016, 19, 0, PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.new_width_)}},
  }}, {{
    50, 0, 1,
    128, 22,
    1001, 0, 1,
    65534, 37,
    65535, 65535
  }}, {{
    // optional string name = 1;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.name_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional string type = 2;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.type_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional uint32 num_output = 3;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.num_output_), _Internal::kHasBitsOffset + 8, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool biasterm = 4 [default = true];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.biasterm_), _Internal::kHasBitsOffset + 20, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional .opencv_caffe.FillerParameter weight_filler = 5;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.weight_filler_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional .opencv_caffe.FillerParameter bias_filler = 6;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.bias_filler_), _Internal::kHasBitsOffset + 6, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional uint32 pad = 7 [default = 0];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.pad_), _Internal::kHasBitsOffset + 9, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 kernelsize = 8;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.kernelsize_), _Internal::kHasBitsOffset + 10, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 group = 9 [default = 1];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.group_), _Internal::kHasBitsOffset + 21, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 stride = 10 [default = 1];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.stride_), _Internal::kHasBitsOffset + 22, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional .opencv_caffe.V0LayerParameter.PoolMethod pool = 11 [default = MAX];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.pool_), _Internal::kHasBitsOffset + 11, 4, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    // optional float dropout_ratio = 12 [default = 0.5];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.dropout_ratio_), _Internal::kHasBitsOffset + 23, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional uint32 local_size = 13 [default = 5];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.local_size_), _Internal::kHasBitsOffset + 24, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional float alpha = 14 [default = 1];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.alpha_), _Internal::kHasBitsOffset + 25, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float beta = 15 [default = 0.75];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.beta_), _Internal::kHasBitsOffset + 26, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional string source = 16;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.source_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional float scale = 17 [default = 1];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.scale_), _Internal::kHasBitsOffset + 27, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional string meanfile = 18;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.meanfile_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional uint32 batchsize = 19;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.batchsize_), _Internal::kHasBitsOffset + 12, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 cropsize = 20 [default = 0];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.cropsize_), _Internal::kHasBitsOffset + 13, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional bool mirror = 21 [default = false];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.mirror_), _Internal::kHasBitsOffset + 14, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional float k = 22 [default = 1];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.k_), _Internal::kHasBitsOffset + 28, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // repeated .opencv_caffe.BlobProto blobs = 50;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.blobs_), -1, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    // repeated float blobs_lr = 51;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.blobs_lr_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // repeated float weight_decay = 52;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.weight_decay_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // optional uint32 rand_skip = 53 [default = 0];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.rand_skip_), _Internal::kHasBitsOffset + 31, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional float det_fg_threshold = 54 [default = 0.5];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.det_fg_threshold_), _Internal::kHasBitsOffset + 33, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float det_bg_threshold = 55 [default = 0.5];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.det_bg_threshold_), _Internal::kHasBitsOffset + 29, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float det_fg_fraction = 56 [default = 0.25];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.det_fg_fraction_), _Internal::kHasBitsOffset + 30, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional uint32 det_context_pad = 58 [default = 0];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.det_context_pad_), _Internal::kHasBitsOffset + 15, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional string det_crop_mode = 59 [default = "warp"];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.det_crop_mode_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kRawString | ::_fl::kRepAString)},
    // optional int32 new_num = 60 [default = 0];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.new_num_), _Internal::kHasBitsOffset + 16, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 new_channels = 61 [default = 0];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.new_channels_), _Internal::kHasBitsOffset + 17, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 new_height = 62 [default = 0];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.new_height_), _Internal::kHasBitsOffset + 18, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional int32 new_width = 63 [default = 0];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.new_width_), _Internal::kHasBitsOffset + 19, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional bool shuffle_images = 64 [default = false];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.shuffle_images_), _Internal::kHasBitsOffset + 32, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional uint32 concat_dim = 65 [default = 1];
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.concat_dim_), _Internal::kHasBitsOffset + 34, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 1001;
    {PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.hdf5_output_param_), _Internal::kHasBitsOffset + 7, 3, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::BlobProto>()},
      {::_pbi::TcParser::GetTable<::opencv_caffe::HDF5OutputParameter>()},
      {0, 2},
  }},
  {{
    "\35\4\4\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\10\0\0\0\0\0\0\0\0\0\0\0\0\15\0\0\0\0\0\0\0\0"
    "opencv_caffe.V0LayerParameter"
    "name"
    "type"
    "source"
    "meanfile"
    "det_crop_mode"
  }},
};
PROTOBUF_NOINLINE void V0LayerParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.V0LayerParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.blobs_.Clear();
  _impl_.blobs_lr_.Clear();
  _impl_.weight_decay_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _impl_.name_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _impl_.type_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _impl_.source_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _impl_.meanfile_.ClearNonDefaultToEmpty();
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _impl_.det_crop_mode_.ClearToDefault(::opencv_caffe::V0LayerParameter::Impl_::_i_give_permission_to_break_this_code_default_det_crop_mode_, GetArena());
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      ABSL_DCHECK(_impl_.weight_filler_ != nullptr);
      _impl_.weight_filler_->Clear();
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      ABSL_DCHECK(_impl_.bias_filler_ != nullptr);
      _impl_.bias_filler_->Clear();
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      ABSL_DCHECK(_impl_.hdf5_output_param_ != nullptr);
      _impl_.hdf5_output_param_->Clear();
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    ::memset(&_impl_.num_output_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.det_context_pad_) -
        reinterpret_cast<char*>(&_impl_.num_output_)) + sizeof(_impl_.det_context_pad_));
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    ::memset(&_impl_.new_num_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.new_width_) -
        reinterpret_cast<char*>(&_impl_.new_num_)) + sizeof(_impl_.new_width_));
    _impl_.biasterm_ = true;
    _impl_.group_ = 1u;
    _impl_.stride_ = 1u;
    _impl_.dropout_ratio_ = 0.5f;
  }
  if ((cached_has_bits & 0x7f000000U) != 0) {
    _impl_.local_size_ = 5u;
    _impl_.alpha_ = 1;
    _impl_.beta_ = 0.75f;
    _impl_.scale_ = 1;
    _impl_.k_ = 1;
    _impl_.det_bg_threshold_ = 0.5f;
    _impl_.det_fg_fraction_ = 0.25f;
  }
  _impl_.rand_skip_ = 0u;
  cached_has_bits = _impl_._has_bits_[1];
  if ((cached_has_bits & 0x00000007U) != 0) {
    _impl_.shuffle_images_ = false;
    _impl_.det_fg_threshold_ = 0.5f;
    _impl_.concat_dim_ = 1u;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL V0LayerParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const V0LayerParameter& this_ = static_cast<const V0LayerParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL V0LayerParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const V0LayerParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.V0LayerParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string name = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    const ::std::string& _s = this_._internal_name();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.V0LayerParameter.name");
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional string type = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    const ::std::string& _s = this_._internal_type();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.V0LayerParameter.type");
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // optional uint32 num_output = 3;
  if ((cached_has_bits & 0x00000100U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        3, this_._internal_num_output(), target);
  }

  // optional bool biasterm = 4 [default = true];
  if ((cached_has_bits & 0x00100000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        4, this_._internal_biasterm(), target);
  }

  // optional .opencv_caffe.FillerParameter weight_filler = 5;
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.weight_filler_, this_._impl_.weight_filler_->GetCachedSize(), target,
        stream);
  }

  // optional .opencv_caffe.FillerParameter bias_filler = 6;
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.bias_filler_, this_._impl_.bias_filler_->GetCachedSize(), target,
        stream);
  }

  // optional uint32 pad = 7 [default = 0];
  if ((cached_has_bits & 0x00000200U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        7, this_._internal_pad(), target);
  }

  // optional uint32 kernelsize = 8;
  if ((cached_has_bits & 0x00000400U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        8, this_._internal_kernelsize(), target);
  }

  // optional uint32 group = 9 [default = 1];
  if ((cached_has_bits & 0x00200000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        9, this_._internal_group(), target);
  }

  // optional uint32 stride = 10 [default = 1];
  if ((cached_has_bits & 0x00400000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        10, this_._internal_stride(), target);
  }

  // optional .opencv_caffe.V0LayerParameter.PoolMethod pool = 11 [default = MAX];
  if ((cached_has_bits & 0x00000800U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        11, this_._internal_pool(), target);
  }

  // optional float dropout_ratio = 12 [default = 0.5];
  if ((cached_has_bits & 0x00800000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        12, this_._internal_dropout_ratio(), target);
  }

  // optional uint32 local_size = 13 [default = 5];
  if ((cached_has_bits & 0x01000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        13, this_._internal_local_size(), target);
  }

  // optional float alpha = 14 [default = 1];
  if ((cached_has_bits & 0x02000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        14, this_._internal_alpha(), target);
  }

  // optional float beta = 15 [default = 0.75];
  if ((cached_has_bits & 0x04000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        15, this_._internal_beta(), target);
  }

  // optional string source = 16;
  if ((cached_has_bits & 0x00000004U) != 0) {
    const ::std::string& _s = this_._internal_source();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.V0LayerParameter.source");
    target = stream->WriteStringMaybeAliased(16, _s, target);
  }

  // optional float scale = 17 [default = 1];
  if ((cached_has_bits & 0x08000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        17, this_._internal_scale(), target);
  }

  // optional string meanfile = 18;
  if ((cached_has_bits & 0x00000008U) != 0) {
    const ::std::string& _s = this_._internal_meanfile();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.V0LayerParameter.meanfile");
    target = stream->WriteStringMaybeAliased(18, _s, target);
  }

  // optional uint32 batchsize = 19;
  if ((cached_has_bits & 0x00001000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        19, this_._internal_batchsize(), target);
  }

  // optional uint32 cropsize = 20 [default = 0];
  if ((cached_has_bits & 0x00002000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        20, this_._internal_cropsize(), target);
  }

  // optional bool mirror = 21 [default = false];
  if ((cached_has_bits & 0x00004000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        21, this_._internal_mirror(), target);
  }

  // optional float k = 22 [default = 1];
  if ((cached_has_bits & 0x10000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        22, this_._internal_k(), target);
  }

  // repeated .opencv_caffe.BlobProto blobs = 50;
  for (unsigned i = 0, n = static_cast<unsigned>(
                           this_._internal_blobs_size());
       i < n; i++) {
    const auto& repfield = this_._internal_blobs().Get(i);
    target =
        ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
            50, repfield, repfield.GetCachedSize(),
            target, stream);
  }

  // repeated float blobs_lr = 51;
  for (int i = 0, n = this_._internal_blobs_lr_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        51, this_._internal_blobs_lr().Get(i), target);
  }

  // repeated float weight_decay = 52;
  for (int i = 0, n = this_._internal_weight_decay_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        52, this_._internal_weight_decay().Get(i), target);
  }

  // optional uint32 rand_skip = 53 [default = 0];
  if ((cached_has_bits & 0x80000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        53, this_._internal_rand_skip(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional float det_fg_threshold = 54 [default = 0.5];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        54, this_._internal_det_fg_threshold(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float det_bg_threshold = 55 [default = 0.5];
  if ((cached_has_bits & 0x20000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        55, this_._internal_det_bg_threshold(), target);
  }

  // optional float det_fg_fraction = 56 [default = 0.25];
  if ((cached_has_bits & 0x40000000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        56, this_._internal_det_fg_fraction(), target);
  }

  // optional uint32 det_context_pad = 58 [default = 0];
  if ((cached_has_bits & 0x00008000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        58, this_._internal_det_context_pad(), target);
  }

  // optional string det_crop_mode = 59 [default = "warp"];
  if ((cached_has_bits & 0x00000010U) != 0) {
    const ::std::string& _s = this_._internal_det_crop_mode();
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(_s.data(), static_cast<int>(_s.length()), ::google::protobuf::internal::WireFormat::SERIALIZE,
                                "opencv_caffe.V0LayerParameter.det_crop_mode");
    target = stream->WriteStringMaybeAliased(59, _s, target);
  }

  // optional int32 new_num = 60 [default = 0];
  if ((cached_has_bits & 0x00010000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        60, this_._internal_new_num(), target);
  }

  // optional int32 new_channels = 61 [default = 0];
  if ((cached_has_bits & 0x00020000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        61, this_._internal_new_channels(), target);
  }

  // optional int32 new_height = 62 [default = 0];
  if ((cached_has_bits & 0x00040000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        62, this_._internal_new_height(), target);
  }

  // optional int32 new_width = 63 [default = 0];
  if ((cached_has_bits & 0x00080000U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(
        63, this_._internal_new_width(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[1];
  // optional bool shuffle_images = 64 [default = false];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        64, this_._internal_shuffle_images(), target);
  }

  // optional uint32 concat_dim = 65 [default = 1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        65, this_._internal_concat_dim(), target);
  }

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 1001;
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1001, *this_._impl_.hdf5_output_param_, this_._impl_.hdf5_output_param_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.V0LayerParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t V0LayerParameter::ByteSizeLong(const MessageLite& base) {
  const V0LayerParameter& this_ = static_cast<const V0LayerParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t V0LayerParameter::ByteSizeLong() const {
  const V0LayerParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.V0LayerParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated .opencv_caffe.BlobProto blobs = 50;
    {
      total_size += 2UL * this_._internal_blobs_size();
      for (const auto& msg : this_._internal_blobs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated float blobs_lr = 51;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_blobs_lr_size());
      ::size_t tag_size = ::size_t{2} *
          ::_pbi::FromIntSize(this_._internal_blobs_lr_size());
      total_size += tag_size + data_size;
    }
    // repeated float weight_decay = 52;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_weight_decay_size());
      ::size_t tag_size = ::size_t{2} *
          ::_pbi::FromIntSize(this_._internal_weight_decay_size());
      total_size += tag_size + data_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x78000000U & cached_has_bits) * 6;
  total_size += ::absl::popcount(0x06800000U & cached_has_bits) * 5;
  total_size += static_cast<bool>(0x00004000U & cached_has_bits) * 3;
  total_size += static_cast<bool>(0x00100000U & cached_has_bits) * 2;
  if ((cached_has_bits & 0x000000ffU) != 0) {
    // optional string name = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_name());
    }
    // optional string type = 2;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_type());
    }
    // optional string source = 16;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_source());
    }
    // optional string meanfile = 18;
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_meanfile());
    }
    // optional string det_crop_mode = 59 [default = "warp"];
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += 2 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_det_crop_mode());
    }
    // optional .opencv_caffe.FillerParameter weight_filler = 5;
    if ((cached_has_bits & 0x00000020U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.weight_filler_);
    }
    // optional .opencv_caffe.FillerParameter bias_filler = 6;
    if ((cached_has_bits & 0x00000040U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.bias_filler_);
    }
    // optional .opencv_caffe.HDF5OutputParameter hdf5_output_param = 1001;
    if ((cached_has_bits & 0x00000080U) != 0) {
      total_size += 2 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.hdf5_output_param_);
    }
  }
  if ((cached_has_bits & 0x0000bf00U) != 0) {
    // optional uint32 num_output = 3;
    if ((cached_has_bits & 0x00000100U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_num_output());
    }
    // optional uint32 pad = 7 [default = 0];
    if ((cached_has_bits & 0x00000200U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_pad());
    }
    // optional uint32 kernelsize = 8;
    if ((cached_has_bits & 0x00000400U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_kernelsize());
    }
    // optional .opencv_caffe.V0LayerParameter.PoolMethod pool = 11 [default = MAX];
    if ((cached_has_bits & 0x00000800U) != 0) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_pool());
    }
    // optional uint32 batchsize = 19;
    if ((cached_has_bits & 0x00001000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt32Size(
                                      this_._internal_batchsize());
    }
    // optional uint32 cropsize = 20 [default = 0];
    if ((cached_has_bits & 0x00002000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt32Size(
                                      this_._internal_cropsize());
    }
    // optional uint32 det_context_pad = 58 [default = 0];
    if ((cached_has_bits & 0x00008000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt32Size(
                                      this_._internal_det_context_pad());
    }
  }
  if ((cached_has_bits & 0x006f0000U) != 0) {
    // optional int32 new_num = 60 [default = 0];
    if ((cached_has_bits & 0x00010000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_new_num());
    }
    // optional int32 new_channels = 61 [default = 0];
    if ((cached_has_bits & 0x00020000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_new_channels());
    }
    // optional int32 new_height = 62 [default = 0];
    if ((cached_has_bits & 0x00040000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_new_height());
    }
    // optional int32 new_width = 63 [default = 0];
    if ((cached_has_bits & 0x00080000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::Int32Size(
                                      this_._internal_new_width());
    }
    // optional uint32 group = 9 [default = 1];
    if ((cached_has_bits & 0x00200000U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_group());
    }
    // optional uint32 stride = 10 [default = 1];
    if ((cached_has_bits & 0x00400000U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_stride());
    }
  }
  if ((cached_has_bits & 0x81000000U) != 0) {
    // optional uint32 local_size = 13 [default = 5];
    if ((cached_has_bits & 0x01000000U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_local_size());
    }
    // optional uint32 rand_skip = 53 [default = 0];
    if ((cached_has_bits & 0x80000000U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt32Size(
                                      this_._internal_rand_skip());
    }
  }
  cached_has_bits = this_._impl_._has_bits_[1];
  total_size += static_cast<bool>(0x00000002U & cached_has_bits) * 6;
  total_size += static_cast<bool>(0x00000001U & cached_has_bits) * 3;
   {
    // optional uint32 concat_dim = 65 [default = 1];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += 2 + ::_pbi::WireFormatLite::UInt32Size(
                                      this_._internal_concat_dim());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void V0LayerParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<V0LayerParameter*>(&to_msg);
  auto& from = static_cast<const V0LayerParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.V0LayerParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_blobs()->MergeFrom(
      from._internal_blobs());
  _this->_internal_mutable_blobs_lr()->MergeFrom(from._internal_blobs_lr());
  _this->_internal_mutable_weight_decay()->MergeFrom(from._internal_weight_decay());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_internal_set_name(from._internal_name());
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_internal_set_type(from._internal_type());
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_internal_set_source(from._internal_source());
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_internal_set_meanfile(from._internal_meanfile());
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_internal_set_det_crop_mode(from._internal_det_crop_mode());
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      ABSL_DCHECK(from._impl_.weight_filler_ != nullptr);
      if (_this->_impl_.weight_filler_ == nullptr) {
        _this->_impl_.weight_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.weight_filler_);
      } else {
        _this->_impl_.weight_filler_->MergeFrom(*from._impl_.weight_filler_);
      }
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      ABSL_DCHECK(from._impl_.bias_filler_ != nullptr);
      if (_this->_impl_.bias_filler_ == nullptr) {
        _this->_impl_.bias_filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.bias_filler_);
      } else {
        _this->_impl_.bias_filler_->MergeFrom(*from._impl_.bias_filler_);
      }
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      ABSL_DCHECK(from._impl_.hdf5_output_param_ != nullptr);
      if (_this->_impl_.hdf5_output_param_ == nullptr) {
        _this->_impl_.hdf5_output_param_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.hdf5_output_param_);
      } else {
        _this->_impl_.hdf5_output_param_->MergeFrom(*from._impl_.hdf5_output_param_);
      }
    }
  }
  if ((cached_has_bits & 0x0000ff00U) != 0) {
    if ((cached_has_bits & 0x00000100U) != 0) {
      _this->_impl_.num_output_ = from._impl_.num_output_;
    }
    if ((cached_has_bits & 0x00000200U) != 0) {
      _this->_impl_.pad_ = from._impl_.pad_;
    }
    if ((cached_has_bits & 0x00000400U) != 0) {
      _this->_impl_.kernelsize_ = from._impl_.kernelsize_;
    }
    if ((cached_has_bits & 0x00000800U) != 0) {
      _this->_impl_.pool_ = from._impl_.pool_;
    }
    if ((cached_has_bits & 0x00001000U) != 0) {
      _this->_impl_.batchsize_ = from._impl_.batchsize_;
    }
    if ((cached_has_bits & 0x00002000U) != 0) {
      _this->_impl_.cropsize_ = from._impl_.cropsize_;
    }
    if ((cached_has_bits & 0x00004000U) != 0) {
      _this->_impl_.mirror_ = from._impl_.mirror_;
    }
    if ((cached_has_bits & 0x00008000U) != 0) {
      _this->_impl_.det_context_pad_ = from._impl_.det_context_pad_;
    }
  }
  if ((cached_has_bits & 0x00ff0000U) != 0) {
    if ((cached_has_bits & 0x00010000U) != 0) {
      _this->_impl_.new_num_ = from._impl_.new_num_;
    }
    if ((cached_has_bits & 0x00020000U) != 0) {
      _this->_impl_.new_channels_ = from._impl_.new_channels_;
    }
    if ((cached_has_bits & 0x00040000U) != 0) {
      _this->_impl_.new_height_ = from._impl_.new_height_;
    }
    if ((cached_has_bits & 0x00080000U) != 0) {
      _this->_impl_.new_width_ = from._impl_.new_width_;
    }
    if ((cached_has_bits & 0x00100000U) != 0) {
      _this->_impl_.biasterm_ = from._impl_.biasterm_;
    }
    if ((cached_has_bits & 0x00200000U) != 0) {
      _this->_impl_.group_ = from._impl_.group_;
    }
    if ((cached_has_bits & 0x00400000U) != 0) {
      _this->_impl_.stride_ = from._impl_.stride_;
    }
    if ((cached_has_bits & 0x00800000U) != 0) {
      _this->_impl_.dropout_ratio_ = from._impl_.dropout_ratio_;
    }
  }
  if ((cached_has_bits & 0xff000000U) != 0) {
    if ((cached_has_bits & 0x01000000U) != 0) {
      _this->_impl_.local_size_ = from._impl_.local_size_;
    }
    if ((cached_has_bits & 0x02000000U) != 0) {
      _this->_impl_.alpha_ = from._impl_.alpha_;
    }
    if ((cached_has_bits & 0x04000000U) != 0) {
      _this->_impl_.beta_ = from._impl_.beta_;
    }
    if ((cached_has_bits & 0x08000000U) != 0) {
      _this->_impl_.scale_ = from._impl_.scale_;
    }
    if ((cached_has_bits & 0x10000000U) != 0) {
      _this->_impl_.k_ = from._impl_.k_;
    }
    if ((cached_has_bits & 0x20000000U) != 0) {
      _this->_impl_.det_bg_threshold_ = from._impl_.det_bg_threshold_;
    }
    if ((cached_has_bits & 0x40000000U) != 0) {
      _this->_impl_.det_fg_fraction_ = from._impl_.det_fg_fraction_;
    }
    if ((cached_has_bits & 0x80000000U) != 0) {
      _this->_impl_.rand_skip_ = from._impl_.rand_skip_;
    }
  }
  cached_has_bits = from._impl_._has_bits_[1];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.shuffle_images_ = from._impl_.shuffle_images_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.det_fg_threshold_ = from._impl_.det_fg_threshold_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.concat_dim_ = from._impl_.concat_dim_;
    }
  }
  _this->_impl_._has_bits_.Or(from._impl_._has_bits_);
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void V0LayerParameter::CopyFrom(const V0LayerParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.V0LayerParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void V0LayerParameter::InternalSwap(V0LayerParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_._has_bits_[1], other->_impl_._has_bits_[1]);
  _impl_.blobs_.InternalSwap(&other->_impl_.blobs_);
  _impl_.blobs_lr_.InternalSwap(&other->_impl_.blobs_lr_);
  _impl_.weight_decay_.InternalSwap(&other->_impl_.weight_decay_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.type_, &other->_impl_.type_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.source_, &other->_impl_.source_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.meanfile_, &other->_impl_.meanfile_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.det_crop_mode_, &other->_impl_.det_crop_mode_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.concat_dim_)
      + sizeof(V0LayerParameter::_impl_.concat_dim_)
      - PROTOBUF_FIELD_OFFSET(V0LayerParameter, _impl_.weight_filler_)>(
          reinterpret_cast<char*>(&_impl_.weight_filler_),
          reinterpret_cast<char*>(&other->_impl_.weight_filler_));
}

::google::protobuf::Metadata V0LayerParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class PReLUParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<PReLUParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PReLUParameter, _impl_._has_bits_);
};

PReLUParameter::PReLUParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PReLUParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.PReLUParameter)
}
PROTOBUF_NDEBUG_INLINE PReLUParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::PReLUParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

PReLUParameter::PReLUParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const PReLUParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PReLUParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  PReLUParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.filler_ = ((cached_has_bits & 0x00000001U) != 0)
                ? ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.filler_)
                : nullptr;
  _impl_.channel_shared_ = from._impl_.channel_shared_;

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.PReLUParameter)
}
PROTOBUF_NDEBUG_INLINE PReLUParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void PReLUParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, filler_),
           0,
           offsetof(Impl_, channel_shared_) -
               offsetof(Impl_, filler_) +
               sizeof(Impl_::channel_shared_));
}
PReLUParameter::~PReLUParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.PReLUParameter)
  SharedDtor(*this);
}
inline void PReLUParameter::SharedDtor(MessageLite& self) {
  PReLUParameter& this_ = static_cast<PReLUParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.filler_;
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL PReLUParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PReLUParameter(arena);
}
constexpr auto PReLUParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(PReLUParameter),
                                            alignof(PReLUParameter));
}
constexpr auto PReLUParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_PReLUParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &PReLUParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<PReLUParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PReLUParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<PReLUParameter>(), &PReLUParameter::ByteSizeLong,
              &PReLUParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PReLUParameter, _impl_._cached_size_),
          false,
      },
      &PReLUParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull PReLUParameter_class_data_ =
        PReLUParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PReLUParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&PReLUParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(PReLUParameter_class_data_.tc_table);
  return PReLUParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<1, 2, 1, 0, 2>
PReLUParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(PReLUParameter, _impl_._has_bits_),
    0, // no _extensions_
    2, 8,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967292,  // skipmap
    offsetof(decltype(_table_), field_entries),
    2,  // num_field_entries
    1,  // num_aux_entries
    offsetof(decltype(_table_), aux_entries),
    PReLUParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::PReLUParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional bool channel_shared = 2 [default = false];
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(PReLUParameter, _impl_.channel_shared_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(PReLUParameter, _impl_.channel_shared_)}},
    // optional .opencv_caffe.FillerParameter filler = 1;
    {::_pbi::TcParser::FastMtS1,
     {10, 0, 0, PROTOBUF_FIELD_OFFSET(PReLUParameter, _impl_.filler_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional .opencv_caffe.FillerParameter filler = 1;
    {PROTOBUF_FIELD_OFFSET(PReLUParameter, _impl_.filler_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    // optional bool channel_shared = 2 [default = false];
    {PROTOBUF_FIELD_OFFSET(PReLUParameter, _impl_.channel_shared_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
  }},
  {{
      {::_pbi::TcParser::GetTable<::opencv_caffe::FillerParameter>()},
  }},
  {{
  }},
};
PROTOBUF_NOINLINE void PReLUParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.PReLUParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    ABSL_DCHECK(_impl_.filler_ != nullptr);
    _impl_.filler_->Clear();
  }
  _impl_.channel_shared_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PReLUParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PReLUParameter& this_ = static_cast<const PReLUParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PReLUParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PReLUParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.PReLUParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .opencv_caffe.FillerParameter filler = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.filler_, this_._impl_.filler_->GetCachedSize(), target,
        stream);
  }

  // optional bool channel_shared = 2 [default = false];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_channel_shared(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.PReLUParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PReLUParameter::ByteSizeLong(const MessageLite& base) {
  const PReLUParameter& this_ = static_cast<const PReLUParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PReLUParameter::ByteSizeLong() const {
  const PReLUParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.PReLUParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000002U & cached_has_bits) * 2;
   {
    // optional .opencv_caffe.FillerParameter filler = 1;
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.filler_);
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void PReLUParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<PReLUParameter*>(&to_msg);
  auto& from = static_cast<const PReLUParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.PReLUParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000003U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      ABSL_DCHECK(from._impl_.filler_ != nullptr);
      if (_this->_impl_.filler_ == nullptr) {
        _this->_impl_.filler_ = ::google::protobuf::Message::CopyConstruct(arena, *from._impl_.filler_);
      } else {
        _this->_impl_.filler_->MergeFrom(*from._impl_.filler_);
      }
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.channel_shared_ = from._impl_.channel_shared_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void PReLUParameter::CopyFrom(const PReLUParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.PReLUParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void PReLUParameter::InternalSwap(PReLUParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PReLUParameter, _impl_.channel_shared_)
      + sizeof(PReLUParameter::_impl_.channel_shared_)
      - PROTOBUF_FIELD_OFFSET(PReLUParameter, _impl_.filler_)>(
          reinterpret_cast<char*>(&_impl_.filler_),
          reinterpret_cast<char*>(&other->_impl_.filler_));
}

::google::protobuf::Metadata PReLUParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class NormalizedBBox::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<NormalizedBBox>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_._has_bits_);
};

NormalizedBBox::NormalizedBBox(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NormalizedBBox_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.NormalizedBBox)
}
NormalizedBBox::NormalizedBBox(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const NormalizedBBox& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, NormalizedBBox_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE NormalizedBBox::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void NormalizedBBox::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, xmin_),
           0,
           offsetof(Impl_, size_) -
               offsetof(Impl_, xmin_) +
               sizeof(Impl_::size_));
}
NormalizedBBox::~NormalizedBBox() {
  // @@protoc_insertion_point(destructor:opencv_caffe.NormalizedBBox)
  SharedDtor(*this);
}
inline void NormalizedBBox::SharedDtor(MessageLite& self) {
  NormalizedBBox& this_ = static_cast<NormalizedBBox&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL NormalizedBBox::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) NormalizedBBox(arena);
}
constexpr auto NormalizedBBox::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(NormalizedBBox),
                                            alignof(NormalizedBBox));
}
constexpr auto NormalizedBBox::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_NormalizedBBox_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &NormalizedBBox::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<NormalizedBBox>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &NormalizedBBox::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<NormalizedBBox>(), &NormalizedBBox::ByteSizeLong,
              &NormalizedBBox::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_._cached_size_),
          false,
      },
      &NormalizedBBox::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull NormalizedBBox_class_data_ =
        NormalizedBBox::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
NormalizedBBox::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&NormalizedBBox_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(NormalizedBBox_class_data_.tc_table);
  return NormalizedBBox_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 8, 0, 0, 2>
NormalizedBBox::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_._has_bits_),
    0, // no _extensions_
    8, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967040,  // skipmap
    offsetof(decltype(_table_), field_entries),
    8,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    NormalizedBBox_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::NormalizedBBox>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional float size = 8;
    {::_pbi::TcParser::FastF32S1,
     {69, 7, 0, PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.size_)}},
    // optional float xmin = 1;
    {::_pbi::TcParser::FastF32S1,
     {13, 0, 0, PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.xmin_)}},
    // optional float ymin = 2;
    {::_pbi::TcParser::FastF32S1,
     {21, 1, 0, PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.ymin_)}},
    // optional float xmax = 3;
    {::_pbi::TcParser::FastF32S1,
     {29, 2, 0, PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.xmax_)}},
    // optional float ymax = 4;
    {::_pbi::TcParser::FastF32S1,
     {37, 3, 0, PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.ymax_)}},
    // optional int32 label = 5;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(NormalizedBBox, _impl_.label_), 4>(),
     {40, 4, 0, PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.label_)}},
    // optional bool difficult = 6;
    {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(NormalizedBBox, _impl_.difficult_), 5>(),
     {48, 5, 0, PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.difficult_)}},
    // optional float score = 7;
    {::_pbi::TcParser::FastF32S1,
     {61, 6, 0, PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.score_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional float xmin = 1;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.xmin_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float ymin = 2;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.ymin_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float xmax = 3;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.xmax_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float ymax = 4;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.ymax_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional int32 label = 5;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.label_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // optional bool difficult = 6;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.difficult_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    // optional float score = 7;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.score_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // optional float size = 8;
    {PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.size_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void NormalizedBBox::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.NormalizedBBox)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    ::memset(&_impl_.xmin_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.size_) -
        reinterpret_cast<char*>(&_impl_.xmin_)) + sizeof(_impl_.size_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL NormalizedBBox::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const NormalizedBBox& this_ = static_cast<const NormalizedBBox&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL NormalizedBBox::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const NormalizedBBox& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.NormalizedBBox)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional float xmin = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_xmin(), target);
  }

  // optional float ymin = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        2, this_._internal_ymin(), target);
  }

  // optional float xmax = 3;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_xmax(), target);
  }

  // optional float ymax = 4;
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        4, this_._internal_ymax(), target);
  }

  // optional int32 label = 5;
  if ((cached_has_bits & 0x00000010U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_label(), target);
  }

  // optional bool difficult = 6;
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_difficult(), target);
  }

  // optional float score = 7;
  if ((cached_has_bits & 0x00000040U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        7, this_._internal_score(), target);
  }

  // optional float size = 8;
  if ((cached_has_bits & 0x00000080U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        8, this_._internal_size(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.NormalizedBBox)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t NormalizedBBox::ByteSizeLong(const MessageLite& base) {
  const NormalizedBBox& this_ = static_cast<const NormalizedBBox&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t NormalizedBBox::ByteSizeLong() const {
  const NormalizedBBox& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.NormalizedBBox)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += ::absl::popcount(0x000000cfU & cached_has_bits) * 5;
  total_size += static_cast<bool>(0x00000020U & cached_has_bits) * 2;
   {
    // optional int32 label = 5;
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_label());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void NormalizedBBox::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<NormalizedBBox*>(&to_msg);
  auto& from = static_cast<const NormalizedBBox&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.NormalizedBBox)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x000000ffU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.xmin_ = from._impl_.xmin_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.ymin_ = from._impl_.ymin_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.xmax_ = from._impl_.xmax_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.ymax_ = from._impl_.ymax_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.label_ = from._impl_.label_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.difficult_ = from._impl_.difficult_;
    }
    if ((cached_has_bits & 0x00000040U) != 0) {
      _this->_impl_.score_ = from._impl_.score_;
    }
    if ((cached_has_bits & 0x00000080U) != 0) {
      _this->_impl_.size_ = from._impl_.size_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void NormalizedBBox::CopyFrom(const NormalizedBBox& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.NormalizedBBox)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void NormalizedBBox::InternalSwap(NormalizedBBox* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.size_)
      + sizeof(NormalizedBBox::_impl_.size_)
      - PROTOBUF_FIELD_OFFSET(NormalizedBBox, _impl_.xmin_)>(
          reinterpret_cast<char*>(&_impl_.xmin_),
          reinterpret_cast<char*>(&other->_impl_.xmin_));
}

::google::protobuf::Metadata NormalizedBBox::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ROIPoolingParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ROIPoolingParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ROIPoolingParameter, _impl_._has_bits_);
};

ROIPoolingParameter::ROIPoolingParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ROIPoolingParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ROIPoolingParameter)
}
ROIPoolingParameter::ROIPoolingParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const ROIPoolingParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ROIPoolingParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE ROIPoolingParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        spatial_scale_{1} {}

inline void ROIPoolingParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, pooled_h_),
           0,
           offsetof(Impl_, pooled_w_) -
               offsetof(Impl_, pooled_h_) +
               sizeof(Impl_::pooled_w_));
}
ROIPoolingParameter::~ROIPoolingParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ROIPoolingParameter)
  SharedDtor(*this);
}
inline void ROIPoolingParameter::SharedDtor(MessageLite& self) {
  ROIPoolingParameter& this_ = static_cast<ROIPoolingParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ROIPoolingParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ROIPoolingParameter(arena);
}
constexpr auto ROIPoolingParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ROIPoolingParameter),
                                            alignof(ROIPoolingParameter));
}
constexpr auto ROIPoolingParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ROIPoolingParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ROIPoolingParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ROIPoolingParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ROIPoolingParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ROIPoolingParameter>(), &ROIPoolingParameter::ByteSizeLong,
              &ROIPoolingParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ROIPoolingParameter, _impl_._cached_size_),
          false,
      },
      &ROIPoolingParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ROIPoolingParameter_class_data_ =
        ROIPoolingParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ROIPoolingParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ROIPoolingParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ROIPoolingParameter_class_data_.tc_table);
  return ROIPoolingParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
ROIPoolingParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ROIPoolingParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    ROIPoolingParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ROIPoolingParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // optional uint32 pooled_h = 1 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ROIPoolingParameter, _impl_.pooled_h_), 0>(),
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(ROIPoolingParameter, _impl_.pooled_h_)}},
    // optional uint32 pooled_w = 2 [default = 0];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ROIPoolingParameter, _impl_.pooled_w_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(ROIPoolingParameter, _impl_.pooled_w_)}},
    // optional float spatial_scale = 3 [default = 1];
    {::_pbi::TcParser::FastF32S1,
     {29, 2, 0, PROTOBUF_FIELD_OFFSET(ROIPoolingParameter, _impl_.spatial_scale_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 pooled_h = 1 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ROIPoolingParameter, _impl_.pooled_h_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 pooled_w = 2 [default = 0];
    {PROTOBUF_FIELD_OFFSET(ROIPoolingParameter, _impl_.pooled_w_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional float spatial_scale = 3 [default = 1];
    {PROTOBUF_FIELD_OFFSET(ROIPoolingParameter, _impl_.spatial_scale_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void ROIPoolingParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ROIPoolingParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    ::memset(&_impl_.pooled_h_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.pooled_w_) -
        reinterpret_cast<char*>(&_impl_.pooled_h_)) + sizeof(_impl_.pooled_w_));
    _impl_.spatial_scale_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ROIPoolingParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ROIPoolingParameter& this_ = static_cast<const ROIPoolingParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ROIPoolingParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ROIPoolingParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ROIPoolingParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 pooled_h = 1 [default = 0];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_pooled_h(), target);
  }

  // optional uint32 pooled_w = 2 [default = 0];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_pooled_w(), target);
  }

  // optional float spatial_scale = 3 [default = 1];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        3, this_._internal_spatial_scale(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ROIPoolingParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ROIPoolingParameter::ByteSizeLong(const MessageLite& base) {
  const ROIPoolingParameter& this_ = static_cast<const ROIPoolingParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ROIPoolingParameter::ByteSizeLong() const {
  const ROIPoolingParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ROIPoolingParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000004U & cached_has_bits) * 5;
  if ((cached_has_bits & 0x00000003U) != 0) {
    // optional uint32 pooled_h = 1 [default = 0];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_pooled_h());
    }
    // optional uint32 pooled_w = 2 [default = 0];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_pooled_w());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ROIPoolingParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ROIPoolingParameter*>(&to_msg);
  auto& from = static_cast<const ROIPoolingParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ROIPoolingParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.pooled_h_ = from._impl_.pooled_h_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.pooled_w_ = from._impl_.pooled_w_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.spatial_scale_ = from._impl_.spatial_scale_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ROIPoolingParameter::CopyFrom(const ROIPoolingParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ROIPoolingParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ROIPoolingParameter::InternalSwap(ROIPoolingParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ROIPoolingParameter, _impl_.spatial_scale_)
      + sizeof(ROIPoolingParameter::_impl_.spatial_scale_)
      - PROTOBUF_FIELD_OFFSET(ROIPoolingParameter, _impl_.pooled_h_)>(
          reinterpret_cast<char*>(&_impl_.pooled_h_),
          reinterpret_cast<char*>(&other->_impl_.pooled_h_));
}

::google::protobuf::Metadata ROIPoolingParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class ProposalParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<ProposalParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_._has_bits_);
};

ProposalParameter::ProposalParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ProposalParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.ProposalParameter)
}
PROTOBUF_NDEBUG_INLINE ProposalParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::opencv_caffe::ProposalParameter& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        ratio_{visibility, arena, from.ratio_},
        scale_{visibility, arena, from.scale_} {}

ProposalParameter::ProposalParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ProposalParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, ProposalParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ProposalParameter* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, feat_stride_),
           reinterpret_cast<const char *>(&from._impl_) +
               offsetof(Impl_, feat_stride_),
           offsetof(Impl_, nms_thresh_) -
               offsetof(Impl_, feat_stride_) +
               sizeof(Impl_::nms_thresh_));

  // @@protoc_insertion_point(copy_constructor:opencv_caffe.ProposalParameter)
}
PROTOBUF_NDEBUG_INLINE ProposalParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        ratio_{visibility, arena},
        scale_{visibility, arena},
        feat_stride_{16u},
        base_size_{16u},
        min_size_{16u},
        pre_nms_topn_{6000u},
        post_nms_topn_{300u},
        nms_thresh_{0.7f} {}

inline void ProposalParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ProposalParameter::~ProposalParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.ProposalParameter)
  SharedDtor(*this);
}
inline void ProposalParameter::SharedDtor(MessageLite& self) {
  ProposalParameter& this_ = static_cast<ProposalParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL ProposalParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ProposalParameter(arena);
}
constexpr auto ProposalParameter::InternalNewImpl_() {
  constexpr auto arena_bits = ::google::protobuf::internal::EncodePlacementArenaOffsets({
      PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.ratio_) +
          decltype(ProposalParameter::_impl_.ratio_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
      PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.scale_) +
          decltype(ProposalParameter::_impl_.scale_)::
              InternalGetArenaOffset(
                  ::google::protobuf::Message::internal_visibility()),
  });
  if (arena_bits.has_value()) {
    return ::google::protobuf::internal::MessageCreator::CopyInit(
        sizeof(ProposalParameter), alignof(ProposalParameter), *arena_bits);
  } else {
    return ::google::protobuf::internal::MessageCreator(&ProposalParameter::PlacementNew_,
                                 sizeof(ProposalParameter),
                                 alignof(ProposalParameter));
  }
}
constexpr auto ProposalParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_ProposalParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          nullptr,  // IsInitialized
          &ProposalParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<ProposalParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ProposalParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<ProposalParameter>(), &ProposalParameter::ByteSizeLong,
              &ProposalParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_._cached_size_),
          false,
      },
      &ProposalParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull ProposalParameter_class_data_ =
        ProposalParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ProposalParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&ProposalParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(ProposalParameter_class_data_.tc_table);
  return ProposalParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<3, 8, 0, 0, 2>
ProposalParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_._has_bits_),
    0, // no _extensions_
    8, 56,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967040,  // skipmap
    offsetof(decltype(_table_), field_entries),
    8,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    ProposalParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::ProposalParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    // optional float nms_thresh = 8 [default = 0.7];
    {::_pbi::TcParser::FastF32S1,
     {69, 5, 0, PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.nms_thresh_)}},
    // optional uint32 feat_stride = 1 [default = 16];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ProposalParameter, _impl_.feat_stride_), 0>(),
     {8, 0, 0, PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.feat_stride_)}},
    // optional uint32 base_size = 2 [default = 16];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ProposalParameter, _impl_.base_size_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.base_size_)}},
    // optional uint32 min_size = 3 [default = 16];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ProposalParameter, _impl_.min_size_), 2>(),
     {24, 2, 0, PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.min_size_)}},
    // repeated float ratio = 4;
    {::_pbi::TcParser::FastF32R1,
     {37, 63, 0, PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.ratio_)}},
    // repeated float scale = 5;
    {::_pbi::TcParser::FastF32R1,
     {45, 63, 0, PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.scale_)}},
    // optional uint32 pre_nms_topn = 6 [default = 6000];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ProposalParameter, _impl_.pre_nms_topn_), 3>(),
     {48, 3, 0, PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.pre_nms_topn_)}},
    // optional uint32 post_nms_topn = 7 [default = 300];
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(ProposalParameter, _impl_.post_nms_topn_), 4>(),
     {56, 4, 0, PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.post_nms_topn_)}},
  }}, {{
    65535, 65535
  }}, {{
    // optional uint32 feat_stride = 1 [default = 16];
    {PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.feat_stride_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 base_size = 2 [default = 16];
    {PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.base_size_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 min_size = 3 [default = 16];
    {PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.min_size_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // repeated float ratio = 4;
    {PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.ratio_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // repeated float scale = 5;
    {PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.scale_), -1, 0, (0 | ::_fl::kFcRepeated | ::_fl::kFloat)},
    // optional uint32 pre_nms_topn = 6 [default = 6000];
    {PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.pre_nms_topn_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional uint32 post_nms_topn = 7 [default = 300];
    {PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.post_nms_topn_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    // optional float nms_thresh = 8 [default = 0.7];
    {PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.nms_thresh_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void ProposalParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.ProposalParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  _impl_.ratio_.Clear();
  _impl_.scale_.Clear();
  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000003fU) != 0) {
    _impl_.feat_stride_ = 16u;
    _impl_.base_size_ = 16u;
    _impl_.min_size_ = 16u;
    _impl_.pre_nms_topn_ = 6000u;
    _impl_.post_nms_topn_ = 300u;
    _impl_.nms_thresh_ = 0.7f;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ProposalParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ProposalParameter& this_ = static_cast<const ProposalParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ProposalParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ProposalParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.ProposalParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 feat_stride = 1 [default = 16];
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_feat_stride(), target);
  }

  // optional uint32 base_size = 2 [default = 16];
  if ((cached_has_bits & 0x00000002U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_base_size(), target);
  }

  // optional uint32 min_size = 3 [default = 16];
  if ((cached_has_bits & 0x00000004U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        3, this_._internal_min_size(), target);
  }

  // repeated float ratio = 4;
  for (int i = 0, n = this_._internal_ratio_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        4, this_._internal_ratio().Get(i), target);
  }

  // repeated float scale = 5;
  for (int i = 0, n = this_._internal_scale_size(); i < n; ++i) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        5, this_._internal_scale().Get(i), target);
  }

  // optional uint32 pre_nms_topn = 6 [default = 6000];
  if ((cached_has_bits & 0x00000008U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        6, this_._internal_pre_nms_topn(), target);
  }

  // optional uint32 post_nms_topn = 7 [default = 300];
  if ((cached_has_bits & 0x00000010U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        7, this_._internal_post_nms_topn(), target);
  }

  // optional float nms_thresh = 8 [default = 0.7];
  if ((cached_has_bits & 0x00000020U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        8, this_._internal_nms_thresh(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.ProposalParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ProposalParameter::ByteSizeLong(const MessageLite& base) {
  const ProposalParameter& this_ = static_cast<const ProposalParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ProposalParameter::ByteSizeLong() const {
  const ProposalParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.ProposalParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
   {
    // repeated float ratio = 4;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_ratio_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_ratio_size());
      total_size += tag_size + data_size;
    }
    // repeated float scale = 5;
    {
      ::size_t data_size = ::size_t{4} *
          ::_pbi::FromIntSize(this_._internal_scale_size());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_scale_size());
      total_size += tag_size + data_size;
    }
  }
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000020U & cached_has_bits) * 5;
  if ((cached_has_bits & 0x0000001fU) != 0) {
    // optional uint32 feat_stride = 1 [default = 16];
    if ((cached_has_bits & 0x00000001U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_feat_stride());
    }
    // optional uint32 base_size = 2 [default = 16];
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_base_size());
    }
    // optional uint32 min_size = 3 [default = 16];
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_min_size());
    }
    // optional uint32 pre_nms_topn = 6 [default = 6000];
    if ((cached_has_bits & 0x00000008U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_pre_nms_topn());
    }
    // optional uint32 post_nms_topn = 7 [default = 300];
    if ((cached_has_bits & 0x00000010U) != 0) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_post_nms_topn());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void ProposalParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<ProposalParameter*>(&to_msg);
  auto& from = static_cast<const ProposalParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.ProposalParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  _this->_internal_mutable_ratio()->MergeFrom(from._internal_ratio());
  _this->_internal_mutable_scale()->MergeFrom(from._internal_scale());
  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x0000003fU) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.feat_stride_ = from._impl_.feat_stride_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.base_size_ = from._impl_.base_size_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.min_size_ = from._impl_.min_size_;
    }
    if ((cached_has_bits & 0x00000008U) != 0) {
      _this->_impl_.pre_nms_topn_ = from._impl_.pre_nms_topn_;
    }
    if ((cached_has_bits & 0x00000010U) != 0) {
      _this->_impl_.post_nms_topn_ = from._impl_.post_nms_topn_;
    }
    if ((cached_has_bits & 0x00000020U) != 0) {
      _this->_impl_.nms_thresh_ = from._impl_.nms_thresh_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ProposalParameter::CopyFrom(const ProposalParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.ProposalParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ProposalParameter::InternalSwap(ProposalParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.ratio_.InternalSwap(&other->_impl_.ratio_);
  _impl_.scale_.InternalSwap(&other->_impl_.scale_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.nms_thresh_)
      + sizeof(ProposalParameter::_impl_.nms_thresh_)
      - PROTOBUF_FIELD_OFFSET(ProposalParameter, _impl_.feat_stride_)>(
          reinterpret_cast<char*>(&_impl_.feat_stride_),
          reinterpret_cast<char*>(&other->_impl_.feat_stride_));
}

::google::protobuf::Metadata ProposalParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

class PSROIPoolingParameter::_Internal {
 public:
  using HasBits =
      decltype(::std::declval<PSROIPoolingParameter>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(PSROIPoolingParameter, _impl_._has_bits_);
  static bool MissingRequiredFields(const HasBits& has_bits) {
    return ((has_bits[0] & 0x00000007) ^ 0x00000007) != 0;
  }
};

PSROIPoolingParameter::PSROIPoolingParameter(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PSROIPoolingParameter_class_data_.base()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:opencv_caffe.PSROIPoolingParameter)
}
PSROIPoolingParameter::PSROIPoolingParameter(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const PSROIPoolingParameter& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::Message(arena, PSROIPoolingParameter_class_data_.base()),
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::Message(arena),
#endif  // PROTOBUF_CUSTOM_VTABLE
      _impl_(from._impl_) {
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}
PROTOBUF_NDEBUG_INLINE PSROIPoolingParameter::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void PSROIPoolingParameter::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char *>(&_impl_) +
               offsetof(Impl_, spatial_scale_),
           0,
           offsetof(Impl_, group_size_) -
               offsetof(Impl_, spatial_scale_) +
               sizeof(Impl_::group_size_));
}
PSROIPoolingParameter::~PSROIPoolingParameter() {
  // @@protoc_insertion_point(destructor:opencv_caffe.PSROIPoolingParameter)
  SharedDtor(*this);
}
inline void PSROIPoolingParameter::SharedDtor(MessageLite& self) {
  PSROIPoolingParameter& this_ = static_cast<PSROIPoolingParameter&>(self);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

inline void* PROTOBUF_NONNULL PSROIPoolingParameter::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) PSROIPoolingParameter(arena);
}
constexpr auto PSROIPoolingParameter::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(PSROIPoolingParameter),
                                            alignof(PSROIPoolingParameter));
}
constexpr auto PSROIPoolingParameter::InternalGenerateClassData_() {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &_PSROIPoolingParameter_default_instance_._instance,
          &_table_.header,
          nullptr,  // OnDemandRegisterArenaDtor
          PSROIPoolingParameter::IsInitializedImpl,
          &PSROIPoolingParameter::MergeImpl,
          ::google::protobuf::Message::GetNewImpl<PSROIPoolingParameter>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &PSROIPoolingParameter::SharedDtor,
          ::google::protobuf::Message::GetClearImpl<PSROIPoolingParameter>(), &PSROIPoolingParameter::ByteSizeLong,
              &PSROIPoolingParameter::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(PSROIPoolingParameter, _impl_._cached_size_),
          false,
      },
      &PSROIPoolingParameter::kDescriptorMethods,
      &descriptor_table_opencv_2dcaffe_2eproto,
      nullptr,  // tracker
  };
}

PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull PSROIPoolingParameter_class_data_ =
        PSROIPoolingParameter::InternalGenerateClassData_();

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
PSROIPoolingParameter::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&PSROIPoolingParameter_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(PSROIPoolingParameter_class_data_.tc_table);
  return PSROIPoolingParameter_class_data_.base();
}
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::_pbi::TcParseTable<2, 3, 0, 0, 2>
PSROIPoolingParameter::_table_ = {
  {
    PROTOBUF_FIELD_OFFSET(PSROIPoolingParameter, _impl_._has_bits_),
    0, // no _extensions_
    3, 24,  // max_field_number, fast_idx_mask
    offsetof(decltype(_table_), field_lookup_table),
    4294967288,  // skipmap
    offsetof(decltype(_table_), field_entries),
    3,  // num_field_entries
    0,  // num_aux_entries
    offsetof(decltype(_table_), field_names),  // no aux_entries
    PSROIPoolingParameter_class_data_.base(),
    nullptr,  // post_loop_handler
    ::_pbi::TcParser::GenericFallback,  // fallback
    #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
    ::_pbi::TcParser::GetTable<::opencv_caffe::PSROIPoolingParameter>(),  // to_prefetch
    #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
  }, {{
    {::_pbi::TcParser::MiniParse, {}},
    // required float spatial_scale = 1;
    {::_pbi::TcParser::FastF32S1,
     {13, 0, 0, PROTOBUF_FIELD_OFFSET(PSROIPoolingParameter, _impl_.spatial_scale_)}},
    // required int32 output_dim = 2;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PSROIPoolingParameter, _impl_.output_dim_), 1>(),
     {16, 1, 0, PROTOBUF_FIELD_OFFSET(PSROIPoolingParameter, _impl_.output_dim_)}},
    // required int32 group_size = 3;
    {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(PSROIPoolingParameter, _impl_.group_size_), 2>(),
     {24, 2, 0, PROTOBUF_FIELD_OFFSET(PSROIPoolingParameter, _impl_.group_size_)}},
  }}, {{
    65535, 65535
  }}, {{
    // required float spatial_scale = 1;
    {PROTOBUF_FIELD_OFFSET(PSROIPoolingParameter, _impl_.spatial_scale_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kFloat)},
    // required int32 output_dim = 2;
    {PROTOBUF_FIELD_OFFSET(PSROIPoolingParameter, _impl_.output_dim_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    // required int32 group_size = 3;
    {PROTOBUF_FIELD_OFFSET(PSROIPoolingParameter, _impl_.group_size_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
  }},
  // no aux_entries
  {{
  }},
};
PROTOBUF_NOINLINE void PSROIPoolingParameter::Clear() {
// @@protoc_insertion_point(message_clear_start:opencv_caffe.PSROIPoolingParameter)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    ::memset(&_impl_.spatial_scale_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.group_size_) -
        reinterpret_cast<char*>(&_impl_.spatial_scale_)) + sizeof(_impl_.group_size_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL PSROIPoolingParameter::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const PSROIPoolingParameter& this_ = static_cast<const PSROIPoolingParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL PSROIPoolingParameter::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const PSROIPoolingParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    this_.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:opencv_caffe.PSROIPoolingParameter)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // required float spatial_scale = 1;
  if ((cached_has_bits & 0x00000001U) != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(
        1, this_._internal_spatial_scale(), target);
  }

  // required int32 output_dim = 2;
  if ((cached_has_bits & 0x00000002U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_output_dim(), target);
  }

  // required int32 group_size = 3;
  if ((cached_has_bits & 0x00000004U) != 0) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_group_size(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:opencv_caffe.PSROIPoolingParameter)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t PSROIPoolingParameter::ByteSizeLong(const MessageLite& base) {
  const PSROIPoolingParameter& this_ = static_cast<const PSROIPoolingParameter&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t PSROIPoolingParameter::ByteSizeLong() const {
  const PSROIPoolingParameter& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:opencv_caffe.PSROIPoolingParameter)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000001U & cached_has_bits) * 5;
  if ((cached_has_bits & 0x00000006U) != 0) {
    // required int32 output_dim = 2;
    if ((cached_has_bits & 0x00000002U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_output_dim());
    }
    // required int32 group_size = 3;
    if ((cached_has_bits & 0x00000004U) != 0) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_group_size());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void PSROIPoolingParameter::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) {
  auto* const _this = static_cast<PSROIPoolingParameter*>(&to_msg);
  auto& from = static_cast<const PSROIPoolingParameter&>(from_msg);
  if constexpr (::_pbi::DebugHardenVerifyHasBitConsistency()) {
    from.VerifyHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:opencv_caffe.PSROIPoolingParameter)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if ((cached_has_bits & 0x00000007U) != 0) {
    if ((cached_has_bits & 0x00000001U) != 0) {
      _this->_impl_.spatial_scale_ = from._impl_.spatial_scale_;
    }
    if ((cached_has_bits & 0x00000002U) != 0) {
      _this->_impl_.output_dim_ = from._impl_.output_dim_;
    }
    if ((cached_has_bits & 0x00000004U) != 0) {
      _this->_impl_.group_size_ = from._impl_.group_size_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void PSROIPoolingParameter::CopyFrom(const PSROIPoolingParameter& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:opencv_caffe.PSROIPoolingParameter)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

PROTOBUF_NOINLINE bool PSROIPoolingParameter::IsInitializedImpl(
    const MessageLite& msg) {
  auto& this_ = static_cast<const PSROIPoolingParameter&>(msg);
  if (_Internal::MissingRequiredFields(this_._impl_._has_bits_)) {
    return false;
  }
  return true;
}

void PSROIPoolingParameter::InternalSwap(PSROIPoolingParameter* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(PSROIPoolingParameter, _impl_.group_size_)
      + sizeof(PSROIPoolingParameter::_impl_.group_size_)
      - PROTOBUF_FIELD_OFFSET(PSROIPoolingParameter, _impl_.spatial_scale_)>(
          reinterpret_cast<char*>(&_impl_.spatial_scale_),
          reinterpret_cast<char*>(&other->_impl_.spatial_scale_));
}

::google::protobuf::Metadata PSROIPoolingParameter::GetMetadata() const {
  return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full());
}
// @@protoc_insertion_point(namespace_scope)
}  // namespace opencv_caffe
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
    _static_init2_ [[maybe_unused]] =
        (::_pbi::AddDescriptors(&descriptor_table_opencv_2dcaffe_2eproto),
         ::std::false_type{});
#include "google/protobuf/port_undef.inc"
