// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: policy/v1beta1/type.proto

// Describes the rules used to configure Mixer's policy and telemetry features.

package v1beta1

import (
	bytes "bytes"
	encoding_binary "encoding/binary"
	fmt "fmt"
	proto "github.com/gogo/protobuf/proto"
	github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
	types "github.com/gogo/protobuf/types"
	io "io"
	math "math"
	math_bits "math/bits"
	reflect "reflect"
	strings "strings"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package

// An instance field of type Value denotes that the expression for the field is of dynamic type and can evaluate to any
// [ValueType][istio.policy.v1beta1.ValueType] enum values. For example, when
// authoring an instance configuration for a template that has a field `data` of type `istio.policy.v1beta1.Value`,
// both of the following expressions are valid `data: source.ip | ip("0.0.0.0")`, `data: request.id | ""`;
// the resulting type is either ValueType.IP_ADDRESS or ValueType.STRING for the two cases respectively.
//
// Objects of type Value are also passed to the adapters during request-time. There is a 1:1 mapping between
// oneof fields in `Value` and enum values inside `ValueType`. Depending on the expression's evaluated `ValueType`,
// the equivalent oneof field in `Value` is populated by Mixer and passed to the adapters.
type Value struct {
	// Types that are valid to be assigned to Value:
	//	*Value_StringValue
	//	*Value_Int64Value
	//	*Value_DoubleValue
	//	*Value_BoolValue
	//	*Value_IpAddressValue
	//	*Value_TimestampValue
	//	*Value_DurationValue
	//	*Value_EmailAddressValue
	//	*Value_DnsNameValue
	//	*Value_UriValue
	//	*Value_StringMapValue
	Value isValue_Value `protobuf_oneof:"value"`
}

func (m *Value) Reset()      { *m = Value{} }
func (*Value) ProtoMessage() {}
func (*Value) Descriptor() ([]byte, []int) {
	return fileDescriptor_81aa672910c4f44d, []int{0}
}
func (m *Value) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Value) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Value.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Value) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Value.Merge(m, src)
}
func (m *Value) XXX_Size() int {
	return m.Size()
}
func (m *Value) XXX_DiscardUnknown() {
	xxx_messageInfo_Value.DiscardUnknown(m)
}

var xxx_messageInfo_Value proto.InternalMessageInfo

type isValue_Value interface {
	isValue_Value()
	Equal(interface{}) bool
	MarshalTo([]byte) (int, error)
	Size() int
}

type Value_StringValue struct {
	StringValue string `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"`
}
type Value_Int64Value struct {
	Int64Value int64 `protobuf:"varint,2,opt,name=int64_value,json=int64Value,proto3,oneof"`
}
type Value_DoubleValue struct {
	DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,proto3,oneof"`
}
type Value_BoolValue struct {
	BoolValue bool `protobuf:"varint,4,opt,name=bool_value,json=boolValue,proto3,oneof"`
}
type Value_IpAddressValue struct {
	IpAddressValue *IPAddress `protobuf:"bytes,5,opt,name=ip_address_value,json=ipAddressValue,proto3,oneof"`
}
type Value_TimestampValue struct {
	TimestampValue *TimeStamp `protobuf:"bytes,6,opt,name=timestamp_value,json=timestampValue,proto3,oneof"`
}
type Value_DurationValue struct {
	DurationValue *Duration `protobuf:"bytes,7,opt,name=duration_value,json=durationValue,proto3,oneof"`
}
type Value_EmailAddressValue struct {
	EmailAddressValue *EmailAddress `protobuf:"bytes,8,opt,name=email_address_value,json=emailAddressValue,proto3,oneof"`
}
type Value_DnsNameValue struct {
	DnsNameValue *DNSName `protobuf:"bytes,9,opt,name=dns_name_value,json=dnsNameValue,proto3,oneof"`
}
type Value_UriValue struct {
	UriValue *Uri `protobuf:"bytes,10,opt,name=uri_value,json=uriValue,proto3,oneof"`
}
type Value_StringMapValue struct {
	StringMapValue *StringMap `protobuf:"bytes,11,opt,name=string_map_value,json=stringMapValue,proto3,oneof"`
}

func (*Value_StringValue) isValue_Value()       {}
func (*Value_Int64Value) isValue_Value()        {}
func (*Value_DoubleValue) isValue_Value()       {}
func (*Value_BoolValue) isValue_Value()         {}
func (*Value_IpAddressValue) isValue_Value()    {}
func (*Value_TimestampValue) isValue_Value()    {}
func (*Value_DurationValue) isValue_Value()     {}
func (*Value_EmailAddressValue) isValue_Value() {}
func (*Value_DnsNameValue) isValue_Value()      {}
func (*Value_UriValue) isValue_Value()          {}
func (*Value_StringMapValue) isValue_Value()    {}

func (m *Value) GetValue() isValue_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (m *Value) GetStringValue() string {
	if x, ok := m.GetValue().(*Value_StringValue); ok {
		return x.StringValue
	}
	return ""
}

func (m *Value) GetInt64Value() int64 {
	if x, ok := m.GetValue().(*Value_Int64Value); ok {
		return x.Int64Value
	}
	return 0
}

func (m *Value) GetDoubleValue() float64 {
	if x, ok := m.GetValue().(*Value_DoubleValue); ok {
		return x.DoubleValue
	}
	return 0
}

func (m *Value) GetBoolValue() bool {
	if x, ok := m.GetValue().(*Value_BoolValue); ok {
		return x.BoolValue
	}
	return false
}

func (m *Value) GetIpAddressValue() *IPAddress {
	if x, ok := m.GetValue().(*Value_IpAddressValue); ok {
		return x.IpAddressValue
	}
	return nil
}

func (m *Value) GetTimestampValue() *TimeStamp {
	if x, ok := m.GetValue().(*Value_TimestampValue); ok {
		return x.TimestampValue
	}
	return nil
}

func (m *Value) GetDurationValue() *Duration {
	if x, ok := m.GetValue().(*Value_DurationValue); ok {
		return x.DurationValue
	}
	return nil
}

func (m *Value) GetEmailAddressValue() *EmailAddress {
	if x, ok := m.GetValue().(*Value_EmailAddressValue); ok {
		return x.EmailAddressValue
	}
	return nil
}

func (m *Value) GetDnsNameValue() *DNSName {
	if x, ok := m.GetValue().(*Value_DnsNameValue); ok {
		return x.DnsNameValue
	}
	return nil
}

func (m *Value) GetUriValue() *Uri {
	if x, ok := m.GetValue().(*Value_UriValue); ok {
		return x.UriValue
	}
	return nil
}

func (m *Value) GetStringMapValue() *StringMap {
	if x, ok := m.GetValue().(*Value_StringMapValue); ok {
		return x.StringMapValue
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*Value) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*Value_StringValue)(nil),
		(*Value_Int64Value)(nil),
		(*Value_DoubleValue)(nil),
		(*Value_BoolValue)(nil),
		(*Value_IpAddressValue)(nil),
		(*Value_TimestampValue)(nil),
		(*Value_DurationValue)(nil),
		(*Value_EmailAddressValue)(nil),
		(*Value_DnsNameValue)(nil),
		(*Value_UriValue)(nil),
		(*Value_StringMapValue)(nil),
	}
}

// An instance field of type IPAddress denotes that the expression for the field must evaluate to
// [ValueType.IP_ADDRESS][istio.policy.v1beta1.ValueType.IP_ADDRESS]
//
// Objects of type IPAddress are also passed to the adapters during request-time for the instance fields of
// type IPAddress
type IPAddress struct {
	// IPAddress encoded as bytes.
	Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}

func (m *IPAddress) Reset()      { *m = IPAddress{} }
func (*IPAddress) ProtoMessage() {}
func (*IPAddress) Descriptor() ([]byte, []int) {
	return fileDescriptor_81aa672910c4f44d, []int{1}
}
func (m *IPAddress) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *IPAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_IPAddress.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *IPAddress) XXX_Merge(src proto.Message) {
	xxx_messageInfo_IPAddress.Merge(m, src)
}
func (m *IPAddress) XXX_Size() int {
	return m.Size()
}
func (m *IPAddress) XXX_DiscardUnknown() {
	xxx_messageInfo_IPAddress.DiscardUnknown(m)
}

var xxx_messageInfo_IPAddress proto.InternalMessageInfo

func (m *IPAddress) GetValue() []byte {
	if m != nil {
		return m.Value
	}
	return nil
}

// An instance field of type Duration denotes that the expression for the field must evaluate to
// [ValueType.DURATION][istio.policy.v1beta1.ValueType.DURATION]
//
// Objects of type Duration are also passed to the adapters during request-time for the instance fields of
// type Duration
type Duration struct {
	// Duration encoded as google.protobuf.Duration.
	Value *types.Duration `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}

func (m *Duration) Reset()      { *m = Duration{} }
func (*Duration) ProtoMessage() {}
func (*Duration) Descriptor() ([]byte, []int) {
	return fileDescriptor_81aa672910c4f44d, []int{2}
}
func (m *Duration) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Duration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Duration.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Duration) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Duration.Merge(m, src)
}
func (m *Duration) XXX_Size() int {
	return m.Size()
}
func (m *Duration) XXX_DiscardUnknown() {
	xxx_messageInfo_Duration.DiscardUnknown(m)
}

var xxx_messageInfo_Duration proto.InternalMessageInfo

func (m *Duration) GetValue() *types.Duration {
	if m != nil {
		return m.Value
	}
	return nil
}

// An instance field of type TimeStamp denotes that the expression for the field must evaluate to
// [ValueType.TIMESTAMP][istio.policy.v1beta1.ValueType.TIMESTAMP]
//
// Objects of type TimeStamp are also passed to the adapters during request-time for the instance fields of
// type TimeStamp
type TimeStamp struct {
	// TimeStamp encoded as google.protobuf.Timestamp.
	Value *types.Timestamp `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}

func (m *TimeStamp) Reset()      { *m = TimeStamp{} }
func (*TimeStamp) ProtoMessage() {}
func (*TimeStamp) Descriptor() ([]byte, []int) {
	return fileDescriptor_81aa672910c4f44d, []int{3}
}
func (m *TimeStamp) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *TimeStamp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_TimeStamp.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *TimeStamp) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TimeStamp.Merge(m, src)
}
func (m *TimeStamp) XXX_Size() int {
	return m.Size()
}
func (m *TimeStamp) XXX_DiscardUnknown() {
	xxx_messageInfo_TimeStamp.DiscardUnknown(m)
}

var xxx_messageInfo_TimeStamp proto.InternalMessageInfo

func (m *TimeStamp) GetValue() *types.Timestamp {
	if m != nil {
		return m.Value
	}
	return nil
}

// An instance field of type DNSName denotes that the expression for the field must evaluate to
// [ValueType.DNS_NAME][istio.policy.v1beta1.ValueType.DNS_NAME]
//
// Objects of type DNSName are also passed to the adapters during request-time for the instance fields of
// type DNSName
type DNSName struct {
	// DNSName encoded as string.
	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}

func (m *DNSName) Reset()      { *m = DNSName{} }
func (*DNSName) ProtoMessage() {}
func (*DNSName) Descriptor() ([]byte, []int) {
	return fileDescriptor_81aa672910c4f44d, []int{4}
}
func (m *DNSName) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *DNSName) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_DNSName.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *DNSName) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DNSName.Merge(m, src)
}
func (m *DNSName) XXX_Size() int {
	return m.Size()
}
func (m *DNSName) XXX_DiscardUnknown() {
	xxx_messageInfo_DNSName.DiscardUnknown(m)
}

var xxx_messageInfo_DNSName proto.InternalMessageInfo

func (m *DNSName) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

// An instance field of type StringMap denotes that the expression for the field must evaluate to
// [ValueType.STRING_MAP][istio.policy.v1beta1.ValueType.STRING_MAP]
//
// Objects of type StringMap are also passed to the adapters during request-time for the instance fields of
// type StringMap
type StringMap struct {
	// StringMap encoded as a map of strings
	Value map[string]string `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (m *StringMap) Reset()      { *m = StringMap{} }
func (*StringMap) ProtoMessage() {}
func (*StringMap) Descriptor() ([]byte, []int) {
	return fileDescriptor_81aa672910c4f44d, []int{5}
}
func (m *StringMap) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *StringMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_StringMap.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *StringMap) XXX_Merge(src proto.Message) {
	xxx_messageInfo_StringMap.Merge(m, src)
}
func (m *StringMap) XXX_Size() int {
	return m.Size()
}
func (m *StringMap) XXX_DiscardUnknown() {
	xxx_messageInfo_StringMap.DiscardUnknown(m)
}

var xxx_messageInfo_StringMap proto.InternalMessageInfo

func (m *StringMap) GetValue() map[string]string {
	if m != nil {
		return m.Value
	}
	return nil
}

// DO NOT USE !! Under Development
// An instance field of type EmailAddress denotes that the expression for the field must evaluate to
// [ValueType.EMAIL_ADDRESS][istio.policy.v1beta1.ValueType.EMAIL_ADDRESS]
//
// Objects of type EmailAddress are also passed to the adapters during request-time for the instance fields of
// type EmailAddress
type EmailAddress struct {
	// EmailAddress encoded as string.
	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}

func (m *EmailAddress) Reset()      { *m = EmailAddress{} }
func (*EmailAddress) ProtoMessage() {}
func (*EmailAddress) Descriptor() ([]byte, []int) {
	return fileDescriptor_81aa672910c4f44d, []int{6}
}
func (m *EmailAddress) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *EmailAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_EmailAddress.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *EmailAddress) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EmailAddress.Merge(m, src)
}
func (m *EmailAddress) XXX_Size() int {
	return m.Size()
}
func (m *EmailAddress) XXX_DiscardUnknown() {
	xxx_messageInfo_EmailAddress.DiscardUnknown(m)
}

var xxx_messageInfo_EmailAddress proto.InternalMessageInfo

func (m *EmailAddress) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

// DO NOT USE !! Under Development
// An instance field of type Uri denotes that the expression for the field must evaluate to
// [ValueType.URI][istio.policy.v1beta1.ValueType.URI]
//
// Objects of type Uri are also passed to the adapters during request-time for the instance fields of
// type Uri
type Uri struct {
	// Uri encoded as string.
	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}

func (m *Uri) Reset()      { *m = Uri{} }
func (*Uri) ProtoMessage() {}
func (*Uri) Descriptor() ([]byte, []int) {
	return fileDescriptor_81aa672910c4f44d, []int{7}
}
func (m *Uri) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Uri) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_Uri.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalToSizedBuffer(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (m *Uri) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Uri.Merge(m, src)
}
func (m *Uri) XXX_Size() int {
	return m.Size()
}
func (m *Uri) XXX_DiscardUnknown() {
	xxx_messageInfo_Uri.DiscardUnknown(m)
}

var xxx_messageInfo_Uri proto.InternalMessageInfo

func (m *Uri) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

func init() {
	proto.RegisterType((*Value)(nil), "istio.policy.v1beta1.Value")
	proto.RegisterType((*IPAddress)(nil), "istio.policy.v1beta1.IPAddress")
	proto.RegisterType((*Duration)(nil), "istio.policy.v1beta1.Duration")
	proto.RegisterType((*TimeStamp)(nil), "istio.policy.v1beta1.TimeStamp")
	proto.RegisterType((*DNSName)(nil), "istio.policy.v1beta1.DNSName")
	proto.RegisterType((*StringMap)(nil), "istio.policy.v1beta1.StringMap")
	proto.RegisterMapType((map[string]string)(nil), "istio.policy.v1beta1.StringMap.ValueEntry")
	proto.RegisterType((*EmailAddress)(nil), "istio.policy.v1beta1.EmailAddress")
	proto.RegisterType((*Uri)(nil), "istio.policy.v1beta1.Uri")
}

func init() { proto.RegisterFile("policy/v1beta1/type.proto", fileDescriptor_81aa672910c4f44d) }

var fileDescriptor_81aa672910c4f44d = []byte{
	// 598 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x94, 0x3f, 0x6f, 0xd3, 0x4e,
	0x18, 0xc7, 0xef, 0x9a, 0x5f, 0xda, 0xf8, 0x49, 0x7e, 0xa5, 0x98, 0x0e, 0x34, 0x15, 0x97, 0x34,
	0x30, 0x58, 0x0c, 0x36, 0x2d, 0x08, 0x55, 0x20, 0x24, 0xa8, 0x88, 0x30, 0x20, 0x2a, 0x70, 0x52,
	0x06, 0x96, 0xc8, 0xc1, 0x47, 0x74, 0xc2, 0xff, 0xe4, 0x3f, 0x95, 0xb2, 0xb1, 0xb1, 0xf2, 0x22,
	0x18, 0x78, 0x29, 0x8c, 0x19, 0x3b, 0x12, 0x67, 0x61, 0xec, 0x4b, 0x40, 0xbe, 0x3b, 0x3b, 0x49,
	0x49, 0xcb, 0xe6, 0x7b, 0xfc, 0x79, 0x3e, 0x79, 0xee, 0x7b, 0xe7, 0xc0, 0x4e, 0x18, 0xb8, 0xec,
	0xe3, 0xd8, 0x38, 0xdd, 0x1f, 0xd2, 0xc4, 0xde, 0x37, 0x92, 0x71, 0x48, 0xf5, 0x30, 0x0a, 0x92,
	0x40, 0xdd, 0x66, 0x71, 0xc2, 0x02, 0x5d, 0x00, 0xba, 0x04, 0x9a, 0x64, 0x14, 0x04, 0x23, 0x97,
	0x1a, 0x9c, 0x19, 0xa6, 0x9f, 0x0c, 0x27, 0x8d, 0xec, 0x84, 0x05, 0xbe, 0xe8, 0x6a, 0xb6, 0x2e,
	0xbe, 0x4f, 0x98, 0x47, 0xe3, 0xc4, 0xf6, 0x42, 0x01, 0x74, 0xbe, 0x57, 0xa1, 0xfa, 0xde, 0x76,
	0x53, 0xaa, 0xde, 0x86, 0x46, 0x9c, 0x44, 0xcc, 0x1f, 0x0d, 0x4e, 0xf3, 0xf5, 0x4d, 0xdc, 0xc6,
	0x9a, 0x62, 0x22, 0xab, 0x2e, 0xaa, 0x02, 0xda, 0x83, 0x3a, 0xf3, 0x93, 0x87, 0x0f, 0x24, 0xb3,
	0xd6, 0xc6, 0x5a, 0xc5, 0x44, 0x16, 0xf0, 0x62, 0xe9, 0x71, 0x82, 0x74, 0xe8, 0x52, 0xc9, 0x54,
	0xda, 0x58, 0xc3, 0xb9, 0x47, 0x54, 0x05, 0xd4, 0x02, 0x18, 0x06, 0x81, 0x2b, 0x91, 0xff, 0xda,
	0x58, 0xab, 0x99, 0xc8, 0x52, 0xf2, 0x9a, 0x00, 0x5e, 0xc3, 0x16, 0x0b, 0x07, 0xb6, 0xe3, 0x44,
	0x34, 0x8e, 0x25, 0x56, 0x6d, 0x63, 0xad, 0x7e, 0xd0, 0xd2, 0x57, 0x25, 0xa1, 0xbf, 0x7c, 0xfb,
	0x4c, 0xc0, 0x26, 0xb2, 0x36, 0x59, 0x28, 0x17, 0x42, 0xf6, 0x0a, 0xae, 0x95, 0xfb, 0x96, 0xae,
	0xf5, 0xab, 0x5c, 0x7d, 0xe6, 0xd1, 0x5e, 0x0e, 0xe7, 0xae, 0xb2, 0x53, 0xb8, 0x5e, 0xc0, 0x66,
	0x91, 0xb1, 0x54, 0x6d, 0x70, 0x15, 0x59, 0xad, 0x7a, 0x2e, 0x59, 0x13, 0x59, 0xff, 0x17, 0x7d,
	0x42, 0xd4, 0x87, 0x1b, 0xd4, 0xb3, 0x99, 0x7b, 0x61, 0x93, 0x35, 0x6e, 0xeb, 0xac, 0xb6, 0x75,
	0xf3, 0x86, 0xf9, 0x3e, 0xaf, 0xd3, 0x85, 0xb5, 0xb0, 0x76, 0x61, 0xd3, 0xf1, 0xe3, 0x81, 0x6f,
	0x7b, 0x45, 0xfe, 0x0a, 0x17, 0xde, 0xba, 0x64, 0xbc, 0xe3, 0xde, 0xb1, 0xed, 0x51, 0x13, 0x59,
	0x0d, 0xc7, 0x8f, 0xf3, 0x47, 0xa1, 0x39, 0x04, 0x25, 0x8d, 0x98, 0x34, 0x00, 0x37, 0xec, 0xac,
	0x36, 0x9c, 0x44, 0xcc, 0x44, 0x56, 0x2d, 0x8d, 0x58, 0x79, 0x70, 0xf2, 0x1a, 0x79, 0x76, 0x11,
	0x76, 0xfd, 0xaa, 0xb0, 0x7b, 0x9c, 0x7e, 0x63, 0xf3, 0xb0, 0xe3, 0x62, 0xc1, 0x65, 0x47, 0x1b,
	0x50, 0xe5, 0x86, 0xce, 0x1e, 0x28, 0xe5, 0x01, 0xab, 0xdb, 0xb2, 0xca, 0xaf, 0x68, 0xc3, 0x92,
	0xc8, 0x63, 0xa8, 0x15, 0x61, 0xab, 0xc6, 0x22, 0x91, 0x8f, 0x2e, 0x3e, 0x03, 0xbd, 0xf8, 0x0c,
	0xca, 0x63, 0x29, 0x9a, 0x9f, 0x80, 0x52, 0x1e, 0xba, 0x7a, 0x6f, 0xb9, 0xbb, 0xf9, 0x57, 0x77,
	0xbf, 0xb8, 0x12, 0x45, 0x7b, 0x0b, 0x36, 0x64, 0x92, 0xcb, 0xc3, 0x29, 0x05, 0xf0, 0x15, 0x83,
	0x52, 0x6e, 0x54, 0x7d, 0x3a, 0x67, 0x2a, 0x5a, 0xfd, 0xe0, 0xee, 0x3f, 0x82, 0xd1, 0x79, 0x18,
	0x5d, 0x3f, 0x89, 0xc6, 0xd2, 0xd7, 0x3c, 0x04, 0x98, 0x17, 0xd5, 0x2d, 0xa8, 0x7c, 0xa6, 0x63,
	0xf9, 0x8b, 0xf9, 0xe3, 0x7c, 0x8a, 0xb5, 0x85, 0x29, 0x1e, 0xad, 0x1d, 0xe2, 0xce, 0x1d, 0x68,
	0x2c, 0xde, 0xa2, 0x4b, 0xe6, 0xdd, 0x85, 0xca, 0x49, 0xc4, 0x56, 0xbf, 0x3c, 0x7a, 0x37, 0x99,
	0x12, 0x74, 0x36, 0x25, 0xe8, 0x7c, 0x4a, 0xf0, 0x97, 0x8c, 0xe0, 0x1f, 0x19, 0xc1, 0x3f, 0x33,
	0x82, 0x27, 0x19, 0xc1, 0xbf, 0x32, 0x82, 0x7f, 0x67, 0x04, 0x9d, 0x67, 0x04, 0x7f, 0x9b, 0x11,
	0x34, 0x99, 0x11, 0x74, 0x36, 0x23, 0xe8, 0xc3, 0xae, 0xd8, 0x24, 0x0b, 0x0c, 0x3b, 0x64, 0xc6,
	0xf2, 0x1f, 0xdd, 0x70, 0x9d, 0x67, 0x7b, 0xff, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x50,
	0x49, 0xab, 0x01, 0x05, 0x00, 0x00,
}

func (this *Value) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value)
	if !ok {
		that2, ok := that.(Value)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if that1.Value == nil {
		if this.Value != nil {
			return false
		}
	} else if this.Value == nil {
		return false
	} else if !this.Value.Equal(that1.Value) {
		return false
	}
	return true
}
func (this *Value_StringValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_StringValue)
	if !ok {
		that2, ok := that.(Value_StringValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.StringValue != that1.StringValue {
		return false
	}
	return true
}
func (this *Value_Int64Value) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_Int64Value)
	if !ok {
		that2, ok := that.(Value_Int64Value)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Int64Value != that1.Int64Value {
		return false
	}
	return true
}
func (this *Value_DoubleValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_DoubleValue)
	if !ok {
		that2, ok := that.(Value_DoubleValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.DoubleValue != that1.DoubleValue {
		return false
	}
	return true
}
func (this *Value_BoolValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_BoolValue)
	if !ok {
		that2, ok := that.(Value_BoolValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.BoolValue != that1.BoolValue {
		return false
	}
	return true
}
func (this *Value_IpAddressValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_IpAddressValue)
	if !ok {
		that2, ok := that.(Value_IpAddressValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.IpAddressValue.Equal(that1.IpAddressValue) {
		return false
	}
	return true
}
func (this *Value_TimestampValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_TimestampValue)
	if !ok {
		that2, ok := that.(Value_TimestampValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.TimestampValue.Equal(that1.TimestampValue) {
		return false
	}
	return true
}
func (this *Value_DurationValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_DurationValue)
	if !ok {
		that2, ok := that.(Value_DurationValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.DurationValue.Equal(that1.DurationValue) {
		return false
	}
	return true
}
func (this *Value_EmailAddressValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_EmailAddressValue)
	if !ok {
		that2, ok := that.(Value_EmailAddressValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.EmailAddressValue.Equal(that1.EmailAddressValue) {
		return false
	}
	return true
}
func (this *Value_DnsNameValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_DnsNameValue)
	if !ok {
		that2, ok := that.(Value_DnsNameValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.DnsNameValue.Equal(that1.DnsNameValue) {
		return false
	}
	return true
}
func (this *Value_UriValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_UriValue)
	if !ok {
		that2, ok := that.(Value_UriValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.UriValue.Equal(that1.UriValue) {
		return false
	}
	return true
}
func (this *Value_StringMapValue) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Value_StringMapValue)
	if !ok {
		that2, ok := that.(Value_StringMapValue)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.StringMapValue.Equal(that1.StringMapValue) {
		return false
	}
	return true
}
func (this *IPAddress) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*IPAddress)
	if !ok {
		that2, ok := that.(IPAddress)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !bytes.Equal(this.Value, that1.Value) {
		return false
	}
	return true
}
func (this *Duration) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Duration)
	if !ok {
		that2, ok := that.(Duration)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Value.Equal(that1.Value) {
		return false
	}
	return true
}
func (this *TimeStamp) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*TimeStamp)
	if !ok {
		that2, ok := that.(TimeStamp)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.Value.Equal(that1.Value) {
		return false
	}
	return true
}
func (this *DNSName) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*DNSName)
	if !ok {
		that2, ok := that.(DNSName)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Value != that1.Value {
		return false
	}
	return true
}
func (this *StringMap) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*StringMap)
	if !ok {
		that2, ok := that.(StringMap)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if len(this.Value) != len(that1.Value) {
		return false
	}
	for i := range this.Value {
		if this.Value[i] != that1.Value[i] {
			return false
		}
	}
	return true
}
func (this *EmailAddress) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*EmailAddress)
	if !ok {
		that2, ok := that.(EmailAddress)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Value != that1.Value {
		return false
	}
	return true
}
func (this *Uri) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*Uri)
	if !ok {
		that2, ok := that.(Uri)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Value != that1.Value {
		return false
	}
	return true
}
func (this *Value) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 15)
	s = append(s, "&v1beta1.Value{")
	if this.Value != nil {
		s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Value_StringValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_StringValue{` +
		`StringValue:` + fmt.Sprintf("%#v", this.StringValue) + `}`}, ", ")
	return s
}
func (this *Value_Int64Value) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_Int64Value{` +
		`Int64Value:` + fmt.Sprintf("%#v", this.Int64Value) + `}`}, ", ")
	return s
}
func (this *Value_DoubleValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_DoubleValue{` +
		`DoubleValue:` + fmt.Sprintf("%#v", this.DoubleValue) + `}`}, ", ")
	return s
}
func (this *Value_BoolValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_BoolValue{` +
		`BoolValue:` + fmt.Sprintf("%#v", this.BoolValue) + `}`}, ", ")
	return s
}
func (this *Value_IpAddressValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_IpAddressValue{` +
		`IpAddressValue:` + fmt.Sprintf("%#v", this.IpAddressValue) + `}`}, ", ")
	return s
}
func (this *Value_TimestampValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_TimestampValue{` +
		`TimestampValue:` + fmt.Sprintf("%#v", this.TimestampValue) + `}`}, ", ")
	return s
}
func (this *Value_DurationValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_DurationValue{` +
		`DurationValue:` + fmt.Sprintf("%#v", this.DurationValue) + `}`}, ", ")
	return s
}
func (this *Value_EmailAddressValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_EmailAddressValue{` +
		`EmailAddressValue:` + fmt.Sprintf("%#v", this.EmailAddressValue) + `}`}, ", ")
	return s
}
func (this *Value_DnsNameValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_DnsNameValue{` +
		`DnsNameValue:` + fmt.Sprintf("%#v", this.DnsNameValue) + `}`}, ", ")
	return s
}
func (this *Value_UriValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_UriValue{` +
		`UriValue:` + fmt.Sprintf("%#v", this.UriValue) + `}`}, ", ")
	return s
}
func (this *Value_StringMapValue) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&v1beta1.Value_StringMapValue{` +
		`StringMapValue:` + fmt.Sprintf("%#v", this.StringMapValue) + `}`}, ", ")
	return s
}
func (this *IPAddress) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.IPAddress{")
	s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Duration) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.Duration{")
	if this.Value != nil {
		s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *TimeStamp) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.TimeStamp{")
	if this.Value != nil {
		s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *DNSName) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.DNSName{")
	s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *StringMap) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.StringMap{")
	keysForValue := make([]string, 0, len(this.Value))
	for k, _ := range this.Value {
		keysForValue = append(keysForValue, k)
	}
	github_com_gogo_protobuf_sortkeys.Strings(keysForValue)
	mapStringForValue := "map[string]string{"
	for _, k := range keysForValue {
		mapStringForValue += fmt.Sprintf("%#v: %#v,", k, this.Value[k])
	}
	mapStringForValue += "}"
	if this.Value != nil {
		s = append(s, "Value: "+mapStringForValue+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *EmailAddress) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.EmailAddress{")
	s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *Uri) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&v1beta1.Uri{")
	s = append(s, "Value: "+fmt.Sprintf("%#v", this.Value)+",\n")
	s = append(s, "}")
	return strings.Join(s, "")
}
func valueToGoStringType(v interface{}, typ string) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv)
}
func (m *Value) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Value) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Value) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Value != nil {
		{
			size := m.Value.Size()
			i -= size
			if _, err := m.Value.MarshalTo(dAtA[i:]); err != nil {
				return 0, err
			}
		}
	}
	return len(dAtA) - i, nil
}

func (m *Value_StringValue) MarshalTo(dAtA []byte) (int, error) {
	return m.MarshalToSizedBuffer(dAtA[:m.Size()])
}

func (m *Value_StringValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	i -= len(m.StringValue)
	copy(dAtA[i:], m.StringValue)
	i = encodeVarintType(dAtA, i, uint64(len(m.StringValue)))
	i--
	dAtA[i] = 0xa
	return len(dAtA) - i, nil
}
func (m *Value_Int64Value) MarshalTo(dAtA []byte) (int, error) {
	return m.MarshalToSizedBuffer(dAtA[:m.Size()])
}

func (m *Value_Int64Value) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	i = encodeVarintType(dAtA, i, uint64(m.Int64Value))
	i--
	dAtA[i] = 0x10
	return len(dAtA) - i, nil
}
func (m *Value_DoubleValue) MarshalTo(dAtA []byte) (int, error) {
	return m.MarshalToSizedBuffer(dAtA[:m.Size()])
}

func (m *Value_DoubleValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	i -= 8
	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.DoubleValue))))
	i--
	dAtA[i] = 0x19
	return len(dAtA) - i, nil
}
func (m *Value_BoolValue) MarshalTo(dAtA []byte) (int, error) {
	return m.MarshalToSizedBuffer(dAtA[:m.Size()])
}

func (m *Value_BoolValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	i--
	if m.BoolValue {
		dAtA[i] = 1
	} else {
		dAtA[i] = 0
	}
	i--
	dAtA[i] = 0x20
	return len(dAtA) - i, nil
}
func (m *Value_IpAddressValue) MarshalTo(dAtA []byte) (int, error) {
	return m.MarshalToSizedBuffer(dAtA[:m.Size()])
}

func (m *Value_IpAddressValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.IpAddressValue != nil {
		{
			size, err := m.IpAddressValue.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintType(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x2a
	}
	return len(dAtA) - i, nil
}
func (m *Value_TimestampValue) MarshalTo(dAtA []byte) (int, error) {
	return m.MarshalToSizedBuffer(dAtA[:m.Size()])
}

func (m *Value_TimestampValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.TimestampValue != nil {
		{
			size, err := m.TimestampValue.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintType(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x32
	}
	return len(dAtA) - i, nil
}
func (m *Value_DurationValue) MarshalTo(dAtA []byte) (int, error) {
	return m.MarshalToSizedBuffer(dAtA[:m.Size()])
}

func (m *Value_DurationValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.DurationValue != nil {
		{
			size, err := m.DurationValue.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintType(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x3a
	}
	return len(dAtA) - i, nil
}
func (m *Value_EmailAddressValue) MarshalTo(dAtA []byte) (int, error) {
	return m.MarshalToSizedBuffer(dAtA[:m.Size()])
}

func (m *Value_EmailAddressValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.EmailAddressValue != nil {
		{
			size, err := m.EmailAddressValue.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintType(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x42
	}
	return len(dAtA) - i, nil
}
func (m *Value_DnsNameValue) MarshalTo(dAtA []byte) (int, error) {
	return m.MarshalToSizedBuffer(dAtA[:m.Size()])
}

func (m *Value_DnsNameValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.DnsNameValue != nil {
		{
			size, err := m.DnsNameValue.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintType(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x4a
	}
	return len(dAtA) - i, nil
}
func (m *Value_UriValue) MarshalTo(dAtA []byte) (int, error) {
	return m.MarshalToSizedBuffer(dAtA[:m.Size()])
}

func (m *Value_UriValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.UriValue != nil {
		{
			size, err := m.UriValue.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintType(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x52
	}
	return len(dAtA) - i, nil
}
func (m *Value_StringMapValue) MarshalTo(dAtA []byte) (int, error) {
	return m.MarshalToSizedBuffer(dAtA[:m.Size()])
}

func (m *Value_StringMapValue) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	if m.StringMapValue != nil {
		{
			size, err := m.StringMapValue.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintType(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0x5a
	}
	return len(dAtA) - i, nil
}
func (m *IPAddress) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *IPAddress) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *IPAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Value) > 0 {
		i -= len(m.Value)
		copy(dAtA[i:], m.Value)
		i = encodeVarintType(dAtA, i, uint64(len(m.Value)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *Duration) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Duration) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Duration) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Value != nil {
		{
			size, err := m.Value.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintType(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *TimeStamp) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *TimeStamp) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *TimeStamp) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if m.Value != nil {
		{
			size, err := m.Value.MarshalToSizedBuffer(dAtA[:i])
			if err != nil {
				return 0, err
			}
			i -= size
			i = encodeVarintType(dAtA, i, uint64(size))
		}
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *DNSName) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *DNSName) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *DNSName) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Value) > 0 {
		i -= len(m.Value)
		copy(dAtA[i:], m.Value)
		i = encodeVarintType(dAtA, i, uint64(len(m.Value)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *StringMap) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *StringMap) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *StringMap) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Value) > 0 {
		for k := range m.Value {
			v := m.Value[k]
			baseI := i
			i -= len(v)
			copy(dAtA[i:], v)
			i = encodeVarintType(dAtA, i, uint64(len(v)))
			i--
			dAtA[i] = 0x12
			i -= len(k)
			copy(dAtA[i:], k)
			i = encodeVarintType(dAtA, i, uint64(len(k)))
			i--
			dAtA[i] = 0xa
			i = encodeVarintType(dAtA, i, uint64(baseI-i))
			i--
			dAtA[i] = 0xa
		}
	}
	return len(dAtA) - i, nil
}

func (m *EmailAddress) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *EmailAddress) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *EmailAddress) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Value) > 0 {
		i -= len(m.Value)
		copy(dAtA[i:], m.Value)
		i = encodeVarintType(dAtA, i, uint64(len(m.Value)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func (m *Uri) Marshal() (dAtA []byte, err error) {
	size := m.Size()
	dAtA = make([]byte, size)
	n, err := m.MarshalToSizedBuffer(dAtA[:size])
	if err != nil {
		return nil, err
	}
	return dAtA[:n], nil
}

func (m *Uri) MarshalTo(dAtA []byte) (int, error) {
	size := m.Size()
	return m.MarshalToSizedBuffer(dAtA[:size])
}

func (m *Uri) MarshalToSizedBuffer(dAtA []byte) (int, error) {
	i := len(dAtA)
	_ = i
	var l int
	_ = l
	if len(m.Value) > 0 {
		i -= len(m.Value)
		copy(dAtA[i:], m.Value)
		i = encodeVarintType(dAtA, i, uint64(len(m.Value)))
		i--
		dAtA[i] = 0xa
	}
	return len(dAtA) - i, nil
}

func encodeVarintType(dAtA []byte, offset int, v uint64) int {
	offset -= sovType(v)
	base := offset
	for v >= 1<<7 {
		dAtA[offset] = uint8(v&0x7f | 0x80)
		v >>= 7
		offset++
	}
	dAtA[offset] = uint8(v)
	return base
}
func (m *Value) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Value != nil {
		n += m.Value.Size()
	}
	return n
}

func (m *Value_StringValue) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.StringValue)
	n += 1 + l + sovType(uint64(l))
	return n
}
func (m *Value_Int64Value) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovType(uint64(m.Int64Value))
	return n
}
func (m *Value_DoubleValue) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	return n
}
func (m *Value_BoolValue) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 2
	return n
}
func (m *Value_IpAddressValue) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.IpAddressValue != nil {
		l = m.IpAddressValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *Value_TimestampValue) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.TimestampValue != nil {
		l = m.TimestampValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *Value_DurationValue) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.DurationValue != nil {
		l = m.DurationValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *Value_EmailAddressValue) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.EmailAddressValue != nil {
		l = m.EmailAddressValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *Value_DnsNameValue) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.DnsNameValue != nil {
		l = m.DnsNameValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *Value_UriValue) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.UriValue != nil {
		l = m.UriValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *Value_StringMapValue) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.StringMapValue != nil {
		l = m.StringMapValue.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}
func (m *IPAddress) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Value)
	if l > 0 {
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func (m *Duration) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Value != nil {
		l = m.Value.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func (m *TimeStamp) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Value != nil {
		l = m.Value.Size()
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func (m *DNSName) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Value)
	if l > 0 {
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func (m *StringMap) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if len(m.Value) > 0 {
		for k, v := range m.Value {
			_ = k
			_ = v
			mapEntrySize := 1 + len(k) + sovType(uint64(len(k))) + 1 + len(v) + sovType(uint64(len(v)))
			n += mapEntrySize + 1 + sovType(uint64(mapEntrySize))
		}
	}
	return n
}

func (m *EmailAddress) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Value)
	if l > 0 {
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func (m *Uri) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Value)
	if l > 0 {
		n += 1 + l + sovType(uint64(l))
	}
	return n
}

func sovType(x uint64) (n int) {
	return (math_bits.Len64(x|1) + 6) / 7
}
func sozType(x uint64) (n int) {
	return sovType(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (this *Value) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value{`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_StringValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_StringValue{`,
		`StringValue:` + fmt.Sprintf("%v", this.StringValue) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_Int64Value) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_Int64Value{`,
		`Int64Value:` + fmt.Sprintf("%v", this.Int64Value) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_DoubleValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_DoubleValue{`,
		`DoubleValue:` + fmt.Sprintf("%v", this.DoubleValue) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_BoolValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_BoolValue{`,
		`BoolValue:` + fmt.Sprintf("%v", this.BoolValue) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_IpAddressValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_IpAddressValue{`,
		`IpAddressValue:` + strings.Replace(fmt.Sprintf("%v", this.IpAddressValue), "IPAddress", "IPAddress", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_TimestampValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_TimestampValue{`,
		`TimestampValue:` + strings.Replace(fmt.Sprintf("%v", this.TimestampValue), "TimeStamp", "TimeStamp", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_DurationValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_DurationValue{`,
		`DurationValue:` + strings.Replace(fmt.Sprintf("%v", this.DurationValue), "Duration", "Duration", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_EmailAddressValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_EmailAddressValue{`,
		`EmailAddressValue:` + strings.Replace(fmt.Sprintf("%v", this.EmailAddressValue), "EmailAddress", "EmailAddress", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_DnsNameValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_DnsNameValue{`,
		`DnsNameValue:` + strings.Replace(fmt.Sprintf("%v", this.DnsNameValue), "DNSName", "DNSName", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_UriValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_UriValue{`,
		`UriValue:` + strings.Replace(fmt.Sprintf("%v", this.UriValue), "Uri", "Uri", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Value_StringMapValue) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Value_StringMapValue{`,
		`StringMapValue:` + strings.Replace(fmt.Sprintf("%v", this.StringMapValue), "StringMap", "StringMap", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *IPAddress) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&IPAddress{`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Duration) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Duration{`,
		`Value:` + strings.Replace(fmt.Sprintf("%v", this.Value), "Duration", "types.Duration", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TimeStamp) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TimeStamp{`,
		`Value:` + strings.Replace(fmt.Sprintf("%v", this.Value), "Timestamp", "types.Timestamp", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *DNSName) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&DNSName{`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`}`,
	}, "")
	return s
}
func (this *StringMap) String() string {
	if this == nil {
		return "nil"
	}
	keysForValue := make([]string, 0, len(this.Value))
	for k, _ := range this.Value {
		keysForValue = append(keysForValue, k)
	}
	github_com_gogo_protobuf_sortkeys.Strings(keysForValue)
	mapStringForValue := "map[string]string{"
	for _, k := range keysForValue {
		mapStringForValue += fmt.Sprintf("%v: %v,", k, this.Value[k])
	}
	mapStringForValue += "}"
	s := strings.Join([]string{`&StringMap{`,
		`Value:` + mapStringForValue + `,`,
		`}`,
	}, "")
	return s
}
func (this *EmailAddress) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&EmailAddress{`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`}`,
	}, "")
	return s
}
func (this *Uri) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Uri{`,
		`Value:` + fmt.Sprintf("%v", this.Value) + `,`,
		`}`,
	}, "")
	return s
}
func valueToStringType(v interface{}) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("*%v", pv)
}
func (m *Value) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Value: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Value: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field StringValue", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Value = &Value_StringValue{string(dAtA[iNdEx:postIndex])}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Int64Value", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Value = &Value_Int64Value{v}
		case 3:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field DoubleValue", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.Value = &Value_DoubleValue{float64(math.Float64frombits(v))}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field BoolValue", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Value = &Value_BoolValue{b}
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field IpAddressValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &IPAddress{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_IpAddressValue{v}
			iNdEx = postIndex
		case 6:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field TimestampValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &TimeStamp{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_TimestampValue{v}
			iNdEx = postIndex
		case 7:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field DurationValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &Duration{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_DurationValue{v}
			iNdEx = postIndex
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field EmailAddressValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &EmailAddress{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_EmailAddressValue{v}
			iNdEx = postIndex
		case 9:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field DnsNameValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &DNSName{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_DnsNameValue{v}
			iNdEx = postIndex
		case 10:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field UriValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &Uri{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_UriValue{v}
			iNdEx = postIndex
		case 11:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field StringMapValue", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &StringMap{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Value = &Value_StringMapValue{v}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *IPAddress) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: IPAddress: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: IPAddress: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...)
			if m.Value == nil {
				m.Value = []byte{}
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Duration) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Duration: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Duration: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Value == nil {
				m.Value = &types.Duration{}
			}
			if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *TimeStamp) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: TimeStamp: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: TimeStamp: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Value == nil {
				m.Value = &types.Timestamp{}
			}
			if err := m.Value.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *DNSName) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: DNSName: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DNSName: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Value = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *StringMap) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: StringMap: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: StringMap: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Value == nil {
				m.Value = make(map[string]string)
			}
			var mapkey string
			var mapvalue string
			for iNdEx < postIndex {
				entryPreIndex := iNdEx
				var wire uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowType
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					wire |= uint64(b&0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				fieldNum := int32(wire >> 3)
				if fieldNum == 1 {
					var stringLenmapkey uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowType
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						stringLenmapkey |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					intStringLenmapkey := int(stringLenmapkey)
					if intStringLenmapkey < 0 {
						return ErrInvalidLengthType
					}
					postStringIndexmapkey := iNdEx + intStringLenmapkey
					if postStringIndexmapkey < 0 {
						return ErrInvalidLengthType
					}
					if postStringIndexmapkey > l {
						return io.ErrUnexpectedEOF
					}
					mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
					iNdEx = postStringIndexmapkey
				} else if fieldNum == 2 {
					var stringLenmapvalue uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowType
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := dAtA[iNdEx]
						iNdEx++
						stringLenmapvalue |= uint64(b&0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					intStringLenmapvalue := int(stringLenmapvalue)
					if intStringLenmapvalue < 0 {
						return ErrInvalidLengthType
					}
					postStringIndexmapvalue := iNdEx + intStringLenmapvalue
					if postStringIndexmapvalue < 0 {
						return ErrInvalidLengthType
					}
					if postStringIndexmapvalue > l {
						return io.ErrUnexpectedEOF
					}
					mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
					iNdEx = postStringIndexmapvalue
				} else {
					iNdEx = entryPreIndex
					skippy, err := skipType(dAtA[iNdEx:])
					if err != nil {
						return err
					}
					if skippy < 0 {
						return ErrInvalidLengthType
					}
					if (iNdEx + skippy) > postIndex {
						return io.ErrUnexpectedEOF
					}
					iNdEx += skippy
				}
			}
			m.Value[mapkey] = mapvalue
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *EmailAddress) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: EmailAddress: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: EmailAddress: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Value = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Uri) Unmarshal(dAtA []byte) error {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowType
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= uint64(b&0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Uri: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Uri: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowType
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				stringLen |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthType
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthType
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Value = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipType(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthType
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func skipType(dAtA []byte) (n int, err error) {
	l := len(dAtA)
	iNdEx := 0
	for iNdEx < l {
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return 0, ErrIntOverflowType
			}
			if iNdEx >= l {
				return 0, io.ErrUnexpectedEOF
			}
			b := dAtA[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		wireType := int(wire & 0x7)
		switch wireType {
		case 0:
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowType
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				iNdEx++
				if dAtA[iNdEx-1] < 0x80 {
					break
				}
			}
			return iNdEx, nil
		case 1:
			iNdEx += 8
			return iNdEx, nil
		case 2:
			var length int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowType
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if length < 0 {
				return 0, ErrInvalidLengthType
			}
			iNdEx += length
			if iNdEx < 0 {
				return 0, ErrInvalidLengthType
			}
			return iNdEx, nil
		case 3:
			for {
				var innerWire uint64
				var start int = iNdEx
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return 0, ErrIntOverflowType
					}
					if iNdEx >= l {
						return 0, io.ErrUnexpectedEOF
					}
					b := dAtA[iNdEx]
					iNdEx++
					innerWire |= (uint64(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				innerWireType := int(innerWire & 0x7)
				if innerWireType == 4 {
					break
				}
				next, err := skipType(dAtA[start:])
				if err != nil {
					return 0, err
				}
				iNdEx = start + next
				if iNdEx < 0 {
					return 0, ErrInvalidLengthType
				}
			}
			return iNdEx, nil
		case 4:
			return iNdEx, nil
		case 5:
			iNdEx += 4
			return iNdEx, nil
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
	}
	panic("unreachable")
}

var (
	ErrInvalidLengthType = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowType   = fmt.Errorf("proto: integer overflow")
)
