github.com/kchristidis/fabric@v1.0.4-0.20171028114726-837acd08cde1/protos/common/common.pb.go (about)

     1  // Code generated by protoc-gen-go. DO NOT EDIT.
     2  // source: common/common.proto
     3  
     4  /*
     5  Package common is a generated protocol buffer package.
     6  
     7  It is generated from these files:
     8  	common/common.proto
     9  	common/configtx.proto
    10  	common/configuration.proto
    11  	common/ledger.proto
    12  	common/policies.proto
    13  
    14  It has these top-level messages:
    15  	LastConfig
    16  	Metadata
    17  	MetadataSignature
    18  	Header
    19  	ChannelHeader
    20  	SignatureHeader
    21  	Payload
    22  	Envelope
    23  	Block
    24  	BlockHeader
    25  	BlockData
    26  	BlockMetadata
    27  	ConfigEnvelope
    28  	ConfigGroupSchema
    29  	ConfigValueSchema
    30  	ConfigPolicySchema
    31  	Config
    32  	ConfigUpdateEnvelope
    33  	ConfigUpdate
    34  	ConfigGroup
    35  	ConfigValue
    36  	ConfigPolicy
    37  	ConfigSignature
    38  	HashingAlgorithm
    39  	BlockDataHashingStructure
    40  	OrdererAddresses
    41  	Consortium
    42  	BlockchainInfo
    43  	Policy
    44  	SignaturePolicyEnvelope
    45  	SignaturePolicy
    46  	ImplicitMetaPolicy
    47  */
    48  package common
    49  
    50  import proto "github.com/golang/protobuf/proto"
    51  import fmt "fmt"
    52  import math "math"
    53  import google_protobuf "github.com/golang/protobuf/ptypes/timestamp"
    54  
    55  // Reference imports to suppress errors if they are not otherwise used.
    56  var _ = proto.Marshal
    57  var _ = fmt.Errorf
    58  var _ = math.Inf
    59  
    60  // This is a compile-time assertion to ensure that this generated file
    61  // is compatible with the proto package it is being compiled against.
    62  // A compilation error at this line likely means your copy of the
    63  // proto package needs to be updated.
    64  const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
    65  
    66  // These status codes are intended to resemble selected HTTP status codes
    67  type Status int32
    68  
    69  const (
    70  	Status_UNKNOWN                  Status = 0
    71  	Status_SUCCESS                  Status = 200
    72  	Status_BAD_REQUEST              Status = 400
    73  	Status_FORBIDDEN                Status = 403
    74  	Status_NOT_FOUND                Status = 404
    75  	Status_REQUEST_ENTITY_TOO_LARGE Status = 413
    76  	Status_INTERNAL_SERVER_ERROR    Status = 500
    77  	Status_SERVICE_UNAVAILABLE      Status = 503
    78  )
    79  
    80  var Status_name = map[int32]string{
    81  	0:   "UNKNOWN",
    82  	200: "SUCCESS",
    83  	400: "BAD_REQUEST",
    84  	403: "FORBIDDEN",
    85  	404: "NOT_FOUND",
    86  	413: "REQUEST_ENTITY_TOO_LARGE",
    87  	500: "INTERNAL_SERVER_ERROR",
    88  	503: "SERVICE_UNAVAILABLE",
    89  }
    90  var Status_value = map[string]int32{
    91  	"UNKNOWN":                  0,
    92  	"SUCCESS":                  200,
    93  	"BAD_REQUEST":              400,
    94  	"FORBIDDEN":                403,
    95  	"NOT_FOUND":                404,
    96  	"REQUEST_ENTITY_TOO_LARGE": 413,
    97  	"INTERNAL_SERVER_ERROR":    500,
    98  	"SERVICE_UNAVAILABLE":      503,
    99  }
   100  
   101  func (x Status) String() string {
   102  	return proto.EnumName(Status_name, int32(x))
   103  }
   104  func (Status) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
   105  
   106  type HeaderType int32
   107  
   108  const (
   109  	HeaderType_MESSAGE              HeaderType = 0
   110  	HeaderType_CONFIG               HeaderType = 1
   111  	HeaderType_CONFIG_UPDATE        HeaderType = 2
   112  	HeaderType_ENDORSER_TRANSACTION HeaderType = 3
   113  	HeaderType_ORDERER_TRANSACTION  HeaderType = 4
   114  	HeaderType_DELIVER_SEEK_INFO    HeaderType = 5
   115  	HeaderType_CHAINCODE_PACKAGE    HeaderType = 6
   116  )
   117  
   118  var HeaderType_name = map[int32]string{
   119  	0: "MESSAGE",
   120  	1: "CONFIG",
   121  	2: "CONFIG_UPDATE",
   122  	3: "ENDORSER_TRANSACTION",
   123  	4: "ORDERER_TRANSACTION",
   124  	5: "DELIVER_SEEK_INFO",
   125  	6: "CHAINCODE_PACKAGE",
   126  }
   127  var HeaderType_value = map[string]int32{
   128  	"MESSAGE":              0,
   129  	"CONFIG":               1,
   130  	"CONFIG_UPDATE":        2,
   131  	"ENDORSER_TRANSACTION": 3,
   132  	"ORDERER_TRANSACTION":  4,
   133  	"DELIVER_SEEK_INFO":    5,
   134  	"CHAINCODE_PACKAGE":    6,
   135  }
   136  
   137  func (x HeaderType) String() string {
   138  	return proto.EnumName(HeaderType_name, int32(x))
   139  }
   140  func (HeaderType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
   141  
   142  // This enum enlists indexes of the block metadata array
   143  type BlockMetadataIndex int32
   144  
   145  const (
   146  	BlockMetadataIndex_SIGNATURES          BlockMetadataIndex = 0
   147  	BlockMetadataIndex_LAST_CONFIG         BlockMetadataIndex = 1
   148  	BlockMetadataIndex_TRANSACTIONS_FILTER BlockMetadataIndex = 2
   149  	BlockMetadataIndex_ORDERER             BlockMetadataIndex = 3
   150  )
   151  
   152  var BlockMetadataIndex_name = map[int32]string{
   153  	0: "SIGNATURES",
   154  	1: "LAST_CONFIG",
   155  	2: "TRANSACTIONS_FILTER",
   156  	3: "ORDERER",
   157  }
   158  var BlockMetadataIndex_value = map[string]int32{
   159  	"SIGNATURES":          0,
   160  	"LAST_CONFIG":         1,
   161  	"TRANSACTIONS_FILTER": 2,
   162  	"ORDERER":             3,
   163  }
   164  
   165  func (x BlockMetadataIndex) String() string {
   166  	return proto.EnumName(BlockMetadataIndex_name, int32(x))
   167  }
   168  func (BlockMetadataIndex) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
   169  
   170  // LastConfig is the encoded value for the Metadata message which is encoded in the LAST_CONFIGURATION block metadata index
   171  type LastConfig struct {
   172  	Index uint64 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
   173  }
   174  
   175  func (m *LastConfig) Reset()                    { *m = LastConfig{} }
   176  func (m *LastConfig) String() string            { return proto.CompactTextString(m) }
   177  func (*LastConfig) ProtoMessage()               {}
   178  func (*LastConfig) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
   179  
   180  func (m *LastConfig) GetIndex() uint64 {
   181  	if m != nil {
   182  		return m.Index
   183  	}
   184  	return 0
   185  }
   186  
   187  // Metadata is a common structure to be used to encode block metadata
   188  type Metadata struct {
   189  	Value      []byte               `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
   190  	Signatures []*MetadataSignature `protobuf:"bytes,2,rep,name=signatures" json:"signatures,omitempty"`
   191  }
   192  
   193  func (m *Metadata) Reset()                    { *m = Metadata{} }
   194  func (m *Metadata) String() string            { return proto.CompactTextString(m) }
   195  func (*Metadata) ProtoMessage()               {}
   196  func (*Metadata) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
   197  
   198  func (m *Metadata) GetValue() []byte {
   199  	if m != nil {
   200  		return m.Value
   201  	}
   202  	return nil
   203  }
   204  
   205  func (m *Metadata) GetSignatures() []*MetadataSignature {
   206  	if m != nil {
   207  		return m.Signatures
   208  	}
   209  	return nil
   210  }
   211  
   212  type MetadataSignature struct {
   213  	SignatureHeader []byte `protobuf:"bytes,1,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"`
   214  	Signature       []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
   215  }
   216  
   217  func (m *MetadataSignature) Reset()                    { *m = MetadataSignature{} }
   218  func (m *MetadataSignature) String() string            { return proto.CompactTextString(m) }
   219  func (*MetadataSignature) ProtoMessage()               {}
   220  func (*MetadataSignature) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
   221  
   222  func (m *MetadataSignature) GetSignatureHeader() []byte {
   223  	if m != nil {
   224  		return m.SignatureHeader
   225  	}
   226  	return nil
   227  }
   228  
   229  func (m *MetadataSignature) GetSignature() []byte {
   230  	if m != nil {
   231  		return m.Signature
   232  	}
   233  	return nil
   234  }
   235  
   236  type Header struct {
   237  	ChannelHeader   []byte `protobuf:"bytes,1,opt,name=channel_header,json=channelHeader,proto3" json:"channel_header,omitempty"`
   238  	SignatureHeader []byte `protobuf:"bytes,2,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"`
   239  }
   240  
   241  func (m *Header) Reset()                    { *m = Header{} }
   242  func (m *Header) String() string            { return proto.CompactTextString(m) }
   243  func (*Header) ProtoMessage()               {}
   244  func (*Header) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
   245  
   246  func (m *Header) GetChannelHeader() []byte {
   247  	if m != nil {
   248  		return m.ChannelHeader
   249  	}
   250  	return nil
   251  }
   252  
   253  func (m *Header) GetSignatureHeader() []byte {
   254  	if m != nil {
   255  		return m.SignatureHeader
   256  	}
   257  	return nil
   258  }
   259  
   260  // Header is a generic replay prevention and identity message to include in a signed payload
   261  type ChannelHeader struct {
   262  	Type int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"`
   263  	// Version indicates message protocol version
   264  	Version int32 `protobuf:"varint,2,opt,name=version" json:"version,omitempty"`
   265  	// Timestamp is the local time when the message was created
   266  	// by the sender
   267  	Timestamp *google_protobuf.Timestamp `protobuf:"bytes,3,opt,name=timestamp" json:"timestamp,omitempty"`
   268  	// Identifier of the channel this message is bound for
   269  	ChannelId string `protobuf:"bytes,4,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
   270  	// An unique identifier that is used end-to-end.
   271  	//  -  set by higher layers such as end user or SDK
   272  	//  -  passed to the endorser (which will check for uniqueness)
   273  	//  -  as the header is passed along unchanged, it will be
   274  	//     be retrieved by the committer (uniqueness check here as well)
   275  	//  -  to be stored in the ledger
   276  	TxId string `protobuf:"bytes,5,opt,name=tx_id,json=txId" json:"tx_id,omitempty"`
   277  	// The epoch in which this header was generated, where epoch is defined based on block height
   278  	// Epoch in which the response has been generated. This field identifies a
   279  	// logical window of time. A proposal response is accepted by a peer only if
   280  	// two conditions hold:
   281  	// 1. the epoch specified in the message is the current epoch
   282  	// 2. this message has been only seen once during this epoch (i.e. it hasn't
   283  	//    been replayed)
   284  	Epoch uint64 `protobuf:"varint,6,opt,name=epoch" json:"epoch,omitempty"`
   285  	// Extension that may be attached based on the header type
   286  	Extension []byte `protobuf:"bytes,7,opt,name=extension,proto3" json:"extension,omitempty"`
   287  }
   288  
   289  func (m *ChannelHeader) Reset()                    { *m = ChannelHeader{} }
   290  func (m *ChannelHeader) String() string            { return proto.CompactTextString(m) }
   291  func (*ChannelHeader) ProtoMessage()               {}
   292  func (*ChannelHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }
   293  
   294  func (m *ChannelHeader) GetType() int32 {
   295  	if m != nil {
   296  		return m.Type
   297  	}
   298  	return 0
   299  }
   300  
   301  func (m *ChannelHeader) GetVersion() int32 {
   302  	if m != nil {
   303  		return m.Version
   304  	}
   305  	return 0
   306  }
   307  
   308  func (m *ChannelHeader) GetTimestamp() *google_protobuf.Timestamp {
   309  	if m != nil {
   310  		return m.Timestamp
   311  	}
   312  	return nil
   313  }
   314  
   315  func (m *ChannelHeader) GetChannelId() string {
   316  	if m != nil {
   317  		return m.ChannelId
   318  	}
   319  	return ""
   320  }
   321  
   322  func (m *ChannelHeader) GetTxId() string {
   323  	if m != nil {
   324  		return m.TxId
   325  	}
   326  	return ""
   327  }
   328  
   329  func (m *ChannelHeader) GetEpoch() uint64 {
   330  	if m != nil {
   331  		return m.Epoch
   332  	}
   333  	return 0
   334  }
   335  
   336  func (m *ChannelHeader) GetExtension() []byte {
   337  	if m != nil {
   338  		return m.Extension
   339  	}
   340  	return nil
   341  }
   342  
   343  type SignatureHeader struct {
   344  	// Creator of the message, specified as a certificate chain
   345  	Creator []byte `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"`
   346  	// Arbitrary number that may only be used once. Can be used to detect replay attacks.
   347  	Nonce []byte `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"`
   348  }
   349  
   350  func (m *SignatureHeader) Reset()                    { *m = SignatureHeader{} }
   351  func (m *SignatureHeader) String() string            { return proto.CompactTextString(m) }
   352  func (*SignatureHeader) ProtoMessage()               {}
   353  func (*SignatureHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
   354  
   355  func (m *SignatureHeader) GetCreator() []byte {
   356  	if m != nil {
   357  		return m.Creator
   358  	}
   359  	return nil
   360  }
   361  
   362  func (m *SignatureHeader) GetNonce() []byte {
   363  	if m != nil {
   364  		return m.Nonce
   365  	}
   366  	return nil
   367  }
   368  
   369  // Payload is the message contents (and header to allow for signing)
   370  type Payload struct {
   371  	// Header is included to provide identity and prevent replay
   372  	Header *Header `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
   373  	// Data, the encoding of which is defined by the type in the header
   374  	Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
   375  }
   376  
   377  func (m *Payload) Reset()                    { *m = Payload{} }
   378  func (m *Payload) String() string            { return proto.CompactTextString(m) }
   379  func (*Payload) ProtoMessage()               {}
   380  func (*Payload) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
   381  
   382  func (m *Payload) GetHeader() *Header {
   383  	if m != nil {
   384  		return m.Header
   385  	}
   386  	return nil
   387  }
   388  
   389  func (m *Payload) GetData() []byte {
   390  	if m != nil {
   391  		return m.Data
   392  	}
   393  	return nil
   394  }
   395  
   396  // Envelope wraps a Payload with a signature so that the message may be authenticated
   397  type Envelope struct {
   398  	// A marshaled Payload
   399  	Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"`
   400  	// A signature by the creator specified in the Payload header
   401  	Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
   402  }
   403  
   404  func (m *Envelope) Reset()                    { *m = Envelope{} }
   405  func (m *Envelope) String() string            { return proto.CompactTextString(m) }
   406  func (*Envelope) ProtoMessage()               {}
   407  func (*Envelope) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
   408  
   409  func (m *Envelope) GetPayload() []byte {
   410  	if m != nil {
   411  		return m.Payload
   412  	}
   413  	return nil
   414  }
   415  
   416  func (m *Envelope) GetSignature() []byte {
   417  	if m != nil {
   418  		return m.Signature
   419  	}
   420  	return nil
   421  }
   422  
   423  // This is finalized block structure to be shared among the orderer and peer
   424  // Note that the BlockHeader chains to the previous BlockHeader, and the BlockData hash is embedded
   425  // in the BlockHeader.  This makes it natural and obvious that the Data is included in the hash, but
   426  // the Metadata is not.
   427  type Block struct {
   428  	Header   *BlockHeader   `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
   429  	Data     *BlockData     `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
   430  	Metadata *BlockMetadata `protobuf:"bytes,3,opt,name=metadata" json:"metadata,omitempty"`
   431  }
   432  
   433  func (m *Block) Reset()                    { *m = Block{} }
   434  func (m *Block) String() string            { return proto.CompactTextString(m) }
   435  func (*Block) ProtoMessage()               {}
   436  func (*Block) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
   437  
   438  func (m *Block) GetHeader() *BlockHeader {
   439  	if m != nil {
   440  		return m.Header
   441  	}
   442  	return nil
   443  }
   444  
   445  func (m *Block) GetData() *BlockData {
   446  	if m != nil {
   447  		return m.Data
   448  	}
   449  	return nil
   450  }
   451  
   452  func (m *Block) GetMetadata() *BlockMetadata {
   453  	if m != nil {
   454  		return m.Metadata
   455  	}
   456  	return nil
   457  }
   458  
   459  // BlockHeader is the element of the block which forms the block chain
   460  // The block header is hashed using the configured chain hashing algorithm
   461  // over the ASN.1 encoding of the BlockHeader
   462  type BlockHeader struct {
   463  	Number       uint64 `protobuf:"varint,1,opt,name=number" json:"number,omitempty"`
   464  	PreviousHash []byte `protobuf:"bytes,2,opt,name=previous_hash,json=previousHash,proto3" json:"previous_hash,omitempty"`
   465  	DataHash     []byte `protobuf:"bytes,3,opt,name=data_hash,json=dataHash,proto3" json:"data_hash,omitempty"`
   466  }
   467  
   468  func (m *BlockHeader) Reset()                    { *m = BlockHeader{} }
   469  func (m *BlockHeader) String() string            { return proto.CompactTextString(m) }
   470  func (*BlockHeader) ProtoMessage()               {}
   471  func (*BlockHeader) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
   472  
   473  func (m *BlockHeader) GetNumber() uint64 {
   474  	if m != nil {
   475  		return m.Number
   476  	}
   477  	return 0
   478  }
   479  
   480  func (m *BlockHeader) GetPreviousHash() []byte {
   481  	if m != nil {
   482  		return m.PreviousHash
   483  	}
   484  	return nil
   485  }
   486  
   487  func (m *BlockHeader) GetDataHash() []byte {
   488  	if m != nil {
   489  		return m.DataHash
   490  	}
   491  	return nil
   492  }
   493  
   494  type BlockData struct {
   495  	Data [][]byte `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
   496  }
   497  
   498  func (m *BlockData) Reset()                    { *m = BlockData{} }
   499  func (m *BlockData) String() string            { return proto.CompactTextString(m) }
   500  func (*BlockData) ProtoMessage()               {}
   501  func (*BlockData) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
   502  
   503  func (m *BlockData) GetData() [][]byte {
   504  	if m != nil {
   505  		return m.Data
   506  	}
   507  	return nil
   508  }
   509  
   510  type BlockMetadata struct {
   511  	Metadata [][]byte `protobuf:"bytes,1,rep,name=metadata,proto3" json:"metadata,omitempty"`
   512  }
   513  
   514  func (m *BlockMetadata) Reset()                    { *m = BlockMetadata{} }
   515  func (m *BlockMetadata) String() string            { return proto.CompactTextString(m) }
   516  func (*BlockMetadata) ProtoMessage()               {}
   517  func (*BlockMetadata) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
   518  
   519  func (m *BlockMetadata) GetMetadata() [][]byte {
   520  	if m != nil {
   521  		return m.Metadata
   522  	}
   523  	return nil
   524  }
   525  
   526  func init() {
   527  	proto.RegisterType((*LastConfig)(nil), "common.LastConfig")
   528  	proto.RegisterType((*Metadata)(nil), "common.Metadata")
   529  	proto.RegisterType((*MetadataSignature)(nil), "common.MetadataSignature")
   530  	proto.RegisterType((*Header)(nil), "common.Header")
   531  	proto.RegisterType((*ChannelHeader)(nil), "common.ChannelHeader")
   532  	proto.RegisterType((*SignatureHeader)(nil), "common.SignatureHeader")
   533  	proto.RegisterType((*Payload)(nil), "common.Payload")
   534  	proto.RegisterType((*Envelope)(nil), "common.Envelope")
   535  	proto.RegisterType((*Block)(nil), "common.Block")
   536  	proto.RegisterType((*BlockHeader)(nil), "common.BlockHeader")
   537  	proto.RegisterType((*BlockData)(nil), "common.BlockData")
   538  	proto.RegisterType((*BlockMetadata)(nil), "common.BlockMetadata")
   539  	proto.RegisterEnum("common.Status", Status_name, Status_value)
   540  	proto.RegisterEnum("common.HeaderType", HeaderType_name, HeaderType_value)
   541  	proto.RegisterEnum("common.BlockMetadataIndex", BlockMetadataIndex_name, BlockMetadataIndex_value)
   542  }
   543  
   544  func init() { proto.RegisterFile("common/common.proto", fileDescriptor0) }
   545  
   546  var fileDescriptor0 = []byte{
   547  	// 900 bytes of a gzipped FileDescriptorProto
   548  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x84, 0x55, 0xdf, 0x6e, 0xe3, 0xc4,
   549  	0x1b, 0xad, 0xe3, 0xfc, 0x69, 0xbe, 0x34, 0xad, 0x3b, 0xd9, 0xfe, 0xd6, 0xbf, 0xc2, 0x6a, 0x23,
   550  	0xc3, 0xa2, 0xd2, 0x4a, 0x89, 0x28, 0x37, 0x70, 0xe9, 0xd8, 0x93, 0xd6, 0x6a, 0xd6, 0x2e, 0x63,
   551  	0x67, 0x11, 0xbb, 0x48, 0x96, 0x93, 0x4c, 0x13, 0x8b, 0xc4, 0x8e, 0x6c, 0xa7, 0x6a, 0x5f, 0x02,
   552  	0x21, 0xc1, 0x0d, 0x17, 0xbc, 0x00, 0x4f, 0xc2, 0x5b, 0xf0, 0x12, 0x48, 0xdc, 0xa2, 0xf1, 0x8c,
   553  	0xbd, 0x49, 0x59, 0x89, 0xab, 0xcc, 0x39, 0x73, 0x3c, 0xdf, 0x99, 0xf3, 0x7d, 0xb1, 0xa1, 0x33,
   554  	0x8d, 0x57, 0xab, 0x38, 0xea, 0xf3, 0x9f, 0xde, 0x3a, 0x89, 0xb3, 0x18, 0xd5, 0x39, 0x3a, 0x7d,
   555  	0x39, 0x8f, 0xe3, 0xf9, 0x92, 0xf6, 0x73, 0x76, 0xb2, 0xb9, 0xeb, 0x67, 0xe1, 0x8a, 0xa6, 0x59,
   556  	0xb0, 0x5a, 0x73, 0xa1, 0xa6, 0x01, 0x8c, 0x82, 0x34, 0x33, 0xe2, 0xe8, 0x2e, 0x9c, 0xa3, 0x67,
   557  	0x50, 0x0b, 0xa3, 0x19, 0x7d, 0x50, 0xa5, 0xae, 0x74, 0x56, 0x25, 0x1c, 0x68, 0xef, 0x60, 0xff,
   558  	0x35, 0xcd, 0x82, 0x59, 0x90, 0x05, 0x4c, 0x71, 0x1f, 0x2c, 0x37, 0x34, 0x57, 0x1c, 0x10, 0x0e,
   559  	0xd0, 0xd7, 0x00, 0x69, 0x38, 0x8f, 0x82, 0x6c, 0x93, 0xd0, 0x54, 0xad, 0x74, 0xe5, 0xb3, 0xd6,
   560  	0xe5, 0xff, 0x7b, 0xc2, 0x51, 0xf1, 0xac, 0x5b, 0x28, 0xc8, 0x96, 0x58, 0xfb, 0x1e, 0x8e, 0xff,
   561  	0x25, 0x40, 0x9f, 0x83, 0x52, 0x4a, 0xfc, 0x05, 0x0d, 0x66, 0x34, 0x11, 0x05, 0x8f, 0x4a, 0xfe,
   562  	0x3a, 0xa7, 0xd1, 0xc7, 0xd0, 0x2c, 0x29, 0xb5, 0x92, 0x6b, 0xde, 0x13, 0xda, 0x5b, 0xa8, 0x0b,
   563  	0xdd, 0x2b, 0x38, 0x9c, 0x2e, 0x82, 0x28, 0xa2, 0xcb, 0xdd, 0x03, 0xdb, 0x82, 0x15, 0xb2, 0x0f,
   564  	0x55, 0xae, 0x7c, 0xb0, 0xb2, 0xf6, 0xa7, 0x04, 0x6d, 0x63, 0xe7, 0x61, 0x04, 0xd5, 0xec, 0x71,
   565  	0xcd, 0xb3, 0xa9, 0x91, 0x7c, 0x8d, 0x54, 0x68, 0xdc, 0xd3, 0x24, 0x0d, 0xe3, 0x28, 0x3f, 0xa7,
   566  	0x46, 0x0a, 0x88, 0xbe, 0x82, 0x66, 0xd9, 0x0d, 0x55, 0xee, 0x4a, 0x67, 0xad, 0xcb, 0xd3, 0x1e,
   567  	0xef, 0x57, 0xaf, 0xe8, 0x57, 0xcf, 0x2b, 0x14, 0xe4, 0xbd, 0x18, 0xbd, 0x00, 0x28, 0xee, 0x12,
   568  	0xce, 0xd4, 0x6a, 0x57, 0x3a, 0x6b, 0x92, 0xa6, 0x60, 0xac, 0x19, 0xea, 0x40, 0x2d, 0x7b, 0x60,
   569  	0x3b, 0xb5, 0x7c, 0xa7, 0x9a, 0x3d, 0x58, 0x33, 0xd6, 0x38, 0xba, 0x8e, 0xa7, 0x0b, 0xb5, 0xce,
   570  	0x5b, 0x9b, 0x03, 0x96, 0x1e, 0x7d, 0xc8, 0x68, 0x94, 0xfb, 0x6b, 0xf0, 0xf4, 0x4a, 0x42, 0xd3,
   571  	0xe1, 0xc8, 0x7d, 0x12, 0xb7, 0x0a, 0x8d, 0x69, 0x42, 0x83, 0x2c, 0x2e, 0xf2, 0x2b, 0x20, 0x2b,
   572  	0x10, 0xc5, 0xd1, 0xb4, 0x68, 0x02, 0x07, 0x1a, 0x86, 0xc6, 0x6d, 0xf0, 0xb8, 0x8c, 0x83, 0x19,
   573  	0xfa, 0x0c, 0xea, 0x5b, 0xc9, 0xb7, 0x2e, 0x0f, 0x8b, 0x01, 0xe1, 0x47, 0x13, 0xb1, 0xcb, 0x52,
   574  	0x64, 0xd3, 0x20, 0xce, 0xc9, 0xd7, 0xda, 0x00, 0xf6, 0x71, 0x74, 0x4f, 0x97, 0x31, 0x4f, 0x74,
   575  	0xcd, 0x8f, 0x2c, 0x2c, 0x08, 0xf8, 0x1f, 0xb3, 0xf0, 0xa3, 0x04, 0xb5, 0xc1, 0x32, 0x9e, 0xfe,
   576  	0x80, 0x2e, 0x9e, 0x38, 0xe9, 0x14, 0x4e, 0xf2, 0xed, 0x27, 0x76, 0x5e, 0x6d, 0xd9, 0x69, 0x5d,
   577  	0x1e, 0xef, 0x48, 0xcd, 0x20, 0x0b, 0xb8, 0x43, 0xf4, 0x05, 0xec, 0xaf, 0xc4, 0x1c, 0x8b, 0x66,
   578  	0x9e, 0xec, 0x48, 0x8b, 0x21, 0x27, 0xa5, 0x4c, 0x9b, 0x43, 0x6b, 0xab, 0x20, 0xfa, 0x1f, 0xd4,
   579  	0xa3, 0xcd, 0x6a, 0x22, 0x5c, 0x55, 0x89, 0x40, 0xe8, 0x13, 0x68, 0xaf, 0x13, 0x7a, 0x1f, 0xc6,
   580  	0x9b, 0xd4, 0x5f, 0x04, 0xe9, 0x42, 0xdc, 0xec, 0xa0, 0x20, 0xaf, 0x83, 0x74, 0x81, 0x3e, 0x82,
   581  	0x26, 0x3b, 0x93, 0x0b, 0xe4, 0x5c, 0xb0, 0xcf, 0x08, 0xb6, 0xa9, 0xbd, 0x84, 0x66, 0x69, 0xb7,
   582  	0x8c, 0x57, 0xea, 0xca, 0x65, 0xbc, 0x17, 0xd0, 0xde, 0x31, 0x89, 0x4e, 0xb7, 0x6e, 0xc3, 0x85,
   583  	0x25, 0x3e, 0xff, 0x5d, 0x82, 0xba, 0x9b, 0x05, 0xd9, 0x26, 0x45, 0x2d, 0x68, 0x8c, 0xed, 0x1b,
   584  	0xdb, 0xf9, 0xd6, 0x56, 0xf6, 0xd0, 0x01, 0x34, 0xdc, 0xb1, 0x61, 0x60, 0xd7, 0x55, 0xfe, 0x90,
   585  	0x90, 0x02, 0xad, 0x81, 0x6e, 0xfa, 0x04, 0x7f, 0x33, 0xc6, 0xae, 0xa7, 0xfc, 0x24, 0xa3, 0x43,
   586  	0x68, 0x0e, 0x1d, 0x32, 0xb0, 0x4c, 0x13, 0xdb, 0xca, 0xcf, 0x39, 0xb6, 0x1d, 0xcf, 0x1f, 0x3a,
   587  	0x63, 0xdb, 0x54, 0x7e, 0x91, 0xd1, 0x0b, 0x50, 0x85, 0xda, 0xc7, 0xb6, 0x67, 0x79, 0xdf, 0xf9,
   588  	0x9e, 0xe3, 0xf8, 0x23, 0x9d, 0x5c, 0x61, 0xe5, 0x37, 0x19, 0x9d, 0xc2, 0x89, 0x65, 0x7b, 0x98,
   589  	0xd8, 0xfa, 0xc8, 0x77, 0x31, 0x79, 0x83, 0x89, 0x8f, 0x09, 0x71, 0x88, 0xf2, 0x97, 0x8c, 0x54,
   590  	0xe8, 0x30, 0xca, 0x32, 0xb0, 0x3f, 0xb6, 0xf5, 0x37, 0xba, 0x35, 0xd2, 0x07, 0x23, 0xac, 0xfc,
   591  	0x2d, 0x9f, 0xff, 0x2a, 0x01, 0xf0, 0x7c, 0x3d, 0xf6, 0x6f, 0x6c, 0x41, 0xe3, 0x35, 0x76, 0x5d,
   592  	0xfd, 0x0a, 0x2b, 0x7b, 0x08, 0xa0, 0x6e, 0x38, 0xf6, 0xd0, 0xba, 0x52, 0x24, 0x74, 0x0c, 0x6d,
   593  	0xbe, 0xf6, 0xc7, 0xb7, 0xa6, 0xee, 0x61, 0xa5, 0x82, 0x54, 0x78, 0x86, 0x6d, 0xd3, 0x21, 0x2e,
   594  	0x26, 0xbe, 0x47, 0x74, 0xdb, 0xd5, 0x0d, 0xcf, 0x72, 0x6c, 0x45, 0x46, 0xcf, 0xa1, 0xe3, 0x10,
   595  	0x13, 0x93, 0x27, 0x1b, 0x55, 0x74, 0x02, 0xc7, 0x26, 0x1e, 0x59, 0xcc, 0x9b, 0x8b, 0xf1, 0x8d,
   596  	0x6f, 0xd9, 0x43, 0x47, 0xa9, 0x31, 0xda, 0xb8, 0xd6, 0x2d, 0xdb, 0x70, 0x4c, 0xec, 0xdf, 0xea,
   597  	0xc6, 0x0d, 0xab, 0x5f, 0x3f, 0x7f, 0x07, 0x68, 0x27, 0x75, 0x8b, 0xbd, 0x6d, 0xd1, 0x21, 0x80,
   598  	0x6b, 0x5d, 0xd9, 0xba, 0x37, 0x26, 0xd8, 0x55, 0xf6, 0xd0, 0x11, 0xb4, 0x46, 0xba, 0xeb, 0xf9,
   599  	0xa5, 0xd5, 0xe7, 0xd0, 0xd9, 0xaa, 0xea, 0xfa, 0x43, 0x6b, 0xe4, 0x61, 0xa2, 0x54, 0xd8, 0xe5,
   600  	0x84, 0x2d, 0x45, 0x1e, 0xb8, 0xf0, 0x69, 0x9c, 0xcc, 0x7b, 0x8b, 0xc7, 0x35, 0x4d, 0x96, 0x74,
   601  	0x36, 0xa7, 0x49, 0xef, 0x2e, 0x98, 0x24, 0xe1, 0x94, 0xbf, 0x5b, 0x52, 0x31, 0x9c, 0x6f, 0x2f,
   602  	0xe6, 0x61, 0xb6, 0xd8, 0x4c, 0x18, 0xec, 0x6f, 0x89, 0xfb, 0x5c, 0xcc, 0x3f, 0x1c, 0xa9, 0xf8,
   603  	0xb8, 0x4c, 0xea, 0x39, 0xfc, 0xf2, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa1, 0xcb, 0xe1, 0xb4,
   604  	0x74, 0x06, 0x00, 0x00,
   605  }