github.com/adnan-c/fabric_e2e_couchdb@v0.6.1-preview.0.20170228180935-21ce6b23cf91/protos/common/configtx.pb.go (about)

     1  // Code generated by protoc-gen-go.
     2  // source: common/configtx.proto
     3  // DO NOT EDIT!
     4  
     5  package common
     6  
     7  import proto "github.com/golang/protobuf/proto"
     8  import fmt "fmt"
     9  import math "math"
    10  
    11  // Reference imports to suppress errors if they are not otherwise used.
    12  var _ = proto.Marshal
    13  var _ = fmt.Errorf
    14  var _ = math.Inf
    15  
    16  // ConfigEnvelope is designed to contain _all_ configuration for a chain with no dependency
    17  // on previous configuration transactions.
    18  //
    19  // It is generated with the following scheme:
    20  //   1. Retrieve the existing configuration
    21  //   2. Note the config properties (ConfigValue, ConfigPolicy, ConfigGroup) to be modified
    22  //   3. Add any intermediate ConfigGroups to the ConfigUpdate.read_set (sparsely)
    23  //   4. Add any additional desired dependencies to ConfigUpdate.read_set (sparsely)
    24  //   5. Modify the config properties, incrementing each version by 1, set them in the ConfigUpdate.write_set
    25  //      Note: any element not modified but specified should already be in the read_set, so may be specified sparsely
    26  //   6. Create ConfigUpdate message and marshal it into ConfigUpdateEnvelope.update and encode the required signatures
    27  //     a) Each signature is of type ConfigSignature
    28  //     b) The ConfigSignature signature is over the concatenation of signature_header and the ConfigUpdate bytes (which includes a ChainHeader)
    29  //   5. Submit new Config for ordering in Envelope signed by submitter
    30  //     a) The Envelope Payload has data set to the marshaled ConfigEnvelope
    31  //     b) The Envelope Payload has a header of type Header.Type.CONFIG_UPDATE
    32  //
    33  // The configuration manager will verify:
    34  //   1. All items in the read_set exist at the read versions
    35  //   2. All items in the write_set at a different version than, or not in, the read_set have been appropriately signed according to their mod_policy
    36  //   3. The new configuration satisfies the ConfigSchema
    37  type ConfigEnvelope struct {
    38  	Config     *Config   `protobuf:"bytes,1,opt,name=config" json:"config,omitempty"`
    39  	LastUpdate *Envelope `protobuf:"bytes,2,opt,name=last_update,json=lastUpdate" json:"last_update,omitempty"`
    40  }
    41  
    42  func (m *ConfigEnvelope) Reset()                    { *m = ConfigEnvelope{} }
    43  func (m *ConfigEnvelope) String() string            { return proto.CompactTextString(m) }
    44  func (*ConfigEnvelope) ProtoMessage()               {}
    45  func (*ConfigEnvelope) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
    46  
    47  func (m *ConfigEnvelope) GetConfig() *Config {
    48  	if m != nil {
    49  		return m.Config
    50  	}
    51  	return nil
    52  }
    53  
    54  func (m *ConfigEnvelope) GetLastUpdate() *Envelope {
    55  	if m != nil {
    56  		return m.LastUpdate
    57  	}
    58  	return nil
    59  }
    60  
    61  type ConfigGroupSchema struct {
    62  	Groups   map[string]*ConfigGroupSchema  `protobuf:"bytes,1,rep,name=groups" json:"groups,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
    63  	Values   map[string]*ConfigValueSchema  `protobuf:"bytes,2,rep,name=values" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
    64  	Policies map[string]*ConfigPolicySchema `protobuf:"bytes,3,rep,name=policies" json:"policies,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
    65  }
    66  
    67  func (m *ConfigGroupSchema) Reset()                    { *m = ConfigGroupSchema{} }
    68  func (m *ConfigGroupSchema) String() string            { return proto.CompactTextString(m) }
    69  func (*ConfigGroupSchema) ProtoMessage()               {}
    70  func (*ConfigGroupSchema) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
    71  
    72  func (m *ConfigGroupSchema) GetGroups() map[string]*ConfigGroupSchema {
    73  	if m != nil {
    74  		return m.Groups
    75  	}
    76  	return nil
    77  }
    78  
    79  func (m *ConfigGroupSchema) GetValues() map[string]*ConfigValueSchema {
    80  	if m != nil {
    81  		return m.Values
    82  	}
    83  	return nil
    84  }
    85  
    86  func (m *ConfigGroupSchema) GetPolicies() map[string]*ConfigPolicySchema {
    87  	if m != nil {
    88  		return m.Policies
    89  	}
    90  	return nil
    91  }
    92  
    93  type ConfigValueSchema struct {
    94  }
    95  
    96  func (m *ConfigValueSchema) Reset()                    { *m = ConfigValueSchema{} }
    97  func (m *ConfigValueSchema) String() string            { return proto.CompactTextString(m) }
    98  func (*ConfigValueSchema) ProtoMessage()               {}
    99  func (*ConfigValueSchema) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }
   100  
   101  type ConfigPolicySchema struct {
   102  }
   103  
   104  func (m *ConfigPolicySchema) Reset()                    { *m = ConfigPolicySchema{} }
   105  func (m *ConfigPolicySchema) String() string            { return proto.CompactTextString(m) }
   106  func (*ConfigPolicySchema) ProtoMessage()               {}
   107  func (*ConfigPolicySchema) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }
   108  
   109  // Config represents the config for a particular channel
   110  type Config struct {
   111  	Header  *ChannelHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
   112  	Channel *ConfigGroup   `protobuf:"bytes,2,opt,name=channel" json:"channel,omitempty"`
   113  }
   114  
   115  func (m *Config) Reset()                    { *m = Config{} }
   116  func (m *Config) String() string            { return proto.CompactTextString(m) }
   117  func (*Config) ProtoMessage()               {}
   118  func (*Config) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }
   119  
   120  func (m *Config) GetHeader() *ChannelHeader {
   121  	if m != nil {
   122  		return m.Header
   123  	}
   124  	return nil
   125  }
   126  
   127  func (m *Config) GetChannel() *ConfigGroup {
   128  	if m != nil {
   129  		return m.Channel
   130  	}
   131  	return nil
   132  }
   133  
   134  type ConfigUpdateEnvelope struct {
   135  	ConfigUpdate []byte             `protobuf:"bytes,1,opt,name=config_update,json=configUpdate,proto3" json:"config_update,omitempty"`
   136  	Signatures   []*ConfigSignature `protobuf:"bytes,2,rep,name=signatures" json:"signatures,omitempty"`
   137  }
   138  
   139  func (m *ConfigUpdateEnvelope) Reset()                    { *m = ConfigUpdateEnvelope{} }
   140  func (m *ConfigUpdateEnvelope) String() string            { return proto.CompactTextString(m) }
   141  func (*ConfigUpdateEnvelope) ProtoMessage()               {}
   142  func (*ConfigUpdateEnvelope) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }
   143  
   144  func (m *ConfigUpdateEnvelope) GetSignatures() []*ConfigSignature {
   145  	if m != nil {
   146  		return m.Signatures
   147  	}
   148  	return nil
   149  }
   150  
   151  // ConfigUpdate is used to submit a subset of config and to have the orderer apply to Config
   152  // it is always submitted inside a ConfigUpdateEnvelope which allows the addition of signatures
   153  // resulting in a new total configuration.  The update is applied as follows:
   154  // 1. The versions from all of the elements in the read_set is verified against the versions in the existing config.
   155  //    If there is a mismatch in the read versions, then the config update fails and is rejected.
   156  // 2. Any elements in the write_set with the same version as the read_set are ignored.
   157  // 3. The corresponding mod_policy for every remaining element in the write_set is collected.
   158  // 4. Each policy is checked against the signatures from the ConfigUpdateEnvelope, any failing to verify are rejected
   159  // 5. The write_set is applied to the Config and the ConfigGroupSchema verifies that the updates were legal
   160  type ConfigUpdate struct {
   161  	Header   *ChannelHeader `protobuf:"bytes,1,opt,name=header" json:"header,omitempty"`
   162  	ReadSet  *ConfigGroup   `protobuf:"bytes,2,opt,name=read_set,json=readSet" json:"read_set,omitempty"`
   163  	WriteSet *ConfigGroup   `protobuf:"bytes,3,opt,name=write_set,json=writeSet" json:"write_set,omitempty"`
   164  }
   165  
   166  func (m *ConfigUpdate) Reset()                    { *m = ConfigUpdate{} }
   167  func (m *ConfigUpdate) String() string            { return proto.CompactTextString(m) }
   168  func (*ConfigUpdate) ProtoMessage()               {}
   169  func (*ConfigUpdate) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }
   170  
   171  func (m *ConfigUpdate) GetHeader() *ChannelHeader {
   172  	if m != nil {
   173  		return m.Header
   174  	}
   175  	return nil
   176  }
   177  
   178  func (m *ConfigUpdate) GetReadSet() *ConfigGroup {
   179  	if m != nil {
   180  		return m.ReadSet
   181  	}
   182  	return nil
   183  }
   184  
   185  func (m *ConfigUpdate) GetWriteSet() *ConfigGroup {
   186  	if m != nil {
   187  		return m.WriteSet
   188  	}
   189  	return nil
   190  }
   191  
   192  // ConfigGroup is the hierarchical data structure for holding config
   193  type ConfigGroup struct {
   194  	Version   uint64                   `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
   195  	Groups    map[string]*ConfigGroup  `protobuf:"bytes,2,rep,name=groups" json:"groups,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
   196  	Values    map[string]*ConfigValue  `protobuf:"bytes,3,rep,name=values" json:"values,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
   197  	Policies  map[string]*ConfigPolicy `protobuf:"bytes,4,rep,name=policies" json:"policies,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
   198  	ModPolicy string                   `protobuf:"bytes,5,opt,name=mod_policy,json=modPolicy" json:"mod_policy,omitempty"`
   199  }
   200  
   201  func (m *ConfigGroup) Reset()                    { *m = ConfigGroup{} }
   202  func (m *ConfigGroup) String() string            { return proto.CompactTextString(m) }
   203  func (*ConfigGroup) ProtoMessage()               {}
   204  func (*ConfigGroup) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} }
   205  
   206  func (m *ConfigGroup) GetGroups() map[string]*ConfigGroup {
   207  	if m != nil {
   208  		return m.Groups
   209  	}
   210  	return nil
   211  }
   212  
   213  func (m *ConfigGroup) GetValues() map[string]*ConfigValue {
   214  	if m != nil {
   215  		return m.Values
   216  	}
   217  	return nil
   218  }
   219  
   220  func (m *ConfigGroup) GetPolicies() map[string]*ConfigPolicy {
   221  	if m != nil {
   222  		return m.Policies
   223  	}
   224  	return nil
   225  }
   226  
   227  // ConfigValue represents an individual piece of config data
   228  type ConfigValue struct {
   229  	Version   uint64 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
   230  	Value     []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
   231  	ModPolicy string `protobuf:"bytes,3,opt,name=mod_policy,json=modPolicy" json:"mod_policy,omitempty"`
   232  }
   233  
   234  func (m *ConfigValue) Reset()                    { *m = ConfigValue{} }
   235  func (m *ConfigValue) String() string            { return proto.CompactTextString(m) }
   236  func (*ConfigValue) ProtoMessage()               {}
   237  func (*ConfigValue) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} }
   238  
   239  type ConfigPolicy struct {
   240  	Version   uint64  `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
   241  	Policy    *Policy `protobuf:"bytes,2,opt,name=policy" json:"policy,omitempty"`
   242  	ModPolicy string  `protobuf:"bytes,3,opt,name=mod_policy,json=modPolicy" json:"mod_policy,omitempty"`
   243  }
   244  
   245  func (m *ConfigPolicy) Reset()                    { *m = ConfigPolicy{} }
   246  func (m *ConfigPolicy) String() string            { return proto.CompactTextString(m) }
   247  func (*ConfigPolicy) ProtoMessage()               {}
   248  func (*ConfigPolicy) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{9} }
   249  
   250  func (m *ConfigPolicy) GetPolicy() *Policy {
   251  	if m != nil {
   252  		return m.Policy
   253  	}
   254  	return nil
   255  }
   256  
   257  type ConfigSignature struct {
   258  	SignatureHeader []byte `protobuf:"bytes,1,opt,name=signature_header,json=signatureHeader,proto3" json:"signature_header,omitempty"`
   259  	Signature       []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
   260  }
   261  
   262  func (m *ConfigSignature) Reset()                    { *m = ConfigSignature{} }
   263  func (m *ConfigSignature) String() string            { return proto.CompactTextString(m) }
   264  func (*ConfigSignature) ProtoMessage()               {}
   265  func (*ConfigSignature) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{10} }
   266  
   267  func init() {
   268  	proto.RegisterType((*ConfigEnvelope)(nil), "common.ConfigEnvelope")
   269  	proto.RegisterType((*ConfigGroupSchema)(nil), "common.ConfigGroupSchema")
   270  	proto.RegisterType((*ConfigValueSchema)(nil), "common.ConfigValueSchema")
   271  	proto.RegisterType((*ConfigPolicySchema)(nil), "common.ConfigPolicySchema")
   272  	proto.RegisterType((*Config)(nil), "common.Config")
   273  	proto.RegisterType((*ConfigUpdateEnvelope)(nil), "common.ConfigUpdateEnvelope")
   274  	proto.RegisterType((*ConfigUpdate)(nil), "common.ConfigUpdate")
   275  	proto.RegisterType((*ConfigGroup)(nil), "common.ConfigGroup")
   276  	proto.RegisterType((*ConfigValue)(nil), "common.ConfigValue")
   277  	proto.RegisterType((*ConfigPolicy)(nil), "common.ConfigPolicy")
   278  	proto.RegisterType((*ConfigSignature)(nil), "common.ConfigSignature")
   279  }
   280  
   281  func init() { proto.RegisterFile("common/configtx.proto", fileDescriptor1) }
   282  
   283  var fileDescriptor1 = []byte{
   284  	// 652 bytes of a gzipped FileDescriptorProto
   285  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x55, 0xdd, 0x6e, 0xda, 0x4c,
   286  	0x10, 0x15, 0x38, 0x71, 0xc2, 0x40, 0x7e, 0xbe, 0x85, 0xe8, 0x73, 0x51, 0xab, 0xa6, 0xae, 0x9a,
   287  	0x26, 0xad, 0x80, 0x34, 0xbd, 0xa0, 0xaa, 0x94, 0x9b, 0x46, 0x51, 0x7b, 0x15, 0xb5, 0xa6, 0x3f,
   288  	0x52, 0x54, 0x09, 0x19, 0x7b, 0x01, 0x2b, 0xc6, 0x6b, 0xad, 0x17, 0x5a, 0x9e, 0xa6, 0x0f, 0xd6,
   289  	0x37, 0xe8, 0x53, 0x54, 0xde, 0x1f, 0x77, 0x0d, 0x06, 0x94, 0x2b, 0xd8, 0x99, 0x73, 0xce, 0xcc,
   290  	0x8e, 0xe7, 0x68, 0xe1, 0xc8, 0x23, 0x93, 0x09, 0x89, 0x3a, 0x1e, 0x89, 0x86, 0xc1, 0x88, 0xfd,
   291  	0x6c, 0xc7, 0x94, 0x30, 0x82, 0x4c, 0x11, 0x6e, 0xd6, 0xb3, 0x74, 0xfa, 0x23, 0x92, 0x4d, 0xc5,
   292  	0x89, 0x49, 0x18, 0x78, 0x01, 0x4e, 0x44, 0xd8, 0xbe, 0x83, 0xfd, 0x2b, 0xae, 0x72, 0x1d, 0xcd,
   293  	0x70, 0x48, 0x62, 0x8c, 0x4e, 0xc0, 0x14, 0xba, 0x56, 0xe9, 0xb8, 0x74, 0x5a, 0xbd, 0xd8, 0x6f,
   294  	0x4b, 0x1d, 0x81, 0x73, 0x64, 0x16, 0xbd, 0x82, 0x6a, 0xe8, 0x26, 0xac, 0x3f, 0x8d, 0x7d, 0x97,
   295  	0x61, 0xab, 0xcc, 0xc1, 0x87, 0x0a, 0xac, 0xe4, 0x1c, 0x48, 0x41, 0x5f, 0x38, 0xc6, 0xfe, 0x6d,
   296  	0xc0, 0x7f, 0x42, 0xe5, 0x3d, 0x25, 0xd3, 0xb8, 0xe7, 0x8d, 0xf1, 0xc4, 0x45, 0x97, 0x60, 0x8e,
   297  	0xd2, 0x63, 0x62, 0x95, 0x8e, 0x8d, 0xd3, 0xea, 0xc5, 0xb3, 0x7c, 0x41, 0x0d, 0xda, 0xe6, 0xff,
   298  	0x93, 0xeb, 0x88, 0xd1, 0xb9, 0x23, 0x49, 0x29, 0x7d, 0xe6, 0x86, 0x53, 0x9c, 0x58, 0xe5, 0x4d,
   299  	0xf4, 0xaf, 0x1c, 0x27, 0xe9, 0x82, 0x84, 0xae, 0x60, 0x57, 0x8d, 0xc4, 0x32, 0xb8, 0xc0, 0xf3,
   300  	0xd5, 0x02, 0x1f, 0x25, 0x52, 0x48, 0x64, 0xc4, 0xe6, 0x67, 0xa8, 0x6a, 0xad, 0xa1, 0x43, 0x30,
   301  	0xee, 0xf0, 0x9c, 0xcf, 0xaf, 0xe2, 0xa4, 0x7f, 0x51, 0x07, 0xb6, 0x79, 0x3d, 0x39, 0xa6, 0x07,
   302  	0x2b, 0x4b, 0x38, 0x02, 0xf7, 0xb6, 0xfc, 0xa6, 0x94, 0xaa, 0x6a, 0x1d, 0xdf, 0x5b, 0x95, 0x73,
   303  	0x97, 0x55, 0xbf, 0xc1, 0x5e, 0xee, 0x1a, 0x05, 0xba, 0xe7, 0x79, 0xdd, 0x66, 0x5e, 0x97, 0xb3,
   304  	0xe7, 0x4b, 0xc2, 0x76, 0x5d, 0x7d, 0x5c, 0xad, 0xb0, 0xdd, 0x00, 0xb4, 0xcc, 0xb2, 0x87, 0x60,
   305  	0x8a, 0x28, 0x6a, 0x81, 0x39, 0xc6, 0xae, 0x8f, 0xa9, 0xdc, 0xb6, 0xa3, 0xac, 0xd6, 0xd8, 0x8d,
   306  	0x22, 0x1c, 0x7e, 0xe0, 0x49, 0x47, 0x82, 0x50, 0x0b, 0x76, 0x3c, 0x91, 0x90, 0xbd, 0xd5, 0x0b,
   307  	0x26, 0xe9, 0x28, 0x8c, 0xcd, 0xa0, 0x21, 0xe2, 0x62, 0x01, 0xb3, 0x1d, 0x7f, 0x0a, 0x7b, 0x62,
   308  	0x8b, 0xd5, 0xf6, 0xa6, 0xc5, 0x6b, 0x4e, 0xcd, 0xd3, 0xc0, 0xa8, 0x0b, 0x90, 0x04, 0xa3, 0xc8,
   309  	0x65, 0x53, 0x9a, 0x2d, 0xd7, 0xff, 0xf9, 0x72, 0x3d, 0x95, 0x77, 0x34, 0xa8, 0xfd, 0xab, 0x04,
   310  	0x35, 0xbd, 0xec, 0x7d, 0x2f, 0xd9, 0x86, 0x5d, 0x8a, 0x5d, 0xbf, 0x9f, 0x60, 0xb6, 0xf6, 0x96,
   311  	0x29, 0xa8, 0x87, 0x19, 0x3a, 0x87, 0xca, 0x0f, 0x1a, 0x30, 0xcc, 0x09, 0xc6, 0x6a, 0xc2, 0x2e,
   312  	0x47, 0xf5, 0x30, 0xb3, 0xff, 0x18, 0x50, 0xd5, 0x32, 0xc8, 0x82, 0x9d, 0x19, 0xa6, 0x49, 0x40,
   313  	0x22, 0xde, 0xe1, 0x96, 0xa3, 0x8e, 0xa8, 0x9b, 0x99, 0x53, 0x0c, 0xe0, 0x71, 0x81, 0x70, 0xa1,
   314  	0x2d, 0xbb, 0x99, 0x2d, 0x8d, 0xd5, 0xc4, 0x22, 0x43, 0x5e, 0x6a, 0x86, 0xdc, 0xe2, 0xd4, 0x27,
   315  	0x45, 0xd4, 0x15, 0x56, 0x44, 0x8f, 0x00, 0x26, 0xc4, 0xef, 0xf3, 0xf3, 0xdc, 0xda, 0xe6, 0x4b,
   316  	0x5d, 0x99, 0x10, 0x5f, 0xec, 0x5f, 0xf3, 0x66, 0x93, 0x53, 0xcf, 0xf2, 0xbb, 0x5f, 0x38, 0x48,
   317  	0xcd, 0x4d, 0x37, 0x9b, 0x3c, 0xba, 0x5e, 0x8f, 0x73, 0x75, 0xbd, 0x4f, 0x9b, 0xdd, 0xf9, 0x22,
   318  	0xaf, 0xd8, 0x28, 0x72, 0xa7, 0xee, 0xcb, 0xef, 0xea, 0x5b, 0xf3, 0x62, 0x6b, 0xbe, 0x75, 0x43,
   319  	0x17, 0xae, 0x49, 0x89, 0x85, 0x81, 0x1a, 0x0b, 0x03, 0xb5, 0x89, 0xda, 0x75, 0x71, 0x5e, 0x23,
   320  	0x7f, 0x02, 0xa6, 0x14, 0x29, 0xe7, 0x1f, 0x16, 0xd9, 0xb2, 0xcc, 0x6e, 0x2a, 0x78, 0x0b, 0x07,
   321  	0x0b, 0xe6, 0x43, 0x67, 0x70, 0x98, 0xd9, 0xaf, 0xaf, 0x39, 0xad, 0xe6, 0x1c, 0x64, 0x71, 0xe1,
   322  	0x31, 0xf4, 0x10, 0x2a, 0x59, 0x48, 0xde, 0xf3, 0x5f, 0xe0, 0x5d, 0xeb, 0xf6, 0xe5, 0x28, 0x60,
   323  	0xe3, 0xe9, 0x20, 0x6d, 0xad, 0x33, 0x9e, 0xc7, 0x98, 0x86, 0xd8, 0x1f, 0x61, 0xda, 0x19, 0xba,
   324  	0x03, 0x1a, 0x78, 0x1d, 0xfe, 0x68, 0x26, 0xf2, 0x65, 0x1d, 0x98, 0xfc, 0xf8, 0xfa, 0x6f, 0x00,
   325  	0x00, 0x00, 0xff, 0xff, 0x72, 0x14, 0xff, 0x97, 0x90, 0x07, 0x00, 0x00,
   326  }