Update beacon block proto to match spec (#1026)

* update beacon-state proto to new spec

* AttestationData

* use bazel's pb.go

* boundry -> boundary

* update beacon block proto msg

* comment and deprecate AggregatedAttestation
This commit is contained in:
Preston Van Loon
2018-12-02 15:12:28 -05:00
committed by GitHub
parent 892357b348
commit bbf3c72987
2 changed files with 268 additions and 189 deletions

View File

@@ -71,7 +71,7 @@ func (m *BeaconState) Reset() { *m = BeaconState{} }
func (m *BeaconState) String() string { return proto.CompactTextString(m) }
func (*BeaconState) ProtoMessage() {}
func (*BeaconState) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{0}
return fileDescriptor_types_3b2e6681d91f9d59, []int{0}
}
func (m *BeaconState) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BeaconState.Unmarshal(m, b)
@@ -419,7 +419,7 @@ func (m *ForkData) Reset() { *m = ForkData{} }
func (m *ForkData) String() string { return proto.CompactTextString(m) }
func (*ForkData) ProtoMessage() {}
func (*ForkData) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{1}
return fileDescriptor_types_3b2e6681d91f9d59, []int{1}
}
func (m *ForkData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ForkData.Unmarshal(m, b)
@@ -472,7 +472,7 @@ func (m *CandidatePoWReceiptRootRecord) Reset() { *m = CandidatePoWRecei
func (m *CandidatePoWReceiptRootRecord) String() string { return proto.CompactTextString(m) }
func (*CandidatePoWReceiptRootRecord) ProtoMessage() {}
func (*CandidatePoWReceiptRootRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{2}
return fileDescriptor_types_3b2e6681d91f9d59, []int{2}
}
func (m *CandidatePoWReceiptRootRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CandidatePoWReceiptRootRecord.Unmarshal(m, b)
@@ -520,7 +520,7 @@ func (m *PendingAttestationRecord) Reset() { *m = PendingAttestationReco
func (m *PendingAttestationRecord) String() string { return proto.CompactTextString(m) }
func (*PendingAttestationRecord) ProtoMessage() {}
func (*PendingAttestationRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{3}
return fileDescriptor_types_3b2e6681d91f9d59, []int{3}
}
func (m *PendingAttestationRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PendingAttestationRecord.Unmarshal(m, b)
@@ -586,7 +586,7 @@ func (m *AttestationData) Reset() { *m = AttestationData{} }
func (m *AttestationData) String() string { return proto.CompactTextString(m) }
func (*AttestationData) ProtoMessage() {}
func (*AttestationData) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{4}
return fileDescriptor_types_3b2e6681d91f9d59, []int{4}
}
func (m *AttestationData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AttestationData.Unmarshal(m, b)
@@ -680,7 +680,7 @@ func (m *ValidatorRecord) Reset() { *m = ValidatorRecord{} }
func (m *ValidatorRecord) String() string { return proto.CompactTextString(m) }
func (*ValidatorRecord) ProtoMessage() {}
func (*ValidatorRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{5}
return fileDescriptor_types_3b2e6681d91f9d59, []int{5}
}
func (m *ValidatorRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ValidatorRecord.Unmarshal(m, b)
@@ -769,7 +769,7 @@ func (m *ShardReassignmentRecord) Reset() { *m = ShardReassignmentRecord
func (m *ShardReassignmentRecord) String() string { return proto.CompactTextString(m) }
func (*ShardReassignmentRecord) ProtoMessage() {}
func (*ShardReassignmentRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{6}
return fileDescriptor_types_3b2e6681d91f9d59, []int{6}
}
func (m *ShardReassignmentRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardReassignmentRecord.Unmarshal(m, b)
@@ -811,14 +811,14 @@ func (m *ShardReassignmentRecord) GetSlot() uint64 {
}
type AggregatedAttestation struct {
Slot uint64 `protobuf:"varint,1,opt,name=slot,proto3" json:"slot,omitempty"`
Shard uint64 `protobuf:"varint,2,opt,name=shard,proto3" json:"shard,omitempty"`
JustifiedSlot uint64 `protobuf:"varint,3,opt,name=justified_slot,json=justifiedSlot,proto3" json:"justified_slot,omitempty"`
JustifiedBlockHash []byte `protobuf:"bytes,4,opt,name=justified_block_hash,json=justifiedBlockHash,proto3" json:"justified_block_hash,omitempty"`
ShardBlockHash []byte `protobuf:"bytes,5,opt,name=shard_block_hash,json=shardBlockHash,proto3" json:"shard_block_hash,omitempty"`
AttesterBitfield []byte `protobuf:"bytes,6,opt,name=attester_bitfield,json=attesterBitfield,proto3" json:"attester_bitfield,omitempty"`
ObliqueParentHashes [][]byte `protobuf:"bytes,7,rep,name=oblique_parent_hashes,json=obliqueParentHashes,proto3" json:"oblique_parent_hashes,omitempty"`
AggregateSig []uint64 `protobuf:"varint,8,rep,packed,name=aggregate_sig,json=aggregateSig,proto3" json:"aggregate_sig,omitempty"`
Slot uint64 `protobuf:"varint,1,opt,name=slot,proto3" json:"slot,omitempty"` // Deprecated: Do not use.
Shard uint64 `protobuf:"varint,2,opt,name=shard,proto3" json:"shard,omitempty"` // Deprecated: Do not use.
JustifiedSlot uint64 `protobuf:"varint,3,opt,name=justified_slot,json=justifiedSlot,proto3" json:"justified_slot,omitempty"` // Deprecated: Do not use.
JustifiedBlockHash []byte `protobuf:"bytes,4,opt,name=justified_block_hash,json=justifiedBlockHash,proto3" json:"justified_block_hash,omitempty"` // Deprecated: Do not use.
ShardBlockHash []byte `protobuf:"bytes,5,opt,name=shard_block_hash,json=shardBlockHash,proto3" json:"shard_block_hash,omitempty"` // Deprecated: Do not use.
AttesterBitfield []byte `protobuf:"bytes,6,opt,name=attester_bitfield,json=attesterBitfield,proto3" json:"attester_bitfield,omitempty"` // Deprecated: Do not use.
ObliqueParentHashes [][]byte `protobuf:"bytes,7,rep,name=oblique_parent_hashes,json=obliqueParentHashes,proto3" json:"oblique_parent_hashes,omitempty"` // Deprecated: Do not use.
AggregateSig []uint64 `protobuf:"varint,8,rep,packed,name=aggregate_sig,json=aggregateSig,proto3" json:"aggregate_sig,omitempty"` // Deprecated: Do not use.
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -828,7 +828,7 @@ func (m *AggregatedAttestation) Reset() { *m = AggregatedAttestation{} }
func (m *AggregatedAttestation) String() string { return proto.CompactTextString(m) }
func (*AggregatedAttestation) ProtoMessage() {}
func (*AggregatedAttestation) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{7}
return fileDescriptor_types_3b2e6681d91f9d59, []int{7}
}
func (m *AggregatedAttestation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AggregatedAttestation.Unmarshal(m, b)
@@ -848,6 +848,7 @@ func (m *AggregatedAttestation) XXX_DiscardUnknown() {
var xxx_messageInfo_AggregatedAttestation proto.InternalMessageInfo
// Deprecated: Do not use.
func (m *AggregatedAttestation) GetSlot() uint64 {
if m != nil {
return m.Slot
@@ -855,6 +856,7 @@ func (m *AggregatedAttestation) GetSlot() uint64 {
return 0
}
// Deprecated: Do not use.
func (m *AggregatedAttestation) GetShard() uint64 {
if m != nil {
return m.Shard
@@ -862,6 +864,7 @@ func (m *AggregatedAttestation) GetShard() uint64 {
return 0
}
// Deprecated: Do not use.
func (m *AggregatedAttestation) GetJustifiedSlot() uint64 {
if m != nil {
return m.JustifiedSlot
@@ -869,6 +872,7 @@ func (m *AggregatedAttestation) GetJustifiedSlot() uint64 {
return 0
}
// Deprecated: Do not use.
func (m *AggregatedAttestation) GetJustifiedBlockHash() []byte {
if m != nil {
return m.JustifiedBlockHash
@@ -876,6 +880,7 @@ func (m *AggregatedAttestation) GetJustifiedBlockHash() []byte {
return nil
}
// Deprecated: Do not use.
func (m *AggregatedAttestation) GetShardBlockHash() []byte {
if m != nil {
return m.ShardBlockHash
@@ -883,6 +888,7 @@ func (m *AggregatedAttestation) GetShardBlockHash() []byte {
return nil
}
// Deprecated: Do not use.
func (m *AggregatedAttestation) GetAttesterBitfield() []byte {
if m != nil {
return m.AttesterBitfield
@@ -890,6 +896,7 @@ func (m *AggregatedAttestation) GetAttesterBitfield() []byte {
return nil
}
// Deprecated: Do not use.
func (m *AggregatedAttestation) GetObliqueParentHashes() [][]byte {
if m != nil {
return m.ObliqueParentHashes
@@ -897,6 +904,7 @@ func (m *AggregatedAttestation) GetObliqueParentHashes() [][]byte {
return nil
}
// Deprecated: Do not use.
func (m *AggregatedAttestation) GetAggregateSig() []uint64 {
if m != nil {
return m.AggregateSig
@@ -916,7 +924,7 @@ func (m *SpecialRecord) Reset() { *m = SpecialRecord{} }
func (m *SpecialRecord) String() string { return proto.CompactTextString(m) }
func (*SpecialRecord) ProtoMessage() {}
func (*SpecialRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{8}
return fileDescriptor_types_3b2e6681d91f9d59, []int{8}
}
func (m *SpecialRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SpecialRecord.Unmarshal(m, b)
@@ -962,7 +970,7 @@ func (m *CrosslinkRecord) Reset() { *m = CrosslinkRecord{} }
func (m *CrosslinkRecord) String() string { return proto.CompactTextString(m) }
func (*CrosslinkRecord) ProtoMessage() {}
func (*CrosslinkRecord) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{9}
return fileDescriptor_types_3b2e6681d91f9d59, []int{9}
}
func (m *CrosslinkRecord) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CrosslinkRecord.Unmarshal(m, b)
@@ -1007,7 +1015,7 @@ func (m *ShardAndCommitteeArray) Reset() { *m = ShardAndCommitteeArray{}
func (m *ShardAndCommitteeArray) String() string { return proto.CompactTextString(m) }
func (*ShardAndCommitteeArray) ProtoMessage() {}
func (*ShardAndCommitteeArray) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{10}
return fileDescriptor_types_3b2e6681d91f9d59, []int{10}
}
func (m *ShardAndCommitteeArray) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardAndCommitteeArray.Unmarshal(m, b)
@@ -1046,7 +1054,7 @@ func (m *ShardAndCommittee) Reset() { *m = ShardAndCommittee{} }
func (m *ShardAndCommittee) String() string { return proto.CompactTextString(m) }
func (*ShardAndCommittee) ProtoMessage() {}
func (*ShardAndCommittee) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{11}
return fileDescriptor_types_3b2e6681d91f9d59, []int{11}
}
func (m *ShardAndCommittee) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ShardAndCommittee.Unmarshal(m, b)
@@ -1081,24 +1089,29 @@ func (m *ShardAndCommittee) GetCommittee() []uint32 {
}
type BeaconBlock struct {
AncestorHashes [][]byte `protobuf:"bytes,1,rep,name=ancestor_hashes,json=ancestorHashes,proto3" json:"ancestor_hashes,omitempty"`
Slot uint64 `protobuf:"varint,2,opt,name=slot,proto3" json:"slot,omitempty"`
RandaoReveal []byte `protobuf:"bytes,3,opt,name=randao_reveal,json=randaoReveal,proto3" json:"randao_reveal,omitempty"`
PowChainRef []byte `protobuf:"bytes,4,opt,name=pow_chain_ref,json=powChainRef,proto3" json:"pow_chain_ref,omitempty"`
StateRoot []byte `protobuf:"bytes,5,opt,name=state_root,json=stateRoot,proto3" json:"state_root,omitempty"`
Timestamp *timestamp.Timestamp `protobuf:"bytes,6,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
Attestations []*AggregatedAttestation `protobuf:"bytes,7,rep,name=attestations,proto3" json:"attestations,omitempty"`
Specials []*SpecialRecord `protobuf:"bytes,8,rep,name=specials,proto3" json:"specials,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Slot uint64 `protobuf:"varint,1,opt,name=slot,proto3" json:"slot,omitempty"`
RandaoRevealHash32 []byte `protobuf:"bytes,2,opt,name=randao_reveal_hash32,json=randaoRevealHash32,proto3" json:"randao_reveal_hash32,omitempty"`
CandidatePowReceiptRootHash32 []byte `protobuf:"bytes,3,opt,name=candidate_pow_receipt_root_hash32,json=candidatePowReceiptRootHash32,proto3" json:"candidate_pow_receipt_root_hash32,omitempty"`
AncestorHash32S [][]byte `protobuf:"bytes,4,rep,name=ancestor_hash32s,json=ancestorHash32s,proto3" json:"ancestor_hash32s,omitempty"`
StateRootHash32 []byte `protobuf:"bytes,5,opt,name=state_root_hash32,json=stateRootHash32,proto3" json:"state_root_hash32,omitempty"`
Attestations []*AggregatedAttestation `protobuf:"bytes,6,rep,name=attestations,proto3" json:"attestations,omitempty"` // Deprecated: Do not use.
Specials []*SpecialRecord `protobuf:"bytes,7,rep,name=specials,proto3" json:"specials,omitempty"`
ProposerSignature [][]byte `protobuf:"bytes,8,rep,name=proposer_signature,json=proposerSignature,proto3" json:"proposer_signature,omitempty"`
AncestorHashes [][]byte `protobuf:"bytes,1002,rep,name=ancestor_hashes,json=ancestorHashes,proto3" json:"ancestor_hashes,omitempty"` // Deprecated: Do not use.
RandaoReveal []byte `protobuf:"bytes,1003,opt,name=randao_reveal,json=randaoReveal,proto3" json:"randao_reveal,omitempty"` // Deprecated: Do not use.
PowChainRef []byte `protobuf:"bytes,1004,opt,name=pow_chain_ref,json=powChainRef,proto3" json:"pow_chain_ref,omitempty"` // Deprecated: Do not use.
StateRoot []byte `protobuf:"bytes,1005,opt,name=state_root,json=stateRoot,proto3" json:"state_root,omitempty"` // Deprecated: Do not use.
Timestamp *timestamp.Timestamp `protobuf:"bytes,1006,opt,name=timestamp,proto3" json:"timestamp,omitempty"` // Deprecated: Do not use.
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BeaconBlock) Reset() { *m = BeaconBlock{} }
func (m *BeaconBlock) String() string { return proto.CompactTextString(m) }
func (*BeaconBlock) ProtoMessage() {}
func (*BeaconBlock) Descriptor() ([]byte, []int) {
return fileDescriptor_types_3b66245a1bb64268, []int{12}
return fileDescriptor_types_3b2e6681d91f9d59, []int{12}
}
func (m *BeaconBlock) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BeaconBlock.Unmarshal(m, b)
@@ -1118,13 +1131,6 @@ func (m *BeaconBlock) XXX_DiscardUnknown() {
var xxx_messageInfo_BeaconBlock proto.InternalMessageInfo
func (m *BeaconBlock) GetAncestorHashes() [][]byte {
if m != nil {
return m.AncestorHashes
}
return nil
}
func (m *BeaconBlock) GetSlot() uint64 {
if m != nil {
return m.Slot
@@ -1132,34 +1138,35 @@ func (m *BeaconBlock) GetSlot() uint64 {
return 0
}
func (m *BeaconBlock) GetRandaoReveal() []byte {
func (m *BeaconBlock) GetRandaoRevealHash32() []byte {
if m != nil {
return m.RandaoReveal
return m.RandaoRevealHash32
}
return nil
}
func (m *BeaconBlock) GetPowChainRef() []byte {
func (m *BeaconBlock) GetCandidatePowReceiptRootHash32() []byte {
if m != nil {
return m.PowChainRef
return m.CandidatePowReceiptRootHash32
}
return nil
}
func (m *BeaconBlock) GetStateRoot() []byte {
func (m *BeaconBlock) GetAncestorHash32S() [][]byte {
if m != nil {
return m.StateRoot
return m.AncestorHash32S
}
return nil
}
func (m *BeaconBlock) GetTimestamp() *timestamp.Timestamp {
func (m *BeaconBlock) GetStateRootHash32() []byte {
if m != nil {
return m.Timestamp
return m.StateRootHash32
}
return nil
}
// Deprecated: Do not use.
func (m *BeaconBlock) GetAttestations() []*AggregatedAttestation {
if m != nil {
return m.Attestations
@@ -1174,6 +1181,53 @@ func (m *BeaconBlock) GetSpecials() []*SpecialRecord {
return nil
}
func (m *BeaconBlock) GetProposerSignature() [][]byte {
if m != nil {
return m.ProposerSignature
}
return nil
}
// Deprecated: Do not use.
func (m *BeaconBlock) GetAncestorHashes() [][]byte {
if m != nil {
return m.AncestorHashes
}
return nil
}
// Deprecated: Do not use.
func (m *BeaconBlock) GetRandaoReveal() []byte {
if m != nil {
return m.RandaoReveal
}
return nil
}
// Deprecated: Do not use.
func (m *BeaconBlock) GetPowChainRef() []byte {
if m != nil {
return m.PowChainRef
}
return nil
}
// Deprecated: Do not use.
func (m *BeaconBlock) GetStateRoot() []byte {
if m != nil {
return m.StateRoot
}
return nil
}
// Deprecated: Do not use.
func (m *BeaconBlock) GetTimestamp() *timestamp.Timestamp {
if m != nil {
return m.Timestamp
}
return nil
}
func init() {
proto.RegisterType((*BeaconState)(nil), "ethereum.beacon.p2p.v1.BeaconState")
proto.RegisterType((*ForkData)(nil), "ethereum.beacon.p2p.v1.ForkData")
@@ -1191,132 +1245,139 @@ func init() {
}
func init() {
proto.RegisterFile("proto/beacon/p2p/v1/types.proto", fileDescriptor_types_3b66245a1bb64268)
proto.RegisterFile("proto/beacon/p2p/v1/types.proto", fileDescriptor_types_3b2e6681d91f9d59)
}
var fileDescriptor_types_3b66245a1bb64268 = []byte{
// 1966 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x49, 0x73, 0x1c, 0x49,
0x15, 0x8e, 0x96, 0x7a, 0x2c, 0xe9, 0x69, 0x4f, 0x49, 0xad, 0xf2, 0xa2, 0x91, 0xdc, 0xc3, 0x60,
0x1b, 0xc6, 0xad, 0x71, 0x9b, 0xc1, 0x8e, 0x20, 0x62, 0x02, 0x49, 0xc6, 0x8c, 0xc1, 0x08, 0x51,
0x32, 0x9e, 0x63, 0x45, 0x76, 0x55, 0x76, 0x2b, 0x47, 0xd5, 0x95, 0xe5, 0xcc, 0x6c, 0x2d, 0x44,
0x30, 0x10, 0xdc, 0xe0, 0xc4, 0xbe, 0x6f, 0x33, 0x9c, 0x39, 0x71, 0x62, 0xfb, 0x03, 0xdc, 0x58,
0xce, 0x1c, 0xb8, 0xb1, 0xfd, 0x07, 0x22, 0x5f, 0x66, 0x2d, 0xbd, 0x69, 0xb0, 0x4f, 0xdd, 0xf5,
0xde, 0xf7, 0x96, 0x7a, 0xf9, 0xb6, 0x4a, 0xd8, 0x4c, 0xa5, 0xd0, 0x62, 0xbb, 0xc5, 0x68, 0x28,
0x92, 0xed, 0xb4, 0x99, 0x6e, 0x9f, 0xdc, 0xd9, 0xd6, 0xe7, 0x29, 0x53, 0x0d, 0xe4, 0x90, 0x1a,
0xd3, 0x47, 0x4c, 0xb2, 0x5e, 0xb7, 0x61, 0x31, 0x8d, 0xb4, 0x99, 0x36, 0x4e, 0xee, 0x5c, 0xd9,
0xec, 0x08, 0xd1, 0x89, 0xd9, 0x36, 0xa2, 0x5a, 0xbd, 0xf6, 0xb6, 0xe6, 0x5d, 0xa6, 0x34, 0xed,
0xa6, 0x56, 0xb0, 0xfe, 0x9b, 0x1a, 0xcc, 0xee, 0xa2, 0xc8, 0xa1, 0xa6, 0x9a, 0x91, 0xa7, 0x40,
0x4e, 0x68, 0xcc, 0x23, 0xaa, 0x85, 0x0c, 0x24, 0xeb, 0x70, 0xa5, 0xe5, 0xb9, 0x57, 0xd9, 0x9a,
0xbc, 0x39, 0xdb, 0xbc, 0xd1, 0x18, 0x6d, 0xa5, 0xf1, 0x34, 0x93, 0xf0, 0x59, 0x28, 0x64, 0xe4,
0x2f, 0x9f, 0x14, 0x04, 0xab, 0x81, 0x3c, 0x86, 0x57, 0x86, 0xf5, 0x06, 0x31, 0x55, 0x3a, 0x08,
0x8f, 0x68, 0xd2, 0x61, 0x81, 0x8a, 0x85, 0xf6, 0x26, 0xb6, 0x2a, 0x37, 0xab, 0xfe, 0xe6, 0x90,
0xfc, 0x63, 0xaa, 0xf4, 0x1e, 0xe2, 0x0e, 0x63, 0xa1, 0xc9, 0x0e, 0x6c, 0x8c, 0xd0, 0xc6, 0xce,
0xb8, 0x0e, 0x42, 0xd1, 0x4b, 0xb4, 0x37, 0x89, 0x7a, 0xae, 0x0c, 0xe9, 0xf9, 0xd4, 0x19, 0xd7,
0x7b, 0x06, 0x41, 0xde, 0x86, 0x5b, 0x23, 0x54, 0x44, 0x2c, 0xd6, 0xd4, 0x78, 0xc4, 0x93, 0x40,
0xf3, 0x34, 0x38, 0xa2, 0xea, 0xe8, 0x6e, 0xd3, 0xab, 0x6e, 0x55, 0x6e, 0xce, 0xf9, 0x1f, 0x1a,
0x52, 0xf7, 0xc0, 0xc0, 0xf7, 0x0c, 0xfa, 0x09, 0x4f, 0xdf, 0x42, 0x2c, 0xf9, 0x28, 0x2c, 0x4b,
0x9a, 0x44, 0x54, 0x04, 0x5d, 0x7e, 0x96, 0x29, 0xf8, 0xe7, 0x14, 0x6a, 0x58, 0xb4, 0x9c, 0xcf,
0xf1, 0x33, 0x07, 0xbe, 0x05, 0x4b, 0x09, 0x3b, 0xd3, 0x81, 0x62, 0x2c, 0xca, 0xb0, 0xff, 0xb2,
0xd8, 0x05, 0xc3, 0x38, 0x64, 0x2c, 0x72, 0x50, 0x05, 0x2f, 0xab, 0x23, 0x2a, 0xa3, 0x80, 0x26,
0x51, 0x10, 0x8a, 0x6e, 0x97, 0x6b, 0xcd, 0x98, 0x0a, 0xda, 0x42, 0x62, 0xec, 0x94, 0xf7, 0xef,
0x29, 0x3c, 0xa6, 0xc6, 0xb8, 0x63, 0x3a, 0x34, 0xe2, 0x3b, 0x49, 0xb4, 0x97, 0x09, 0xef, 0x48,
0x49, 0xcf, 0xfd, 0x2b, 0x6a, 0x90, 0xae, 0x1e, 0x0a, 0x69, 0xe2, 0xac, 0xc8, 0x7d, 0x58, 0x4b,
0x99, 0x54, 0x5c, 0x69, 0x96, 0xe8, 0x92, 0x55, 0xef, 0x3f, 0xc6, 0xd6, 0xfc, 0xee, 0x84, 0x57,
0xf1, 0x57, 0x0b, 0x44, 0xa1, 0x81, 0xbc, 0x0b, 0xf5, 0x51, 0x92, 0x81, 0x64, 0x54, 0x29, 0xde,
0x49, 0xba, 0x2c, 0xd1, 0xca, 0xfb, 0xaf, 0x75, 0x79, 0xfb, 0x42, 0x97, 0xfd, 0x92, 0x88, 0xcb,
0xb0, 0xad, 0x11, 0x36, 0xcb, 0x30, 0x45, 0xee, 0xc1, 0x7a, 0x2a, 0xd9, 0x09, 0x17, 0x3d, 0x15,
0xbc, 0xd3, 0x53, 0x9a, 0xb7, 0x39, 0x8b, 0x6c, 0x92, 0xfd, 0x79, 0x11, 0xb3, 0x63, 0x2d, 0xe3,
0x7f, 0x26, 0x63, 0x63, 0x6e, 0x7d, 0x18, 0x16, 0x06, 0xf0, 0x7f, 0xb1, 0xf8, 0xf9, 0x77, 0xfa,
0x70, 0xf7, 0x60, 0xbd, 0x1f, 0x17, 0xb4, 0xb8, 0x6e, 0x73, 0x16, 0x47, 0xde, 0x5f, 0x9d, 0x81,
0x3e, 0x81, 0x5d, 0xc7, 0x35, 0x06, 0xda, 0x3c, 0xa1, 0x31, 0xff, 0x52, 0x66, 0xe0, 0x6f, 0xce,
0x40, 0x4e, 0x46, 0x03, 0x5f, 0x84, 0xe5, 0x98, 0x6a, 0x66, 0x2a, 0x44, 0x0a, 0xa5, 0x62, 0x9e,
0x1c, 0x2b, 0xef, 0xb7, 0xeb, 0x17, 0x97, 0xe2, 0x5e, 0x06, 0x75, 0x81, 0x5a, 0xb2, 0x2a, 0x72,
0xb2, 0x22, 0xbb, 0xb0, 0x81, 0x65, 0xa7, 0x4c, 0xbd, 0x07, 0x92, 0x85, 0x34, 0x0e, 0x7b, 0x31,
0xd5, 0x5c, 0x24, 0xd6, 0x9b, 0xdf, 0xad, 0xdb, 0xe2, 0x31, 0x28, 0x6c, 0x0a, 0x7e, 0x19, 0x83,
0xae, 0xdd, 0x81, 0x55, 0xe7, 0x5a, 0x2b, 0x16, 0xe1, 0xb1, 0xcb, 0x5c, 0xe5, 0xfd, 0xde, 0x78,
0x37, 0xe7, 0x13, 0xcb, 0xdc, 0x35, 0x3c, 0x9b, 0xbd, 0x8a, 0x3c, 0x80, 0x97, 0x9d, 0x48, 0xca,
0xb2, 0x97, 0xc7, 0x82, 0x6d, 0xd1, 0x98, 0x26, 0x21, 0x53, 0xde, 0x1f, 0x8c, 0x70, 0xd5, 0xbf,
0x6a, 0x61, 0x07, 0x19, 0xca, 0x94, 0xec, 0xae, 0xc3, 0x90, 0x16, 0xac, 0x38, 0x2d, 0x54, 0x9b,
0x1f, 0x74, 0x49, 0x79, 0x7f, 0xb4, 0x51, 0x79, 0x7d, 0x5c, 0x54, 0x0e, 0x58, 0x12, 0xf1, 0xa4,
0xb3, 0x53, 0xc8, 0xb8, 0xf0, 0x38, 0x4f, 0x4b, 0x0c, 0x45, 0x1e, 0xc1, 0xf5, 0x54, 0x8a, 0x90,
0x29, 0xc5, 0xa2, 0x20, 0x15, 0xa7, 0x26, 0x46, 0x8c, 0xa7, 0x3a, 0x90, 0x42, 0xe8, 0xac, 0x48,
0xdf, 0xdb, 0xc4, 0x37, 0xdd, 0xc8, 0x91, 0x07, 0xe2, 0xd4, 0xb7, 0x38, 0x5f, 0x08, 0xed, 0x6a,
0xb6, 0x07, 0x57, 0x43, 0x9a, 0x44, 0xa6, 0x69, 0xb0, 0x21, 0x55, 0xca, 0x7b, 0x7f, 0x13, 0xdd,
0x7e, 0x63, 0xec, 0x61, 0x66, 0xb2, 0x07, 0xe2, 0xed, 0x92, 0x72, 0xe7, 0xbb, 0x17, 0x16, 0xec,
0xb2, 0x6d, 0x45, 0xea, 0x30, 0xd7, 0x61, 0x09, 0x53, 0x5c, 0x05, 0xa6, 0xdf, 0x7b, 0x5f, 0xbf,
0x81, 0x27, 0x3a, 0xeb, 0x88, 0x4f, 0x78, 0x97, 0x91, 0x37, 0x61, 0xa6, 0x2d, 0xe4, 0x71, 0x10,
0x51, 0x4d, 0xbd, 0x6f, 0x18, 0xc0, 0x6c, 0x73, 0x6b, 0x9c, 0x23, 0x0f, 0x85, 0x3c, 0x7e, 0x40,
0x35, 0xf5, 0xa7, 0xdb, 0xee, 0x1f, 0x79, 0x0c, 0x90, 0xb7, 0x43, 0xe5, 0x7d, 0x73, 0xff, 0xb9,
0x26, 0x04, 0xf6, 0x8d, 0x92, 0x3c, 0x79, 0x13, 0x2e, 0x17, 0xdd, 0x58, 0xb1, 0xfe, 0xa1, 0xf0,
0xad, 0x7d, 0xe3, 0x3e, 0xca, 0xd4, 0x72, 0xd4, 0x21, 0x2b, 0x0f, 0x84, 0xc7, 0x00, 0xa5, 0x22,
0xf9, 0xf6, 0xfe, 0x73, 0x15, 0x89, 0xf5, 0xa6, 0x90, 0x27, 0x75, 0x80, 0xa2, 0x85, 0x7b, 0xdf,
0x31, 0xe6, 0xe7, 0x10, 0x34, 0x93, 0xf7, 0x6f, 0xf2, 0xd5, 0x0a, 0x5c, 0xff, 0xc0, 0x06, 0xe7,
0x7d, 0x77, 0xff, 0x85, 0xfa, 0x1b, 0x1a, 0xdb, 0xfc, 0x80, 0x1e, 0x47, 0xee, 0x9a, 0x62, 0x50,
0x3a, 0x18, 0xe8, 0x26, 0xdf, 0x2b, 0xc2, 0xb5, 0x6c, 0xf8, 0x0f, 0xfb, 0xba, 0x4a, 0x26, 0x34,
0xd0, 0xe3, 0xbe, 0x3f, 0x20, 0xd4, 0xdf, 0x13, 0x1b, 0xb0, 0x54, 0xc2, 0x6b, 0xc9, 0xe8, 0xb1,
0xf7, 0x83, 0x42, 0x62, 0xb1, 0x68, 0x74, 0xc8, 0x33, 0x46, 0xec, 0x58, 0x3b, 0xea, 0xb5, 0xdb,
0x31, 0x4f, 0x3a, 0x38, 0xe0, 0xbc, 0x1f, 0x16, 0x91, 0x5c, 0xc6, 0xe9, 0x96, 0xb1, 0xcd, 0x98,
0x23, 0x0f, 0xe0, 0x5a, 0xc4, 0x52, 0xa1, 0xb8, 0x56, 0xa5, 0x1e, 0xc1, 0x93, 0x20, 0x65, 0x92,
0x8b, 0xc8, 0xfb, 0x91, 0x89, 0xa5, 0x35, 0x78, 0x39, 0x03, 0xe6, 0x5d, 0xe2, 0x51, 0x72, 0x80,
0x28, 0xf2, 0x49, 0x28, 0xa6, 0xbe, 0x1b, 0xe7, 0xa6, 0x64, 0xed, 0x4c, 0xf7, 0x7e, 0x5c, 0x78,
0xb0, 0x9e, 0xc3, 0x70, 0x8a, 0x9b, 0x8a, 0xc5, 0x49, 0x4e, 0x6e, 0xc3, 0x52, 0xd8, 0x93, 0xd2,
0x9c, 0x2a, 0x36, 0x28, 0xc5, 0x9e, 0x79, 0x3f, 0x29, 0x5e, 0x76, 0xc1, 0x31, 0x4d, 0x5f, 0x3a,
0x64, 0xcf, 0xc8, 0x7d, 0xa8, 0x1d, 0x27, 0xe2, 0x34, 0x19, 0xaa, 0x6f, 0xef, 0xa7, 0x85, 0xb1,
0x15, 0x84, 0xf4, 0xd7, 0xa9, 0x71, 0x75, 0x7c, 0x77, 0xf0, 0x7e, 0x56, 0x72, 0x75, 0x4c, 0xa5,
0x93, 0xcf, 0xc2, 0xd6, 0x78, 0x0d, 0xc1, 0x89, 0xd0, 0x4c, 0x79, 0x3f, 0x2f, 0x5c, 0xbf, 0x36,
0x46, 0xcf, 0x53, 0x03, 0x34, 0xef, 0x9d, 0x4a, 0x16, 0x60, 0x57, 0x38, 0x31, 0xa9, 0x27, 0x12,
0xef, 0x17, 0xa5, 0xf7, 0x4e, 0x25, 0x33, 0x7d, 0xe0, 0xa9, 0x65, 0x91, 0x6d, 0x58, 0x4e, 0x85,
0xc9, 0xbe, 0x32, 0xfe, 0x97, 0xa5, 0xa4, 0x30, 0xdc, 0xb2, 0xc0, 0x6d, 0x58, 0x42, 0x2c, 0xce,
0xca, 0xa4, 0xd7, 0x6d, 0x31, 0xe9, 0xbd, 0x57, 0xd2, 0x6f, 0x98, 0x26, 0xdb, 0xf6, 0x91, 0x45,
0x18, 0xac, 0xa6, 0xb6, 0x6d, 0xf7, 0xf7, 0xfa, 0xf7, 0x6d, 0x49, 0xdd, 0x1e, 0x57, 0x52, 0x3b,
0x9d, 0x8e, 0x64, 0x1d, 0xaa, 0x59, 0x54, 0xea, 0xea, 0xf6, 0x10, 0xd2, 0xa1, 0x31, 0xa0, 0x4c,
0xaa, 0x9a, 0xa0, 0x25, 0xe5, 0x51, 0xc6, 0x94, 0xf7, 0x2b, 0x63, 0xc5, 0xa5, 0xaa, 0xe5, 0xe7,
0xd3, 0x8c, 0xa9, 0xfa, 0x97, 0x61, 0x3a, 0x6b, 0x89, 0xe4, 0xe6, 0x88, 0xb0, 0x55, 0xb0, 0xdf,
0x0e, 0x46, 0xec, 0x23, 0xa3, 0x22, 0x66, 0x37, 0xde, 0xa1, 0x60, 0x5d, 0x75, 0xed, 0x19, 0x8b,
0xd3, 0x6e, 0xb3, 0xd3, 0x59, 0x80, 0xea, 0x5f, 0x81, 0x8d, 0x0b, 0x47, 0x03, 0x79, 0x0b, 0xae,
0x5f, 0x90, 0x17, 0x6e, 0x84, 0x55, 0x70, 0xcd, 0xdc, 0x18, 0x93, 0x13, 0x6e, 0x82, 0xad, 0xc2,
0x4b, 0x36, 0x8d, 0xac, 0x9f, 0xf6, 0xa1, 0xfe, 0xf7, 0x0a, 0x78, 0xe3, 0x66, 0x2a, 0xf9, 0x04,
0x54, 0x71, 0xa8, 0x54, 0x70, 0xa6, 0x8c, 0x6d, 0xc2, 0x25, 0x41, 0x1c, 0x2d, 0x28, 0x44, 0xde,
0x80, 0x5a, 0x4a, 0xa5, 0xe6, 0x21, 0x4f, 0xed, 0x4a, 0x92, 0x2f, 0x55, 0x13, 0xe8, 0xee, 0x5a,
0x1f, 0x37, 0xdf, 0xa9, 0x6e, 0x99, 0x9a, 0x55, 0x5a, 0x44, 0xe7, 0x85, 0xc0, 0xa4, 0x5d, 0xb9,
0x1d, 0x3d, 0x87, 0xbe, 0x02, 0xf3, 0x98, 0x81, 0x3c, 0x09, 0xe3, 0x5e, 0xc4, 0x22, 0x5c, 0xee,
0xab, 0xfe, 0x9c, 0x21, 0x3e, 0x72, 0xb4, 0xfa, 0x3f, 0x26, 0x60, 0x71, 0xc0, 0x41, 0x42, 0xa0,
0x8a, 0xa7, 0x61, 0x0f, 0x17, 0xff, 0x9b, 0xf0, 0xe0, 0xf6, 0x9c, 0x85, 0x07, 0x1f, 0x48, 0x03,
0x56, 0xec, 0xbb, 0xf6, 0xad, 0x47, 0xce, 0xa1, 0x65, 0xcb, 0x2a, 0x2d, 0x47, 0xa4, 0x09, 0x6b,
0x2c, 0x15, 0xe1, 0x51, 0xd0, 0x12, 0xbd, 0x24, 0xa2, 0xf2, 0xbc, 0xff, 0xbb, 0x63, 0x05, 0x99,
0xbb, 0x8e, 0xe7, 0x64, 0x5e, 0x03, 0x62, 0x3f, 0x07, 0xfa, 0x4c, 0xbc, 0x84, 0x02, 0x4b, 0xc8,
0x29, 0x5b, 0xf8, 0x38, 0xac, 0x0f, 0xee, 0x92, 0x99, 0xc8, 0x25, 0x1b, 0xd7, 0x81, 0x3d, 0xd1,
0xc9, 0xbd, 0x3a, 0xb4, 0x0c, 0x4f, 0x8d, 0xda, 0x85, 0x3f, 0x06, 0xb5, 0x02, 0xd6, 0xe7, 0xd0,
0x34, 0x6a, 0x5f, 0xcd, 0xb9, 0x25, 0xa7, 0xea, 0xbf, 0x9e, 0x80, 0xc5, 0x81, 0xc5, 0x80, 0xd4,
0xe0, 0x52, 0xda, 0x6b, 0x1d, 0xb3, 0x73, 0x97, 0x9e, 0xee, 0xc9, 0x1c, 0xf0, 0x29, 0xd7, 0x47,
0x91, 0xa4, 0xa7, 0x34, 0x0e, 0xca, 0x31, 0x5f, 0x2c, 0xe8, 0x38, 0x4d, 0xc9, 0x6d, 0x20, 0x25,
0x28, 0x8d, 0x22, 0xc9, 0x94, 0xca, 0x82, 0x5f, 0x70, 0x76, 0x2c, 0xa3, 0xf4, 0xbd, 0x66, 0x67,
0x38, 0xce, 0x6d, 0x1b, 0xf8, 0x25, 0xcb, 0xd8, 0xcb, 0xe9, 0xc4, 0x83, 0x29, 0xb7, 0xaf, 0x62,
0xa8, 0xab, 0x7e, 0xf6, 0x68, 0x1c, 0x37, 0xc9, 0xd2, 0x53, 0x18, 0xd0, 0xaa, 0xef, 0x9e, 0x4c,
0x21, 0xdb, 0x29, 0x52, 0x04, 0x6f, 0xda, 0x10, 0x30, 0x6e, 0xaf, 0x01, 0x71, 0xb6, 0x4b, 0x5f,
0xc2, 0x18, 0xb3, 0x6a, 0x66, 0xbc, 0xf8, 0xf2, 0xad, 0xc7, 0xb0, 0x3e, 0x66, 0x5f, 0x20, 0x37,
0x60, 0xb1, 0x98, 0x7a, 0x3c, 0x89, 0xd8, 0x19, 0xc6, 0x6f, 0xde, 0x5f, 0xc8, 0xc9, 0x8f, 0x0c,
0x75, 0x4c, 0xc2, 0x66, 0xa9, 0x3d, 0x59, 0xa4, 0x76, 0xfd, 0x4f, 0x13, 0xb0, 0x36, 0xb2, 0x97,
0x3e, 0x47, 0x21, 0x0c, 0xa7, 0xcf, 0xe4, 0xa8, 0xf4, 0x79, 0x1d, 0x56, 0x47, 0xa5, 0x8f, 0x3b,
0x05, 0x32, 0x9c, 0x3c, 0xa6, 0xe9, 0x0e, 0x66, 0xbf, 0xcb, 0xfd, 0x85, 0xfe, 0xdc, 0x37, 0xc7,
0x6b, 0xc7, 0x07, 0x93, 0x45, 0x6b, 0xb0, 0x39, 0xbf, 0x94, 0x31, 0xf2, 0xde, 0xd0, 0x84, 0x35,
0xd1, 0x8a, 0xf9, 0xb3, 0x1e, 0x0b, 0x52, 0x8a, 0x1b, 0x80, 0x1b, 0x07, 0x53, 0xb8, 0xed, 0xaf,
0x38, 0xe6, 0x01, 0xf2, 0xec, 0x2c, 0x30, 0xfd, 0x84, 0x66, 0x61, 0x0a, 0x14, 0xef, 0x78, 0xd3,
0xf8, 0x19, 0x33, 0x97, 0x13, 0x0f, 0x79, 0xa7, 0x7e, 0x0f, 0xe6, 0x0f, 0x53, 0x16, 0x72, 0x1a,
0xbb, 0x03, 0x23, 0x50, 0x3d, 0xe6, 0x49, 0xe4, 0x4e, 0x09, 0xff, 0x1b, 0x1a, 0x36, 0xce, 0x09,
0x34, 0x86, 0xff, 0xeb, 0x9f, 0x87, 0xc5, 0x81, 0x6d, 0x75, 0xe4, 0xbb, 0x57, 0x46, 0xbe, 0x7b,
0x76, 0x50, 0x13, 0xa5, 0x63, 0x7d, 0x17, 0x6a, 0xa3, 0xef, 0x01, 0x48, 0x04, 0x97, 0xa9, 0xf9,
0x13, 0x8c, 0xb8, 0x66, 0x70, 0x37, 0x40, 0xb7, 0xfe, 0xef, 0xab, 0x05, 0xbf, 0x86, 0xba, 0x86,
0xe8, 0xf5, 0x4f, 0xc3, 0xf2, 0x10, 0xb1, 0xc8, 0x9e, 0x4a, 0x39, 0x7b, 0xae, 0xc1, 0x4c, 0xe1,
0x80, 0x09, 0xca, 0xbc, 0x5f, 0x10, 0xea, 0x5f, 0x9b, 0xcc, 0x6e, 0xae, 0xf0, 0x85, 0x4d, 0x09,
0xe0, 0x37, 0xa2, 0xa9, 0x00, 0x77, 0x6a, 0x15, 0x0c, 0xe4, 0x42, 0x46, 0x76, 0x07, 0x36, 0x22,
0x2a, 0xe6, 0x10, 0x5d, 0x21, 0x4a, 0x76, 0xc2, 0x68, 0xec, 0xda, 0xc5, 0x9c, 0x25, 0xfa, 0x48,
0x23, 0x75, 0x98, 0x37, 0xb3, 0xd4, 0xde, 0x0e, 0x49, 0xd6, 0x76, 0xf9, 0x39, 0x9b, 0x8a, 0x53,
0xdc, 0x1c, 0x7d, 0xd6, 0x26, 0x1b, 0x00, 0xee, 0xc3, 0xda, 0xec, 0x70, 0x36, 0x25, 0x67, 0x90,
0x82, 0x0b, 0xdb, 0x7d, 0x98, 0xc9, 0x6f, 0xe0, 0x30, 0x0b, 0x67, 0x9b, 0x57, 0x1a, 0xf6, 0x8e,
0xae, 0x91, 0xdd, 0xd1, 0x35, 0x9e, 0x64, 0x08, 0xbf, 0x00, 0x93, 0x2f, 0xc0, 0x5c, 0xdf, 0x1a,
0x34, 0xf5, 0x02, 0x5b, 0x90, 0xdf, 0xa7, 0x82, 0xec, 0xc0, 0xb4, 0xb2, 0x49, 0xa9, 0x30, 0x69,
0x67, 0x9b, 0xaf, 0x8e, 0x3d, 0xdf, 0x72, 0xf2, 0xfa, 0xb9, 0x58, 0xeb, 0x12, 0x3a, 0x7d, 0xf7,
0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x7c, 0xd6, 0xaa, 0xb5, 0xa1, 0x14, 0x00, 0x00,
var fileDescriptor_types_3b2e6681d91f9d59 = []byte{
// 2069 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x4b, 0x73, 0x1b, 0xc7,
0x11, 0x2e, 0x90, 0x90, 0x48, 0x35, 0x49, 0x01, 0x18, 0x92, 0xe0, 0xe8, 0x41, 0x93, 0x82, 0xe3,
0x88, 0x74, 0x24, 0xd0, 0xa2, 0x62, 0xcb, 0x55, 0xa9, 0xb8, 0x42, 0x52, 0x51, 0xac, 0x44, 0x61,
0x58, 0x4b, 0x59, 0x3e, 0x6e, 0x0d, 0xb0, 0x03, 0x70, 0xcc, 0xe5, 0xce, 0x6a, 0x67, 0xc0, 0x47,
0xaa, 0xe2, 0xe4, 0x9a, 0x9c, 0xf2, 0x7e, 0xbf, 0xe4, 0x9c, 0x73, 0xca, 0x29, 0xaf, 0x1f, 0x91,
0xc7, 0x39, 0x87, 0xdc, 0x22, 0xdb, 0xf9, 0x0d, 0xae, 0xe9, 0x99, 0x7d, 0xe0, 0x25, 0xcb, 0x3e,
0x01, 0x3b, 0xfd, 0x75, 0x4f, 0x6f, 0x4f, 0xf7, 0xd7, 0x3d, 0x0b, 0x2b, 0x71, 0x22, 0xb5, 0xdc,
0x68, 0x71, 0xd6, 0x96, 0xd1, 0x46, 0xbc, 0x19, 0x6f, 0x1c, 0xdf, 0xda, 0xd0, 0x67, 0x31, 0x57,
0x4d, 0x94, 0x90, 0x3a, 0xd7, 0x07, 0x3c, 0xe1, 0xbd, 0xa3, 0xa6, 0xc5, 0x34, 0xe3, 0xcd, 0xb8,
0x79, 0x7c, 0xeb, 0xf2, 0x4a, 0x57, 0xca, 0x6e, 0xc8, 0x37, 0x10, 0xd5, 0xea, 0x75, 0x36, 0xb4,
0x38, 0xe2, 0x4a, 0xb3, 0xa3, 0xd8, 0x2a, 0x36, 0xfe, 0x54, 0x87, 0x99, 0x6d, 0x54, 0xd9, 0xd7,
0x4c, 0x73, 0xf2, 0x08, 0xc8, 0x31, 0x0b, 0x45, 0xc0, 0xb4, 0x4c, 0xfc, 0x84, 0x77, 0x85, 0xd2,
0xc9, 0x19, 0x2d, 0xad, 0x4e, 0xae, 0xcd, 0x6c, 0x5e, 0x6f, 0x8e, 0xde, 0xa5, 0xf9, 0x28, 0xd5,
0xf0, 0x78, 0x5b, 0x26, 0x81, 0x57, 0x3b, 0xce, 0x17, 0xac, 0x05, 0xf2, 0x00, 0x5e, 0x1c, 0xb6,
0xeb, 0x87, 0x4c, 0x69, 0xbf, 0x7d, 0xc0, 0xa2, 0x2e, 0xf7, 0x55, 0x28, 0x35, 0x9d, 0x58, 0x2d,
0xad, 0x95, 0xbd, 0x95, 0x21, 0xfd, 0x07, 0x4c, 0xe9, 0x1d, 0xc4, 0xed, 0x87, 0x52, 0x93, 0x2d,
0x58, 0x1e, 0x61, 0x8d, 0x9f, 0x0a, 0xed, 0xb7, 0x65, 0x2f, 0xd2, 0x74, 0x12, 0xed, 0x5c, 0x1e,
0xb2, 0xf3, 0xe5, 0x53, 0xa1, 0x77, 0x0c, 0x82, 0xbc, 0x0d, 0xeb, 0x23, 0x4c, 0x04, 0x3c, 0xd4,
0xcc, 0x78, 0x24, 0x22, 0x5f, 0x8b, 0xd8, 0x3f, 0x60, 0xea, 0xe0, 0xf6, 0x26, 0x2d, 0xaf, 0x96,
0xd6, 0x66, 0xbd, 0xcf, 0x0c, 0x99, 0xbb, 0x6b, 0xe0, 0x3b, 0x06, 0xfd, 0x50, 0xc4, 0x6f, 0x22,
0x96, 0x7c, 0x0e, 0x6a, 0x09, 0x8b, 0x02, 0x26, 0xfd, 0x23, 0x71, 0x9a, 0x1a, 0xf8, 0xdf, 0x14,
0x5a, 0xa8, 0x58, 0xc9, 0xd7, 0xc5, 0xa9, 0x03, 0xaf, 0x43, 0x35, 0xe2, 0xa7, 0xda, 0x57, 0x9c,
0x07, 0x29, 0xf6, 0xa9, 0xc5, 0x5e, 0x34, 0x82, 0x7d, 0xce, 0x03, 0x07, 0x55, 0xf0, 0x82, 0x3a,
0x60, 0x49, 0xe0, 0xb3, 0x28, 0xf0, 0xdb, 0xf2, 0xe8, 0x48, 0x68, 0xcd, 0xb9, 0xf2, 0x3b, 0x32,
0xc1, 0xd8, 0x29, 0xfa, 0xfe, 0x14, 0x1e, 0x53, 0x73, 0xdc, 0x31, 0xed, 0x1b, 0xf5, 0xad, 0x28,
0xd8, 0x49, 0x95, 0xb7, 0x92, 0x84, 0x9d, 0x79, 0x97, 0xd5, 0xe0, 0xba, 0xba, 0x27, 0x13, 0x13,
0x67, 0x45, 0x5e, 0x87, 0xc5, 0x98, 0x27, 0x4a, 0x28, 0xcd, 0x23, 0x5d, 0xd8, 0x95, 0x7e, 0x60,
0xf6, 0x9a, 0xdb, 0x9e, 0xa0, 0x25, 0x6f, 0x21, 0x47, 0xe4, 0x16, 0xc8, 0xbb, 0xd0, 0x18, 0xa5,
0xe9, 0x27, 0x9c, 0x29, 0x25, 0xba, 0xd1, 0x11, 0x8f, 0xb4, 0xa2, 0x1f, 0x5a, 0x97, 0x37, 0x9e,
0xe9, 0xb2, 0x57, 0x50, 0x71, 0x19, 0xb6, 0x3a, 0x62, 0xcf, 0x22, 0x4c, 0x91, 0x3b, 0xb0, 0x14,
0x27, 0xfc, 0x58, 0xc8, 0x9e, 0xf2, 0xdf, 0xe9, 0x29, 0x2d, 0x3a, 0x82, 0x07, 0x36, 0xc9, 0xfe,
0x51, 0xc1, 0xec, 0x58, 0x4c, 0xe5, 0x5f, 0x4d, 0xc5, 0x98, 0x5b, 0x9f, 0x85, 0x8b, 0x03, 0xf8,
0x7f, 0x5a, 0xfc, 0xdc, 0x3b, 0x7d, 0xb8, 0x3b, 0xb0, 0xd4, 0x8f, 0xf3, 0x5b, 0x42, 0x77, 0x04,
0x0f, 0x03, 0xfa, 0x2f, 0xb7, 0x41, 0x9f, 0xc2, 0xb6, 0x93, 0x9a, 0x0d, 0x3a, 0x22, 0x62, 0xa1,
0xf8, 0x66, 0xba, 0xc1, 0xbf, 0xdd, 0x06, 0xd9, 0x32, 0x6e, 0xf0, 0x16, 0xd4, 0x42, 0xa6, 0xb9,
0xa9, 0x90, 0x44, 0x2a, 0x15, 0x8a, 0xe8, 0x50, 0xd1, 0x3f, 0x2f, 0x3d, 0xbb, 0x14, 0x77, 0x52,
0xa8, 0x0b, 0x54, 0xd5, 0x9a, 0xc8, 0x96, 0x15, 0xd9, 0x86, 0x65, 0x2c, 0x3b, 0x65, 0xea, 0xdd,
0x4f, 0x78, 0x9b, 0x85, 0xed, 0x5e, 0xc8, 0xb4, 0x90, 0x91, 0xf5, 0xe6, 0x2f, 0x4b, 0xb6, 0x78,
0x0c, 0x0a, 0x49, 0xc1, 0x2b, 0x62, 0xd0, 0xb5, 0x5b, 0xb0, 0xe0, 0x5c, 0x6b, 0x85, 0xb2, 0x7d,
0xe8, 0x32, 0x57, 0xd1, 0xbf, 0x1a, 0xef, 0x66, 0x3d, 0x62, 0x85, 0xdb, 0x46, 0x66, 0xb3, 0x57,
0x91, 0xbb, 0xf0, 0x82, 0x53, 0x89, 0x79, 0xfa, 0xf2, 0x58, 0xb0, 0x2d, 0x16, 0xb2, 0xa8, 0xcd,
0x15, 0xfd, 0x9b, 0x51, 0x2e, 0x7b, 0x57, 0x2c, 0x6c, 0x2f, 0x45, 0x99, 0x92, 0xdd, 0x76, 0x18,
0xd2, 0x82, 0x79, 0x67, 0x85, 0x69, 0xf3, 0x83, 0x2e, 0x29, 0xfa, 0x77, 0x1b, 0x95, 0x57, 0xc6,
0x45, 0x65, 0x8f, 0x47, 0x81, 0x88, 0xba, 0x5b, 0xb9, 0x8e, 0x0b, 0x8f, 0xf3, 0xb4, 0x20, 0x50,
0xe4, 0x3e, 0x5c, 0x8b, 0x13, 0xd9, 0xe6, 0x4a, 0xf1, 0xc0, 0x8f, 0xe5, 0x89, 0x89, 0x11, 0x17,
0xb1, 0xf6, 0x13, 0x29, 0x75, 0x5a, 0xa4, 0x4f, 0x56, 0xf0, 0x4d, 0x97, 0x33, 0xe4, 0x9e, 0x3c,
0xf1, 0x2c, 0xce, 0x93, 0x52, 0xbb, 0x9a, 0xed, 0xc1, 0x95, 0x36, 0x8b, 0x02, 0x43, 0x1a, 0x7c,
0xc8, 0x94, 0xa2, 0xef, 0xad, 0xa0, 0xdb, 0xaf, 0x8e, 0x3d, 0xcc, 0x54, 0x77, 0x4f, 0xbe, 0x5d,
0x30, 0xee, 0x7c, 0xa7, 0xed, 0x5c, 0x5c, 0xdc, 0x5b, 0x91, 0x06, 0xcc, 0x76, 0x79, 0xc4, 0x95,
0x50, 0xbe, 0xe1, 0x7b, 0xfa, 0xdd, 0xeb, 0x78, 0xa2, 0x33, 0x6e, 0xf1, 0xa1, 0x38, 0xe2, 0xe4,
0x0d, 0xb8, 0xd0, 0x91, 0xc9, 0xa1, 0x1f, 0x30, 0xcd, 0xe8, 0xf7, 0x0c, 0x60, 0x66, 0x73, 0x75,
0x9c, 0x23, 0xf7, 0x64, 0x72, 0x78, 0x97, 0x69, 0xe6, 0x4d, 0x77, 0xdc, 0x3f, 0xf2, 0x00, 0x20,
0xa3, 0x43, 0x45, 0xbf, 0xbf, 0xfb, 0x89, 0x3a, 0x04, 0xf2, 0x46, 0x41, 0x9f, 0xbc, 0x01, 0x97,
0x72, 0x36, 0x56, 0xbc, 0xbf, 0x29, 0xfc, 0x60, 0xd7, 0xb8, 0x8f, 0x3a, 0xf5, 0x0c, 0xb5, 0xcf,
0x8b, 0x0d, 0xe1, 0x01, 0x40, 0xa1, 0x48, 0x7e, 0xb8, 0xfb, 0x89, 0x8a, 0xc4, 0x7a, 0x93, 0xeb,
0x93, 0x06, 0x40, 0x4e, 0xe1, 0xf4, 0x47, 0x66, 0xfb, 0x59, 0x04, 0x5d, 0xc8, 0xf8, 0x9b, 0x7c,
0xa7, 0x04, 0xd7, 0x3e, 0x96, 0xe0, 0xe8, 0x8f, 0x77, 0x3f, 0x15, 0xbf, 0xe1, 0x66, 0x2b, 0x1f,
0xc3, 0x71, 0xe4, 0xb6, 0x29, 0x06, 0xa5, 0xfd, 0x01, 0x36, 0xf9, 0x49, 0x1e, 0xae, 0x9a, 0x91,
0xdf, 0xeb, 0x63, 0x95, 0x54, 0x69, 0x80, 0xe3, 0x7e, 0x3a, 0xa0, 0xd4, 0xcf, 0x89, 0x4d, 0xa8,
0x16, 0xf0, 0x3a, 0xe1, 0xec, 0x90, 0xfe, 0x2c, 0xd7, 0xa8, 0xe4, 0x44, 0x87, 0x32, 0xb3, 0x89,
0x6d, 0x6b, 0x07, 0xbd, 0x4e, 0x27, 0x14, 0x51, 0x17, 0x1b, 0x1c, 0xfd, 0x79, 0x1e, 0xc9, 0x1a,
0x76, 0xb7, 0x54, 0x6c, 0xda, 0x1c, 0xb9, 0x0b, 0x57, 0x03, 0x1e, 0x4b, 0x25, 0xb4, 0x2a, 0x70,
0x84, 0x88, 0xfc, 0x98, 0x27, 0x42, 0x06, 0xf4, 0x17, 0x26, 0x96, 0x76, 0xc3, 0x4b, 0x29, 0x30,
0x63, 0x89, 0xfb, 0xd1, 0x1e, 0xa2, 0xc8, 0x97, 0x20, 0xef, 0xfa, 0xae, 0x9d, 0x9b, 0x92, 0xb5,
0x3d, 0x9d, 0xfe, 0x32, 0xf7, 0x60, 0x29, 0x83, 0x61, 0x17, 0x37, 0x15, 0x8b, 0x9d, 0x9c, 0xdc,
0x84, 0x6a, 0xbb, 0x97, 0x24, 0xe6, 0x54, 0x91, 0xa0, 0x14, 0x7f, 0x4c, 0x7f, 0x95, 0xbf, 0xec,
0x45, 0x27, 0x34, 0xbc, 0xb4, 0xcf, 0x1f, 0x93, 0xd7, 0xa1, 0x7e, 0x18, 0xc9, 0x93, 0x68, 0xa8,
0xbe, 0xe9, 0xaf, 0xf3, 0xcd, 0xe6, 0x11, 0xd2, 0x5f, 0xa7, 0xc6, 0xd5, 0xf1, 0xec, 0x40, 0x7f,
0x53, 0x70, 0x75, 0x4c, 0xa5, 0x93, 0xaf, 0xc1, 0xea, 0x78, 0x0b, 0xfe, 0xb1, 0xd4, 0x5c, 0xd1,
0xdf, 0xe6, 0xae, 0x5f, 0x1d, 0x63, 0xe7, 0x91, 0x01, 0x9a, 0xf7, 0x8e, 0x13, 0xee, 0x23, 0x2b,
0x1c, 0x9b, 0xd4, 0x93, 0x11, 0xfd, 0x5d, 0xe1, 0xbd, 0xe3, 0x84, 0x1b, 0x1e, 0x78, 0x64, 0x45,
0x64, 0x03, 0x6a, 0xb1, 0x34, 0xd9, 0x57, 0xc4, 0xff, 0xbe, 0x90, 0x14, 0x46, 0x5a, 0x54, 0xb8,
0x09, 0x55, 0xc4, 0x62, 0xaf, 0x8c, 0x7a, 0x47, 0x2d, 0x9e, 0xd0, 0x27, 0x05, 0xfb, 0x46, 0x68,
0xb2, 0x6d, 0x17, 0x45, 0x84, 0xc3, 0x42, 0x6c, 0x69, 0xbb, 0x9f, 0xeb, 0xdf, 0xb3, 0x25, 0x75,
0x73, 0x5c, 0x49, 0x6d, 0x75, 0xbb, 0x09, 0xef, 0x32, 0xcd, 0x83, 0x02, 0xab, 0xdb, 0x43, 0x88,
0x87, 0xda, 0x80, 0x32, 0xa9, 0x6a, 0x82, 0x16, 0x15, 0x5b, 0x19, 0x57, 0xf4, 0x0f, 0x66, 0x17,
0x97, 0xaa, 0x56, 0x9e, 0x75, 0x33, 0xae, 0x1a, 0xdf, 0x82, 0xe9, 0x94, 0x12, 0xc9, 0xda, 0x88,
0xb0, 0x95, 0x90, 0x6f, 0x07, 0x23, 0xf6, 0xf2, 0xa8, 0x88, 0xd9, 0x89, 0x77, 0x28, 0x58, 0x57,
0x1c, 0x3d, 0x63, 0x71, 0xda, 0x69, 0x76, 0x3a, 0x0d, 0x50, 0xe3, 0xdb, 0xb0, 0xfc, 0xcc, 0xd6,
0x40, 0xde, 0x84, 0x6b, 0xcf, 0xc8, 0x0b, 0xd7, 0xc2, 0x4a, 0x38, 0x66, 0x2e, 0x8f, 0xc9, 0x09,
0xd7, 0xc1, 0x16, 0xe0, 0x9c, 0x4d, 0x23, 0xeb, 0xa7, 0x7d, 0x68, 0xfc, 0xa7, 0x04, 0x74, 0x5c,
0x4f, 0x25, 0x5f, 0x80, 0x32, 0x36, 0x95, 0x12, 0xf6, 0x94, 0xb1, 0x24, 0x5c, 0x50, 0xc4, 0xd6,
0x82, 0x4a, 0xe4, 0x55, 0xa8, 0xc7, 0x2c, 0xd1, 0xa2, 0x2d, 0x62, 0x3b, 0x92, 0x64, 0x43, 0xd5,
0x04, 0xba, 0xbb, 0xd8, 0x27, 0xcd, 0x66, 0xaa, 0x75, 0x53, 0xb3, 0x4a, 0xcb, 0xe0, 0x2c, 0x57,
0x98, 0xb4, 0x23, 0xb7, 0x5b, 0xcf, 0xa0, 0x2f, 0xc2, 0x1c, 0x66, 0xa0, 0x88, 0xda, 0x61, 0x2f,
0xe0, 0x01, 0x0e, 0xf7, 0x65, 0x6f, 0xd6, 0x2c, 0xde, 0x77, 0x6b, 0x8d, 0xff, 0x4e, 0x40, 0x65,
0xc0, 0x41, 0x42, 0xa0, 0x8c, 0xa7, 0x61, 0x0f, 0x17, 0xff, 0x9b, 0xf0, 0xe0, 0xf4, 0x9c, 0x86,
0x07, 0x1f, 0x48, 0x13, 0xe6, 0xed, 0xbb, 0xf6, 0x8d, 0x47, 0xce, 0xa1, 0x9a, 0x15, 0x15, 0x86,
0x23, 0xb2, 0x09, 0x8b, 0x3c, 0x96, 0xed, 0x03, 0xbf, 0x25, 0x7b, 0x51, 0xc0, 0x92, 0xb3, 0xfe,
0x7b, 0xc7, 0x3c, 0x0a, 0xb7, 0x9d, 0xcc, 0xe9, 0xdc, 0x00, 0x62, 0xaf, 0x03, 0x7d, 0x5b, 0x9c,
0x43, 0x85, 0x2a, 0x4a, 0x8a, 0x3b, 0xbc, 0x06, 0x4b, 0x83, 0xb3, 0x64, 0xaa, 0x72, 0xde, 0xc6,
0x75, 0x60, 0x4e, 0x74, 0x7a, 0x2f, 0x0d, 0x0d, 0xc3, 0x53, 0xa3, 0x66, 0xe1, 0xcf, 0x43, 0x3d,
0x87, 0xf5, 0x39, 0x34, 0x8d, 0xd6, 0x17, 0x32, 0x69, 0xc1, 0xa9, 0xc6, 0x1f, 0x27, 0xa0, 0x32,
0x30, 0x18, 0x90, 0x3a, 0x9c, 0x8f, 0x7b, 0xad, 0x43, 0x7e, 0xe6, 0xd2, 0xd3, 0x3d, 0x99, 0x03,
0x3e, 0x11, 0xfa, 0x20, 0x48, 0xd8, 0x09, 0x0b, 0xfd, 0x62, 0xcc, 0x2b, 0xf9, 0x3a, 0x76, 0x53,
0x72, 0x13, 0x48, 0x01, 0xca, 0x82, 0x20, 0xe1, 0x4a, 0xa5, 0xc1, 0xcf, 0x25, 0x5b, 0x56, 0x50,
0xb8, 0xaf, 0xd9, 0x1e, 0x8e, 0x7d, 0xdb, 0x06, 0xbe, 0x6a, 0x05, 0x3b, 0xd9, 0x3a, 0xa1, 0x30,
0xe5, 0xe6, 0x55, 0x0c, 0x75, 0xd9, 0x4b, 0x1f, 0x8d, 0xe3, 0x26, 0x59, 0x7a, 0x0a, 0x03, 0x5a,
0xf6, 0xdc, 0x93, 0x29, 0x64, 0xdb, 0x45, 0xf2, 0xe0, 0x4d, 0x9b, 0x05, 0x8c, 0xdb, 0x0d, 0x20,
0x6e, 0xef, 0xc2, 0x4d, 0x18, 0x63, 0x56, 0x4e, 0x37, 0xcf, 0x6f, 0xbe, 0x8d, 0x10, 0x96, 0xc6,
0xcc, 0x0b, 0xe4, 0x3a, 0x54, 0xf2, 0xae, 0x27, 0xa2, 0x80, 0x9f, 0x62, 0xfc, 0xe6, 0xbc, 0x8b,
0xd9, 0xf2, 0x7d, 0xb3, 0x3a, 0x26, 0x61, 0xd3, 0xd4, 0x9e, 0xcc, 0x53, 0xbb, 0xf1, 0x74, 0x02,
0x16, 0x47, 0x72, 0x29, 0xa9, 0x17, 0x0b, 0x01, 0x29, 0xd2, 0x16, 0x03, 0xed, 0xb3, 0x8d, 0x02,
0x67, 0x7f, 0x7d, 0x28, 0x8d, 0x26, 0x33, 0xc8, 0x50, 0x2a, 0x2d, 0x8c, 0x4a, 0x25, 0x7b, 0x22,
0xa8, 0x40, 0x86, 0x93, 0x89, 0xdc, 0x80, 0xea, 0x60, 0x35, 0xd8, 0x5a, 0xb0, 0xad, 0xa5, 0xbf,
0x1e, 0x4c, 0xeb, 0xb2, 0x2d, 0x85, 0x27, 0x39, 0x5d, 0x9c, 0xcf, 0xe0, 0xd5, 0x54, 0x98, 0x71,
0xc6, 0x6b, 0xb0, 0x28, 0x5b, 0xa1, 0x78, 0xdc, 0xe3, 0x7e, 0xcc, 0x70, 0x32, 0x70, 0x6d, 0x62,
0x2a, 0xeb, 0x12, 0xf3, 0x0e, 0xb0, 0x87, 0x72, 0xdb, 0x27, 0xc8, 0x75, 0x98, 0x63, 0x69, 0x08,
0x7d, 0x25, 0xba, 0x74, 0x3a, 0x1b, 0x61, 0x66, 0x33, 0xc1, 0xbe, 0xe8, 0x36, 0xee, 0xc0, 0xdc,
0x7e, 0xcc, 0xdb, 0x82, 0x85, 0xee, 0x40, 0x09, 0x94, 0x0f, 0x45, 0x14, 0xb8, 0x53, 0xc4, 0xff,
0x66, 0x0d, 0x89, 0x75, 0x02, 0xaf, 0x1e, 0xf8, 0xbf, 0xf1, 0x0d, 0xa8, 0x0c, 0x4c, 0xb3, 0xa6,
0x21, 0x0d, 0xc5, 0xc2, 0x16, 0xd3, 0x60, 0x1c, 0xd2, 0x63, 0x9f, 0x28, 0x1c, 0xfb, 0xbb, 0x50,
0x1f, 0xfd, 0x9d, 0x80, 0x04, 0x70, 0x89, 0x99, 0x3f, 0xfe, 0x88, 0xcf, 0x10, 0xee, 0x0b, 0xd1,
0xfa, 0x73, 0x7f, 0x7a, 0xf0, 0xea, 0x68, 0x6b, 0x68, 0xbd, 0xf1, 0x15, 0xa8, 0x0d, 0x2d, 0xe6,
0x59, 0x5b, 0x2a, 0x66, 0xed, 0x55, 0xb8, 0x90, 0x3b, 0x60, 0x82, 0x32, 0xe7, 0xe5, 0x0b, 0x8d,
0x27, 0xe7, 0xd2, 0x2f, 0x5b, 0xf8, 0xc2, 0x23, 0xe9, 0xfb, 0x15, 0x58, 0x70, 0xf5, 0x97, 0xf0,
0x63, 0xce, 0xc2, 0x94, 0xb5, 0x6c, 0xaf, 0x71, 0xb5, 0xe9, 0xa1, 0xc8, 0x11, 0xe2, 0x73, 0x75,
0xd6, 0xc9, 0xe7, 0xe9, 0xac, 0xeb, 0x50, 0xc5, 0x3b, 0xad, 0xa9, 0xd8, 0xf4, 0xfe, 0x5c, 0xc6,
0x93, 0xad, 0xa4, 0xeb, 0xe9, 0xdd, 0xf9, 0x65, 0xa8, 0xb9, 0xdb, 0x7a, 0x61, 0x13, 0x4b, 0xf5,
0x15, 0x14, 0x14, 0xcc, 0xbe, 0x05, 0xb3, 0x7d, 0xe3, 0xd2, 0xf9, 0x4f, 0x3b, 0x2d, 0xf5, 0x99,
0x21, 0x5b, 0x30, 0xad, 0x6c, 0x82, 0xda, 0xa4, 0x9f, 0xd9, 0x7c, 0x69, 0xec, 0x59, 0x17, 0x13,
0xd9, 0xcb, 0xd4, 0x0c, 0x2f, 0xc7, 0x89, 0x8c, 0xa5, 0xe2, 0x89, 0xa9, 0x85, 0x88, 0xe9, 0x5e,
0xc2, 0xb1, 0x22, 0x66, 0xbd, 0x5a, 0x2a, 0xd9, 0x4f, 0x05, 0xe4, 0x06, 0x54, 0xfa, 0xe2, 0xc3,
0x15, 0x7d, 0x9a, 0x97, 0xdb, 0xc5, 0x62, 0x8c, 0xb8, 0x22, 0x6b, 0x30, 0xd7, 0x77, 0x92, 0xf4,
0xfd, 0xa9, 0xac, 0x9e, 0x67, 0x8b, 0xe7, 0x68, 0x6a, 0xd2, 0x9c, 0x9b, 0xfd, 0xc6, 0x97, 0xf0,
0x0e, 0xfd, 0x20, 0x47, 0xce, 0xc4, 0xf2, 0x04, 0x2f, 0x01, 0x1e, 0xef, 0x98, 0x5b, 0x60, 0x1e,
0x75, 0xfa, 0x61, 0x8e, 0xba, 0x90, 0xc5, 0x9c, 0x7c, 0x11, 0x2e, 0x64, 0x5f, 0x54, 0xe9, 0xff,
0xa7, 0x70, 0xe2, 0xb9, 0xdc, 0xb4, 0x1f, 0x5d, 0x9b, 0xe9, 0x47, 0xd7, 0xe6, 0xc3, 0x14, 0x62,
0xd5, 0x33, 0x8d, 0xd6, 0x79, 0x84, 0xdc, 0xfe, 0x28, 0x00, 0x00, 0xff, 0xff, 0x9a, 0xb4, 0x15,
0xf3, 0xe0, 0x15, 0x00, 0x00,
}

View File

@@ -114,15 +114,16 @@ message ShardReassignmentRecord {
uint64 slot = 3;
}
// AggregatedAttestation is deprecated entirely by AttestationRecord.
message AggregatedAttestation {
uint64 slot = 1;
uint64 shard = 2;
uint64 justified_slot = 3;
bytes justified_block_hash = 4;
bytes shard_block_hash = 5;
bytes attester_bitfield = 6;
repeated bytes oblique_parent_hashes = 7;
repeated uint64 aggregate_sig = 8;
uint64 slot = 1 [deprecated=true];
uint64 shard = 2 [deprecated=true];
uint64 justified_slot = 3 [deprecated=true];
bytes justified_block_hash = 4 [deprecated=true];
bytes shard_block_hash = 5 [deprecated=true];
bytes attester_bitfield = 6 [deprecated=true];
repeated bytes oblique_parent_hashes = 7 [deprecated=true];
repeated uint64 aggregate_sig = 8 [deprecated=true];
}
message SpecialRecord {
@@ -145,12 +146,29 @@ message ShardAndCommittee {
}
message BeaconBlock {
repeated bytes ancestor_hashes = 1;
uint64 slot = 2;
bytes randao_reveal = 3;
bytes pow_chain_ref = 4;
bytes state_root = 5;
google.protobuf.Timestamp timestamp = 6;
repeated AggregatedAttestation attestations = 7;
repeated SpecialRecord specials = 8;
uint64 slot = 1;
bytes randao_reveal_hash32 = 2;
bytes candidate_pow_receipt_root_hash32 = 3;
// Ancestor hashes represent a skip list of ancestor beacon block hashes.
// i'th item is the most recent ancestor whose slot is a multiple of 2^i
// for i in the range of 0 to 31.
repeated bytes ancestor_hash32s = 4;
bytes state_root_hash32 = 5;
// TODO: attestations should be a list of attestionRecords according to spec
// at ethereum/eth2.0-specs@11d4473. Update this field to AttestionRecord
// and remove the AggregatedAttestion message.
repeated AggregatedAttestation attestations = 6 [deprecated=true];
// repeated AttestationRecord attestations = 6;
// Specials consist of exist, penalities, etc.
repeated SpecialRecord specials = 7;
repeated bytes proposer_signature = 8; // Type of [uint384]?
// Deprecated fields
// All fields must be annotated with [deprecated=true];
repeated bytes ancestor_hashes = 1002 [deprecated=true]; // Renamed to ancestor_hash32s.
bytes randao_reveal = 1003 [deprecated=true]; // Renamed to ancestor_hash32s.
bytes pow_chain_ref = 1004 [deprecated=true]; // Obsolete?
bytes state_root = 1005 [deprecated=true]; // Renamed to state_root_hash32.
google.protobuf.Timestamp timestamp = 1006 [deprecated=true]; // Obsolete?
}