// Code generated by protoc-gen-go. DO NOT EDIT.
// source: envoy/config/filter/network/redis_proxy/v2/redis_proxy.proto

package envoy_config_filter_network_redis_proxy_v2

import (
	fmt "fmt"
	core "github.com/envoyproxy/go-control-plane/envoy/api/v2/core"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	proto "github.com/golang/protobuf/proto"
	duration "github.com/golang/protobuf/ptypes/duration"
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	math "math"
)

// 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.ProtoPackageIsVersion3 // please upgrade the proto package

type RedisProxy_ConnPoolSettings_ReadPolicy int32

const (
	RedisProxy_ConnPoolSettings_MASTER         RedisProxy_ConnPoolSettings_ReadPolicy = 0
	RedisProxy_ConnPoolSettings_PREFER_MASTER  RedisProxy_ConnPoolSettings_ReadPolicy = 1
	RedisProxy_ConnPoolSettings_REPLICA        RedisProxy_ConnPoolSettings_ReadPolicy = 2
	RedisProxy_ConnPoolSettings_PREFER_REPLICA RedisProxy_ConnPoolSettings_ReadPolicy = 3
	RedisProxy_ConnPoolSettings_ANY            RedisProxy_ConnPoolSettings_ReadPolicy = 4
)

var RedisProxy_ConnPoolSettings_ReadPolicy_name = map[int32]string{
	0: "MASTER",
	1: "PREFER_MASTER",
	2: "REPLICA",
	3: "PREFER_REPLICA",
	4: "ANY",
}

var RedisProxy_ConnPoolSettings_ReadPolicy_value = map[string]int32{
	"MASTER":         0,
	"PREFER_MASTER":  1,
	"REPLICA":        2,
	"PREFER_REPLICA": 3,
	"ANY":            4,
}

func (x RedisProxy_ConnPoolSettings_ReadPolicy) String() string {
	return proto.EnumName(RedisProxy_ConnPoolSettings_ReadPolicy_name, int32(x))
}

func (RedisProxy_ConnPoolSettings_ReadPolicy) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_67e7179f1292d5ae, []int{0, 0, 0}
}

type RedisProxy struct {
	StatPrefix             string                       `protobuf:"bytes,1,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"`
	Cluster                string                       `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"` // Deprecated: Do not use.
	Settings               *RedisProxy_ConnPoolSettings `protobuf:"bytes,3,opt,name=settings,proto3" json:"settings,omitempty"`
	LatencyInMicros        bool                         `protobuf:"varint,4,opt,name=latency_in_micros,json=latencyInMicros,proto3" json:"latency_in_micros,omitempty"`
	PrefixRoutes           *RedisProxy_PrefixRoutes     `protobuf:"bytes,5,opt,name=prefix_routes,json=prefixRoutes,proto3" json:"prefix_routes,omitempty"`
	DownstreamAuthPassword *core.DataSource             `protobuf:"bytes,6,opt,name=downstream_auth_password,json=downstreamAuthPassword,proto3" json:"downstream_auth_password,omitempty"`
	XXX_NoUnkeyedLiteral   struct{}                     `json:"-"`
	XXX_unrecognized       []byte                       `json:"-"`
	XXX_sizecache          int32                        `json:"-"`
}

func (m *RedisProxy) Reset()         { *m = RedisProxy{} }
func (m *RedisProxy) String() string { return proto.CompactTextString(m) }
func (*RedisProxy) ProtoMessage()    {}
func (*RedisProxy) Descriptor() ([]byte, []int) {
	return fileDescriptor_67e7179f1292d5ae, []int{0}
}

func (m *RedisProxy) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedisProxy.Unmarshal(m, b)
}
func (m *RedisProxy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedisProxy.Marshal(b, m, deterministic)
}
func (m *RedisProxy) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedisProxy.Merge(m, src)
}
func (m *RedisProxy) XXX_Size() int {
	return xxx_messageInfo_RedisProxy.Size(m)
}
func (m *RedisProxy) XXX_DiscardUnknown() {
	xxx_messageInfo_RedisProxy.DiscardUnknown(m)
}

var xxx_messageInfo_RedisProxy proto.InternalMessageInfo

func (m *RedisProxy) GetStatPrefix() string {
	if m != nil {
		return m.StatPrefix
	}
	return ""
}

// Deprecated: Do not use.
func (m *RedisProxy) GetCluster() string {
	if m != nil {
		return m.Cluster
	}
	return ""
}

func (m *RedisProxy) GetSettings() *RedisProxy_ConnPoolSettings {
	if m != nil {
		return m.Settings
	}
	return nil
}

func (m *RedisProxy) GetLatencyInMicros() bool {
	if m != nil {
		return m.LatencyInMicros
	}
	return false
}

func (m *RedisProxy) GetPrefixRoutes() *RedisProxy_PrefixRoutes {
	if m != nil {
		return m.PrefixRoutes
	}
	return nil
}

func (m *RedisProxy) GetDownstreamAuthPassword() *core.DataSource {
	if m != nil {
		return m.DownstreamAuthPassword
	}
	return nil
}

type RedisProxy_ConnPoolSettings struct {
	OpTimeout                     *duration.Duration                     `protobuf:"bytes,1,opt,name=op_timeout,json=opTimeout,proto3" json:"op_timeout,omitempty"`
	EnableHashtagging             bool                                   `protobuf:"varint,2,opt,name=enable_hashtagging,json=enableHashtagging,proto3" json:"enable_hashtagging,omitempty"`
	EnableRedirection             bool                                   `protobuf:"varint,3,opt,name=enable_redirection,json=enableRedirection,proto3" json:"enable_redirection,omitempty"`
	MaxBufferSizeBeforeFlush      uint32                                 `protobuf:"varint,4,opt,name=max_buffer_size_before_flush,json=maxBufferSizeBeforeFlush,proto3" json:"max_buffer_size_before_flush,omitempty"`
	BufferFlushTimeout            *duration.Duration                     `protobuf:"bytes,5,opt,name=buffer_flush_timeout,json=bufferFlushTimeout,proto3" json:"buffer_flush_timeout,omitempty"`
	MaxUpstreamUnknownConnections *wrappers.UInt32Value                  `protobuf:"bytes,6,opt,name=max_upstream_unknown_connections,json=maxUpstreamUnknownConnections,proto3" json:"max_upstream_unknown_connections,omitempty"`
	EnableCommandStats            bool                                   `protobuf:"varint,8,opt,name=enable_command_stats,json=enableCommandStats,proto3" json:"enable_command_stats,omitempty"`
	ReadPolicy                    RedisProxy_ConnPoolSettings_ReadPolicy `protobuf:"varint,7,opt,name=read_policy,json=readPolicy,proto3,enum=envoy.config.filter.network.redis_proxy.v2.RedisProxy_ConnPoolSettings_ReadPolicy" json:"read_policy,omitempty"`
	XXX_NoUnkeyedLiteral          struct{}                               `json:"-"`
	XXX_unrecognized              []byte                                 `json:"-"`
	XXX_sizecache                 int32                                  `json:"-"`
}

func (m *RedisProxy_ConnPoolSettings) Reset()         { *m = RedisProxy_ConnPoolSettings{} }
func (m *RedisProxy_ConnPoolSettings) String() string { return proto.CompactTextString(m) }
func (*RedisProxy_ConnPoolSettings) ProtoMessage()    {}
func (*RedisProxy_ConnPoolSettings) Descriptor() ([]byte, []int) {
	return fileDescriptor_67e7179f1292d5ae, []int{0, 0}
}

func (m *RedisProxy_ConnPoolSettings) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedisProxy_ConnPoolSettings.Unmarshal(m, b)
}
func (m *RedisProxy_ConnPoolSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedisProxy_ConnPoolSettings.Marshal(b, m, deterministic)
}
func (m *RedisProxy_ConnPoolSettings) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedisProxy_ConnPoolSettings.Merge(m, src)
}
func (m *RedisProxy_ConnPoolSettings) XXX_Size() int {
	return xxx_messageInfo_RedisProxy_ConnPoolSettings.Size(m)
}
func (m *RedisProxy_ConnPoolSettings) XXX_DiscardUnknown() {
	xxx_messageInfo_RedisProxy_ConnPoolSettings.DiscardUnknown(m)
}

var xxx_messageInfo_RedisProxy_ConnPoolSettings proto.InternalMessageInfo

func (m *RedisProxy_ConnPoolSettings) GetOpTimeout() *duration.Duration {
	if m != nil {
		return m.OpTimeout
	}
	return nil
}

func (m *RedisProxy_ConnPoolSettings) GetEnableHashtagging() bool {
	if m != nil {
		return m.EnableHashtagging
	}
	return false
}

func (m *RedisProxy_ConnPoolSettings) GetEnableRedirection() bool {
	if m != nil {
		return m.EnableRedirection
	}
	return false
}

func (m *RedisProxy_ConnPoolSettings) GetMaxBufferSizeBeforeFlush() uint32 {
	if m != nil {
		return m.MaxBufferSizeBeforeFlush
	}
	return 0
}

func (m *RedisProxy_ConnPoolSettings) GetBufferFlushTimeout() *duration.Duration {
	if m != nil {
		return m.BufferFlushTimeout
	}
	return nil
}

func (m *RedisProxy_ConnPoolSettings) GetMaxUpstreamUnknownConnections() *wrappers.UInt32Value {
	if m != nil {
		return m.MaxUpstreamUnknownConnections
	}
	return nil
}

func (m *RedisProxy_ConnPoolSettings) GetEnableCommandStats() bool {
	if m != nil {
		return m.EnableCommandStats
	}
	return false
}

func (m *RedisProxy_ConnPoolSettings) GetReadPolicy() RedisProxy_ConnPoolSettings_ReadPolicy {
	if m != nil {
		return m.ReadPolicy
	}
	return RedisProxy_ConnPoolSettings_MASTER
}

type RedisProxy_PrefixRoutes struct {
	Routes               []*RedisProxy_PrefixRoutes_Route `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"`
	CaseInsensitive      bool                             `protobuf:"varint,2,opt,name=case_insensitive,json=caseInsensitive,proto3" json:"case_insensitive,omitempty"`
	CatchAllCluster      string                           `protobuf:"bytes,3,opt,name=catch_all_cluster,json=catchAllCluster,proto3" json:"catch_all_cluster,omitempty"` // Deprecated: Do not use.
	CatchAllRoute        *RedisProxy_PrefixRoutes_Route   `protobuf:"bytes,4,opt,name=catch_all_route,json=catchAllRoute,proto3" json:"catch_all_route,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
	XXX_unrecognized     []byte                           `json:"-"`
	XXX_sizecache        int32                            `json:"-"`
}

func (m *RedisProxy_PrefixRoutes) Reset()         { *m = RedisProxy_PrefixRoutes{} }
func (m *RedisProxy_PrefixRoutes) String() string { return proto.CompactTextString(m) }
func (*RedisProxy_PrefixRoutes) ProtoMessage()    {}
func (*RedisProxy_PrefixRoutes) Descriptor() ([]byte, []int) {
	return fileDescriptor_67e7179f1292d5ae, []int{0, 1}
}

func (m *RedisProxy_PrefixRoutes) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedisProxy_PrefixRoutes.Unmarshal(m, b)
}
func (m *RedisProxy_PrefixRoutes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedisProxy_PrefixRoutes.Marshal(b, m, deterministic)
}
func (m *RedisProxy_PrefixRoutes) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedisProxy_PrefixRoutes.Merge(m, src)
}
func (m *RedisProxy_PrefixRoutes) XXX_Size() int {
	return xxx_messageInfo_RedisProxy_PrefixRoutes.Size(m)
}
func (m *RedisProxy_PrefixRoutes) XXX_DiscardUnknown() {
	xxx_messageInfo_RedisProxy_PrefixRoutes.DiscardUnknown(m)
}

var xxx_messageInfo_RedisProxy_PrefixRoutes proto.InternalMessageInfo

func (m *RedisProxy_PrefixRoutes) GetRoutes() []*RedisProxy_PrefixRoutes_Route {
	if m != nil {
		return m.Routes
	}
	return nil
}

func (m *RedisProxy_PrefixRoutes) GetCaseInsensitive() bool {
	if m != nil {
		return m.CaseInsensitive
	}
	return false
}

// Deprecated: Do not use.
func (m *RedisProxy_PrefixRoutes) GetCatchAllCluster() string {
	if m != nil {
		return m.CatchAllCluster
	}
	return ""
}

func (m *RedisProxy_PrefixRoutes) GetCatchAllRoute() *RedisProxy_PrefixRoutes_Route {
	if m != nil {
		return m.CatchAllRoute
	}
	return nil
}

type RedisProxy_PrefixRoutes_Route struct {
	Prefix               string                                               `protobuf:"bytes,1,opt,name=prefix,proto3" json:"prefix,omitempty"`
	RemovePrefix         bool                                                 `protobuf:"varint,2,opt,name=remove_prefix,json=removePrefix,proto3" json:"remove_prefix,omitempty"`
	Cluster              string                                               `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"`
	RequestMirrorPolicy  []*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy `protobuf:"bytes,4,rep,name=request_mirror_policy,json=requestMirrorPolicy,proto3" json:"request_mirror_policy,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                             `json:"-"`
	XXX_unrecognized     []byte                                               `json:"-"`
	XXX_sizecache        int32                                                `json:"-"`
}

func (m *RedisProxy_PrefixRoutes_Route) Reset()         { *m = RedisProxy_PrefixRoutes_Route{} }
func (m *RedisProxy_PrefixRoutes_Route) String() string { return proto.CompactTextString(m) }
func (*RedisProxy_PrefixRoutes_Route) ProtoMessage()    {}
func (*RedisProxy_PrefixRoutes_Route) Descriptor() ([]byte, []int) {
	return fileDescriptor_67e7179f1292d5ae, []int{0, 1, 0}
}

func (m *RedisProxy_PrefixRoutes_Route) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedisProxy_PrefixRoutes_Route.Unmarshal(m, b)
}
func (m *RedisProxy_PrefixRoutes_Route) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedisProxy_PrefixRoutes_Route.Marshal(b, m, deterministic)
}
func (m *RedisProxy_PrefixRoutes_Route) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedisProxy_PrefixRoutes_Route.Merge(m, src)
}
func (m *RedisProxy_PrefixRoutes_Route) XXX_Size() int {
	return xxx_messageInfo_RedisProxy_PrefixRoutes_Route.Size(m)
}
func (m *RedisProxy_PrefixRoutes_Route) XXX_DiscardUnknown() {
	xxx_messageInfo_RedisProxy_PrefixRoutes_Route.DiscardUnknown(m)
}

var xxx_messageInfo_RedisProxy_PrefixRoutes_Route proto.InternalMessageInfo

func (m *RedisProxy_PrefixRoutes_Route) GetPrefix() string {
	if m != nil {
		return m.Prefix
	}
	return ""
}

func (m *RedisProxy_PrefixRoutes_Route) GetRemovePrefix() bool {
	if m != nil {
		return m.RemovePrefix
	}
	return false
}

func (m *RedisProxy_PrefixRoutes_Route) GetCluster() string {
	if m != nil {
		return m.Cluster
	}
	return ""
}

func (m *RedisProxy_PrefixRoutes_Route) GetRequestMirrorPolicy() []*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy {
	if m != nil {
		return m.RequestMirrorPolicy
	}
	return nil
}

type RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy struct {
	Cluster              string                         `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"`
	RuntimeFraction      *core.RuntimeFractionalPercent `protobuf:"bytes,2,opt,name=runtime_fraction,json=runtimeFraction,proto3" json:"runtime_fraction,omitempty"`
	ExcludeReadCommands  bool                           `protobuf:"varint,3,opt,name=exclude_read_commands,json=excludeReadCommands,proto3" json:"exclude_read_commands,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
	XXX_unrecognized     []byte                         `json:"-"`
	XXX_sizecache        int32                          `json:"-"`
}

func (m *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) Reset() {
	*m = RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy{}
}
func (m *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) String() string {
	return proto.CompactTextString(m)
}
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) ProtoMessage() {}
func (*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) Descriptor() ([]byte, []int) {
	return fileDescriptor_67e7179f1292d5ae, []int{0, 1, 0, 0}
}

func (m *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy.Unmarshal(m, b)
}
func (m *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy.Marshal(b, m, deterministic)
}
func (m *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy.Merge(m, src)
}
func (m *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) XXX_Size() int {
	return xxx_messageInfo_RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy.Size(m)
}
func (m *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) XXX_DiscardUnknown() {
	xxx_messageInfo_RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy.DiscardUnknown(m)
}

var xxx_messageInfo_RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy proto.InternalMessageInfo

func (m *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetCluster() string {
	if m != nil {
		return m.Cluster
	}
	return ""
}

func (m *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetRuntimeFraction() *core.RuntimeFractionalPercent {
	if m != nil {
		return m.RuntimeFraction
	}
	return nil
}

func (m *RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy) GetExcludeReadCommands() bool {
	if m != nil {
		return m.ExcludeReadCommands
	}
	return false
}

type RedisProtocolOptions struct {
	AuthPassword         *core.DataSource `protobuf:"bytes,1,opt,name=auth_password,json=authPassword,proto3" json:"auth_password,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *RedisProtocolOptions) Reset()         { *m = RedisProtocolOptions{} }
func (m *RedisProtocolOptions) String() string { return proto.CompactTextString(m) }
func (*RedisProtocolOptions) ProtoMessage()    {}
func (*RedisProtocolOptions) Descriptor() ([]byte, []int) {
	return fileDescriptor_67e7179f1292d5ae, []int{1}
}

func (m *RedisProtocolOptions) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedisProtocolOptions.Unmarshal(m, b)
}
func (m *RedisProtocolOptions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedisProtocolOptions.Marshal(b, m, deterministic)
}
func (m *RedisProtocolOptions) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedisProtocolOptions.Merge(m, src)
}
func (m *RedisProtocolOptions) XXX_Size() int {
	return xxx_messageInfo_RedisProtocolOptions.Size(m)
}
func (m *RedisProtocolOptions) XXX_DiscardUnknown() {
	xxx_messageInfo_RedisProtocolOptions.DiscardUnknown(m)
}

var xxx_messageInfo_RedisProtocolOptions proto.InternalMessageInfo

func (m *RedisProtocolOptions) GetAuthPassword() *core.DataSource {
	if m != nil {
		return m.AuthPassword
	}
	return nil
}

func init() {
	proto.RegisterEnum("envoy.config.filter.network.redis_proxy.v2.RedisProxy_ConnPoolSettings_ReadPolicy", RedisProxy_ConnPoolSettings_ReadPolicy_name, RedisProxy_ConnPoolSettings_ReadPolicy_value)
	proto.RegisterType((*RedisProxy)(nil), "envoy.config.filter.network.redis_proxy.v2.RedisProxy")
	proto.RegisterType((*RedisProxy_ConnPoolSettings)(nil), "envoy.config.filter.network.redis_proxy.v2.RedisProxy.ConnPoolSettings")
	proto.RegisterType((*RedisProxy_PrefixRoutes)(nil), "envoy.config.filter.network.redis_proxy.v2.RedisProxy.PrefixRoutes")
	proto.RegisterType((*RedisProxy_PrefixRoutes_Route)(nil), "envoy.config.filter.network.redis_proxy.v2.RedisProxy.PrefixRoutes.Route")
	proto.RegisterType((*RedisProxy_PrefixRoutes_Route_RequestMirrorPolicy)(nil), "envoy.config.filter.network.redis_proxy.v2.RedisProxy.PrefixRoutes.Route.RequestMirrorPolicy")
	proto.RegisterType((*RedisProtocolOptions)(nil), "envoy.config.filter.network.redis_proxy.v2.RedisProtocolOptions")
}

func init() {
	proto.RegisterFile("envoy/config/filter/network/redis_proxy/v2/redis_proxy.proto", fileDescriptor_67e7179f1292d5ae)
}

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