github.com/inklabsfoundation/inkchain@v0.17.1-0.20181025012015-c3cef8062f19/protos/peer/transaction.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // source: peer/transaction.proto 3 4 package peer 5 6 import proto "github.com/golang/protobuf/proto" 7 import fmt "fmt" 8 import math "math" 9 import _ "github.com/golang/protobuf/ptypes/timestamp" 10 import common "github.com/inklabsfoundation/inkchain/protos/common" 11 12 // Reference imports to suppress errors if they are not otherwise used. 13 var _ = proto.Marshal 14 var _ = fmt.Errorf 15 var _ = math.Inf 16 17 type TxValidationCode int32 18 19 const ( 20 TxValidationCode_VALID TxValidationCode = 0 21 TxValidationCode_NIL_ENVELOPE TxValidationCode = 1 22 TxValidationCode_BAD_PAYLOAD TxValidationCode = 2 23 TxValidationCode_BAD_COMMON_HEADER TxValidationCode = 3 24 TxValidationCode_BAD_CREATOR_SIGNATURE TxValidationCode = 4 25 TxValidationCode_INVALID_ENDORSER_TRANSACTION TxValidationCode = 5 26 TxValidationCode_INVALID_CONFIG_TRANSACTION TxValidationCode = 6 27 TxValidationCode_UNSUPPORTED_TX_PAYLOAD TxValidationCode = 7 28 TxValidationCode_BAD_PROPOSAL_TXID TxValidationCode = 8 29 TxValidationCode_DUPLICATE_TXID TxValidationCode = 9 30 TxValidationCode_ENDORSEMENT_POLICY_FAILURE TxValidationCode = 10 31 TxValidationCode_MVCC_READ_CONFLICT TxValidationCode = 11 32 TxValidationCode_PHANTOM_READ_CONFLICT TxValidationCode = 12 33 TxValidationCode_UNKNOWN_TX_TYPE TxValidationCode = 13 34 TxValidationCode_TARGET_CHAIN_NOT_FOUND TxValidationCode = 14 35 TxValidationCode_MARSHAL_TX_ERROR TxValidationCode = 15 36 TxValidationCode_NIL_TXACTION TxValidationCode = 16 37 TxValidationCode_EXPIRED_CHAINCODE TxValidationCode = 17 38 TxValidationCode_CHAINCODE_VERSION_CONFLICT TxValidationCode = 18 39 TxValidationCode_BAD_HEADER_EXTENSION TxValidationCode = 19 40 TxValidationCode_BAD_CHANNEL_HEADER TxValidationCode = 20 41 TxValidationCode_BAD_RESPONSE_PAYLOAD TxValidationCode = 21 42 TxValidationCode_BAD_RWSET TxValidationCode = 22 43 TxValidationCode_ILLEGAL_WRITESET TxValidationCode = 23 44 TxValidationCode_TRANSFER_CONFLICT TxValidationCode = 100 45 TxValidationCode_BAD_COUNTER TxValidationCode = 101 46 TxValidationCode_BAD_SIGNATURE TxValidationCode = 102 47 TxValidationCode_BAD_BALANCE TxValidationCode = 103 48 TxValidationCode_EXCEED_BALANCE TxValidationCode = 104 49 TxValidationCode_INVALID_OTHER_REASON TxValidationCode = 255 50 TxValidationCode_BAD_TOKEN_TYPE TxValidationCode = 355 51 TxValidationCode_BAD_TOKEN_ADDR TxValidationCode = 356 52 ) 53 54 var TxValidationCode_name = map[int32]string{ 55 0: "VALID", 56 1: "NIL_ENVELOPE", 57 2: "BAD_PAYLOAD", 58 3: "BAD_COMMON_HEADER", 59 4: "BAD_CREATOR_SIGNATURE", 60 5: "INVALID_ENDORSER_TRANSACTION", 61 6: "INVALID_CONFIG_TRANSACTION", 62 7: "UNSUPPORTED_TX_PAYLOAD", 63 8: "BAD_PROPOSAL_TXID", 64 9: "DUPLICATE_TXID", 65 10: "ENDORSEMENT_POLICY_FAILURE", 66 11: "MVCC_READ_CONFLICT", 67 12: "PHANTOM_READ_CONFLICT", 68 13: "UNKNOWN_TX_TYPE", 69 14: "TARGET_CHAIN_NOT_FOUND", 70 15: "MARSHAL_TX_ERROR", 71 16: "NIL_TXACTION", 72 17: "EXPIRED_CHAINCODE", 73 18: "CHAINCODE_VERSION_CONFLICT", 74 19: "BAD_HEADER_EXTENSION", 75 20: "BAD_CHANNEL_HEADER", 76 21: "BAD_RESPONSE_PAYLOAD", 77 22: "BAD_RWSET", 78 23: "ILLEGAL_WRITESET", 79 100: "TRANSFER_CONFLICT", 80 101: "BAD_COUNTER", 81 102: "BAD_SIGNATURE", 82 103: "BAD_BALANCE", 83 104: "EXCEED_BALANCE", 84 255: "INVALID_OTHER_REASON", 85 355: "BAD_TOKEN_TYPE", 86 356: "BAD_TOKEN_ADDR", 87 } 88 var TxValidationCode_value = map[string]int32{ 89 "VALID": 0, 90 "NIL_ENVELOPE": 1, 91 "BAD_PAYLOAD": 2, 92 "BAD_COMMON_HEADER": 3, 93 "BAD_CREATOR_SIGNATURE": 4, 94 "INVALID_ENDORSER_TRANSACTION": 5, 95 "INVALID_CONFIG_TRANSACTION": 6, 96 "UNSUPPORTED_TX_PAYLOAD": 7, 97 "BAD_PROPOSAL_TXID": 8, 98 "DUPLICATE_TXID": 9, 99 "ENDORSEMENT_POLICY_FAILURE": 10, 100 "MVCC_READ_CONFLICT": 11, 101 "PHANTOM_READ_CONFLICT": 12, 102 "UNKNOWN_TX_TYPE": 13, 103 "TARGET_CHAIN_NOT_FOUND": 14, 104 "MARSHAL_TX_ERROR": 15, 105 "NIL_TXACTION": 16, 106 "EXPIRED_CHAINCODE": 17, 107 "CHAINCODE_VERSION_CONFLICT": 18, 108 "BAD_HEADER_EXTENSION": 19, 109 "BAD_CHANNEL_HEADER": 20, 110 "BAD_RESPONSE_PAYLOAD": 21, 111 "BAD_RWSET": 22, 112 "ILLEGAL_WRITESET": 23, 113 "TRANSFER_CONFLICT": 100, 114 "BAD_COUNTER": 101, 115 "BAD_SIGNATURE": 102, 116 "BAD_BALANCE": 103, 117 "EXCEED_BALANCE": 104, 118 "INVALID_OTHER_REASON": 255, 119 "BAD_TOKEN_TYPE": 355, 120 "BAD_TOKEN_ADDR": 356, 121 } 122 123 func (x TxValidationCode) String() string { 124 return proto.EnumName(TxValidationCode_name, int32(x)) 125 } 126 func (TxValidationCode) EnumDescriptor() ([]byte, []int) { return fileDescriptor11, []int{0} } 127 128 // This message is necessary to facilitate the verification of the signature 129 // (in the signature field) over the bytes of the transaction (in the 130 // transactionBytes field). 131 type SignedTransaction struct { 132 // The bytes of the Transaction. NDD 133 TransactionBytes []byte `protobuf:"bytes,1,opt,name=transaction_bytes,json=transactionBytes,proto3" json:"transaction_bytes,omitempty"` 134 // Signature of the transactionBytes The public key of the signature is in 135 // the header field of TransactionAction There might be multiple 136 // TransactionAction, so multiple headers, but there should be same 137 // transactor identity (cert) in all headers 138 Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` 139 } 140 141 func (m *SignedTransaction) Reset() { *m = SignedTransaction{} } 142 func (m *SignedTransaction) String() string { return proto.CompactTextString(m) } 143 func (*SignedTransaction) ProtoMessage() {} 144 func (*SignedTransaction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{0} } 145 146 func (m *SignedTransaction) GetTransactionBytes() []byte { 147 if m != nil { 148 return m.TransactionBytes 149 } 150 return nil 151 } 152 153 func (m *SignedTransaction) GetSignature() []byte { 154 if m != nil { 155 return m.Signature 156 } 157 return nil 158 } 159 160 // ProcessedTransaction wraps an Envelope that includes a transaction along with an indication 161 // of whether the transaction was validated or invalidated by committing peer. 162 // The use case is that GetTransactionByID API needs to retrieve the transaction Envelope 163 // from block storage, and return it to a client, and indicate whether the transaction 164 // was validated or invalidated by committing peer. So that the originally submitted 165 // transaction Envelope is not modified, the ProcessedTransaction wrapper is returned. 166 type ProcessedTransaction struct { 167 // An Envelope which includes a processed transaction 168 TransactionEnvelope *common.Envelope `protobuf:"bytes,1,opt,name=transactionEnvelope" json:"transactionEnvelope,omitempty"` 169 // An indication of whether the transaction was validated or invalidated by committing peer 170 ValidationCode int32 `protobuf:"varint,2,opt,name=validationCode" json:"validationCode,omitempty"` 171 BlockHash []byte `protobuf:"bytes,3,opt,name=block_hash,json=blockHash,proto3" json:"block_hash,omitempty"` 172 Fee int64 `protobuf:"varint,4,opt,name=fee" json:"fee,omitempty"` 173 } 174 175 func (m *ProcessedTransaction) Reset() { *m = ProcessedTransaction{} } 176 func (m *ProcessedTransaction) String() string { return proto.CompactTextString(m) } 177 func (*ProcessedTransaction) ProtoMessage() {} 178 func (*ProcessedTransaction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{1} } 179 180 func (m *ProcessedTransaction) GetTransactionEnvelope() *common.Envelope { 181 if m != nil { 182 return m.TransactionEnvelope 183 } 184 return nil 185 } 186 187 func (m *ProcessedTransaction) GetValidationCode() int32 { 188 if m != nil { 189 return m.ValidationCode 190 } 191 return 0 192 } 193 194 func (m *ProcessedTransaction) GetBlockHash() []byte { 195 if m != nil { 196 return m.BlockHash 197 } 198 return nil 199 } 200 201 func (m *ProcessedTransaction) GetFee() int64 { 202 if m != nil { 203 return m.Fee 204 } 205 return 0 206 } 207 208 // The transaction to be sent to the ordering service. A transaction contains 209 // one or more TransactionAction. Each TransactionAction binds a proposal to 210 // potentially multiple actions. The transaction is atomic meaning that either 211 // all actions in the transaction will be committed or none will. Note that 212 // while a Transaction might include more than one Header, the Header.creator 213 // field must be the same in each. 214 // A single client is free to issue a number of independent Proposal, each with 215 // their header (Header) and request payload (ChaincodeProposalPayload). Each 216 // proposal is independently endorsed generating an action 217 // (ProposalResponsePayload) with one signature per Endorser. Any number of 218 // independent proposals (and their action) might be included in a transaction 219 // to ensure that they are treated atomically. 220 type Transaction struct { 221 // The payload is an array of TransactionAction. An array is necessary to 222 // accommodate multiple actions per transaction 223 Actions []*TransactionAction `protobuf:"bytes,1,rep,name=actions" json:"actions,omitempty"` 224 } 225 226 func (m *Transaction) Reset() { *m = Transaction{} } 227 func (m *Transaction) String() string { return proto.CompactTextString(m) } 228 func (*Transaction) ProtoMessage() {} 229 func (*Transaction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{2} } 230 231 func (m *Transaction) GetActions() []*TransactionAction { 232 if m != nil { 233 return m.Actions 234 } 235 return nil 236 } 237 238 // TransactionAction binds a proposal to its action. The type field in the 239 // header dictates the type of action to be applied to the ledger. 240 type TransactionAction struct { 241 // The header of the proposal action, which is the proposal header 242 Header []byte `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` 243 // The payload of the action as defined by the type in the header For 244 // chaincode, it's the bytes of ChaincodeActionPayload 245 Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` 246 } 247 248 func (m *TransactionAction) Reset() { *m = TransactionAction{} } 249 func (m *TransactionAction) String() string { return proto.CompactTextString(m) } 250 func (*TransactionAction) ProtoMessage() {} 251 func (*TransactionAction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{3} } 252 253 func (m *TransactionAction) GetHeader() []byte { 254 if m != nil { 255 return m.Header 256 } 257 return nil 258 } 259 260 func (m *TransactionAction) GetPayload() []byte { 261 if m != nil { 262 return m.Payload 263 } 264 return nil 265 } 266 267 // ChaincodeActionPayload is the message to be used for the TransactionAction's 268 // payload when the Header's type is set to CHAINCODE. It carries the 269 // chaincodeProposalPayload and an endorsed action to apply to the ledger. 270 type ChaincodeActionPayload struct { 271 // This field contains the bytes of the ChaincodeProposalPayload message from 272 // the original invocation (essentially the arguments) after the application 273 // of the visibility function. The main visibility modes are "full" (the 274 // entire ChaincodeProposalPayload message is included here), "hash" (only 275 // the hash of the ChaincodeProposalPayload message is included) or 276 // "nothing". This field will be used to check the consistency of 277 // ProposalResponsePayload.proposalHash. For the CHAINCODE type, 278 // ProposalResponsePayload.proposalHash is supposed to be H(ProposalHeader || 279 // f(ChaincodeProposalPayload)) where f is the visibility function. 280 ChaincodeProposalPayload []byte `protobuf:"bytes,1,opt,name=chaincode_proposal_payload,json=chaincodeProposalPayload,proto3" json:"chaincode_proposal_payload,omitempty"` 281 // The list of actions to apply to the ledger 282 Action *ChaincodeEndorsedAction `protobuf:"bytes,2,opt,name=action" json:"action,omitempty"` 283 } 284 285 func (m *ChaincodeActionPayload) Reset() { *m = ChaincodeActionPayload{} } 286 func (m *ChaincodeActionPayload) String() string { return proto.CompactTextString(m) } 287 func (*ChaincodeActionPayload) ProtoMessage() {} 288 func (*ChaincodeActionPayload) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{4} } 289 290 func (m *ChaincodeActionPayload) GetChaincodeProposalPayload() []byte { 291 if m != nil { 292 return m.ChaincodeProposalPayload 293 } 294 return nil 295 } 296 297 func (m *ChaincodeActionPayload) GetAction() *ChaincodeEndorsedAction { 298 if m != nil { 299 return m.Action 300 } 301 return nil 302 } 303 304 // ChaincodeEndorsedAction carries information about the endorsement of a 305 // specific proposal 306 type ChaincodeEndorsedAction struct { 307 // This is the bytes of the ProposalResponsePayload message signed by the 308 // endorsers. Recall that for the CHAINCODE type, the 309 // ProposalResponsePayload's extenstion field carries a ChaincodeAction 310 ProposalResponsePayload []byte `protobuf:"bytes,1,opt,name=proposal_response_payload,json=proposalResponsePayload,proto3" json:"proposal_response_payload,omitempty"` 311 // The endorsement of the proposal, basically the endorser's signature over 312 // proposalResponsePayload 313 Endorsements []*Endorsement `protobuf:"bytes,2,rep,name=endorsements" json:"endorsements,omitempty"` 314 } 315 316 func (m *ChaincodeEndorsedAction) Reset() { *m = ChaincodeEndorsedAction{} } 317 func (m *ChaincodeEndorsedAction) String() string { return proto.CompactTextString(m) } 318 func (*ChaincodeEndorsedAction) ProtoMessage() {} 319 func (*ChaincodeEndorsedAction) Descriptor() ([]byte, []int) { return fileDescriptor11, []int{5} } 320 321 func (m *ChaincodeEndorsedAction) GetProposalResponsePayload() []byte { 322 if m != nil { 323 return m.ProposalResponsePayload 324 } 325 return nil 326 } 327 328 func (m *ChaincodeEndorsedAction) GetEndorsements() []*Endorsement { 329 if m != nil { 330 return m.Endorsements 331 } 332 return nil 333 } 334 335 func init() { 336 proto.RegisterType((*SignedTransaction)(nil), "protos.SignedTransaction") 337 proto.RegisterType((*ProcessedTransaction)(nil), "protos.ProcessedTransaction") 338 proto.RegisterType((*Transaction)(nil), "protos.Transaction") 339 proto.RegisterType((*TransactionAction)(nil), "protos.TransactionAction") 340 proto.RegisterType((*ChaincodeActionPayload)(nil), "protos.ChaincodeActionPayload") 341 proto.RegisterType((*ChaincodeEndorsedAction)(nil), "protos.ChaincodeEndorsedAction") 342 proto.RegisterEnum("protos.TxValidationCode", TxValidationCode_name, TxValidationCode_value) 343 } 344 345 func init() { proto.RegisterFile("peer/transaction.proto", fileDescriptor11) } 346 347 var fileDescriptor11 = []byte{ 348 // 934 bytes of a gzipped FileDescriptorProto 349 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x55, 0xdd, 0x4e, 0xeb, 0x46, 350 0x17, 0xfd, 0x02, 0x07, 0xf8, 0x98, 0xf0, 0x33, 0x99, 0x40, 0x08, 0x88, 0xf6, 0xa0, 0x5c, 0x54, 351 0xe8, 0x54, 0x22, 0x2a, 0xe7, 0xa2, 0x52, 0xd5, 0x9b, 0x89, 0xbd, 0x21, 0xd6, 0x71, 0x66, 0xac, 352 0xf1, 0x04, 0x42, 0x2f, 0x3a, 0x72, 0x92, 0x21, 0x89, 0x08, 0x76, 0x64, 0x87, 0xa3, 0x9e, 0x97, 353 0x68, 0x1f, 0xa6, 0x8f, 0xd4, 0x3e, 0x42, 0xef, 0x5b, 0x8d, 0x7f, 0xf2, 0x03, 0xed, 0x4d, 0xe2, 354 0x59, 0x6b, 0xcd, 0xde, 0x6b, 0xef, 0x3d, 0xf6, 0xa0, 0xda, 0x4c, 0xeb, 0xb8, 0x39, 0x8f, 0x83, 355 0x30, 0x09, 0x06, 0xf3, 0x49, 0x14, 0x5e, 0xcd, 0xe2, 0x68, 0x1e, 0x91, 0xed, 0xf4, 0x2f, 0x39, 356 0x7b, 0x3f, 0x8a, 0xa2, 0xd1, 0x54, 0x37, 0xd3, 0x65, 0xff, 0xe5, 0xb1, 0x39, 0x9f, 0x3c, 0xeb, 357 0x64, 0x1e, 0x3c, 0xcf, 0x32, 0xe1, 0xd9, 0x79, 0x1a, 0x60, 0x16, 0x47, 0xb3, 0x28, 0x09, 0xa6, 358 0x2a, 0xd6, 0xc9, 0x2c, 0x0a, 0x13, 0x9d, 0xb3, 0xd5, 0x41, 0xf4, 0xfc, 0x1c, 0x85, 0xcd, 0xec, 359 0x2f, 0x03, 0x1b, 0x3f, 0xa3, 0x8a, 0x3f, 0x19, 0x85, 0x7a, 0x28, 0x97, 0x69, 0xc9, 0xb7, 0xa8, 360 0xb2, 0xe2, 0x42, 0xf5, 0xbf, 0xcc, 0x75, 0x52, 0x2f, 0x5d, 0x94, 0x2e, 0xf7, 0x04, 0x5e, 0x21, 361 0x5a, 0x06, 0x27, 0xe7, 0x68, 0x37, 0x99, 0x8c, 0xc2, 0x60, 0xfe, 0x12, 0xeb, 0xfa, 0x46, 0x2a, 362 0x5a, 0x02, 0x8d, 0xdf, 0x4b, 0xe8, 0xc8, 0x8b, 0xa3, 0x81, 0x4e, 0x92, 0xf5, 0x1c, 0x2d, 0x54, 363 0x5d, 0x09, 0x05, 0xe1, 0x67, 0x3d, 0x8d, 0x66, 0x3a, 0xcd, 0x52, 0xbe, 0xc6, 0x57, 0xb9, 0xc9, 364 0x02, 0x17, 0xff, 0x26, 0x26, 0xdf, 0xa0, 0x83, 0xcf, 0xc1, 0x74, 0x32, 0x0c, 0x0c, 0x6a, 0x45, 365 0xc3, 0x2c, 0xff, 0x96, 0x78, 0x85, 0x92, 0xaf, 0x10, 0xea, 0x4f, 0xa3, 0xc1, 0x93, 0x1a, 0x07, 366 0xc9, 0xb8, 0xbe, 0x99, 0x79, 0x4c, 0x91, 0x76, 0x90, 0x8c, 0x09, 0x46, 0x9b, 0x8f, 0x5a, 0xd7, 367 0xdf, 0x5d, 0x94, 0x2e, 0x37, 0x85, 0x79, 0x6c, 0xb4, 0x50, 0x79, 0xd5, 0xeb, 0x47, 0xb4, 0x93, 368 0x3d, 0x99, 0x2e, 0x6c, 0x5e, 0x96, 0xaf, 0x4f, 0xb3, 0xee, 0x25, 0x57, 0x2b, 0x2a, 0x9a, 0xfe, 369 0x8a, 0x42, 0xd9, 0x00, 0x54, 0x79, 0xc3, 0x92, 0x1a, 0xda, 0x1e, 0xeb, 0x60, 0xa8, 0xe3, 0xbc, 370 0x9d, 0xf9, 0x8a, 0xd4, 0xd1, 0xce, 0x2c, 0xf8, 0x32, 0x8d, 0x82, 0x61, 0xde, 0xc2, 0x62, 0xd9, 371 0xf8, 0xad, 0x84, 0x6a, 0xd6, 0x38, 0x98, 0x84, 0x83, 0x68, 0xa8, 0xb3, 0x28, 0x5e, 0x46, 0x91, 372 0x1f, 0xd1, 0xd9, 0xa0, 0x60, 0xd4, 0x62, 0xea, 0x45, 0x9c, 0x2c, 0x41, 0x7d, 0xa1, 0xf0, 0x72, 373 0x41, 0xb1, 0xfb, 0x7b, 0xb4, 0x9d, 0x59, 0x4b, 0x33, 0x96, 0xaf, 0xdf, 0x17, 0x35, 0x2d, 0xb2, 374 0x41, 0x38, 0x8c, 0xe2, 0x44, 0x0f, 0xf3, 0xca, 0x72, 0x79, 0xe3, 0xd7, 0x12, 0x3a, 0xf9, 0x0f, 375 0x0d, 0xf9, 0x01, 0x9d, 0xbe, 0x39, 0x7e, 0xaf, 0x1c, 0x9d, 0x14, 0x02, 0x91, 0xf3, 0x4b, 0x43, 376 0x7b, 0x3a, 0x8b, 0xf6, 0xac, 0xc3, 0x79, 0x52, 0xdf, 0x48, 0x5b, 0x5d, 0x2d, 0x6c, 0xc1, 0x92, 377 0x13, 0x6b, 0xc2, 0x0f, 0x7f, 0x6d, 0x21, 0x2c, 0x7f, 0xb9, 0x5b, 0x9f, 0xf9, 0x2e, 0xda, 0xba, 378 0xa3, 0xae, 0x63, 0xe3, 0xff, 0x11, 0x8c, 0xf6, 0x98, 0xe3, 0x2a, 0x60, 0x77, 0xe0, 0x72, 0x0f, 379 0x70, 0x89, 0x1c, 0xa2, 0x72, 0x8b, 0xda, 0xca, 0xa3, 0x0f, 0x2e, 0xa7, 0x36, 0xde, 0x20, 0xc7, 380 0xa8, 0x62, 0x00, 0x8b, 0x77, 0x3a, 0x9c, 0xa9, 0x36, 0x50, 0x1b, 0x04, 0xde, 0x24, 0xa7, 0xe8, 381 0x38, 0x85, 0x05, 0x50, 0xc9, 0x85, 0xf2, 0x9d, 0x5b, 0x46, 0x65, 0x57, 0x00, 0x7e, 0x47, 0x2e, 382 0xd0, 0xb9, 0xc3, 0xd2, 0x0c, 0x0a, 0x98, 0xcd, 0x85, 0x0f, 0x42, 0x49, 0x41, 0x99, 0x4f, 0x2d, 383 0xe9, 0x70, 0x86, 0xb7, 0xc8, 0xd7, 0xe8, 0xac, 0x50, 0x58, 0x9c, 0xdd, 0x38, 0xb7, 0x6b, 0xfc, 384 0x36, 0x39, 0x43, 0xb5, 0x2e, 0xf3, 0xbb, 0x9e, 0xc7, 0x85, 0x04, 0x5b, 0xc9, 0xde, 0xc2, 0xcf, 385 0x4e, 0xe1, 0xc7, 0x13, 0xdc, 0xe3, 0x3e, 0x75, 0x95, 0xec, 0x39, 0x36, 0xfe, 0x3f, 0x21, 0xe8, 386 0xc0, 0xee, 0x7a, 0xae, 0x63, 0x51, 0x09, 0x19, 0xb6, 0x6b, 0xd2, 0xe4, 0x06, 0x3a, 0xc0, 0xa4, 387 0xf2, 0xb8, 0xeb, 0x58, 0x0f, 0xea, 0x86, 0x3a, 0xae, 0x31, 0x8a, 0x48, 0x0d, 0x91, 0xce, 0x9d, 388 0x65, 0x29, 0x01, 0x34, 0x33, 0xe2, 0x3a, 0x96, 0xc4, 0x65, 0x53, 0x9b, 0xd7, 0xa6, 0x4c, 0xf2, 389 0xce, 0x2b, 0x6a, 0x8f, 0x54, 0xd1, 0x61, 0x97, 0x7d, 0x62, 0xfc, 0x9e, 0x19, 0x57, 0xf2, 0xc1, 390 0x03, 0xbc, 0x6f, 0xec, 0x4a, 0x2a, 0x6e, 0x41, 0x2a, 0xab, 0x4d, 0x1d, 0xa6, 0x18, 0x97, 0xea, 391 0x86, 0x77, 0x99, 0x8d, 0x0f, 0xc8, 0x11, 0xc2, 0x1d, 0x2a, 0xfc, 0x76, 0xea, 0x54, 0x81, 0x10, 392 0x5c, 0xe0, 0xc3, 0xa2, 0xef, 0xb2, 0x97, 0x97, 0x8c, 0x4d, 0x59, 0xd0, 0xf3, 0x1c, 0x01, 0x76, 393 0x16, 0xc4, 0xe2, 0x36, 0xe0, 0x8a, 0x29, 0x61, 0xb1, 0x54, 0x77, 0x20, 0x7c, 0x87, 0xb3, 0xa5, 394 0x1f, 0x42, 0xea, 0xe8, 0xc8, 0x74, 0x23, 0x1b, 0x8b, 0x82, 0x9e, 0x04, 0x66, 0x24, 0xb8, 0x6a, 395 0x8a, 0x4b, 0x07, 0xd4, 0xa6, 0x8c, 0x81, 0x5b, 0x0c, 0xee, 0xa8, 0xd8, 0x21, 0xc0, 0xf7, 0x38, 396 0xf3, 0x61, 0xd1, 0xd9, 0x63, 0xb2, 0x8f, 0x76, 0x53, 0xe6, 0xde, 0x07, 0x89, 0x6b, 0xc6, 0xb9, 397 0xe3, 0xba, 0x70, 0x4b, 0x5d, 0x75, 0x2f, 0x1c, 0x09, 0x06, 0x3d, 0x31, 0x3e, 0xd3, 0x59, 0xdd, 398 0x80, 0x58, 0xfa, 0x18, 0x16, 0xc7, 0xc6, 0xe2, 0x5d, 0x26, 0x41, 0x60, 0x4d, 0x2a, 0x68, 0xdf, 399 0x00, 0xcb, 0x73, 0xf1, 0x58, 0x68, 0x5a, 0xd4, 0xa5, 0xcc, 0x02, 0x3c, 0x32, 0x33, 0x83, 0x9e, 400 0x05, 0xb0, 0xc4, 0xc6, 0xe4, 0x14, 0x1d, 0x15, 0x47, 0x83, 0xcb, 0x36, 0x08, 0x33, 0x01, 0x9f, 401 0x33, 0xfc, 0x77, 0x89, 0x54, 0xd1, 0x81, 0xd9, 0x2f, 0xf9, 0x27, 0x60, 0x59, 0xeb, 0xff, 0xd8, 402 0x58, 0x07, 0xa9, 0x6d, 0x0b, 0xfc, 0xe7, 0x46, 0x2b, 0x41, 0x1f, 0xa2, 0x78, 0x74, 0x35, 0x09, 403 0x9f, 0xa6, 0x41, 0x3f, 0x79, 0x8c, 0x5e, 0xc2, 0xec, 0xf8, 0x1b, 0x24, 0x7d, 0xeb, 0x8b, 0x37, 404 0xc7, 0xdc, 0x0a, 0x2d, 0xb2, 0xf2, 0x31, 0xf2, 0x82, 0xc1, 0x53, 0x30, 0xd2, 0x3f, 0x7d, 0x37, 405 0x9a, 0xcc, 0xc7, 0x2f, 0x7d, 0xf3, 0xb1, 0x6d, 0xbe, 0x09, 0xd3, 0x2c, 0xc2, 0x64, 0xf7, 0x4d, 406 0xd2, 0x34, 0x61, 0xfa, 0xd9, 0x5d, 0xf4, 0xf1, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x56, 0x74, 407 0xe4, 0x63, 0xac, 0x06, 0x00, 0x00, 408 }