diff --git a/beacon-chain/chaintest/README.md b/beacon-chain/chaintest/README.md index 29af1011fd..c58d0ed365 100644 --- a/beacon-chain/chaintest/README.md +++ b/beacon-chain/chaintest/README.md @@ -65,14 +65,14 @@ test_cases: LkmqmqoodLKAslkjdkajsdljasdkajlksjdasldjasdd casper_slashings: - slot: 59 # At slot 59, we trigger a casper slashing - votes_1_slot: 55 - votes_2_slot: 55 - votes_1_justified_slot: 0 - votes_2_justified_slot: 1 - votes_1_custody_0_indices: [16386] - votes_1_custody_1_indices: [] - votes_2_custody_0_indices: [] - votes_2_custody_1_indices: [16386] + slashable_vote_data_1_slot: 55 + slashable_vote_data_2_slot: 55 + slashable_vote_data_1_justified_slot: 0 + slashable_vote_data_2_justified_slot: 1 + slashable_vote_data_1_custody_0_indices: [16386] + slashable_vote_data_1_custody_1_indices: [] + slashable_vote_data_2_custody_0_indices: [] + slashable_vote_data_2_custody_1_indices: [16386] results: slot: 64 num_validators: 16387 @@ -98,7 +98,6 @@ test_cases: num_validators: 1000 # Validator registry should not have grown if slots 10 and 20 were skipped ``` - #### Test Configuration Options The following configuration options are available for state transition tests: @@ -115,39 +114,44 @@ The following configuration options are available for state transition tests: - **validator_exits**: `[Validator Exit Config]` trigger a voluntary validator exit at a certain slot for a validator index **Deposit Config** + - **slot**: `int` a slot in which to trigger a deposit during a state transition test - **amount**: `int` the ETH deposit amount to trigger - **merkle_index**: `int` the index of the deposit in the validator deposit contract's Merkle trie - **pubkey**: `!!binary` the public key of the validator in the triggered deposit object **Proposer Slashing Config** + - **slot**: `int` a slot in which to trigger a proposer slashing during a state transition test - **proposer_index**: `int` the proposer to penalize - **proposal_1_shard**: `int` the first proposal data's shard id - **proposal_1_slot**: `int` the first proposal data's slot - **proposal_1_root**: `!!binary` the second proposal data's block root -- **proposal_2_shard**: `int` the second proposal data's shard id +- **proposal_2_shard**: `int` the second proposal data's shard id - **proposal_2_slot**: `int` the second proposal data's slot - **proposal_2_root**: `!!binary` the second proposal data's block root **Casper Slashing Config** + - **slot**: `int` a slot in which to trigger a casper slashing during a state transition test -- **votes_1_slot**: `int` the slot of the attestation data of votes1 -- **votes_2_slot**: `int` the slot of the attestation data of votes2 -- **votes_1_justified_slot**: `int` the justified slot of the attestation data of votes1 -- **votes_2_justified_slot**: `int` the justified slot of the attestation data of votes2 -- **votes_1_custody_0_indices**: `[int]` the custody indices 0 for votes1 -- **votes_1_custody_1_indices**: `[int]` the custody indices 1 for votes1 -- **votes_2_custody_0_indices**: `[int]` the custody indices 0 for votes2 -- **votes_2_custody_1_indices**: `[int]` the custody indices 1 for votes2 +- **slashable_vote_data_1_slot**: `int` the slot of the attestation data of slashableVoteData1 +- **slashable_vote_data_2_slot**: `int` the slot of the attestation data of slashableVoteData2 +- **slashable_vote_data_1_justified_slot**: `int` the justified slot of the attestation data of slashableVoteData1 +- **slashable_vote_data_2_justified_slot**: `int` the justified slot of the attestation data of slashableVoteData2 +- **slashable_vote_data_1_custody_0_indices**: `[int]` the custody indices 0 for slashableVoteData1 +- **slashable_vote_data_1_custody_1_indices**: `[int]` the custody indices 1 for slashableVoteData1 +- **slashable_vote_data_2_custody_0_indices**: `[int]` the custody indices 0 for slashableVoteData2 +- **slashable_vote_data_2_custody_1_indices**: `[int]` the custody indices 1 for slashableVoteData2 **Validator Exit Config** + - **slot**: `int` the slot at which a validator wants to voluntarily exit the validator registry - **validator_index**: `int` the index of the validator in the registry that is exiting #### Test Results The following are **mandatory** fields as they correspond to checks done at the end of the test run. + - **slot**: `int` check the slot of the state resulting from applying N state transitions in the test - **num_validators** `[int]` check the number of validators in the validator registry after applying N state transitions - **penalized_validators** `[int]` the list of validator indices we verify were penalized during the test @@ -175,32 +179,32 @@ fork: tchaikovsky version: 1.0 test_cases: -- input: [] - output: [] - seed: !!binary "" -- name: boring_list - description: List with a single element, 0 - input: [0] - output: [0] - seed: !!binary "" -- input: [255] - output: [255] - seed: !!binary "" -- input: [4, 6, 2, 6, 1, 4, 6, 2, 1, 5] - output: [1, 6, 4, 1, 6, 6, 2, 2, 4, 5] - seed: !!binary "" -- input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] - output: [4, 7, 10, 13, 3, 1, 2, 9, 12, 6, 11, 8, 5] - seed: !!binary "" -- input: [65, 6, 2, 6, 1, 4, 6, 2, 1, 5] - output: [6, 65, 2, 5, 4, 2, 6, 6, 1, 1] - seed: !!binary | - JlAYJ5H2j8g7PLiPHZI/rTS1uAvKiieOrifPN6Moso0= + - input: [] + output: [] + seed: !!binary "" + - name: boring_list + description: List with a single element, 0 + input: [0] + output: [0] + seed: !!binary "" + - input: [255] + output: [255] + seed: !!binary "" + - input: [4, 6, 2, 6, 1, 4, 6, 2, 1, 5] + output: [1, 6, 4, 1, 6, 6, 2, 2, 4, 5] + seed: !!binary "" + - input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] + output: [4, 7, 10, 13, 3, 1, 2, 9, 12, 6, 11, 8, 5] + seed: !!binary "" + - input: [65, 6, 2, 6, 1, 4, 6, 2, 1, 5] + output: [6, 65, 2, 5, 4, 2, 6, 6, 1, 1] + seed: !!binary | + JlAYJ5H2j8g7PLiPHZI/rTS1uAvKiieOrifPN6Moso0= ``` # Using the Runner -First, create a directory containing the YAML files you wish to test (or use the default `./sampletests` directory included with Prysm). +First, create a directory containing the YAML files you wish to test (or use the default `./sampletests` directory included with Prysm). Then, make sure you have the following folder structure for the directory: ``` @@ -218,7 +222,6 @@ yourtestdir/ Then, navigate to the test runner's directory and use the go tool as follows: - ```bash go run main.go -tests-dir /path/to/your/testsdir ``` diff --git a/beacon-chain/chaintest/backend/helpers.go b/beacon-chain/chaintest/backend/helpers.go index 5ea2c90c0b..a210d7cbca 100644 --- a/beacon-chain/chaintest/backend/helpers.go +++ b/beacon-chain/chaintest/backend/helpers.go @@ -87,21 +87,21 @@ func generateSimulatedBlock( } if simulatedCasperSlashing != nil { block.Body.CasperSlashings = append(block.Body.CasperSlashings, &pb.CasperSlashing{ - Votes_1: &pb.SlashableVoteData{ + SlashableVoteData_1: &pb.SlashableVoteData{ Data: &pb.AttestationData{ - Slot: simulatedCasperSlashing.Votes1Slot, - JustifiedSlot: simulatedCasperSlashing.Votes1JustifiedSlot, + Slot: simulatedCasperSlashing.SlashableVoteData1Slot, + JustifiedSlot: simulatedCasperSlashing.SlashableVoteData1JustifiedSlot, }, - CustodyBit_0Indices: simulatedCasperSlashing.Votes1CustodyBit0Indices, - CustodyBit_1Indices: simulatedCasperSlashing.Votes1CustodyBit1Indices, + CustodyBit_0Indices: simulatedCasperSlashing.SlashableVoteData1CustodyBit0Indices, + CustodyBit_1Indices: simulatedCasperSlashing.SlashableVoteData1CustodyBit1Indices, }, - Votes_2: &pb.SlashableVoteData{ + SlashableVoteData_2: &pb.SlashableVoteData{ Data: &pb.AttestationData{ - Slot: simulatedCasperSlashing.Votes2Slot, - JustifiedSlot: simulatedCasperSlashing.Votes2JustifiedSlot, + Slot: simulatedCasperSlashing.SlashableVoteData2Slot, + JustifiedSlot: simulatedCasperSlashing.SlashableVoteData2JustifiedSlot, }, - CustodyBit_0Indices: simulatedCasperSlashing.Votes2CustodyBit0Indices, - CustodyBit_1Indices: simulatedCasperSlashing.Votes2CustodyBit1Indices, + CustodyBit_0Indices: simulatedCasperSlashing.SlashableVoteData2CustodyBit0Indices, + CustodyBit_1Indices: simulatedCasperSlashing.SlashableVoteData2CustodyBit1Indices, }, }) } diff --git a/beacon-chain/chaintest/backend/state_test_format.go b/beacon-chain/chaintest/backend/state_test_format.go index 459d544e6b..ff888bb27a 100644 --- a/beacon-chain/chaintest/backend/state_test_format.go +++ b/beacon-chain/chaintest/backend/state_test_format.go @@ -52,15 +52,15 @@ type StateTestProposerSlashing struct { // StateTestCasperSlashing -- type StateTestCasperSlashing struct { - Slot uint64 `yaml:"slot"` - Votes1Slot uint64 `yaml:"votes_1_slot"` - Votes1JustifiedSlot uint64 `yaml:"votes_1_justified_slot"` - Votes1CustodyBit0Indices []uint32 `yaml:"votes_1_custody_0_indices"` - Votes1CustodyBit1Indices []uint32 `yaml:"votes_1_custody_1_indices"` - Votes2Slot uint64 `yaml:"votes_2_slot"` - Votes2JustifiedSlot uint64 `yaml:"votes_2_justified_slot"` - Votes2CustodyBit0Indices []uint32 `yaml:"votes_2_custody_0_indices"` - Votes2CustodyBit1Indices []uint32 `yaml:"votes_2_custody_1_indices"` + Slot uint64 `yaml:"slot"` + SlashableVoteData1Slot uint64 `yaml:"slashable_vote_data_1_slot"` + SlashableVoteData1JustifiedSlot uint64 `yaml:"slashable_vote_data_1_justified_slot"` + SlashableVoteData1CustodyBit0Indices []uint32 `yaml:"slashable_vote_data_1_custody_0_indices"` + SlashableVoteData1CustodyBit1Indices []uint32 `yaml:"slashable_vote_data_1_custody_1_indices"` + SlashableVoteData2Slot uint64 `yaml:"slashable_vote_data_2_slot"` + SlashableVoteData2JustifiedSlot uint64 `yaml:"slashable_vote_data_2_justified_slot"` + SlashableVoteData2CustodyBit0Indices []uint32 `yaml:"slashable_vote_data_2_custody_0_indices"` + SlashableVoteData2CustodyBit1Indices []uint32 `yaml:"slashable_vote_data_2_custody_1_indices"` } // StateTestValidatorExit -- diff --git a/beacon-chain/chaintest/tests/state-tests/block-processing.yaml b/beacon-chain/chaintest/tests/state-tests/block-processing.yaml index 177157efe6..3c4c10ab0e 100644 --- a/beacon-chain/chaintest/tests/state-tests/block-processing.yaml +++ b/beacon-chain/chaintest/tests/state-tests/block-processing.yaml @@ -44,14 +44,14 @@ test_cases: LkmqmqoodLKAslkjdkajsdljasdkajlksjdasldjasdd casper_slashings: - slot: 59 # At slot 59, we trigger a casper slashing - votes_1_slot: 55 - votes_2_slot: 55 - votes_1_justified_slot: 0 - votes_2_justified_slot: 1 - votes_1_custody_0_indices: [16386] - votes_1_custody_1_indices: [] - votes_2_custody_0_indices: [] - votes_2_custody_1_indices: [16386] + slashable_vote_data_1_slot: 55 + slashable_vote_data_2_slot: 55 + slashable_vote_data_1_justified_slot: 0 + slashable_vote_data_2_justified_slot: 1 + slashable_vote_data_1_custody_0_indices: [16386] + slashable_vote_data_1_custody_1_indices: [] + slashable_vote_data_2_custody_0_indices: [] + slashable_vote_data_2_custody_1_indices: [16386] validator_exits: - slot: 60 validator_index: 100 # At slot 60, validator at index 100 triggers a voluntary exit @@ -79,4 +79,4 @@ test_cases: # Oklajsjdkaklsdlkajsdjlajslkdjlkasjlkdjlajdsd # results: # slot: 128 -# num_validators: 1000 # Validator registry should not have grown if slots 10 and 20 were skipped \ No newline at end of file +# num_validators: 1000 # Validator registry should not have grown if slots 10 and 20 were skipped diff --git a/beacon-chain/core/blocks/block_operations.go b/beacon-chain/core/blocks/block_operations.go index 2823f88919..2568d6b09a 100644 --- a/beacon-chain/core/blocks/block_operations.go +++ b/beacon-chain/core/blocks/block_operations.go @@ -247,26 +247,26 @@ func ProcessCasperSlashings( } func verifyCasperSlashing(slashing *pb.CasperSlashing) error { - votes1 := slashing.Votes_1 - votes2 := slashing.Votes_2 - votes1Attestation := votes1.Data - votes2Attestation := votes2.Data + slashableVoteData1 := slashing.SlashableVoteData_1 + slashableVoteData2 := slashing.SlashableVoteData_2 + slashableVoteData1Attestation := slashableVoteData1.Data + slashableVoteData2Attestation := slashableVoteData2.Data - if err := verifyCasperVotes(votes1); err != nil { - return fmt.Errorf("could not verify casper votes 1: %v", err) + if err := verifySlashableVoteData(slashableVoteData1); err != nil { + return fmt.Errorf("could not verify casper slashable vote data 1: %v", err) } - if err := verifyCasperVotes(votes2); err != nil { - return fmt.Errorf("could not verify casper votes 2: %v", err) + if err := verifySlashableVoteData(slashableVoteData2); err != nil { + return fmt.Errorf("could not verify casper slashable vote data 2: %v", err) } // Inner attestation data structures for the votes should not be equal, // as that would mean both votes are the same and therefore no slashing // should occur. - if reflect.DeepEqual(votes1Attestation, votes2Attestation) { + if reflect.DeepEqual(slashableVoteData1Attestation, slashableVoteData2Attestation) { return fmt.Errorf( - "casper slashing inner vote attestation data should not match: %v, %v", - votes1Attestation, - votes2Attestation, + "casper slashing inner slashable vote data attestation should not match: %v, %v", + slashableVoteData1Attestation, + slashableVoteData2Attestation, ) } @@ -276,46 +276,50 @@ func verifyCasperSlashing(slashing *pb.CasperSlashing) error { // (vote2.slot < vote1.slot) // OR // vote1.slot == vote2.slot - justificationValidity := (votes1Attestation.JustifiedSlot < votes2Attestation.JustifiedSlot) && - (votes2Attestation.JustifiedSlot+1 == votes2Attestation.Slot) && - (votes2Attestation.Slot < votes1Attestation.Slot) + justificationValidity := + (slashableVoteData1Attestation.JustifiedSlot < slashableVoteData2Attestation.JustifiedSlot) && + (slashableVoteData2Attestation.JustifiedSlot+1 == slashableVoteData2Attestation.Slot) && + (slashableVoteData2Attestation.Slot < slashableVoteData1Attestation.Slot) - slotsEqual := votes1Attestation.Slot == votes2Attestation.Slot + slotsEqual := slashableVoteData1Attestation.Slot == slashableVoteData2Attestation.Slot if !(justificationValidity || slotsEqual) { return fmt.Errorf( ` Expected the following conditions to hold: - (vote1.JustifiedSlot < vote2.JustifiedSlot) && - (vote2.JustifiedSlot + 1 == vote2.Slot) && - (vote2.Slot < vote1.Slot) + (slashableVoteData1.JustifiedSlot < + slashableVoteData2.JustifiedSlot) && + (slashableVoteData2.JustifiedSlot + 1 + == slashableVoteData1.Slot) && + (slashableVoteData2.Slot < slashableVoteData1.Slot) OR - vote1.Slot == vote.Slot + slashableVoteData1.Slot == slashableVoteData2.Slot - Instead, received vote1.JustifiedSlot %d, vote2.JustifiedSlot %d - and vote1.Slot %d, vote2.Slot %d + Instead, received slashableVoteData1.JustifiedSlot %d, + slashableVoteData2.JustifiedSlot %d + and slashableVoteData1.Slot %d, slashableVoteData2.Slot %d `, - votes1Attestation.JustifiedSlot, - votes2Attestation.JustifiedSlot, - votes1Attestation.Slot, - votes2Attestation.Slot, + slashableVoteData1Attestation.JustifiedSlot, + slashableVoteData2Attestation.JustifiedSlot, + slashableVoteData1Attestation.Slot, + slashableVoteData2Attestation.Slot, ) } return nil } func casperSlashingPenalizedIndices(slashing *pb.CasperSlashing) ([]uint32, error) { - votes1 := slashing.Votes_1 - votes2 := slashing.Votes_2 - votes1Indices := append( - votes1.CustodyBit_0Indices, - votes1.CustodyBit_1Indices..., + slashableVoteData1 := slashing.SlashableVoteData_1 + slashableVoteData2 := slashing.SlashableVoteData_2 + slashableVoteData1Indices := append( + slashableVoteData1.CustodyBit_0Indices, + slashableVoteData1.CustodyBit_1Indices..., ) - votes2Indices := append( - votes2.CustodyBit_0Indices, - votes2.CustodyBit_1Indices..., + slashableVoteData2Indices := append( + slashableVoteData2.CustodyBit_0Indices, + slashableVoteData2.CustodyBit_1Indices..., ) - indicesIntersection := slices.Intersection(votes1Indices, votes2Indices) + indicesIntersection := slices.Intersection(slashableVoteData1Indices, slashableVoteData2Indices) if len(indicesIntersection) < 1 { return nil, fmt.Errorf( "expected intersection of vote indices to be non-empty: %v", @@ -325,7 +329,7 @@ func casperSlashingPenalizedIndices(slashing *pb.CasperSlashing) ([]uint32, erro return indicesIntersection, nil } -func verifyCasperVotes(votes *pb.SlashableVoteData) error { +func verifySlashableVoteData(votes *pb.SlashableVoteData) error { totalCustody := len(votes.CustodyBit_0Indices) + len(votes.CustodyBit_1Indices) if uint64(totalCustody) > params.BeaconConfig().MaxCasperVotes { diff --git a/beacon-chain/core/blocks/block_operations_test.go b/beacon-chain/core/blocks/block_operations_test.go index 536a8cc623..75d33abedc 100644 --- a/beacon-chain/core/blocks/block_operations_test.go +++ b/beacon-chain/core/blocks/block_operations_test.go @@ -363,7 +363,7 @@ func TestProcessCasperSlashings_ThresholdReached(t *testing.T) { func TestProcessCasperSlashings_VoteThresholdReached(t *testing.T) { slashings := []*pb.CasperSlashing{ { - Votes_1: &pb.SlashableVoteData{ + SlashableVoteData_1: &pb.SlashableVoteData{ CustodyBit_0Indices: make( []uint32, config.MaxCasperVotes, @@ -373,7 +373,7 @@ func TestProcessCasperSlashings_VoteThresholdReached(t *testing.T) { config.MaxCasperVotes, ), }, - Votes_2: &pb.SlashableVoteData{ + SlashableVoteData_2: &pb.SlashableVoteData{ CustodyBit_0Indices: make( []uint32, config.MaxCasperVotes, @@ -410,10 +410,10 @@ func TestProcessCasperSlashings_VoteThresholdReached(t *testing.T) { t.Errorf("Expected %s, received %v", want, err) } - // Perform the same check for Votes_2. + // Perform the same check for SlashableVoteData_2. slashings = []*pb.CasperSlashing{ { - Votes_1: &pb.SlashableVoteData{ + SlashableVoteData_1: &pb.SlashableVoteData{ CustodyBit_0Indices: make( []uint32, config.MaxCasperVotes, @@ -423,7 +423,7 @@ func TestProcessCasperSlashings_VoteThresholdReached(t *testing.T) { config.MaxCasperVotes, ), }, - Votes_2: &pb.SlashableVoteData{ + SlashableVoteData_2: &pb.SlashableVoteData{ CustodyBit_0Indices: make( []uint32, config.MaxCasperVotes, @@ -458,10 +458,10 @@ func TestProcessCasperSlashings_UnmatchedAttestations(t *testing.T) { } slashings := []*pb.CasperSlashing{ { - Votes_1: &pb.SlashableVoteData{ + SlashableVoteData_1: &pb.SlashableVoteData{ Data: att1, }, - Votes_2: &pb.SlashableVoteData{ + SlashableVoteData_2: &pb.SlashableVoteData{ Data: att1, }, }, @@ -479,7 +479,7 @@ func TestProcessCasperSlashings_UnmatchedAttestations(t *testing.T) { }, } want := fmt.Sprintf( - "casper slashing inner vote attestation data should not match: %v, %v", + "casper slashing inner slashable vote data attestation should not match: %v, %v", att1, att1, ) @@ -543,10 +543,10 @@ func TestProcessCasperSlashings_SlotsInequalities(t *testing.T) { for _, tt := range testCases { slashings := []*pb.CasperSlashing{ { - Votes_1: &pb.SlashableVoteData{ + SlashableVoteData_1: &pb.SlashableVoteData{ Data: tt.att1, }, - Votes_2: &pb.SlashableVoteData{ + SlashableVoteData_2: &pb.SlashableVoteData{ Data: tt.att2, }, }, @@ -566,14 +566,17 @@ func TestProcessCasperSlashings_SlotsInequalities(t *testing.T) { want := fmt.Sprintf( ` Expected the following conditions to hold: - (vote1.JustifiedSlot < vote2.JustifiedSlot) && - (vote2.JustifiedSlot + 1 == vote2.Slot) && - (vote2.Slot < vote1.Slot) + (slashableVoteData1.JustifiedSlot < + slashableVoteData2.JustifiedSlot) && + (slashableVoteData2.JustifiedSlot + 1 + == slashableVoteData1.Slot) && + (slashableVoteData2.Slot < slashableVoteData1.Slot) OR - vote1.Slot == vote.Slot + slashableVoteData1.Slot == slashableVoteData2.Slot - Instead, received vote1.JustifiedSlot %d, vote2.JustifiedSlot %d - and vote1.Slot %d, vote2.Slot %d + Instead, received slashableVoteData1.JustifiedSlot %d, + slashableVoteData2.JustifiedSlot %d + and slashableVoteData1.Slot %d, slashableVoteData2.Slot %d `, tt.att1.JustifiedSlot, tt.att2.JustifiedSlot, @@ -601,12 +604,12 @@ func TestProcessCasperSlashings_EmptyVoteIndexIntersection(t *testing.T) { } slashings := []*pb.CasperSlashing{ { - Votes_1: &pb.SlashableVoteData{ + SlashableVoteData_1: &pb.SlashableVoteData{ Data: att1, CustodyBit_0Indices: []uint32{1, 2}, CustodyBit_1Indices: []uint32{3, 4}, }, - Votes_2: &pb.SlashableVoteData{ + SlashableVoteData_2: &pb.SlashableVoteData{ Data: att2, CustodyBit_0Indices: []uint32{5, 6}, CustodyBit_1Indices: []uint32{7, 8}, @@ -655,12 +658,12 @@ func TestProcessCasperSlashings_AppliesCorrectStatus(t *testing.T) { } slashings := []*pb.CasperSlashing{ { - Votes_1: &pb.SlashableVoteData{ + SlashableVoteData_1: &pb.SlashableVoteData{ Data: att1, CustodyBit_0Indices: []uint32{0, 1}, CustodyBit_1Indices: []uint32{2, 3}, }, - Votes_2: &pb.SlashableVoteData{ + SlashableVoteData_2: &pb.SlashableVoteData{ Data: att2, CustodyBit_0Indices: []uint32{4, 5}, CustodyBit_1Indices: []uint32{6, 1}, diff --git a/beacon-chain/core/state/transition_test.go b/beacon-chain/core/state/transition_test.go index 0502ad27de..ba38d7e4f2 100644 --- a/beacon-chain/core/state/transition_test.go +++ b/beacon-chain/core/state/transition_test.go @@ -133,12 +133,12 @@ func TestProcessBlock_IncorrectProcessBlockAttestations(t *testing.T) { } casperSlashings := []*pb.CasperSlashing{ { - Votes_1: &pb.SlashableVoteData{ + SlashableVoteData_1: &pb.SlashableVoteData{ Data: att1, CustodyBit_0Indices: []uint32{0, 1}, CustodyBit_1Indices: []uint32{2, 3}, }, - Votes_2: &pb.SlashableVoteData{ + SlashableVoteData_2: &pb.SlashableVoteData{ Data: att2, CustodyBit_0Indices: []uint32{4, 5}, CustodyBit_1Indices: []uint32{6, 1}, @@ -195,12 +195,12 @@ func TestProcessBlock_IncorrectProcessExits(t *testing.T) { } casperSlashings := []*pb.CasperSlashing{ { - Votes_1: &pb.SlashableVoteData{ + SlashableVoteData_1: &pb.SlashableVoteData{ Data: att1, CustodyBit_0Indices: []uint32{0, 1}, CustodyBit_1Indices: []uint32{2, 3}, }, - Votes_2: &pb.SlashableVoteData{ + SlashableVoteData_2: &pb.SlashableVoteData{ Data: att2, CustodyBit_0Indices: []uint32{4, 5}, CustodyBit_1Indices: []uint32{6, 1}, @@ -282,12 +282,12 @@ func TestProcessBlock_PassesProcessingConditions(t *testing.T) { } casperSlashings := []*pb.CasperSlashing{ { - Votes_1: &pb.SlashableVoteData{ + SlashableVoteData_1: &pb.SlashableVoteData{ Data: att1, CustodyBit_0Indices: []uint32{0, 1}, CustodyBit_1Indices: []uint32{2, 3}, }, - Votes_2: &pb.SlashableVoteData{ + SlashableVoteData_2: &pb.SlashableVoteData{ Data: att2, CustodyBit_0Indices: []uint32{4, 5}, CustodyBit_1Indices: []uint32{6, 1}, diff --git a/proto/beacon/p2p/v1/types.pb.go b/proto/beacon/p2p/v1/types.pb.go index a06f75f8a5..53d56c8ea1 100755 --- a/proto/beacon/p2p/v1/types.pb.go +++ b/proto/beacon/p2p/v1/types.pb.go @@ -44,7 +44,7 @@ func (x ValidatorRecord_StatusFlags) String() string { return proto.EnumName(ValidatorRecord_StatusFlags_name, int32(x)) } func (ValidatorRecord_StatusFlags) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{7, 0} + return fileDescriptor_types_74a41dc3cff57ab5, []int{7, 0} } type ValidatorRegistryDeltaBlock_ValidatorRegistryDeltaFlags int32 @@ -67,7 +67,7 @@ func (x ValidatorRegistryDeltaBlock_ValidatorRegistryDeltaFlags) String() string return proto.EnumName(ValidatorRegistryDeltaBlock_ValidatorRegistryDeltaFlags_name, int32(x)) } func (ValidatorRegistryDeltaBlock_ValidatorRegistryDeltaFlags) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{22, 0} + return fileDescriptor_types_74a41dc3cff57ab5, []int{22, 0} } type BeaconState struct { @@ -109,7 +109,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_078fb5cfdd968b95, []int{0} + return fileDescriptor_types_74a41dc3cff57ab5, []int{0} } func (m *BeaconState) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -354,7 +354,7 @@ func (m *Fork) Reset() { *m = Fork{} } func (m *Fork) String() string { return proto.CompactTextString(m) } func (*Fork) ProtoMessage() {} func (*Fork) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{1} + return fileDescriptor_types_74a41dc3cff57ab5, []int{1} } func (m *Fork) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -416,7 +416,7 @@ func (m *DepositRootVote) Reset() { *m = DepositRootVote{} } func (m *DepositRootVote) String() string { return proto.CompactTextString(m) } func (*DepositRootVote) ProtoMessage() {} func (*DepositRootVote) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{2} + return fileDescriptor_types_74a41dc3cff57ab5, []int{2} } func (m *DepositRootVote) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -473,7 +473,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_078fb5cfdd968b95, []int{3} + return fileDescriptor_types_74a41dc3cff57ab5, []int{3} } func (m *PendingAttestationRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -544,7 +544,7 @@ func (m *Attestation) Reset() { *m = Attestation{} } func (m *Attestation) String() string { return proto.CompactTextString(m) } func (*Attestation) ProtoMessage() {} func (*Attestation) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{4} + return fileDescriptor_types_74a41dc3cff57ab5, []int{4} } func (m *Attestation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -619,7 +619,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_078fb5cfdd968b95, []int{5} + return fileDescriptor_types_74a41dc3cff57ab5, []int{5} } func (m *AttestationData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -716,7 +716,7 @@ func (m *AttestationDataAndCustodyBit) Reset() { *m = AttestationDataAnd func (m *AttestationDataAndCustodyBit) String() string { return proto.CompactTextString(m) } func (*AttestationDataAndCustodyBit) ProtoMessage() {} func (*AttestationDataAndCustodyBit) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{6} + return fileDescriptor_types_74a41dc3cff57ab5, []int{6} } func (m *AttestationDataAndCustodyBit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -783,7 +783,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_078fb5cfdd968b95, []int{7} + return fileDescriptor_types_74a41dc3cff57ab5, []int{7} } func (m *ValidatorRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -924,7 +924,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_078fb5cfdd968b95, []int{8} + return fileDescriptor_types_74a41dc3cff57ab5, []int{8} } func (m *ShardReassignmentRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -986,7 +986,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_078fb5cfdd968b95, []int{9} + return fileDescriptor_types_74a41dc3cff57ab5, []int{9} } func (m *CrosslinkRecord) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1040,7 +1040,7 @@ func (m *ShardCommitteeArray) Reset() { *m = ShardCommitteeArray{} } func (m *ShardCommitteeArray) String() string { return proto.CompactTextString(m) } func (*ShardCommitteeArray) ProtoMessage() {} func (*ShardCommitteeArray) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{10} + return fileDescriptor_types_74a41dc3cff57ab5, []int{10} } func (m *ShardCommitteeArray) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1089,7 +1089,7 @@ func (m *ShardCommittee) Reset() { *m = ShardCommittee{} } func (m *ShardCommittee) String() string { return proto.CompactTextString(m) } func (*ShardCommittee) ProtoMessage() {} func (*ShardCommittee) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{11} + return fileDescriptor_types_74a41dc3cff57ab5, []int{11} } func (m *ShardCommittee) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1156,7 +1156,7 @@ 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_078fb5cfdd968b95, []int{12} + return fileDescriptor_types_74a41dc3cff57ab5, []int{12} } func (m *BeaconBlock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1249,7 +1249,7 @@ func (m *BeaconBlockBody) Reset() { *m = BeaconBlockBody{} } func (m *BeaconBlockBody) String() string { return proto.CompactTextString(m) } func (*BeaconBlockBody) ProtoMessage() {} func (*BeaconBlockBody) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{13} + return fileDescriptor_types_74a41dc3cff57ab5, []int{13} } func (m *BeaconBlockBody) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1328,7 +1328,7 @@ func (m *DepositInput) Reset() { *m = DepositInput{} } func (m *DepositInput) String() string { return proto.CompactTextString(m) } func (*DepositInput) ProtoMessage() {} func (*DepositInput) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{14} + return fileDescriptor_types_74a41dc3cff57ab5, []int{14} } func (m *DepositInput) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1405,7 +1405,7 @@ func (m *ProposalSignedData) Reset() { *m = ProposalSignedData{} } func (m *ProposalSignedData) String() string { return proto.CompactTextString(m) } func (*ProposalSignedData) ProtoMessage() {} func (*ProposalSignedData) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{15} + return fileDescriptor_types_74a41dc3cff57ab5, []int{15} } func (m *ProposalSignedData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1469,7 +1469,7 @@ func (m *SlashableVoteData) Reset() { *m = SlashableVoteData{} } func (m *SlashableVoteData) String() string { return proto.CompactTextString(m) } func (*SlashableVoteData) ProtoMessage() {} func (*SlashableVoteData) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{16} + return fileDescriptor_types_74a41dc3cff57ab5, []int{16} } func (m *SlashableVoteData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1539,7 +1539,7 @@ func (m *DepositData) Reset() { *m = DepositData{} } func (m *DepositData) String() string { return proto.CompactTextString(m) } func (*DepositData) ProtoMessage() {} func (*DepositData) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{17} + return fileDescriptor_types_74a41dc3cff57ab5, []int{17} } func (m *DepositData) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1604,7 +1604,7 @@ func (m *ProposerSlashing) Reset() { *m = ProposerSlashing{} } func (m *ProposerSlashing) String() string { return proto.CompactTextString(m) } func (*ProposerSlashing) ProtoMessage() {} func (*ProposerSlashing) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{18} + return fileDescriptor_types_74a41dc3cff57ab5, []int{18} } func (m *ProposerSlashing) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1669,8 +1669,8 @@ func (m *ProposerSlashing) GetProposalSignature_2() []byte { } type CasperSlashing struct { - Votes_1 *SlashableVoteData `protobuf:"bytes,1,opt,name=votes_1,json=votes1" json:"votes_1,omitempty"` - Votes_2 *SlashableVoteData `protobuf:"bytes,2,opt,name=votes_2,json=votes2" json:"votes_2,omitempty"` + SlashableVoteData_1 *SlashableVoteData `protobuf:"bytes,1,opt,name=slashable_vote_data_1,json=slashableVoteData1" json:"slashable_vote_data_1,omitempty"` + SlashableVoteData_2 *SlashableVoteData `protobuf:"bytes,2,opt,name=slashable_vote_data_2,json=slashableVoteData2" json:"slashable_vote_data_2,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1680,7 +1680,7 @@ func (m *CasperSlashing) Reset() { *m = CasperSlashing{} } func (m *CasperSlashing) String() string { return proto.CompactTextString(m) } func (*CasperSlashing) ProtoMessage() {} func (*CasperSlashing) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{19} + return fileDescriptor_types_74a41dc3cff57ab5, []int{19} } func (m *CasperSlashing) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1709,16 +1709,16 @@ func (m *CasperSlashing) XXX_DiscardUnknown() { var xxx_messageInfo_CasperSlashing proto.InternalMessageInfo -func (m *CasperSlashing) GetVotes_1() *SlashableVoteData { +func (m *CasperSlashing) GetSlashableVoteData_1() *SlashableVoteData { if m != nil { - return m.Votes_1 + return m.SlashableVoteData_1 } return nil } -func (m *CasperSlashing) GetVotes_2() *SlashableVoteData { +func (m *CasperSlashing) GetSlashableVoteData_2() *SlashableVoteData { if m != nil { - return m.Votes_2 + return m.SlashableVoteData_2 } return nil } @@ -1736,7 +1736,7 @@ func (m *Deposit) Reset() { *m = Deposit{} } func (m *Deposit) String() string { return proto.CompactTextString(m) } func (*Deposit) ProtoMessage() {} func (*Deposit) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{20} + return fileDescriptor_types_74a41dc3cff57ab5, []int{20} } func (m *Deposit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1799,7 +1799,7 @@ func (m *Exit) Reset() { *m = Exit{} } func (m *Exit) String() string { return proto.CompactTextString(m) } func (*Exit) ProtoMessage() {} func (*Exit) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{21} + return fileDescriptor_types_74a41dc3cff57ab5, []int{21} } func (m *Exit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1864,7 +1864,7 @@ func (m *ValidatorRegistryDeltaBlock) Reset() { *m = ValidatorRegistryDe func (m *ValidatorRegistryDeltaBlock) String() string { return proto.CompactTextString(m) } func (*ValidatorRegistryDeltaBlock) ProtoMessage() {} func (*ValidatorRegistryDeltaBlock) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{22} + return fileDescriptor_types_74a41dc3cff57ab5, []int{22} } func (m *ValidatorRegistryDeltaBlock) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1938,7 +1938,7 @@ func (m *CustodyChallenge) Reset() { *m = CustodyChallenge{} } func (m *CustodyChallenge) String() string { return proto.CompactTextString(m) } func (*CustodyChallenge) ProtoMessage() {} func (*CustodyChallenge) Descriptor() ([]byte, []int) { - return fileDescriptor_types_078fb5cfdd968b95, []int{23} + return fileDescriptor_types_74a41dc3cff57ab5, []int{23} } func (m *CustodyChallenge) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3258,21 +3258,21 @@ func (m *CasperSlashing) MarshalTo(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.Votes_1 != nil { + if m.SlashableVoteData_1 != nil { dAtA[i] = 0xa i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Votes_1.Size())) - n20, err := m.Votes_1.MarshalTo(dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(m.SlashableVoteData_1.Size())) + n20, err := m.SlashableVoteData_1.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n20 } - if m.Votes_2 != nil { + if m.SlashableVoteData_2 != nil { dAtA[i] = 0x12 i++ - i = encodeVarintTypes(dAtA, i, uint64(m.Votes_2.Size())) - n21, err := m.Votes_2.MarshalTo(dAtA[i:]) + i = encodeVarintTypes(dAtA, i, uint64(m.SlashableVoteData_2.Size())) + n21, err := m.SlashableVoteData_2.MarshalTo(dAtA[i:]) if err != nil { return 0, err } @@ -4047,12 +4047,12 @@ func (m *ProposerSlashing) Size() (n int) { func (m *CasperSlashing) Size() (n int) { var l int _ = l - if m.Votes_1 != nil { - l = m.Votes_1.Size() + if m.SlashableVoteData_1 != nil { + l = m.SlashableVoteData_1.Size() n += 1 + l + sovTypes(uint64(l)) } - if m.Votes_2 != nil { - l = m.Votes_2.Size() + if m.SlashableVoteData_2 != nil { + l = m.SlashableVoteData_2.Size() n += 1 + l + sovTypes(uint64(l)) } if m.XXX_unrecognized != nil { @@ -8115,7 +8115,7 @@ func (m *CasperSlashing) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Votes_1", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SlashableVoteData_1", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8139,16 +8139,16 @@ func (m *CasperSlashing) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Votes_1 == nil { - m.Votes_1 = &SlashableVoteData{} + if m.SlashableVoteData_1 == nil { + m.SlashableVoteData_1 = &SlashableVoteData{} } - if err := m.Votes_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.SlashableVoteData_1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Votes_2", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field SlashableVoteData_2", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -8172,10 +8172,10 @@ func (m *CasperSlashing) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Votes_2 == nil { - m.Votes_2 = &SlashableVoteData{} + if m.SlashableVoteData_2 == nil { + m.SlashableVoteData_2 = &SlashableVoteData{} } - if err := m.Votes_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.SlashableVoteData_2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -8778,156 +8778,156 @@ var ( ) func init() { - proto.RegisterFile("proto/beacon/p2p/v1/types.proto", fileDescriptor_types_078fb5cfdd968b95) + proto.RegisterFile("proto/beacon/p2p/v1/types.proto", fileDescriptor_types_74a41dc3cff57ab5) } -var fileDescriptor_types_078fb5cfdd968b95 = []byte{ - // 2343 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xcb, 0x6f, 0x1c, 0x59, - 0xd5, 0x9f, 0x6e, 0xb7, 0x1f, 0x39, 0xdd, 0x76, 0xb7, 0xaf, 0xc7, 0x76, 0x25, 0xb6, 0x63, 0x4f, - 0x65, 0x66, 0xe2, 0xe4, 0xfb, 0xb0, 0xd3, 0x1d, 0x0d, 0x41, 0x84, 0x97, 0xbb, 0xed, 0x4c, 0x1a, - 0x85, 0x49, 0x28, 0x7b, 0x9c, 0x11, 0x42, 0x2a, 0x6e, 0x57, 0xdd, 0x6e, 0x57, 0x5c, 0x5d, 0x55, - 0xd4, 0xbd, 0xed, 0xb1, 0x11, 0x3b, 0x56, 0x3c, 0x04, 0x2c, 0xd9, 0xc2, 0x5f, 0x01, 0xe2, 0xb1, - 0x43, 0x62, 0xc9, 0x6b, 0x85, 0x04, 0x42, 0xd9, 0x80, 0xc4, 0x73, 0x60, 0x81, 0xc4, 0x0a, 0xdd, - 0x47, 0x3d, 0xfb, 0x91, 0x84, 0x6c, 0x58, 0x25, 0x7d, 0xce, 0xef, 0x77, 0xee, 0xbd, 0xe7, 0x9e, - 0x7b, 0x1e, 0x65, 0xd8, 0x0c, 0x42, 0x9f, 0xf9, 0xbb, 0x1d, 0x82, 0x2d, 0xdf, 0xdb, 0x0d, 0x1a, - 0xc1, 0xee, 0x59, 0x7d, 0x97, 0x5d, 0x04, 0x84, 0xee, 0x08, 0x0d, 0x5a, 0x21, 0xec, 0x84, 0x84, - 0x64, 0xd0, 0xdf, 0x91, 0x98, 0x9d, 0xa0, 0x11, 0xec, 0x9c, 0xd5, 0xaf, 0xac, 0x49, 0xa2, 0xe5, - 0xf7, 0xfb, 0xbe, 0xb7, 0xdb, 0x27, 0x94, 0xe2, 0x5e, 0x44, 0xd2, 0xbf, 0x52, 0x85, 0x72, 0x53, - 0xc0, 0x0f, 0x19, 0x66, 0x04, 0x1d, 0x03, 0x3a, 0xc3, 0xae, 0x63, 0x63, 0xe6, 0x87, 0x66, 0x48, - 0x7a, 0x0e, 0x65, 0xe1, 0x85, 0x56, 0xd8, 0x9a, 0xda, 0x2e, 0x37, 0xae, 0xef, 0x8c, 0x5e, 0x61, - 0xe7, 0x38, 0x62, 0x18, 0xc4, 0xf2, 0x43, 0xdb, 0x58, 0x3c, 0x4b, 0x04, 0xd2, 0x02, 0x6a, 0xc1, - 0xd5, 0x61, 0xbb, 0xe6, 0x20, 0xb0, 0x31, 0x23, 0x26, 0x75, 0x7d, 0xa6, 0x15, 0xb7, 0x0a, 0xdb, - 0x25, 0x63, 0x6d, 0x88, 0xfa, 0xae, 0xc0, 0x1c, 0xba, 0x3e, 0x43, 0x7b, 0xb0, 0x31, 0xc2, 0x08, - 0x39, 0x77, 0x98, 0x69, 0xf9, 0x03, 0x8f, 0x69, 0x53, 0xc2, 0xc6, 0x95, 0x21, 0x1b, 0x07, 0xe7, - 0x0e, 0x6b, 0x71, 0x04, 0x7a, 0x0c, 0x37, 0x46, 0x98, 0xb0, 0x89, 0xcb, 0xb0, 0x69, 0x9d, 0x60, - 0xc7, 0x33, 0x99, 0x13, 0x98, 0x27, 0x98, 0x9e, 0xdc, 0x6e, 0x68, 0xa5, 0xad, 0xc2, 0x76, 0xc5, - 0x78, 0x7d, 0xc8, 0xdc, 0x3e, 0x87, 0xb7, 0x38, 0xfa, 0xc8, 0x09, 0xee, 0x0b, 0x2c, 0xfa, 0x50, - 0xda, 0x71, 0x1d, 0xec, 0x62, 0xcf, 0x22, 0x54, 0x9b, 0xde, 0x9a, 0xda, 0x2e, 0xa5, 0xfc, 0xd1, - 0x54, 0x0a, 0xd4, 0x83, 0xcb, 0xf4, 0x04, 0x87, 0xb6, 0xc9, 0xaf, 0xc5, 0x61, 0x8c, 0x10, 0x6a, - 0x62, 0x26, 0x3c, 0x41, 0xb5, 0x3f, 0xcd, 0x0a, 0x7f, 0xff, 0xdf, 0x38, 0x7f, 0x1f, 0x72, 0x66, - 0x2b, 0x22, 0xee, 0x85, 0x21, 0xbe, 0x30, 0x56, 0x68, 0x46, 0x48, 0xf7, 0x18, 0x77, 0x19, 0x45, - 0x9f, 0x80, 0x35, 0x17, 0x33, 0x42, 0x99, 0x19, 0x62, 0xcf, 0xc6, 0xbe, 0xd9, 0x77, 0xce, 0x09, - 0x55, 0x27, 0xa4, 0xda, 0x9f, 0xf9, 0x52, 0x15, 0x43, 0x93, 0x18, 0x43, 0x40, 0x3e, 0xc3, 0x11, - 0xf2, 0x58, 0x14, 0x7d, 0x0c, 0xae, 0x28, 0xfe, 0x99, 0xdd, 0x35, 0xfd, 0x01, 0x0b, 0x06, 0x2c, - 0xa1, 0xff, 0x45, 0xd2, 0x57, 0x25, 0xe4, 0xd8, 0xee, 0x3e, 0x94, 0x80, 0x14, 0x3b, 0x08, 0xc9, - 0x99, 0xe3, 0x0f, 0xa8, 0x49, 0x02, 0xdf, 0x3a, 0x31, 0x29, 0xc3, 0x21, 0x33, 0xc5, 0x66, 0xb5, - 0xbf, 0xce, 0x8a, 0xfb, 0x5a, 0x8d, 0x20, 0x07, 0x1c, 0x71, 0xc8, 0x01, 0xe2, 0x84, 0xe8, 0xa3, - 0x70, 0xd9, 0x1a, 0x84, 0x21, 0xf1, 0xd8, 0x08, 0xf2, 0xdf, 0x24, 0x79, 0x45, 0x21, 0xf2, 0xdc, - 0x7b, 0xfc, 0xc1, 0x64, 0x56, 0xb6, 0xb0, 0x6b, 0x0d, 0x5c, 0xcc, 0x1c, 0xdf, 0x93, 0x11, 0xf7, - 0x77, 0x69, 0x61, 0x3d, 0xb3, 0x7c, 0x2b, 0x41, 0x89, 0x98, 0xdb, 0x87, 0xab, 0xd9, 0x3d, 0x0c, - 0x99, 0xf9, 0x40, 0x9a, 0x59, 0x4b, 0x6f, 0x24, 0x6f, 0xe5, 0x6d, 0xd8, 0xca, 0xed, 0x26, 0xb9, - 0x8d, 0x28, 0xda, 0xfe, 0x31, 0x2b, 0xc2, 0x2d, 0xbb, 0x9d, 0xf8, 0x46, 0x54, 0x98, 0x1d, 0xc0, - 0x66, 0x76, 0x3b, 0xc3, 0x76, 0xfe, 0x29, 0xed, 0x64, 0xf6, 0x93, 0x37, 0x73, 0x07, 0x62, 0xa7, - 0x9b, 0x4f, 0x06, 0x94, 0x39, 0x5d, 0x87, 0xd8, 0xf2, 0x38, 0xbf, 0xa8, 0x8a, 0xe3, 0x2c, 0x47, - 0xfa, 0x4f, 0x47, 0x6a, 0x71, 0x90, 0x37, 0x61, 0x21, 0x87, 0xff, 0xa5, 0xc4, 0xcf, 0x3f, 0xc9, - 0xe0, 0x3e, 0x0c, 0x2b, 0x4a, 0x60, 0x49, 0x57, 0x75, 0x1c, 0xd6, 0x75, 0x88, 0x6b, 0x6b, 0xbf, - 0x52, 0xf6, 0x33, 0xea, 0xa6, 0xd2, 0x72, 0xfb, 0x5d, 0xc7, 0xc3, 0xae, 0xf3, 0xa5, 0xc8, 0xfe, - 0xaf, 0x95, 0xfd, 0x58, 0x2c, 0xec, 0xbf, 0x0b, 0x8b, 0x2a, 0x2c, 0xad, 0xd0, 0xa7, 0xd4, 0x75, - 0xbc, 0x53, 0xaa, 0xfd, 0x60, 0x75, 0x72, 0x9e, 0x6a, 0x45, 0x50, 0x95, 0xa7, 0x6a, 0xd2, 0x44, - 0x2c, 0xa6, 0x3c, 0xe2, 0x94, 0xd9, 0x8e, 0xeb, 0x5b, 0xa7, 0x66, 0xe8, 0xfb, 0x2c, 0x0e, 0xf6, - 0x1f, 0xae, 0x8a, 0x60, 0x5f, 0x91, 0x88, 0x26, 0x07, 0x18, 0xbe, 0xcf, 0x52, 0xb1, 0xde, 0xc1, - 0xcc, 0x3a, 0x21, 0xf6, 0x28, 0xf2, 0x8f, 0x24, 0x79, 0x55, 0x41, 0x86, 0xd8, 0x77, 0xe3, 0x95, - 0x03, 0x12, 0x9d, 0x3f, 0x4e, 0x23, 0x3f, 0x5e, 0x15, 0x79, 0x44, 0x3d, 0xb3, 0x47, 0x11, 0x20, - 0xce, 0x26, 0x1d, 0x58, 0x52, 0x64, 0xcc, 0xf8, 0x3f, 0xc2, 0xa7, 0x54, 0xfb, 0x89, 0xf4, 0xc7, - 0xad, 0x71, 0xfe, 0x78, 0x44, 0x3c, 0xdb, 0xf1, 0x7a, 0x7b, 0x09, 0x47, 0x39, 0x06, 0x49, 0x6b, - 0x29, 0x45, 0x3a, 0x11, 0xd8, 0x24, 0xf0, 0xa9, 0xc3, 0xd2, 0xe7, 0xd3, 0xbe, 0xbb, 0x29, 0x82, - 0x4e, 0xed, 0x70, 0x5f, 0x22, 0x92, 0xf3, 0xf1, 0xba, 0x92, 0xa1, 0x9d, 0xf9, 0x8c, 0x50, 0xed, - 0x7b, 0x9b, 0x93, 0x2f, 0x2c, 0x65, 0xe7, 0xd8, 0x67, 0xc4, 0xa8, 0xd9, 0x59, 0x01, 0x45, 0x3a, - 0x54, 0x7a, 0xc4, 0x23, 0xd4, 0xa1, 0x26, 0x73, 0xfa, 0x44, 0xfb, 0xea, 0x75, 0x11, 0x2d, 0x65, - 0x25, 0x3c, 0x72, 0xfa, 0x04, 0xd5, 0xa1, 0xd4, 0xf5, 0xc3, 0x53, 0xed, 0x6b, 0x5c, 0x57, 0x6e, - 0xac, 0x8f, 0x5b, 0xed, 0x9e, 0x1f, 0x9e, 0x1a, 0x02, 0x8a, 0x96, 0xa0, 0x24, 0x82, 0xef, 0xeb, - 0xd2, 0x9c, 0xf8, 0x81, 0xde, 0x03, 0x64, 0x0d, 0x28, 0xf3, 0xed, 0x0b, 0x5e, 0x2a, 0x5c, 0x97, - 0x78, 0x3d, 0x42, 0xb5, 0x0f, 0x76, 0xc4, 0x19, 0xb6, 0xc7, 0x06, 0x9d, 0xa4, 0xb4, 0x22, 0x86, - 0xb1, 0x68, 0xe5, 0x24, 0x54, 0xf7, 0xa0, 0xc4, 0x17, 0x47, 0x37, 0xa0, 0x16, 0x3f, 0xcb, 0x33, - 0x12, 0x52, 0xc7, 0xf7, 0xb4, 0x82, 0xd8, 0x41, 0x35, 0x92, 0x1f, 0x4b, 0x31, 0xba, 0x0e, 0xd5, - 0x28, 0x11, 0x44, 0x48, 0x59, 0x41, 0x17, 0x94, 0x38, 0x02, 0x22, 0x75, 0x94, 0xa9, 0xe4, 0x24, - 0xfa, 0x17, 0xa0, 0x9a, 0x73, 0x2d, 0xda, 0x81, 0xa5, 0x51, 0xf7, 0x5a, 0x10, 0xd7, 0xba, 0x68, - 0x0f, 0x5d, 0xe8, 0x06, 0x00, 0xbf, 0x43, 0x55, 0x78, 0xe5, 0xd2, 0x97, 0xb8, 0x44, 0xd4, 0x59, - 0xfd, 0x77, 0x05, 0xd0, 0xc6, 0x85, 0x17, 0xba, 0x0b, 0x25, 0x1b, 0x33, 0x2c, 0x8c, 0x4f, 0xb8, - 0xfd, 0x14, 0x71, 0x1f, 0x33, 0x6c, 0x08, 0x12, 0x7a, 0x0b, 0x56, 0x02, 0x1c, 0x32, 0xc7, 0x72, - 0x82, 0x5c, 0x66, 0x29, 0x8a, 0xbd, 0x2e, 0x67, 0xb4, 0x71, 0x62, 0xb9, 0x01, 0xb5, 0xe8, 0xf2, - 0x62, 0xc2, 0x94, 0x20, 0x54, 0x95, 0x3c, 0x86, 0x5e, 0x83, 0x79, 0xee, 0x25, 0xd3, 0xf1, 0x2c, - 0x77, 0x60, 0x13, 0x5b, 0xf4, 0x01, 0x25, 0xa3, 0xc2, 0x85, 0x6d, 0x25, 0xd3, 0x7f, 0x5b, 0x80, - 0x72, 0x6a, 0x83, 0xff, 0xeb, 0x67, 0xda, 0x85, 0x25, 0xdc, 0xeb, 0x85, 0xa4, 0x27, 0xfa, 0x2d, - 0xa7, 0xe7, 0x61, 0x36, 0x08, 0x89, 0xea, 0x70, 0x50, 0xac, 0x3a, 0x8c, 0x34, 0xfa, 0xb7, 0xa6, - 0xa0, 0x9a, 0xdb, 0x6c, 0x1c, 0x4a, 0x85, 0xd4, 0xa3, 0x78, 0x15, 0xa6, 0x65, 0x3d, 0x96, 0x21, - 0x20, 0x7f, 0xa0, 0x3b, 0xa0, 0xc9, 0x73, 0x0f, 0xa7, 0x42, 0xb5, 0xc3, 0x65, 0xa9, 0xcf, 0xe5, - 0x41, 0x74, 0x17, 0xae, 0xc8, 0xba, 0xd6, 0xf1, 0x07, 0x9e, 0x8d, 0xc3, 0x8b, 0x0c, 0x55, 0x6e, - 0x77, 0x55, 0x20, 0x9a, 0x0a, 0x90, 0x22, 0xbf, 0x05, 0xab, 0xb2, 0xa9, 0x1a, 0x5e, 0x74, 0x5a, - 0x30, 0x5f, 0x15, 0xea, 0xfc, 0x9a, 0x9f, 0x84, 0xf5, 0x7c, 0x2d, 0xc9, 0x70, 0x67, 0x04, 0xf7, - 0x72, 0xae, 0x58, 0xa4, 0x0c, 0xbc, 0x31, 0x54, 0x14, 0x67, 0x47, 0xd5, 0xc4, 0x8f, 0xc3, 0x5a, - 0x02, 0x1b, 0xde, 0xe2, 0x9c, 0x58, 0x46, 0x8b, 0x21, 0xb9, 0x6d, 0xea, 0x5f, 0x86, 0xf5, 0xdc, - 0x85, 0xec, 0x79, 0x76, 0x2b, 0xbe, 0xe7, 0x97, 0x8b, 0xc0, 0x4d, 0x28, 0xa7, 0x42, 0x49, 0x5c, - 0xe6, 0x9c, 0x01, 0x49, 0x14, 0xe9, 0xff, 0x9e, 0x86, 0x6a, 0xae, 0xcf, 0x47, 0x2b, 0x30, 0x13, - 0x0c, 0x3a, 0xa7, 0xe4, 0x42, 0xa5, 0x09, 0xf5, 0x0b, 0x35, 0x61, 0xe3, 0x7d, 0x87, 0x9d, 0xd8, - 0x21, 0x7e, 0x1f, 0xbb, 0xa6, 0x15, 0x12, 0x9b, 0x78, 0xcc, 0xc1, 0x6e, 0xd4, 0x37, 0xaa, 0xa8, - 0x5e, 0x4b, 0x40, 0xad, 0x04, 0xa3, 0x7c, 0xfa, 0x11, 0xd0, 0x54, 0x6b, 0x23, 0x3b, 0xe4, 0x3e, - 0xcf, 0x74, 0x99, 0x08, 0x5a, 0x91, 0xfa, 0x56, 0xac, 0x56, 0xcc, 0x6b, 0x30, 0xaf, 0x98, 0x2e, - 0xbe, 0x20, 0x21, 0x8d, 0x9e, 0xaf, 0x14, 0x3e, 0x10, 0x32, 0x9e, 0x3e, 0xb1, 0xc5, 0x9c, 0xb3, - 0x54, 0x1f, 0x37, 0x2d, 0xd3, 0x67, 0x22, 0x16, 0x97, 0xb6, 0x06, 0x97, 0xc4, 0x80, 0x21, 0x20, - 0x33, 0x02, 0x32, 0xc7, 0x05, 0x42, 0x79, 0x1d, 0xaa, 0xa9, 0x83, 0xa6, 0x6e, 0x7e, 0x21, 0x11, - 0x0b, 0xe0, 0x1b, 0xb0, 0x90, 0x94, 0x75, 0x81, 0x9b, 0x93, 0x11, 0x12, 0x4b, 0x05, 0x6c, 0x03, - 0x20, 0x35, 0xcd, 0x5c, 0x92, 0x49, 0x95, 0xc4, 0xc3, 0xcb, 0x31, 0x54, 0xf8, 0xcd, 0x0d, 0xa8, - 0xd9, 0x75, 0x71, 0x8f, 0x6a, 0xb0, 0x55, 0xd8, 0x5e, 0x68, 0xdc, 0x7e, 0xce, 0xb1, 0x6c, 0xe7, - 0x50, 0x70, 0xef, 0x71, 0xaa, 0x51, 0xa6, 0xc9, 0x0f, 0xd9, 0x67, 0xab, 0xc2, 0x36, 0xe4, 0xec, - 0xb2, 0x7c, 0x73, 0x51, 0xd1, 0xca, 0x7b, 0xfb, 0x6e, 0xdc, 0x16, 0x44, 0x26, 0x42, 0x42, 0x49, +var fileDescriptor_types_74a41dc3cff57ab5 = []byte{ + // 2348 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xcb, 0x6f, 0x1c, 0x49, + 0x19, 0xdf, 0x19, 0x8f, 0x63, 0xe7, 0x9b, 0xf1, 0xcc, 0xb8, 0xbc, 0xb6, 0x7b, 0x63, 0x3b, 0xf6, + 0xf6, 0x3e, 0xe2, 0x04, 0xb0, 0x33, 0x13, 0x2d, 0x41, 0x84, 0x97, 0x67, 0xec, 0x6c, 0x06, 0x85, + 0x4d, 0x68, 0x7b, 0x9d, 0x15, 0x5a, 0xa9, 0xa9, 0xe9, 0xae, 0x19, 0x77, 0xdc, 0xd3, 0xdd, 0x74, + 0xd5, 0x78, 0x6d, 0xc4, 0x8d, 0x13, 0x0f, 0x01, 0xff, 0x02, 0xfc, 0x15, 0x20, 0x1e, 0x37, 0x24, + 0x0e, 0x1c, 0x78, 0x9d, 0x90, 0x40, 0x28, 0x17, 0x90, 0x78, 0x2e, 0x1c, 0x90, 0x38, 0xa1, 0x7a, + 0xf4, 0x73, 0x1e, 0xc9, 0x92, 0x0b, 0xa7, 0x64, 0xbe, 0xef, 0xf7, 0xfb, 0xaa, 0xea, 0xab, 0xaf, + 0xbe, 0x47, 0x1b, 0x36, 0x83, 0xd0, 0x67, 0xfe, 0x6e, 0x97, 0x60, 0xcb, 0xf7, 0x76, 0x83, 0x66, + 0xb0, 0x7b, 0xd6, 0xd8, 0x65, 0x17, 0x01, 0xa1, 0x3b, 0x42, 0x83, 0x56, 0x08, 0x3b, 0x21, 0x21, + 0x19, 0x0e, 0x76, 0x24, 0x66, 0x27, 0x68, 0x06, 0x3b, 0x67, 0x8d, 0x2b, 0x6b, 0x92, 0x68, 0xf9, + 0x83, 0x81, 0xef, 0xed, 0x0e, 0x08, 0xa5, 0xb8, 0x1f, 0x91, 0xf4, 0xaf, 0xd6, 0xa0, 0xdc, 0x12, + 0xf0, 0x43, 0x86, 0x19, 0x41, 0xc7, 0x80, 0xce, 0xb0, 0xeb, 0xd8, 0x98, 0xf9, 0xa1, 0x19, 0x92, + 0xbe, 0x43, 0x59, 0x78, 0xa1, 0x15, 0xb6, 0x66, 0xb6, 0xcb, 0xcd, 0x6b, 0x3b, 0xe3, 0x57, 0xd8, + 0x39, 0x8e, 0x18, 0x06, 0xb1, 0xfc, 0xd0, 0x36, 0x16, 0xcf, 0x12, 0x81, 0xb4, 0x80, 0xda, 0x70, + 0x75, 0xd4, 0xae, 0x39, 0x0c, 0x6c, 0xcc, 0x88, 0x49, 0x5d, 0x9f, 0x69, 0xc5, 0xad, 0xc2, 0x76, + 0xc9, 0x58, 0x1b, 0xa1, 0xbe, 0x2d, 0x30, 0x87, 0xae, 0xcf, 0xd0, 0x1e, 0x6c, 0x8c, 0x31, 0x42, + 0xce, 0x1d, 0x66, 0x5a, 0xfe, 0xd0, 0x63, 0xda, 0x8c, 0xb0, 0x71, 0x65, 0xc4, 0xc6, 0xc1, 0xb9, + 0xc3, 0xda, 0x1c, 0x81, 0x1e, 0xc1, 0xf5, 0x31, 0x26, 0x6c, 0xe2, 0x32, 0x6c, 0x5a, 0x27, 0xd8, + 0xf1, 0x4c, 0xe6, 0x04, 0xe6, 0x09, 0xa6, 0x27, 0xb7, 0x9a, 0x5a, 0x69, 0xab, 0xb0, 0x5d, 0x31, + 0x5e, 0x1d, 0x31, 0xb7, 0xcf, 0xe1, 0x6d, 0x8e, 0x3e, 0x72, 0x82, 0x7b, 0x02, 0x8b, 0x3e, 0x92, + 0x76, 0x5c, 0x17, 0xbb, 0xd8, 0xb3, 0x08, 0xd5, 0x66, 0xb7, 0x66, 0xb6, 0x4b, 0x29, 0x7f, 0xb4, + 0x94, 0x02, 0xf5, 0xe1, 0x25, 0x7a, 0x82, 0x43, 0xdb, 0xe4, 0xd7, 0xe2, 0x30, 0x46, 0x08, 0x35, + 0x31, 0x13, 0x9e, 0xa0, 0xda, 0x9f, 0xe7, 0x84, 0xbf, 0x3f, 0x34, 0xc9, 0xdf, 0x87, 0x9c, 0xd9, + 0x8e, 0x88, 0x7b, 0x61, 0x88, 0x2f, 0x8c, 0x15, 0x9a, 0x11, 0xd2, 0x3d, 0xc6, 0x5d, 0x46, 0xd1, + 0xa7, 0x60, 0xcd, 0xc5, 0x8c, 0x50, 0x66, 0x86, 0xd8, 0xb3, 0xb1, 0x6f, 0x0e, 0x9c, 0x73, 0x42, + 0xd5, 0x09, 0xa9, 0xf6, 0x17, 0xbe, 0x54, 0xc5, 0xd0, 0x24, 0xc6, 0x10, 0x90, 0xcf, 0x71, 0x84, + 0x3c, 0x16, 0x45, 0x9f, 0x80, 0x2b, 0x8a, 0x7f, 0x66, 0xf7, 0x4c, 0x7f, 0xc8, 0x82, 0x21, 0x4b, + 0xe8, 0x7f, 0x95, 0xf4, 0x55, 0x09, 0x39, 0xb6, 0x7b, 0x0f, 0x24, 0x20, 0xc5, 0x0e, 0x42, 0x72, + 0xe6, 0xf8, 0x43, 0x6a, 0x92, 0xc0, 0xb7, 0x4e, 0x4c, 0xca, 0x70, 0xc8, 0x4c, 0xb1, 0x59, 0xed, + 0x6f, 0x73, 0xe2, 0xbe, 0x56, 0x23, 0xc8, 0x01, 0x47, 0x1c, 0x72, 0x80, 0x38, 0x21, 0xfa, 0x38, + 0xbc, 0x64, 0x0d, 0xc3, 0x90, 0x78, 0x6c, 0x0c, 0xf9, 0xef, 0x92, 0xbc, 0xa2, 0x10, 0x79, 0xee, + 0x5d, 0xfe, 0x60, 0x32, 0x2b, 0x5b, 0xd8, 0xb5, 0x86, 0x2e, 0x66, 0x8e, 0xef, 0xc9, 0x88, 0xfb, + 0x87, 0xb4, 0xb0, 0x9e, 0x59, 0xbe, 0x9d, 0xa0, 0x44, 0xcc, 0xed, 0xc3, 0xd5, 0xec, 0x1e, 0x46, + 0xcc, 0xbc, 0x2f, 0xcd, 0xac, 0xa5, 0x37, 0x92, 0xb7, 0xf2, 0x26, 0x6c, 0xe5, 0x76, 0x93, 0xdc, + 0x46, 0x14, 0x6d, 0xff, 0x9c, 0x13, 0xe1, 0x96, 0xdd, 0x4e, 0x7c, 0x23, 0x2a, 0xcc, 0x0e, 0x60, + 0x33, 0xbb, 0x9d, 0x51, 0x3b, 0xff, 0x92, 0x76, 0x32, 0xfb, 0xc9, 0x9b, 0xb9, 0x0d, 0xb1, 0xd3, + 0xcd, 0xc7, 0x43, 0xca, 0x9c, 0x9e, 0x43, 0x6c, 0x79, 0x9c, 0x5f, 0xd6, 0xc4, 0x71, 0x96, 0x23, + 0xfd, 0x67, 0x23, 0xb5, 0x38, 0xc8, 0xeb, 0x50, 0xcd, 0xe1, 0x7f, 0x25, 0xf1, 0x0b, 0x8f, 0x33, + 0xb8, 0x8f, 0xc2, 0x8a, 0x12, 0x58, 0xd2, 0x55, 0x5d, 0x87, 0xf5, 0x1c, 0xe2, 0xda, 0xda, 0xaf, + 0x95, 0xfd, 0x8c, 0xba, 0xa5, 0xb4, 0xdc, 0x7e, 0xcf, 0xf1, 0xb0, 0xeb, 0x7c, 0x39, 0xb2, 0xff, + 0x1b, 0x65, 0x3f, 0x16, 0x0b, 0xfb, 0x6f, 0xc3, 0xa2, 0x0a, 0x4b, 0x2b, 0xf4, 0x29, 0x75, 0x1d, + 0xef, 0x94, 0x6a, 0x3f, 0x58, 0x9d, 0x9e, 0xa7, 0xda, 0x11, 0x54, 0xe5, 0xa9, 0xba, 0x34, 0x11, + 0x8b, 0x29, 0x8f, 0x38, 0x65, 0xb6, 0xeb, 0xfa, 0xd6, 0xa9, 0x19, 0xfa, 0x3e, 0x8b, 0x83, 0xfd, + 0x87, 0xab, 0x22, 0xd8, 0x57, 0x24, 0xa2, 0xc5, 0x01, 0x86, 0xef, 0xb3, 0x54, 0xac, 0x77, 0x31, + 0xb3, 0x4e, 0x88, 0x3d, 0x8e, 0xfc, 0x23, 0x49, 0x5e, 0x55, 0x90, 0x11, 0xf6, 0x9d, 0x78, 0xe5, + 0x80, 0x44, 0xe7, 0x8f, 0xd3, 0xc8, 0x8f, 0x57, 0x45, 0x1e, 0x51, 0xcf, 0xec, 0x61, 0x04, 0x88, + 0xb3, 0x49, 0x17, 0x96, 0x14, 0x19, 0x33, 0xfe, 0x8f, 0xf0, 0x29, 0xd5, 0x7e, 0x22, 0xfd, 0x71, + 0x73, 0x92, 0x3f, 0x1e, 0x12, 0xcf, 0x76, 0xbc, 0xfe, 0x5e, 0xc2, 0x51, 0x8e, 0x41, 0xd2, 0x5a, + 0x4a, 0x91, 0x4e, 0x04, 0x36, 0x09, 0x7c, 0xea, 0xb0, 0xf4, 0xf9, 0xb4, 0xef, 0x6e, 0x8a, 0xa0, + 0x53, 0x3b, 0xdc, 0x97, 0x88, 0xe4, 0x7c, 0xbc, 0xae, 0x64, 0x68, 0x67, 0x3e, 0x23, 0x54, 0xfb, + 0xde, 0xe6, 0xf4, 0x0b, 0x4b, 0xd9, 0x39, 0xf6, 0x19, 0x31, 0xea, 0x76, 0x56, 0x40, 0x91, 0x0e, + 0x95, 0x3e, 0xf1, 0x08, 0x75, 0xa8, 0xc9, 0x9c, 0x01, 0xd1, 0xbe, 0x76, 0x4d, 0x44, 0x4b, 0x59, + 0x09, 0x8f, 0x9c, 0x01, 0x41, 0x0d, 0x28, 0xf5, 0xfc, 0xf0, 0x54, 0xfb, 0x3a, 0xd7, 0x95, 0x9b, + 0xeb, 0x93, 0x56, 0xbb, 0xeb, 0x87, 0xa7, 0x86, 0x80, 0xa2, 0x25, 0x28, 0x89, 0xe0, 0xfb, 0x86, + 0x34, 0x27, 0x7e, 0xa0, 0x77, 0x00, 0x59, 0x43, 0xca, 0x7c, 0xfb, 0x82, 0x97, 0x0a, 0xd7, 0x25, + 0x5e, 0x9f, 0x50, 0xed, 0xfd, 0x1d, 0x71, 0x86, 0xed, 0x89, 0x41, 0x27, 0x29, 0xed, 0x88, 0x61, + 0x2c, 0x5a, 0x39, 0x09, 0xd5, 0x3d, 0x28, 0xf1, 0xc5, 0xd1, 0x75, 0xa8, 0xc7, 0xcf, 0xf2, 0x8c, + 0x84, 0xd4, 0xf1, 0x3d, 0xad, 0x20, 0x76, 0x50, 0x8b, 0xe4, 0xc7, 0x52, 0x8c, 0xae, 0x41, 0x2d, + 0x4a, 0x04, 0x11, 0x52, 0x56, 0xd0, 0xaa, 0x12, 0x47, 0x40, 0xa4, 0x8e, 0x32, 0x93, 0x9c, 0x44, + 0xff, 0x22, 0xd4, 0x72, 0xae, 0x45, 0x3b, 0xb0, 0x34, 0xee, 0x5e, 0x0b, 0xe2, 0x5a, 0x17, 0xed, + 0x91, 0x0b, 0xdd, 0x00, 0xe0, 0x77, 0xa8, 0x0a, 0xaf, 0x5c, 0xfa, 0x32, 0x97, 0x88, 0x3a, 0xab, + 0xff, 0xbe, 0x00, 0xda, 0xa4, 0xf0, 0x42, 0x77, 0xa0, 0x64, 0x63, 0x86, 0x85, 0xf1, 0x29, 0xb7, + 0x9f, 0x22, 0xee, 0x63, 0x86, 0x0d, 0x41, 0x42, 0x6f, 0xc0, 0x4a, 0x80, 0x43, 0xe6, 0x58, 0x4e, + 0x90, 0xcb, 0x2c, 0x45, 0xb1, 0xd7, 0xe5, 0x8c, 0x36, 0x4e, 0x2c, 0xd7, 0xa1, 0x1e, 0x5d, 0x5e, + 0x4c, 0x98, 0x11, 0x84, 0x9a, 0x92, 0xc7, 0xd0, 0x57, 0x60, 0x81, 0x7b, 0xc9, 0x74, 0x3c, 0xcb, + 0x1d, 0xda, 0xc4, 0x16, 0x7d, 0x40, 0xc9, 0xa8, 0x70, 0x61, 0x47, 0xc9, 0xf4, 0xdf, 0x15, 0xa0, + 0x9c, 0xda, 0xe0, 0xff, 0xfb, 0x99, 0x76, 0x61, 0x09, 0xf7, 0xfb, 0x21, 0xe9, 0x8b, 0x7e, 0xcb, + 0xe9, 0x7b, 0x98, 0x0d, 0x43, 0xa2, 0x3a, 0x1c, 0x14, 0xab, 0x0e, 0x23, 0x8d, 0xfe, 0xed, 0x19, + 0xa8, 0xe5, 0x36, 0x1b, 0x87, 0x52, 0x21, 0xf5, 0x28, 0x5e, 0x84, 0x59, 0x59, 0x8f, 0x65, 0x08, + 0xc8, 0x1f, 0xe8, 0x36, 0x68, 0xf2, 0xdc, 0xa3, 0xa9, 0x50, 0xed, 0x70, 0x59, 0xea, 0x73, 0x79, + 0x10, 0xdd, 0x81, 0x2b, 0xb2, 0xae, 0x75, 0xfd, 0xa1, 0x67, 0xe3, 0xf0, 0x22, 0x43, 0x95, 0xdb, + 0x5d, 0x15, 0x88, 0x96, 0x02, 0xa4, 0xc8, 0x6f, 0xc0, 0xaa, 0x6c, 0xaa, 0x46, 0x17, 0x9d, 0x15, + 0xcc, 0x17, 0x85, 0x3a, 0xbf, 0xe6, 0xa7, 0x61, 0x3d, 0x5f, 0x4b, 0x32, 0xdc, 0x4b, 0x82, 0xfb, + 0x52, 0xae, 0x58, 0xa4, 0x0c, 0xbc, 0x36, 0x52, 0x14, 0xe7, 0xc6, 0xd5, 0xc4, 0x4f, 0xc2, 0x5a, + 0x02, 0x1b, 0xdd, 0xe2, 0xbc, 0x58, 0x46, 0x8b, 0x21, 0xb9, 0x6d, 0xea, 0x5f, 0x81, 0xf5, 0xdc, + 0x85, 0xec, 0x79, 0x76, 0x3b, 0xbe, 0xe7, 0xe7, 0x8b, 0xc0, 0x4d, 0x28, 0xa7, 0x42, 0x49, 0x5c, + 0xe6, 0xbc, 0x01, 0x49, 0x14, 0xe9, 0xff, 0x99, 0x85, 0x5a, 0xae, 0xcf, 0x47, 0x2b, 0x70, 0x29, + 0x18, 0x76, 0x4f, 0xc9, 0x85, 0x4a, 0x13, 0xea, 0x17, 0x6a, 0xc1, 0xc6, 0x7b, 0x0e, 0x3b, 0xb1, + 0x43, 0xfc, 0x1e, 0x76, 0x4d, 0x2b, 0x24, 0x36, 0xf1, 0x98, 0x83, 0xdd, 0xa8, 0x6f, 0x54, 0x51, + 0xbd, 0x96, 0x80, 0xda, 0x09, 0x46, 0xf9, 0xf4, 0x63, 0xa0, 0xa9, 0xd6, 0x46, 0x76, 0xc8, 0x03, + 0x9e, 0xe9, 0x32, 0x11, 0xb4, 0x22, 0xf5, 0xed, 0x58, 0xad, 0x98, 0xaf, 0xc0, 0x82, 0x62, 0xba, + 0xf8, 0x82, 0x84, 0x34, 0x7a, 0xbe, 0x52, 0x78, 0x5f, 0xc8, 0x78, 0xfa, 0xc4, 0x16, 0x73, 0xce, + 0x52, 0x7d, 0xdc, 0xac, 0x4c, 0x9f, 0x89, 0x58, 0x5c, 0xda, 0x1a, 0x5c, 0x16, 0x03, 0x86, 0x80, + 0x5c, 0x12, 0x90, 0x79, 0x2e, 0x10, 0xca, 0x6b, 0x50, 0x4b, 0x1d, 0x34, 0x75, 0xf3, 0xd5, 0x44, + 0x2c, 0x80, 0xaf, 0x41, 0x35, 0x29, 0xeb, 0x02, 0x37, 0x2f, 0x23, 0x24, 0x96, 0x0a, 0xd8, 0x06, + 0x40, 0x6a, 0x9a, 0xb9, 0x2c, 0x93, 0x2a, 0x89, 0x87, 0x97, 0x63, 0xa8, 0xf0, 0x9b, 0x1b, 0x52, + 0xb3, 0xe7, 0xe2, 0x3e, 0xd5, 0x60, 0xab, 0xb0, 0x5d, 0x6d, 0xde, 0x7a, 0xc6, 0xb1, 0x6c, 0xe7, + 0x50, 0x70, 0xef, 0x72, 0xaa, 0x51, 0xa6, 0xc9, 0x0f, 0xd9, 0x67, 0xab, 0xc2, 0x36, 0xe2, 0xec, + 0xb2, 0x7c, 0x73, 0x51, 0xd1, 0xca, 0x7b, 0xfb, 0x4e, 0xdc, 0x16, 0x44, 0x26, 0x42, 0x42, 0x49, 0x74, 0xca, 0x8a, 0x6c, 0xf0, 0xd5, 0xd3, 0x91, 0x00, 0x43, 0xe8, 0xc5, 0x79, 0x0f, 0x60, 0x33, - 0x20, 0xde, 0xc0, 0x65, 0x4e, 0x9f, 0xe7, 0xa5, 0x51, 0x16, 0xe6, 0x55, 0x8f, 0x9e, 0xc0, 0x86, - 0xcd, 0x6c, 0xc0, 0xac, 0x6a, 0x95, 0xb4, 0x3f, 0x0a, 0xff, 0x37, 0x8b, 0x5a, 0xc1, 0x88, 0x64, - 0xfa, 0xa7, 0xa0, 0x9c, 0x3a, 0x3a, 0x2a, 0xc3, 0x6c, 0xfb, 0x9d, 0xf6, 0x51, 0x7b, 0xef, 0x41, - 0xed, 0x15, 0x84, 0x60, 0x41, 0xfe, 0x38, 0x3a, 0xd8, 0x37, 0x0f, 0xde, 0x6b, 0x1f, 0xd5, 0x0a, - 0xa8, 0x06, 0x95, 0xc7, 0xed, 0xa3, 0xfb, 0xfb, 0xc6, 0xde, 0xe3, 0xbd, 0xe6, 0x83, 0x83, 0x5a, - 0x51, 0x77, 0x61, 0x55, 0x4c, 0x15, 0x06, 0xc1, 0x94, 0x27, 0x4f, 0x7e, 0x7e, 0xf5, 0x06, 0xae, - 0x43, 0x35, 0x99, 0xfb, 0x1c, 0xcf, 0x26, 0xe7, 0xe2, 0x31, 0xcc, 0x1b, 0x0b, 0xb1, 0xb8, 0xcd, - 0xa5, 0x63, 0x12, 0xe5, 0xa8, 0xea, 0xfc, 0x79, 0xa8, 0xe6, 0x3a, 0xd5, 0x91, 0x99, 0x77, 0x42, - 0xb6, 0x2b, 0x8e, 0xcf, 0x76, 0xfa, 0x17, 0x61, 0x69, 0xc4, 0xfc, 0x88, 0x3e, 0x07, 0xcb, 0x98, - 0xff, 0xc7, 0xcc, 0x8d, 0xa5, 0x6a, 0xf6, 0x7f, 0xf3, 0xf9, 0x66, 0x51, 0x63, 0x49, 0x18, 0xc9, - 0x0a, 0xf5, 0x73, 0x58, 0xc8, 0x4a, 0x12, 0x67, 0x14, 0xd2, 0xce, 0x58, 0x87, 0x4b, 0xc9, 0xba, - 0xc5, 0xad, 0xa9, 0xed, 0x79, 0x23, 0x11, 0xa0, 0x06, 0x2c, 0x33, 0x9f, 0x61, 0xd7, 0x4c, 0xfc, - 0x9d, 0x9e, 0xfa, 0x97, 0x84, 0x32, 0x8e, 0x79, 0xd9, 0x86, 0x7c, 0xbf, 0x18, 0x7d, 0xde, 0x10, - 0x6e, 0x18, 0xe9, 0xc7, 0xff, 0x07, 0x14, 0x60, 0xd1, 0x48, 0x0d, 0xbb, 0xb0, 0x26, 0x35, 0xa9, - 0x5c, 0x7f, 0x13, 0x16, 0xf9, 0xd3, 0x21, 0x23, 0x4a, 0x5a, 0x55, 0x28, 0x52, 0xd8, 0x5b, 0xf0, - 0xaa, 0xca, 0x44, 0x21, 0x39, 0x23, 0xd8, 0xcd, 0x96, 0x31, 0x24, 0x75, 0x86, 0x50, 0x29, 0xc6, - 0x98, 0x2e, 0x6c, 0x7a, 0x5c, 0x17, 0xb6, 0x0e, 0x97, 0x92, 0x62, 0x3e, 0x23, 0x26, 0x8c, 0x44, - 0xc0, 0x2b, 0x42, 0xc7, 0xb7, 0x2f, 0x44, 0x4e, 0x9a, 0x50, 0x11, 0x52, 0x0e, 0x6a, 0xf2, 0x87, - 0x25, 0x48, 0xfa, 0xbf, 0x8a, 0x50, 0xcd, 0x69, 0xd0, 0xdb, 0x50, 0xc9, 0x0c, 0x18, 0x32, 0x36, - 0xae, 0x3d, 0x47, 0xa9, 0x31, 0x32, 0x44, 0xf4, 0x18, 0x50, 0x10, 0xfa, 0x81, 0x4f, 0x49, 0x68, - 0x52, 0x17, 0xd3, 0x13, 0xc7, 0xeb, 0x51, 0x71, 0xe5, 0x13, 0x3a, 0xe9, 0x47, 0x8a, 0x71, 0xa8, - 0x08, 0xc6, 0x62, 0x90, 0x93, 0x50, 0xf4, 0x59, 0xa8, 0x59, 0x98, 0x06, 0x19, 0xb3, 0x53, 0x93, - 0x23, 0xb8, 0x25, 0xf0, 0xb1, 0xd1, 0xaa, 0x95, 0xf9, 0xcd, 0x27, 0xb3, 0x39, 0xe5, 0x78, 0x5e, - 0x4a, 0xb8, 0xa9, 0xcd, 0x67, 0xcd, 0x2b, 0x31, 0x01, 0x35, 0x60, 0x9a, 0xe7, 0x6f, 0xf9, 0x25, - 0x68, 0xc2, 0xec, 0x71, 0x70, 0xee, 0x30, 0x43, 0x42, 0xf5, 0x6f, 0x17, 0xa1, 0xa2, 0x2c, 0xb5, - 0xbd, 0x60, 0xc0, 0xc6, 0xd6, 0xd9, 0x1d, 0x58, 0x0a, 0x42, 0xdf, 0xef, 0x9a, 0x7e, 0xd7, 0x0c, - 0x7c, 0x4a, 0x09, 0x8d, 0xe7, 0x80, 0x8a, 0x70, 0x8e, 0xdf, 0x7d, 0xd8, 0x7d, 0x14, 0x2b, 0x9e, - 0x5d, 0x97, 0xa7, 0x5e, 0xae, 0x2e, 0x97, 0x26, 0xd6, 0xe5, 0x89, 0x55, 0x66, 0x7a, 0x62, 0x95, - 0xd1, 0x9f, 0x00, 0x92, 0xb7, 0x8f, 0x5d, 0xde, 0xa2, 0x12, 0xfb, 0x05, 0xfb, 0xd1, 0x9b, 0xb0, - 0x38, 0xae, 0x11, 0xad, 0x76, 0x72, 0x09, 0xf2, 0x0f, 0x05, 0x58, 0x14, 0xb7, 0x8f, 0x3b, 0x2e, - 0xe1, 0xb3, 0x91, 0x58, 0xab, 0x0e, 0xcb, 0xa9, 0x06, 0xc9, 0xbc, 0xc5, 0x73, 0xbd, 0xc3, 0x67, - 0xf3, 0x82, 0xc8, 0x53, 0x28, 0x69, 0x95, 0x6e, 0xb5, 0xa5, 0x26, 0x4f, 0xa9, 0xc7, 0x94, 0x62, - 0x9e, 0x52, 0x8f, 0x28, 0x51, 0x0f, 0x37, 0xf5, 0xdf, 0xf4, 0x70, 0x2f, 0xdc, 0xe3, 0x7f, 0xb3, - 0x00, 0x65, 0x15, 0x68, 0xe2, 0x8c, 0x6d, 0x98, 0x8f, 0xb2, 0x8f, 0xc3, 0x03, 0x4f, 0xb5, 0x92, - 0xaf, 0x3f, 0x23, 0xdc, 0x45, 0x90, 0x1a, 0x15, 0x3b, 0x17, 0xb2, 0xb8, 0x9f, 0x1a, 0x0d, 0xd5, - 0x2f, 0x9e, 0xb0, 0xf8, 0x9c, 0x4e, 0x19, 0xee, 0x07, 0x2a, 0x71, 0x27, 0x02, 0xfd, 0xa7, 0x45, - 0xa8, 0xe5, 0x5f, 0xb9, 0xe8, 0x9d, 0xa2, 0x5c, 0x91, 0x2e, 0xb0, 0xf3, 0x91, 0x54, 0xd6, 0x57, - 0x03, 0xaa, 0x81, 0x0a, 0x11, 0x93, 0xbb, 0xc3, 0xac, 0x8b, 0xa5, 0xcb, 0x8d, 0x9b, 0x93, 0xf3, - 0x49, 0x3a, 0xa2, 0x22, 0x9b, 0xd8, 0xe5, 0xbf, 0xea, 0x3c, 0x81, 0xc7, 0x36, 0x63, 0x87, 0x9a, - 0x75, 0x15, 0x39, 0x28, 0x48, 0x19, 0x10, 0xaa, 0xfa, 0xf0, 0x2e, 0xe4, 0xab, 0x78, 0x89, 0x5d, - 0x34, 0xc6, 0xec, 0x22, 0x7a, 0x33, 0xc3, 0xbb, 0x68, 0xe8, 0xdf, 0x29, 0xc0, 0x42, 0x36, 0xad, - 0xa1, 0x26, 0xcc, 0x8a, 0x6f, 0x2e, 0x66, 0x5d, 0xdd, 0xea, 0x8d, 0xb1, 0x15, 0x3d, 0x1f, 0xfb, - 0xc6, 0x8c, 0x60, 0xd6, 0x13, 0x1b, 0x0d, 0xe5, 0xda, 0x17, 0xb6, 0xd1, 0xd0, 0xbf, 0x51, 0x80, - 0x59, 0x15, 0x37, 0xbc, 0xa2, 0xf7, 0x49, 0x78, 0xea, 0x12, 0xb3, 0x13, 0x62, 0xcf, 0x3a, 0x89, - 0x3f, 0x96, 0x15, 0x44, 0x25, 0x5b, 0x92, 0xca, 0xa6, 0xd0, 0x45, 0xdf, 0xc9, 0x6e, 0xc2, 0xa2, - 0xe2, 0xb0, 0x90, 0x10, 0x15, 0x10, 0x32, 0xc6, 0xaa, 0x52, 0x71, 0x14, 0x12, 0x22, 0x43, 0xe2, - 0x35, 0x88, 0x82, 0xd2, 0x8c, 0x5f, 0x55, 0xc5, 0x28, 0xdb, 0x49, 0xc8, 0xeb, 0x18, 0x4a, 0x3c, - 0xf5, 0x8e, 0x4c, 0x25, 0x23, 0x5a, 0xbb, 0xe2, 0xc8, 0xd6, 0x2e, 0x53, 0x85, 0xe5, 0x22, 0x89, - 0x40, 0xff, 0x4d, 0x11, 0xd6, 0x8e, 0x47, 0xfe, 0x09, 0x41, 0xf6, 0x24, 0xf7, 0xe1, 0xb5, 0xe8, - 0x0b, 0x7d, 0xf6, 0xef, 0x11, 0xc3, 0xdf, 0x61, 0x36, 0xd4, 0x67, 0xfa, 0xb4, 0x91, 0x54, 0x37, - 0xf0, 0xdc, 0x1b, 0x4e, 0x0a, 0xca, 0x54, 0xa6, 0xa0, 0x44, 0x5e, 0x28, 0xa5, 0xbc, 0x60, 0x41, - 0x89, 0x4f, 0x1b, 0x22, 0xda, 0x16, 0x1a, 0x0f, 0x9f, 0x63, 0xd8, 0xc8, 0x9f, 0x70, 0x8c, 0x4e, - 0x0e, 0x22, 0xc2, 0xb8, 0x7e, 0x67, 0x9c, 0x8b, 0x64, 0xcb, 0xbe, 0x00, 0xb0, 0xd7, 0x3a, 0x6a, - 0x1f, 0xef, 0x1d, 0xb5, 0x1f, 0xbe, 0x53, 0x7b, 0x05, 0xcd, 0x41, 0x49, 0xf6, 0xea, 0x3a, 0x82, - 0x5a, 0xfe, 0x03, 0x5b, 0xb3, 0xf2, 0xb3, 0xa7, 0x57, 0x0b, 0x3f, 0x7f, 0x7a, 0xb5, 0xf0, 0xfb, - 0xa7, 0x57, 0x0b, 0x9d, 0x19, 0xf1, 0x87, 0xae, 0xdb, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xa3, - 0xb7, 0x53, 0xa6, 0x40, 0x1b, 0x00, 0x00, + 0x20, 0xde, 0xd0, 0x65, 0xce, 0x80, 0xe7, 0xa5, 0x71, 0x16, 0x16, 0x54, 0x8f, 0x9e, 0xc0, 0x46, + 0xcd, 0x6c, 0xc0, 0x9c, 0x6a, 0x95, 0xb4, 0x3f, 0x09, 0xff, 0xb7, 0x8a, 0x5a, 0xc1, 0x88, 0x64, + 0xfa, 0x67, 0xa0, 0x9c, 0x3a, 0x3a, 0x2a, 0xc3, 0x5c, 0xe7, 0xad, 0xce, 0x51, 0x67, 0xef, 0x7e, + 0xfd, 0x05, 0x84, 0xa0, 0x2a, 0x7f, 0x1c, 0x1d, 0xec, 0x9b, 0x07, 0xef, 0x74, 0x8e, 0xea, 0x05, + 0x54, 0x87, 0xca, 0xa3, 0xce, 0xd1, 0xbd, 0x7d, 0x63, 0xef, 0xd1, 0x5e, 0xeb, 0xfe, 0x41, 0xbd, + 0xa8, 0xbb, 0xb0, 0x2a, 0xa6, 0x0a, 0x83, 0x60, 0xca, 0x93, 0x27, 0x3f, 0xbf, 0x7a, 0x03, 0xd7, + 0xa0, 0x96, 0xcc, 0x7d, 0x8e, 0x67, 0x93, 0x73, 0xf1, 0x18, 0x16, 0x8c, 0x6a, 0x2c, 0xee, 0x70, + 0xe9, 0x84, 0x44, 0x39, 0xae, 0x3a, 0xbf, 0x0b, 0xb5, 0x5c, 0xa7, 0x3a, 0x36, 0xf3, 0x4e, 0xc9, + 0x76, 0xc5, 0xc9, 0xd9, 0x4e, 0xff, 0x12, 0x2c, 0x8d, 0x99, 0x1f, 0xd1, 0x17, 0x60, 0x19, 0xf3, + 0xff, 0x98, 0xb9, 0xb1, 0x54, 0xcd, 0xfe, 0xaf, 0x3f, 0xdb, 0x2c, 0x6a, 0x2c, 0x09, 0x23, 0x59, + 0xa1, 0x7e, 0x0e, 0xd5, 0xac, 0x24, 0x71, 0x46, 0x21, 0xed, 0x8c, 0x75, 0xb8, 0x9c, 0xac, 0x5b, + 0xdc, 0x9a, 0xd9, 0x5e, 0x30, 0x12, 0x01, 0x6a, 0xc2, 0x32, 0xf3, 0x19, 0x76, 0xcd, 0xc4, 0xdf, + 0xe9, 0xa9, 0x7f, 0x49, 0x28, 0xe3, 0x98, 0x97, 0x6d, 0xc8, 0xf7, 0x8b, 0xd1, 0xe7, 0x0d, 0xe1, + 0x86, 0xb1, 0x7e, 0xfc, 0x30, 0xa0, 0x00, 0x8b, 0x46, 0x6a, 0xd4, 0x85, 0x75, 0xa9, 0x49, 0xe5, + 0xfa, 0x1b, 0xb0, 0xc8, 0x9f, 0x0e, 0x19, 0x53, 0xd2, 0x6a, 0x42, 0x91, 0xc2, 0xde, 0x84, 0x17, + 0x55, 0x26, 0x0a, 0xc9, 0x19, 0xc1, 0x6e, 0xb6, 0x8c, 0x21, 0xa9, 0x33, 0x84, 0x4a, 0x31, 0x26, + 0x74, 0x61, 0xb3, 0x93, 0xba, 0xb0, 0x75, 0xb8, 0x9c, 0x14, 0xf3, 0x4b, 0x62, 0xc2, 0x48, 0x04, + 0xbc, 0x22, 0x74, 0x7d, 0xfb, 0x42, 0xe4, 0xa4, 0x29, 0x15, 0x21, 0xe5, 0xa0, 0x16, 0x7f, 0x58, + 0x82, 0xa4, 0xff, 0xbb, 0x08, 0xb5, 0x9c, 0x06, 0xbd, 0x09, 0x95, 0xcc, 0x80, 0x21, 0x63, 0xe3, + 0x95, 0x67, 0x28, 0x35, 0x46, 0x86, 0x88, 0x1e, 0x01, 0x0a, 0x42, 0x3f, 0xf0, 0x29, 0x09, 0x4d, + 0xea, 0x62, 0x7a, 0xe2, 0x78, 0x7d, 0x2a, 0xae, 0x7c, 0x4a, 0x27, 0xfd, 0x50, 0x31, 0x0e, 0x15, + 0xc1, 0x58, 0x0c, 0x72, 0x12, 0x8a, 0x3e, 0x0f, 0x75, 0x0b, 0xd3, 0x20, 0x63, 0x76, 0x66, 0x7a, + 0x04, 0xb7, 0x05, 0x3e, 0x36, 0x5a, 0xb3, 0x32, 0xbf, 0xf9, 0x64, 0x36, 0xaf, 0x1c, 0xcf, 0x4b, + 0x09, 0x37, 0xb5, 0xf9, 0xb4, 0x79, 0x25, 0x26, 0xa0, 0x26, 0xcc, 0xf2, 0xfc, 0x2d, 0xbf, 0x04, + 0x4d, 0x99, 0x3d, 0x0e, 0xce, 0x1d, 0x66, 0x48, 0xa8, 0xfe, 0x9d, 0x22, 0x54, 0x94, 0xa5, 0x8e, + 0x17, 0x0c, 0xd9, 0xc4, 0x3a, 0xbb, 0x03, 0x4b, 0x41, 0xe8, 0xfb, 0x3d, 0xd3, 0xef, 0x99, 0x81, + 0x4f, 0x29, 0xa1, 0xf1, 0x1c, 0x50, 0x11, 0xce, 0xf1, 0x7b, 0x0f, 0x7a, 0x0f, 0x63, 0xc5, 0xd3, + 0xeb, 0xf2, 0xcc, 0xf3, 0xd5, 0xe5, 0xd2, 0xd4, 0xba, 0x3c, 0xb5, 0xca, 0xcc, 0x4e, 0xad, 0x32, + 0xfa, 0x63, 0x40, 0xf2, 0xf6, 0xb1, 0xcb, 0x5b, 0x54, 0x62, 0x7f, 0xc0, 0x7e, 0xf4, 0x06, 0x2c, + 0x4e, 0x6a, 0x44, 0x6b, 0xdd, 0x5c, 0x82, 0xfc, 0x63, 0x01, 0x16, 0xc5, 0xed, 0xe3, 0xae, 0x4b, + 0xf8, 0x6c, 0x24, 0xd6, 0x6a, 0xc0, 0x72, 0xaa, 0x41, 0x32, 0x6f, 0xf2, 0x5c, 0xef, 0xf0, 0xd9, + 0xbc, 0x20, 0xf2, 0x14, 0x4a, 0x5a, 0xa5, 0x9b, 0x1d, 0xa9, 0xc9, 0x53, 0x1a, 0x31, 0xa5, 0x98, + 0xa7, 0x34, 0x22, 0x4a, 0xd4, 0xc3, 0xcd, 0xfc, 0x2f, 0x3d, 0xdc, 0x07, 0xee, 0xf1, 0xbf, 0x55, + 0x80, 0xb2, 0x0a, 0x34, 0x71, 0xc6, 0x0e, 0x2c, 0x44, 0xd9, 0xc7, 0xe1, 0x81, 0xa7, 0x5a, 0xc9, + 0x57, 0x9f, 0x12, 0xee, 0x22, 0x48, 0x8d, 0x8a, 0x9d, 0x0b, 0x59, 0x3c, 0x48, 0x8d, 0x86, 0xea, + 0x17, 0x4f, 0x58, 0x7c, 0x4e, 0xa7, 0x0c, 0x0f, 0x02, 0x95, 0xb8, 0x13, 0x81, 0xfe, 0xd3, 0x22, + 0xd4, 0xf3, 0xaf, 0x5c, 0xf4, 0x4e, 0x51, 0xae, 0x48, 0x17, 0xd8, 0x85, 0x48, 0x2a, 0xeb, 0xab, + 0x01, 0xb5, 0x40, 0x85, 0x88, 0xc9, 0xdd, 0x61, 0x36, 0xc4, 0xd2, 0xe5, 0xe6, 0x8d, 0xe9, 0xf9, + 0x24, 0x1d, 0x51, 0x91, 0x4d, 0xec, 0xf2, 0x5f, 0x0d, 0x9e, 0xc0, 0x63, 0x9b, 0xb1, 0x43, 0xcd, + 0x86, 0x8a, 0x1c, 0x14, 0xa4, 0x0c, 0x08, 0x55, 0x63, 0x74, 0x17, 0xf2, 0x55, 0x3c, 0xc7, 0x2e, + 0x9a, 0x13, 0x76, 0x11, 0xbd, 0x99, 0xd1, 0x5d, 0x34, 0xf5, 0x9f, 0x17, 0xa0, 0x9a, 0x4d, 0x6b, + 0xe8, 0x5d, 0x58, 0xa6, 0x51, 0x50, 0x8b, 0xaf, 0x2f, 0x91, 0x93, 0xe4, 0x1d, 0x5f, 0x9f, 0x58, + 0xdf, 0xf3, 0x2f, 0xc1, 0x40, 0x34, 0x2f, 0x6a, 0x4c, 0xb2, 0xde, 0x54, 0x57, 0xf0, 0x5c, 0xd6, + 0x9b, 0xfa, 0x37, 0x0b, 0x30, 0xa7, 0x62, 0x8d, 0x77, 0x01, 0x03, 0x12, 0x9e, 0xba, 0xc4, 0xec, + 0x86, 0xd8, 0xb3, 0x4e, 0xe2, 0x0f, 0x6c, 0x05, 0x51, 0xfd, 0x96, 0xa4, 0xb2, 0x25, 0x74, 0xd1, + 0xb7, 0xb5, 0x1b, 0xb0, 0xa8, 0x38, 0x2c, 0x24, 0x44, 0x05, 0x91, 0x8c, 0xcb, 0x9a, 0x54, 0x1c, + 0x85, 0x84, 0xc8, 0x30, 0x7a, 0x19, 0xa2, 0x40, 0x36, 0xe3, 0x97, 0x58, 0x31, 0xca, 0x76, 0xf2, + 0x4c, 0x74, 0x0c, 0x25, 0x9e, 0xae, 0xc7, 0xa6, 0x9f, 0x31, 0xed, 0x60, 0x71, 0x6c, 0x3b, 0x98, + 0xa9, 0xdc, 0x72, 0x91, 0x44, 0xa0, 0xff, 0xb6, 0x08, 0x6b, 0xc7, 0x63, 0xff, 0xec, 0x20, 0xfb, + 0x98, 0x7b, 0xf0, 0x72, 0xf4, 0x55, 0x3f, 0xfb, 0x37, 0x8c, 0xd1, 0x6f, 0x37, 0x1b, 0xea, 0xd3, + 0x7e, 0xda, 0x48, 0xaa, 0x83, 0x78, 0xe6, 0x0d, 0x27, 0x45, 0x68, 0x26, 0x53, 0x84, 0x22, 0x2f, + 0x94, 0x52, 0x5e, 0xb0, 0xa0, 0xc4, 0x27, 0x14, 0x11, 0xa1, 0xd5, 0xe6, 0x83, 0x67, 0x18, 0x50, + 0xf2, 0x27, 0x9c, 0xa0, 0x93, 0xc3, 0x8b, 0x30, 0xae, 0xdf, 0x9e, 0xe4, 0x22, 0xd9, 0xe6, 0x57, + 0x01, 0xf6, 0xda, 0x47, 0x9d, 0xe3, 0xbd, 0xa3, 0xce, 0x83, 0xb7, 0xea, 0x2f, 0xa0, 0x79, 0x28, + 0xc9, 0xfe, 0x5e, 0x47, 0x50, 0xcf, 0x7f, 0x94, 0x6b, 0x55, 0x7e, 0xf6, 0xe4, 0x6a, 0xe1, 0x17, + 0x4f, 0xae, 0x16, 0xfe, 0xf0, 0xe4, 0x6a, 0xa1, 0x7b, 0x49, 0xfc, 0x71, 0xec, 0xd6, 0x7f, 0x03, + 0x00, 0x00, 0xff, 0xff, 0x33, 0x5c, 0xc5, 0x37, 0x74, 0x1b, 0x00, 0x00, } diff --git a/proto/beacon/p2p/v1/types.proto b/proto/beacon/p2p/v1/types.proto index 60aca57a95..432de446e1 100644 --- a/proto/beacon/p2p/v1/types.proto +++ b/proto/beacon/p2p/v1/types.proto @@ -200,8 +200,8 @@ message ProposerSlashing { } message CasperSlashing { - SlashableVoteData votes_1 = 1; - SlashableVoteData votes_2 = 2; + SlashableVoteData slashable_vote_data_1 = 1; + SlashableVoteData slashable_vote_data_2 = 2; } message Deposit {