diff --git a/CHANGELOG.md b/CHANGELOG.md index d97b515bb..f65060ccd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,6 +50,7 @@ Implements fixes for our [June 2024](https://github.com/sherlock-audit/2024-06-a ### Added * [#542](https://github.com/allora-network/allora-chain/pull/542) Add scalable management of active topics with associated queries such as `GetActiveTopicsAtBlock` and `GetNextChurningBlockByTopicId` +* [#556](https://github.com/allora-network/allora-chain/pull/556) Scores now take an exponential moving average of the score rather than using the instantaneous score value from this epoch. ### Removed diff --git a/test/integration/create_topic_test.go b/test/integration/create_topic_test.go index 3550f5e2c..e02b13c69 100644 --- a/test/integration/create_topic_test.go +++ b/test/integration/create_topic_test.go @@ -20,16 +20,20 @@ func CreateTopic(m testCommon.TestConfig) (topicId uint64) { require.Positive(m.T, topicIdStart.NextTopicId) require.NoError(m.T, err) createTopicRequest := &emissionstypes.MsgCreateNewTopic{ - Creator: m.AliceAddr, - Metadata: "ETH 24h Prediction", - LossMethod: "mse", - EpochLength: 5, - GroundTruthLag: 10, - WorkerSubmissionWindow: 4, - PNorm: alloraMath.NewDecFromInt64(3), - AlphaRegret: alloraMath.MustNewDecFromString("0.1"), - AllowNegative: true, - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: m.AliceAddr, + Metadata: "ETH 24h Prediction", + LossMethod: "mse", + EpochLength: 5, + GroundTruthLag: 10, + WorkerSubmissionWindow: 4, + PNorm: alloraMath.NewDecFromInt64(3), + AlphaRegret: alloraMath.MustNewDecFromString("0.1"), + AllowNegative: true, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } txResp, err := m.Client.BroadcastTx(ctx, m.AliceAcc, createTopicRequest) require.NoError(m.T, err) diff --git a/test/invariant/topics_test.go b/test/invariant/topics_test.go index 539215048..6c2d98fa8 100644 --- a/test/invariant/topics_test.go +++ b/test/invariant/topics_test.go @@ -23,16 +23,20 @@ func createTopic( wasErr := false iterLog(m.T, iteration, actor, "creating new topic") createTopicRequest := &emissionstypes.MsgCreateNewTopic{ - Creator: actor.addr, - Metadata: fmt.Sprintf("Created topic iteration %d", iteration), - LossMethod: "mse", - EpochLength: data.epochLength, - GroundTruthLag: data.epochLength, - WorkerSubmissionWindow: 10, - PNorm: alloraMath.NewDecFromInt64(3), - AlphaRegret: alloraMath.MustNewDecFromString("0.1"), - AllowNegative: true, - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: actor.addr, + Metadata: fmt.Sprintf("Created topic iteration %d", iteration), + LossMethod: "mse", + EpochLength: data.epochLength, + GroundTruthLag: data.epochLength, + WorkerSubmissionWindow: 10, + PNorm: alloraMath.NewDecFromInt64(3), + AlphaRegret: alloraMath.MustNewDecFromString("0.1"), + AllowNegative: true, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } ctx := context.Background() diff --git a/test/stress/create_topic_test.go b/test/stress/create_topic_test.go index 195d02f53..907224cf8 100644 --- a/test/stress/create_topic_test.go +++ b/test/stress/create_topic_test.go @@ -18,16 +18,20 @@ func createTopic( ) (topicId uint64) { ctx := context.Background() createTopicRequest := &emissionstypes.MsgCreateNewTopic{ - Creator: creator.aa.addr, - Metadata: "ETH 24h Prediction", - LossMethod: "mse", - EpochLength: epochLength, - GroundTruthLag: epochLength, - WorkerSubmissionWindow: epochLength, - PNorm: alloraMath.NewDecFromInt64(3), - AlphaRegret: alloraMath.NewDecFromInt64(1), - AllowNegative: true, - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: creator.aa.addr, + Metadata: "ETH 24h Prediction", + LossMethod: "mse", + EpochLength: epochLength, + GroundTruthLag: epochLength, + WorkerSubmissionWindow: epochLength, + PNorm: alloraMath.NewDecFromInt64(3), + AlphaRegret: alloraMath.NewDecFromInt64(1), + AllowNegative: true, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } txResp, err := m.Client.BroadcastTx(ctx, creator.aa.acc, createTopicRequest) diff --git a/x/emissions/api/v3/genesis.pulsar.go b/x/emissions/api/v3/genesis.pulsar.go index 2f3c27607..fb3995775 100644 --- a/x/emissions/api/v3/genesis.pulsar.go +++ b/x/emissions/api/v3/genesis.pulsar.go @@ -464,156 +464,156 @@ func (x *_GenesisState_12_list) IsValid() bool { return x.list != nil } -var _ protoreflect.List = (*_GenesisState_13_list)(nil) +var _ protoreflect.List = (*_GenesisState_60_list)(nil) -type _GenesisState_13_list struct { +type _GenesisState_60_list struct { list *[]*TopicIdActorIdScore } -func (x *_GenesisState_13_list) Len() int { +func (x *_GenesisState_60_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_GenesisState_13_list) Get(i int) protoreflect.Value { +func (x *_GenesisState_60_list) Get(i int) protoreflect.Value { return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -func (x *_GenesisState_13_list) Set(i int, value protoreflect.Value) { +func (x *_GenesisState_60_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*TopicIdActorIdScore) (*x.list)[i] = concreteValue } -func (x *_GenesisState_13_list) Append(value protoreflect.Value) { +func (x *_GenesisState_60_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*TopicIdActorIdScore) *x.list = append(*x.list, concreteValue) } -func (x *_GenesisState_13_list) AppendMutable() protoreflect.Value { +func (x *_GenesisState_60_list) AppendMutable() protoreflect.Value { v := new(TopicIdActorIdScore) *x.list = append(*x.list, v) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_13_list) Truncate(n int) { +func (x *_GenesisState_60_list) Truncate(n int) { for i := n; i < len(*x.list); i++ { (*x.list)[i] = nil } *x.list = (*x.list)[:n] } -func (x *_GenesisState_13_list) NewElement() protoreflect.Value { +func (x *_GenesisState_60_list) NewElement() protoreflect.Value { v := new(TopicIdActorIdScore) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_13_list) IsValid() bool { +func (x *_GenesisState_60_list) IsValid() bool { return x.list != nil } -var _ protoreflect.List = (*_GenesisState_14_list)(nil) +var _ protoreflect.List = (*_GenesisState_61_list)(nil) -type _GenesisState_14_list struct { +type _GenesisState_61_list struct { list *[]*TopicIdActorIdScore } -func (x *_GenesisState_14_list) Len() int { +func (x *_GenesisState_61_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_GenesisState_14_list) Get(i int) protoreflect.Value { +func (x *_GenesisState_61_list) Get(i int) protoreflect.Value { return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -func (x *_GenesisState_14_list) Set(i int, value protoreflect.Value) { +func (x *_GenesisState_61_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*TopicIdActorIdScore) (*x.list)[i] = concreteValue } -func (x *_GenesisState_14_list) Append(value protoreflect.Value) { +func (x *_GenesisState_61_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*TopicIdActorIdScore) *x.list = append(*x.list, concreteValue) } -func (x *_GenesisState_14_list) AppendMutable() protoreflect.Value { +func (x *_GenesisState_61_list) AppendMutable() protoreflect.Value { v := new(TopicIdActorIdScore) *x.list = append(*x.list, v) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_14_list) Truncate(n int) { +func (x *_GenesisState_61_list) Truncate(n int) { for i := n; i < len(*x.list); i++ { (*x.list)[i] = nil } *x.list = (*x.list)[:n] } -func (x *_GenesisState_14_list) NewElement() protoreflect.Value { +func (x *_GenesisState_61_list) NewElement() protoreflect.Value { v := new(TopicIdActorIdScore) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_14_list) IsValid() bool { +func (x *_GenesisState_61_list) IsValid() bool { return x.list != nil } -var _ protoreflect.List = (*_GenesisState_15_list)(nil) +var _ protoreflect.List = (*_GenesisState_62_list)(nil) -type _GenesisState_15_list struct { +type _GenesisState_62_list struct { list *[]*TopicIdActorIdScore } -func (x *_GenesisState_15_list) Len() int { +func (x *_GenesisState_62_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_GenesisState_15_list) Get(i int) protoreflect.Value { +func (x *_GenesisState_62_list) Get(i int) protoreflect.Value { return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -func (x *_GenesisState_15_list) Set(i int, value protoreflect.Value) { +func (x *_GenesisState_62_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*TopicIdActorIdScore) (*x.list)[i] = concreteValue } -func (x *_GenesisState_15_list) Append(value protoreflect.Value) { +func (x *_GenesisState_62_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() concreteValue := valueUnwrapped.Interface().(*TopicIdActorIdScore) *x.list = append(*x.list, concreteValue) } -func (x *_GenesisState_15_list) AppendMutable() protoreflect.Value { +func (x *_GenesisState_62_list) AppendMutable() protoreflect.Value { v := new(TopicIdActorIdScore) *x.list = append(*x.list, v) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_15_list) Truncate(n int) { +func (x *_GenesisState_62_list) Truncate(n int) { for i := n; i < len(*x.list); i++ { (*x.list)[i] = nil } *x.list = (*x.list)[:n] } -func (x *_GenesisState_15_list) NewElement() protoreflect.Value { +func (x *_GenesisState_62_list) NewElement() protoreflect.Value { v := new(TopicIdActorIdScore) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_15_list) IsValid() bool { +func (x *_GenesisState_62_list) IsValid() bool { return x.list != nil } @@ -2818,9 +2818,9 @@ var ( fd_GenesisState_infererScoresByBlock protoreflect.FieldDescriptor fd_GenesisState_forecasterScoresByBlock protoreflect.FieldDescriptor fd_GenesisState_reputerScoresByBlock protoreflect.FieldDescriptor - fd_GenesisState_latestInfererScoresByWorker protoreflect.FieldDescriptor - fd_GenesisState_latestForecasterScoresByWorker protoreflect.FieldDescriptor - fd_GenesisState_latestReputerScoresByReputer protoreflect.FieldDescriptor + fd_GenesisState_infererScoreEmas protoreflect.FieldDescriptor + fd_GenesisState_forecasterScoreEmas protoreflect.FieldDescriptor + fd_GenesisState_reputerScoreEmas protoreflect.FieldDescriptor fd_GenesisState_reputerListeningCoefficient protoreflect.FieldDescriptor fd_GenesisState_previousReputerRewardFraction protoreflect.FieldDescriptor fd_GenesisState_previousInferenceRewardFraction protoreflect.FieldDescriptor @@ -2882,9 +2882,9 @@ func init() { fd_GenesisState_infererScoresByBlock = md_GenesisState.Fields().ByName("infererScoresByBlock") fd_GenesisState_forecasterScoresByBlock = md_GenesisState.Fields().ByName("forecasterScoresByBlock") fd_GenesisState_reputerScoresByBlock = md_GenesisState.Fields().ByName("reputerScoresByBlock") - fd_GenesisState_latestInfererScoresByWorker = md_GenesisState.Fields().ByName("latestInfererScoresByWorker") - fd_GenesisState_latestForecasterScoresByWorker = md_GenesisState.Fields().ByName("latestForecasterScoresByWorker") - fd_GenesisState_latestReputerScoresByReputer = md_GenesisState.Fields().ByName("latestReputerScoresByReputer") + fd_GenesisState_infererScoreEmas = md_GenesisState.Fields().ByName("infererScoreEmas") + fd_GenesisState_forecasterScoreEmas = md_GenesisState.Fields().ByName("forecasterScoreEmas") + fd_GenesisState_reputerScoreEmas = md_GenesisState.Fields().ByName("reputerScoreEmas") fd_GenesisState_reputerListeningCoefficient = md_GenesisState.Fields().ByName("reputerListeningCoefficient") fd_GenesisState_previousReputerRewardFraction = md_GenesisState.Fields().ByName("previousReputerRewardFraction") fd_GenesisState_previousInferenceRewardFraction = md_GenesisState.Fields().ByName("previousInferenceRewardFraction") @@ -3063,21 +3063,21 @@ func (x *fastReflection_GenesisState) Range(f func(protoreflect.FieldDescriptor, return } } - if len(x.LatestInfererScoresByWorker) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_13_list{list: &x.LatestInfererScoresByWorker}) - if !f(fd_GenesisState_latestInfererScoresByWorker, value) { + if len(x.InfererScoreEmas) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_60_list{list: &x.InfererScoreEmas}) + if !f(fd_GenesisState_infererScoreEmas, value) { return } } - if len(x.LatestForecasterScoresByWorker) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_14_list{list: &x.LatestForecasterScoresByWorker}) - if !f(fd_GenesisState_latestForecasterScoresByWorker, value) { + if len(x.ForecasterScoreEmas) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_61_list{list: &x.ForecasterScoreEmas}) + if !f(fd_GenesisState_forecasterScoreEmas, value) { return } } - if len(x.LatestReputerScoresByReputer) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_15_list{list: &x.LatestReputerScoresByReputer}) - if !f(fd_GenesisState_latestReputerScoresByReputer, value) { + if len(x.ReputerScoreEmas) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_62_list{list: &x.ReputerScoreEmas}) + if !f(fd_GenesisState_reputerScoreEmas, value) { return } } @@ -3388,12 +3388,12 @@ func (x *fastReflection_GenesisState) Has(fd protoreflect.FieldDescriptor) bool return len(x.ForecasterScoresByBlock) != 0 case "emissions.v3.GenesisState.reputerScoresByBlock": return len(x.ReputerScoresByBlock) != 0 - case "emissions.v3.GenesisState.latestInfererScoresByWorker": - return len(x.LatestInfererScoresByWorker) != 0 - case "emissions.v3.GenesisState.latestForecasterScoresByWorker": - return len(x.LatestForecasterScoresByWorker) != 0 - case "emissions.v3.GenesisState.latestReputerScoresByReputer": - return len(x.LatestReputerScoresByReputer) != 0 + case "emissions.v3.GenesisState.infererScoreEmas": + return len(x.InfererScoreEmas) != 0 + case "emissions.v3.GenesisState.forecasterScoreEmas": + return len(x.ForecasterScoreEmas) != 0 + case "emissions.v3.GenesisState.reputerScoreEmas": + return len(x.ReputerScoreEmas) != 0 case "emissions.v3.GenesisState.reputerListeningCoefficient": return len(x.ReputerListeningCoefficient) != 0 case "emissions.v3.GenesisState.previousReputerRewardFraction": @@ -3522,12 +3522,12 @@ func (x *fastReflection_GenesisState) Clear(fd protoreflect.FieldDescriptor) { x.ForecasterScoresByBlock = nil case "emissions.v3.GenesisState.reputerScoresByBlock": x.ReputerScoresByBlock = nil - case "emissions.v3.GenesisState.latestInfererScoresByWorker": - x.LatestInfererScoresByWorker = nil - case "emissions.v3.GenesisState.latestForecasterScoresByWorker": - x.LatestForecasterScoresByWorker = nil - case "emissions.v3.GenesisState.latestReputerScoresByReputer": - x.LatestReputerScoresByReputer = nil + case "emissions.v3.GenesisState.infererScoreEmas": + x.InfererScoreEmas = nil + case "emissions.v3.GenesisState.forecasterScoreEmas": + x.ForecasterScoreEmas = nil + case "emissions.v3.GenesisState.reputerScoreEmas": + x.ReputerScoreEmas = nil case "emissions.v3.GenesisState.reputerListeningCoefficient": x.ReputerListeningCoefficient = nil case "emissions.v3.GenesisState.previousReputerRewardFraction": @@ -3694,23 +3694,23 @@ func (x *fastReflection_GenesisState) Get(descriptor protoreflect.FieldDescripto } listValue := &_GenesisState_12_list{list: &x.ReputerScoresByBlock} return protoreflect.ValueOfList(listValue) - case "emissions.v3.GenesisState.latestInfererScoresByWorker": - if len(x.LatestInfererScoresByWorker) == 0 { - return protoreflect.ValueOfList(&_GenesisState_13_list{}) + case "emissions.v3.GenesisState.infererScoreEmas": + if len(x.InfererScoreEmas) == 0 { + return protoreflect.ValueOfList(&_GenesisState_60_list{}) } - listValue := &_GenesisState_13_list{list: &x.LatestInfererScoresByWorker} + listValue := &_GenesisState_60_list{list: &x.InfererScoreEmas} return protoreflect.ValueOfList(listValue) - case "emissions.v3.GenesisState.latestForecasterScoresByWorker": - if len(x.LatestForecasterScoresByWorker) == 0 { - return protoreflect.ValueOfList(&_GenesisState_14_list{}) + case "emissions.v3.GenesisState.forecasterScoreEmas": + if len(x.ForecasterScoreEmas) == 0 { + return protoreflect.ValueOfList(&_GenesisState_61_list{}) } - listValue := &_GenesisState_14_list{list: &x.LatestForecasterScoresByWorker} + listValue := &_GenesisState_61_list{list: &x.ForecasterScoreEmas} return protoreflect.ValueOfList(listValue) - case "emissions.v3.GenesisState.latestReputerScoresByReputer": - if len(x.LatestReputerScoresByReputer) == 0 { - return protoreflect.ValueOfList(&_GenesisState_15_list{}) + case "emissions.v3.GenesisState.reputerScoreEmas": + if len(x.ReputerScoreEmas) == 0 { + return protoreflect.ValueOfList(&_GenesisState_62_list{}) } - listValue := &_GenesisState_15_list{list: &x.LatestReputerScoresByReputer} + listValue := &_GenesisState_62_list{list: &x.ReputerScoreEmas} return protoreflect.ValueOfList(listValue) case "emissions.v3.GenesisState.reputerListeningCoefficient": if len(x.ReputerListeningCoefficient) == 0 { @@ -4036,18 +4036,18 @@ func (x *fastReflection_GenesisState) Set(fd protoreflect.FieldDescriptor, value lv := value.List() clv := lv.(*_GenesisState_12_list) x.ReputerScoresByBlock = *clv.list - case "emissions.v3.GenesisState.latestInfererScoresByWorker": + case "emissions.v3.GenesisState.infererScoreEmas": lv := value.List() - clv := lv.(*_GenesisState_13_list) - x.LatestInfererScoresByWorker = *clv.list - case "emissions.v3.GenesisState.latestForecasterScoresByWorker": + clv := lv.(*_GenesisState_60_list) + x.InfererScoreEmas = *clv.list + case "emissions.v3.GenesisState.forecasterScoreEmas": lv := value.List() - clv := lv.(*_GenesisState_14_list) - x.LatestForecasterScoresByWorker = *clv.list - case "emissions.v3.GenesisState.latestReputerScoresByReputer": + clv := lv.(*_GenesisState_61_list) + x.ForecasterScoreEmas = *clv.list + case "emissions.v3.GenesisState.reputerScoreEmas": lv := value.List() - clv := lv.(*_GenesisState_15_list) - x.LatestReputerScoresByReputer = *clv.list + clv := lv.(*_GenesisState_62_list) + x.ReputerScoreEmas = *clv.list case "emissions.v3.GenesisState.reputerListeningCoefficient": lv := value.List() clv := lv.(*_GenesisState_16_list) @@ -4303,23 +4303,23 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p } value := &_GenesisState_12_list{list: &x.ReputerScoresByBlock} return protoreflect.ValueOfList(value) - case "emissions.v3.GenesisState.latestInfererScoresByWorker": - if x.LatestInfererScoresByWorker == nil { - x.LatestInfererScoresByWorker = []*TopicIdActorIdScore{} + case "emissions.v3.GenesisState.infererScoreEmas": + if x.InfererScoreEmas == nil { + x.InfererScoreEmas = []*TopicIdActorIdScore{} } - value := &_GenesisState_13_list{list: &x.LatestInfererScoresByWorker} + value := &_GenesisState_60_list{list: &x.InfererScoreEmas} return protoreflect.ValueOfList(value) - case "emissions.v3.GenesisState.latestForecasterScoresByWorker": - if x.LatestForecasterScoresByWorker == nil { - x.LatestForecasterScoresByWorker = []*TopicIdActorIdScore{} + case "emissions.v3.GenesisState.forecasterScoreEmas": + if x.ForecasterScoreEmas == nil { + x.ForecasterScoreEmas = []*TopicIdActorIdScore{} } - value := &_GenesisState_14_list{list: &x.LatestForecasterScoresByWorker} + value := &_GenesisState_61_list{list: &x.ForecasterScoreEmas} return protoreflect.ValueOfList(value) - case "emissions.v3.GenesisState.latestReputerScoresByReputer": - if x.LatestReputerScoresByReputer == nil { - x.LatestReputerScoresByReputer = []*TopicIdActorIdScore{} + case "emissions.v3.GenesisState.reputerScoreEmas": + if x.ReputerScoreEmas == nil { + x.ReputerScoreEmas = []*TopicIdActorIdScore{} } - value := &_GenesisState_15_list{list: &x.LatestReputerScoresByReputer} + value := &_GenesisState_62_list{list: &x.ReputerScoreEmas} return protoreflect.ValueOfList(value) case "emissions.v3.GenesisState.reputerListeningCoefficient": if x.ReputerListeningCoefficient == nil { @@ -4630,15 +4630,15 @@ func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) case "emissions.v3.GenesisState.reputerScoresByBlock": list := []*TopicIdBlockHeightScores{} return protoreflect.ValueOfList(&_GenesisState_12_list{list: &list}) - case "emissions.v3.GenesisState.latestInfererScoresByWorker": + case "emissions.v3.GenesisState.infererScoreEmas": list := []*TopicIdActorIdScore{} - return protoreflect.ValueOfList(&_GenesisState_13_list{list: &list}) - case "emissions.v3.GenesisState.latestForecasterScoresByWorker": + return protoreflect.ValueOfList(&_GenesisState_60_list{list: &list}) + case "emissions.v3.GenesisState.forecasterScoreEmas": list := []*TopicIdActorIdScore{} - return protoreflect.ValueOfList(&_GenesisState_14_list{list: &list}) - case "emissions.v3.GenesisState.latestReputerScoresByReputer": + return protoreflect.ValueOfList(&_GenesisState_61_list{list: &list}) + case "emissions.v3.GenesisState.reputerScoreEmas": list := []*TopicIdActorIdScore{} - return protoreflect.ValueOfList(&_GenesisState_15_list{list: &list}) + return protoreflect.ValueOfList(&_GenesisState_62_list{list: &list}) case "emissions.v3.GenesisState.reputerListeningCoefficient": list := []*TopicIdActorIdListeningCoefficient{} return protoreflect.ValueOfList(&_GenesisState_16_list{list: &list}) @@ -4904,22 +4904,22 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { n += 1 + l + runtime.Sov(uint64(l)) } } - if len(x.LatestInfererScoresByWorker) > 0 { - for _, e := range x.LatestInfererScoresByWorker { + if len(x.InfererScoreEmas) > 0 { + for _, e := range x.InfererScoreEmas { l = options.Size(e) - n += 1 + l + runtime.Sov(uint64(l)) + n += 2 + l + runtime.Sov(uint64(l)) } } - if len(x.LatestForecasterScoresByWorker) > 0 { - for _, e := range x.LatestForecasterScoresByWorker { + if len(x.ForecasterScoreEmas) > 0 { + for _, e := range x.ForecasterScoreEmas { l = options.Size(e) - n += 1 + l + runtime.Sov(uint64(l)) + n += 2 + l + runtime.Sov(uint64(l)) } } - if len(x.LatestReputerScoresByReputer) > 0 { - for _, e := range x.LatestReputerScoresByReputer { + if len(x.ReputerScoreEmas) > 0 { + for _, e := range x.ReputerScoreEmas { l = options.Size(e) - n += 1 + l + runtime.Sov(uint64(l)) + n += 2 + l + runtime.Sov(uint64(l)) } } if len(x.ReputerListeningCoefficient) > 0 { @@ -5217,6 +5217,60 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.ReputerScoreEmas) > 0 { + for iNdEx := len(x.ReputerScoreEmas) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.ReputerScoreEmas[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xf2 + } + } + if len(x.ForecasterScoreEmas) > 0 { + for iNdEx := len(x.ForecasterScoreEmas) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.ForecasterScoreEmas[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xea + } + } + if len(x.InfererScoreEmas) > 0 { + for iNdEx := len(x.InfererScoreEmas) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.InfererScoreEmas[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xe2 + } + } if len(x.BlockToLowestActiveTopicWeight) > 0 { for iNdEx := len(x.BlockToLowestActiveTopicWeight) - 1; iNdEx >= 0; iNdEx-- { encoded, err := options.Marshal(x.BlockToLowestActiveTopicWeight[iNdEx]) @@ -5991,54 +6045,6 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { dAtA[i] = 0x82 } } - if len(x.LatestReputerScoresByReputer) > 0 { - for iNdEx := len(x.LatestReputerScoresByReputer) - 1; iNdEx >= 0; iNdEx-- { - encoded, err := options.Marshal(x.LatestReputerScoresByReputer[iNdEx]) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x7a - } - } - if len(x.LatestForecasterScoresByWorker) > 0 { - for iNdEx := len(x.LatestForecasterScoresByWorker) - 1; iNdEx >= 0; iNdEx-- { - encoded, err := options.Marshal(x.LatestForecasterScoresByWorker[iNdEx]) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x72 - } - } - if len(x.LatestInfererScoresByWorker) > 0 { - for iNdEx := len(x.LatestInfererScoresByWorker) - 1; iNdEx >= 0; iNdEx-- { - encoded, err := options.Marshal(x.LatestInfererScoresByWorker[iNdEx]) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x6a - } - } if len(x.ReputerScoresByBlock) > 0 { for iNdEx := len(x.ReputerScoresByBlock) - 1; iNdEx >= 0; iNdEx-- { encoded, err := options.Marshal(x.ReputerScoresByBlock[iNdEx]) @@ -6713,9 +6719,9 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 13: + case 60: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LatestInfererScoresByWorker", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field InfererScoreEmas", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6742,14 +6748,14 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.LatestInfererScoresByWorker = append(x.LatestInfererScoresByWorker, &TopicIdActorIdScore{}) - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.LatestInfererScoresByWorker[len(x.LatestInfererScoresByWorker)-1]); err != nil { + x.InfererScoreEmas = append(x.InfererScoreEmas, &TopicIdActorIdScore{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.InfererScoreEmas[len(x.InfererScoreEmas)-1]); err != nil { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 14: + case 61: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LatestForecasterScoresByWorker", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ForecasterScoreEmas", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6776,14 +6782,14 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.LatestForecasterScoresByWorker = append(x.LatestForecasterScoresByWorker, &TopicIdActorIdScore{}) - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.LatestForecasterScoresByWorker[len(x.LatestForecasterScoresByWorker)-1]); err != nil { + x.ForecasterScoreEmas = append(x.ForecasterScoreEmas, &TopicIdActorIdScore{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ForecasterScoreEmas[len(x.ForecasterScoreEmas)-1]); err != nil { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex - case 15: + case 62: if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field LatestReputerScoresByReputer", wireType) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ReputerScoreEmas", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -6810,8 +6816,8 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.LatestReputerScoresByReputer = append(x.LatestReputerScoresByReputer, &TopicIdActorIdScore{}) - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.LatestReputerScoresByReputer[len(x.LatestReputerScoresByReputer)-1]); err != nil { + x.ReputerScoreEmas = append(x.ReputerScoreEmas, &TopicIdActorIdScore{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.ReputerScoreEmas[len(x.ReputerScoreEmas)-1]); err != nil { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex @@ -24283,11 +24289,11 @@ type GenesisState struct { // map of (topic, block_height, reputer) -> score ReputerScoresByBlock []*TopicIdBlockHeightScores `protobuf:"bytes,12,rep,name=reputerScoresByBlock,proto3" json:"reputerScoresByBlock,omitempty"` // map of (topic, block_height, worker) -> score - LatestInfererScoresByWorker []*TopicIdActorIdScore `protobuf:"bytes,13,rep,name=latestInfererScoresByWorker,proto3" json:"latestInfererScoresByWorker,omitempty"` + InfererScoreEmas []*TopicIdActorIdScore `protobuf:"bytes,60,rep,name=infererScoreEmas,proto3" json:"infererScoreEmas,omitempty"` // map of (topic, block_height, worker) -> score - LatestForecasterScoresByWorker []*TopicIdActorIdScore `protobuf:"bytes,14,rep,name=latestForecasterScoresByWorker,proto3" json:"latestForecasterScoresByWorker,omitempty"` + ForecasterScoreEmas []*TopicIdActorIdScore `protobuf:"bytes,61,rep,name=forecasterScoreEmas,proto3" json:"forecasterScoreEmas,omitempty"` // map of (topic, block_height, reputer) -> score - LatestReputerScoresByReputer []*TopicIdActorIdScore `protobuf:"bytes,15,rep,name=latestReputerScoresByReputer,proto3" json:"latestReputerScoresByReputer,omitempty"` + ReputerScoreEmas []*TopicIdActorIdScore `protobuf:"bytes,62,rep,name=reputerScoreEmas,proto3" json:"reputerScoreEmas,omitempty"` // map of (topic, reputer) -> listening coefficient ReputerListeningCoefficient []*TopicIdActorIdListeningCoefficient `protobuf:"bytes,16,rep,name=reputerListeningCoefficient,proto3" json:"reputerListeningCoefficient,omitempty"` // map of (topic, reputer) -> previous reward (used for EMA) @@ -24493,23 +24499,23 @@ func (x *GenesisState) GetReputerScoresByBlock() []*TopicIdBlockHeightScores { return nil } -func (x *GenesisState) GetLatestInfererScoresByWorker() []*TopicIdActorIdScore { +func (x *GenesisState) GetInfererScoreEmas() []*TopicIdActorIdScore { if x != nil { - return x.LatestInfererScoresByWorker + return x.InfererScoreEmas } return nil } -func (x *GenesisState) GetLatestForecasterScoresByWorker() []*TopicIdActorIdScore { +func (x *GenesisState) GetForecasterScoreEmas() []*TopicIdActorIdScore { if x != nil { - return x.LatestForecasterScoresByWorker + return x.ForecasterScoreEmas } return nil } -func (x *GenesisState) GetLatestReputerScoresByReputer() []*TopicIdActorIdScore { +func (x *GenesisState) GetReputerScoreEmas() []*TopicIdActorIdScore { if x != nil { - return x.LatestReputerScoresByReputer + return x.ReputerScoreEmas } return nil } @@ -26335,7 +26341,7 @@ var file_emissions_v3_genesis_proto_rawDesc = []byte{ 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc9, 0x2b, 0x0a, 0x0c, + 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf2, 0x2b, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x50, 0x61, 0x72, 0x61, @@ -26381,589 +26387,591 @@ var file_emissions_v3_genesis_proto_rawDesc = []byte{ 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x14, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x63, 0x0a, 0x1b, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x52, 0x1b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x12, 0x69, 0x0a, 0x1e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x1e, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x12, 0x65, 0x0a, 0x1c, - 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x73, 0x42, 0x79, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x1c, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x52, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x12, 0x72, 0x0a, 0x1b, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, - 0x6e, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x4d, 0x0a, 0x10, + 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x73, + 0x18, 0x3c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, 0x72, + 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x73, 0x12, 0x53, 0x0a, 0x13, 0x66, + 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, + 0x61, 0x73, 0x18, 0x3d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, - 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x1b, 0x72, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, - 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x65, 0x0a, 0x1d, 0x70, 0x72, 0x65, 0x76, 0x69, - 0x6f, 0x75, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x52, - 0x1d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, - 0x0a, 0x1f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x52, 0x1f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x1e, 0x70, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x03, 0x28, + 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x13, 0x66, 0x6f, 0x72, + 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x73, + 0x12, 0x4d, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x45, 0x6d, 0x61, 0x73, 0x18, 0x3e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x10, 0x72, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x73, 0x12, + 0x72, 0x0a, 0x1b, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x10, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, + 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x1b, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, + 0x65, 0x6e, 0x74, 0x12, 0x65, 0x0a, 0x1d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x52, 0x1d, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x69, 0x0a, 0x1f, 0x70, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x44, 0x65, 0x63, 0x52, 0x1f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x49, 0x6e, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x1e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x52, 0x1e, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x63, + 0x0a, 0x1c, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x14, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x44, 0x65, 0x63, 0x52, 0x1c, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, + 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, + 0x74, 0x69, 0x6f, 0x12, 0x50, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x12, 0x55, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, - 0x65, 0x63, 0x52, 0x1e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x65, - 0x63, 0x61, 0x73, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x63, 0x0a, 0x1c, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, - 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x61, 0x74, - 0x69, 0x6f, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, + 0x6e, 0x74, 0x52, 0x15, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x55, 0x0a, 0x15, 0x73, 0x74, 0x61, + 0x6b, 0x65, 0x53, 0x75, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x52, 0x1c, 0x70, 0x72, 0x65, 0x76, 0x69, - 0x6f, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x50, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, - 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, - 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x55, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, - 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, - 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x15, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x55, 0x0a, - 0x15, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x53, 0x75, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x15, 0x73, - 0x74, 0x61, 0x6b, 0x65, 0x53, 0x75, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x5c, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x73, 0x12, 0x67, 0x0a, 0x1e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x55, 0x70, 0x6f, 0x6e, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x1e, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x55, 0x70, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x16, 0x64, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, - 0x53, 0x68, 0x61, 0x72, 0x65, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x52, 0x16, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x53, - 0x68, 0x61, 0x72, 0x65, 0x12, 0x6b, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x1c, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x73, 0x74, 0x61, - 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x5b, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, - 0x6c, 0x73, 0x42, 0x79, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x14, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x8c, - 0x01, 0x0a, 0x1c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, - 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x1c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x74, 0x0a, - 0x1c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x1f, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x1c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x15, 0x73, 0x74, 0x61, 0x6b, 0x65, + 0x53, 0x75, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x5c, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x73, 0x12, 0x67, + 0x0a, 0x1e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x55, 0x70, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x18, 0x1a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x1e, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x46, 0x72, + 0x6f, 0x6d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x55, 0x70, 0x6f, 0x6e, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x57, 0x0a, 0x16, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, + 0x65, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, - 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x6f, - 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x52, 0x16, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x50, 0x65, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, + 0x12, 0x6b, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, + 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x14, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x5b, 0x0a, + 0x14, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, + 0x41, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x41, 0x63, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x52, 0x14, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x61, 0x6c, 0x73, 0x42, 0x79, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x8c, 0x01, 0x0a, 0x1c, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x1e, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x48, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x1c, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, + 0x6c, 0x73, 0x42, 0x79, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x74, 0x0a, 0x1c, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, + 0x6c, 0x73, 0x42, 0x79, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x1c, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x73, 0x42, 0x79, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x12, + 0x45, 0x0a, 0x0a, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x20, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, + 0x73, 0x74, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x52, + 0x09, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x70, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x42, 0x0a, 0x08, + 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, + 0x62, 0x50, 0x32, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, + 0x12, 0x45, 0x0a, 0x0f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x46, 0x65, 0x65, 0x52, 0x65, 0x76, 0x65, + 0x6e, 0x75, 0x65, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x46, 0x65, 0x65, + 0x52, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x12, 0x4d, 0x0a, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x25, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, + 0x63, 0x52, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x63, - 0x61, 0x73, 0x74, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x12, 0x40, - 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4c, - 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x73, - 0x12, 0x42, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x23, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4f, 0x66, - 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x08, 0x72, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x46, 0x65, 0x65, - 0x52, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, + 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x46, + 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x18, 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x46, 0x6f, + 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x12, 0x5b, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x4c, 0x6f, + 0x73, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x73, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x4c, 0x6f, 0x73, 0x73, 0x42, 0x75, 0x6e, + 0x64, 0x6c, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x12, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, + 0x6f, 0x73, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x29, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x12, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x73, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x12, 0x93, 0x01, 0x0a, 0x28, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, + 0x6f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x2a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, + 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x28, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x11, 0x6f, 0x70, 0x65, 0x6e, + 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x18, 0x37, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6e, + 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x6e, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x12, 0x58, 0x0a, 0x17, + 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x52, 0x0f, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x46, 0x65, 0x65, 0x52, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x12, 0x4d, 0x0a, 0x13, 0x70, - 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x17, 0x75, + 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x68, 0x0a, 0x18, 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, + 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, - 0x6e, 0x64, 0x44, 0x65, 0x63, 0x52, 0x13, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x61, 0x6c, - 0x6c, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x26, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0d, 0x61, - 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0c, - 0x61, 0x6c, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x18, 0x27, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x52, 0x0c, 0x61, - 0x6c, 0x6c, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x12, 0x5b, 0x0a, 0x0e, 0x61, - 0x6c, 0x6c, 0x4c, 0x6f, 0x73, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x28, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x4c, 0x6f, 0x73, - 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x12, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x73, 0x73, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x29, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x73, 0x52, 0x12, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x6f, 0x73, 0x73, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x93, 0x01, 0x0a, 0x28, 0x70, 0x72, 0x65, 0x76, 0x69, - 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, - 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, - 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, - 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, - 0x65, 0x63, 0x52, 0x28, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x11, - 0x6f, 0x70, 0x65, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x73, 0x18, 0x37, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x41, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x52, 0x11, 0x6f, - 0x70, 0x65, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, - 0x12, 0x58, 0x0a, 0x17, 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, - 0x73, 0x52, 0x17, 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x68, 0x0a, 0x18, 0x75, 0x6e, - 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x2c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x18, 0x75, 0x6e, 0x66, 0x75, - 0x6c, 0x66, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x72, 0x69, 0x70, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x41, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x72, 0x69, 0x70, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, - 0x6e, 0x0a, 0x1b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x2d, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x1b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, - 0x74, 0x0a, 0x1e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, + 0x6e, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x18, 0x75, 0x6e, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, + 0x6c, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, + 0x12, 0x49, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x44, 0x72, 0x69, 0x70, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x18, 0x38, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, + 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x0d, 0x6c, 0x61, + 0x73, 0x74, 0x44, 0x72, 0x69, 0x70, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x6e, 0x0a, 0x1b, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x2d, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, + 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x74, 0x0a, 0x1e, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x2e, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x1e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, - 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, + 0x73, 0x12, 0x85, 0x01, 0x0a, 0x23, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x49, + 0x6e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x49, + 0x6e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x78, 0x0a, 0x20, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x4e, 0x61, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x30, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x61, 0x69, 0x76, 0x65, 0x49, 0x6e, + 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, + 0x65, 0x74, 0x73, 0x12, 0x8f, 0x01, 0x0a, 0x28, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, + 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, + 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, + 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x28, 0x6c, 0x61, 0x74, + 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x2b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, - 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x23, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, - 0x4f, 0x6e, 0x65, 0x49, 0x6e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x2f, 0x20, + 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x2b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, + 0x66, 0x65, 0x72, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x95, 0x01, + 0x0a, 0x2b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, + 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, - 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x23, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, - 0x4f, 0x6e, 0x65, 0x49, 0x6e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x78, 0x0a, - 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x61, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, - 0x73, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x20, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4e, 0x61, 0x69, - 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x8f, 0x01, 0x0a, 0x28, 0x6c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, - 0x72, 0x65, 0x74, 0x73, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x28, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, - 0x65, 0x72, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x2b, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, - 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x2b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, - 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, - 0x73, 0x12, 0x95, 0x01, 0x0a, 0x2b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, - 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, - 0x73, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x2b, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x9b, 0x01, 0x0a, 0x2e, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x34, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, - 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, - 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x2e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, - 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x46, - 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x72, 0x65, 0x5f, - 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x15, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x4c, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x18, 0x35, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, - 0x63, 0x65, 0x52, 0x15, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x62, 0x0a, 0x16, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x18, 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x16, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x6f, 0x0a, - 0x20, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x54, 0x6f, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x6f, 0x73, 0x73, - 0x69, 0x62, 0x6c, 0x65, 0x43, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x18, 0x39, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, - 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x20, 0x74, 0x6f, - 0x70, 0x69, 0x63, 0x54, 0x6f, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, - 0x65, 0x43, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x53, - 0x0a, 0x13, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x52, 0x13, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x73, 0x12, 0x72, 0x0a, 0x1e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x4c, 0x6f, - 0x77, 0x65, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x57, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x52, 0x1e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, - 0x4c, 0x6f, 0x77, 0x65, 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x56, 0x0a, 0x0f, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x41, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, + 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x2b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x67, 0x72, 0x65, 0x74, 0x73, 0x12, 0x9b, 0x01, 0x0a, 0x2e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x18, 0x34, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x2e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, + 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, + 0x65, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x74, 0x65, 0x61, 0x6d, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x11, 0x63, 0x6f, 0x72, 0x65, 0x54, 0x65, 0x61, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x15, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, + 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x35, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x15, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x62, 0x0a, 0x16, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x61, + 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, + 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, + 0x65, 0x52, 0x16, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x6f, 0x0a, 0x20, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x54, 0x6f, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, + 0x43, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x39, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x20, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x54, + 0x6f, 0x4e, 0x65, 0x78, 0x74, 0x50, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x43, 0x68, 0x75, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x53, 0x0a, 0x13, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x73, 0x18, 0x3a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x52, 0x13, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x54, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, + 0x72, 0x0a, 0x1e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x4c, 0x6f, 0x77, 0x65, 0x73, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x3b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, + 0x61, 0x69, 0x72, 0x52, 0x1e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x54, 0x6f, 0x4c, 0x6f, 0x77, 0x65, + 0x73, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x4a, + 0x04, 0x08, 0x0f, 0x10, 0x10, 0x52, 0x1b, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, + 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x52, 0x1e, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x52, 0x1c, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x42, 0x79, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x22, 0x56, 0x0a, 0x0f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x29, 0x0a, + 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x52, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x22, 0x45, 0x0a, 0x0f, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x41, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, + 0x53, 0x0a, 0x15, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x22, 0x56, 0x0a, 0x16, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x41, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x04, 0x52, 0x08, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x22, 0x84, 0x01, 0x0a, + 0x18, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x06, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x22, 0x74, 0x0a, 0x13, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x22, - 0x45, 0x0a, 0x0f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x41, 0x6e, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x29, + 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x22, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, + 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, + 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, + 0x11, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, + 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x15, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x41, 0x6e, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x56, 0x0a, 0x16, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6e, 0x64, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x08, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x18, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0x0a, 0x06, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x73, 0x52, 0x06, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x22, 0x74, 0x0a, 0x13, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, - 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x22, 0xb0, 0x01, 0x0a, 0x22, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, - 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, - 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x03, 0x44, 0x65, 0x63, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x03, 0x44, 0x65, + 0x63, 0x22, 0x6d, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x49, + 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x03, + 0x49, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, + 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x03, 0x49, 0x6e, 0x74, + 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x03, 0x49, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x03, 0x49, 0x6e, 0x74, 0x22, 0xbb, + 0x01, 0x0a, 0x24, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x14, 0x4c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, - 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, - 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x14, 0x4c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, - 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x44, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x49, 0x0a, - 0x03, 0x44, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, - 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, - 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, - 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, - 0x44, 0x65, 0x63, 0x52, 0x03, 0x44, 0x65, 0x63, 0x22, 0x6d, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x03, 0x49, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, - 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x03, 0x49, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x74, 0x12, 0x18, 0x0a, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x0d, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xcd, 0x01, 0x0a, + 0x29, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x12, 0x4a, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x71, 0x0a, 0x19, + 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, + 0x94, 0x02, 0x0a, 0x3a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, + 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x12, 0x62, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x18, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x98, 0x01, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x22, 0x84, 0x01, 0x0a, 0x17, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, - 0x64, 0x12, 0x42, 0x0a, 0x03, 0x49, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, - 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, - 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x03, 0x49, 0x6e, 0x74, 0x22, 0xbb, 0x01, 0x0a, 0x24, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, - 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x12, 0x41, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0xcd, 0x01, 0x0a, 0x29, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, + 0x64, 0x12, 0x35, 0x0a, 0x09, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x49, + 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x16, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x63, + 0x61, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x10, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0x71, 0x0a, 0x19, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x94, 0x02, 0x0a, 0x3a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x18, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x18, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x98, 0x01, - 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, + 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x08, 0x46, 0x6f, 0x72, 0x65, 0x63, + 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, + 0x74, 0x52, 0x08, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x22, 0x78, 0x0a, 0x18, 0x4c, + 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x69, 0x62, 0x50, 0x32, + 0x70, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x69, 0x62, 0x50, + 0x32, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0c, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4f, 0x66, 0x66, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x74, 0x0a, 0x0d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x12, 0x49, 0x0a, 0x03, 0x44, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, + 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x03, 0x44, 0x65, 0x63, 0x22, 0x94, 0x01, 0x0a, 0x1c, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x17, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x49, 0x6e, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x09, 0x49, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, - 0x80, 0x01, 0x0a, 0x16, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x32, - 0x0a, 0x08, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, - 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x52, 0x08, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, - 0x73, 0x74, 0x22, 0x78, 0x0a, 0x18, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, 0x65, 0x79, 0x41, - 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x4c, 0x69, 0x62, 0x50, 0x32, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0c, - 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0c, - 0x4f, 0x66, 0x66, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x22, 0x74, 0x0a, 0x0d, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x44, 0x65, 0x63, 0x12, 0x18, 0x0a, - 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x03, 0x44, 0x65, 0x63, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x03, 0x44, - 0x65, 0x63, 0x22, 0x94, 0x01, 0x0a, 0x1c, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0a, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x1b, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, + 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, + 0x0a, 0x09, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, + 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x52, 0x09, 0x46, 0x6f, 0x72, 0x65, + 0x63, 0x61, 0x73, 0x74, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x25, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x53, 0x0a, 0x13, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x52, 0x13, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, + 0x22, 0x99, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, - 0x38, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0a, 0x49, - 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x1b, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, - 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, - 0x73, 0x52, 0x09, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x73, 0x22, 0xb8, 0x01, 0x0a, - 0x25, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x53, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x73, 0x52, 0x13, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x22, 0x5a, 0x0a, 0x10, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, - 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x06, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x22, - 0x92, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, - 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x14, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x14, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x73, 0x22, 0xa0, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, - 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x10, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x25, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x41, - 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, - 0x49, 0x64, 0x32, 0x12, 0x4a, 0x0a, 0x10, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, - 0x93, 0x01, 0x0a, 0x1c, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, + 0x3b, 0x0a, 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x0b, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x22, 0x5a, 0x0a, 0x10, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x59, 0x0a, 0x15, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, - 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x15, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, - 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x6b, 0x0a, 0x13, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, + 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x06, 0x4e, 0x6f, + 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x06, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x56, 0x0a, 0x14, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x14, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x22, 0xa0, 0x01, + 0x0a, 0x1e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x10, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0xc5, 0x01, 0x0a, 0x25, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, + 0x72, 0x49, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x31, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x31, + 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x32, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x32, 0x12, 0x4a, 0x0a, 0x10, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, + 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x01, 0x0a, 0x1c, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, + 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x49, 0x64, 0x12, 0x59, 0x0a, 0x15, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, + 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x15, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x6b, + 0x0a, 0x13, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x32, 0x0a, 0x08, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, + 0x73, 0x52, 0x08, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x1c, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x49, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x32, - 0x0a, 0x08, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x52, 0x08, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x1c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, - 0x61, 0x69, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x41, 0x0a, 0x0b, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0xc2, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x42, 0x0c, 0x47, - 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, - 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x76, 0x33, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x33, 0xa2, 0x02, - 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x56, 0x33, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, - 0x56, 0x33, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, - 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, - 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x33, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x03, 0x52, 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x41, + 0x0a, 0x0b, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x50, 0x61, 0x69, 0x72, 0x52, 0x0b, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x42, 0xc2, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x42, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, + 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x3b, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, + 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x33, 0xca, 0x02, 0x0c, 0x45, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 0xe2, 0x02, 0x18, 0x45, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -27042,9 +27050,9 @@ var file_emissions_v3_genesis_proto_depIdxs = []int32{ 5, // 5: emissions.v3.GenesisState.infererScoresByBlock:type_name -> emissions.v3.TopicIdBlockHeightScores 5, // 6: emissions.v3.GenesisState.forecasterScoresByBlock:type_name -> emissions.v3.TopicIdBlockHeightScores 5, // 7: emissions.v3.GenesisState.reputerScoresByBlock:type_name -> emissions.v3.TopicIdBlockHeightScores - 6, // 8: emissions.v3.GenesisState.latestInfererScoresByWorker:type_name -> emissions.v3.TopicIdActorIdScore - 6, // 9: emissions.v3.GenesisState.latestForecasterScoresByWorker:type_name -> emissions.v3.TopicIdActorIdScore - 6, // 10: emissions.v3.GenesisState.latestReputerScoresByReputer:type_name -> emissions.v3.TopicIdActorIdScore + 6, // 8: emissions.v3.GenesisState.infererScoreEmas:type_name -> emissions.v3.TopicIdActorIdScore + 6, // 9: emissions.v3.GenesisState.forecasterScoreEmas:type_name -> emissions.v3.TopicIdActorIdScore + 6, // 10: emissions.v3.GenesisState.reputerScoreEmas:type_name -> emissions.v3.TopicIdActorIdScore 7, // 11: emissions.v3.GenesisState.reputerListeningCoefficient:type_name -> emissions.v3.TopicIdActorIdListeningCoefficient 8, // 12: emissions.v3.GenesisState.previousReputerRewardFraction:type_name -> emissions.v3.TopicIdActorIdDec 8, // 13: emissions.v3.GenesisState.previousInferenceRewardFraction:type_name -> emissions.v3.TopicIdActorIdDec diff --git a/x/emissions/api/v3/query.pulsar.go b/x/emissions/api/v3/query.pulsar.go index b8add4b2c..c5b43ad14 100644 --- a/x/emissions/api/v3/query.pulsar.go +++ b/x/emissions/api/v3/query.pulsar.go @@ -51254,27 +51254,27 @@ func (x *fastReflection_QueryRewardableTopicsResponse) ProtoMethods() *protoifac } var ( - md_QueryLatestInfererScoreRequest protoreflect.MessageDescriptor - fd_QueryLatestInfererScoreRequest_topic_id protoreflect.FieldDescriptor - fd_QueryLatestInfererScoreRequest_inferer protoreflect.FieldDescriptor + md_QueryGetInfererScoreEmaRequest protoreflect.MessageDescriptor + fd_QueryGetInfererScoreEmaRequest_topic_id protoreflect.FieldDescriptor + fd_QueryGetInfererScoreEmaRequest_inferer protoreflect.FieldDescriptor ) func init() { file_emissions_v3_query_proto_init() - md_QueryLatestInfererScoreRequest = File_emissions_v3_query_proto.Messages().ByName("QueryLatestInfererScoreRequest") - fd_QueryLatestInfererScoreRequest_topic_id = md_QueryLatestInfererScoreRequest.Fields().ByName("topic_id") - fd_QueryLatestInfererScoreRequest_inferer = md_QueryLatestInfererScoreRequest.Fields().ByName("inferer") + md_QueryGetInfererScoreEmaRequest = File_emissions_v3_query_proto.Messages().ByName("QueryGetInfererScoreEmaRequest") + fd_QueryGetInfererScoreEmaRequest_topic_id = md_QueryGetInfererScoreEmaRequest.Fields().ByName("topic_id") + fd_QueryGetInfererScoreEmaRequest_inferer = md_QueryGetInfererScoreEmaRequest.Fields().ByName("inferer") } -var _ protoreflect.Message = (*fastReflection_QueryLatestInfererScoreRequest)(nil) +var _ protoreflect.Message = (*fastReflection_QueryGetInfererScoreEmaRequest)(nil) -type fastReflection_QueryLatestInfererScoreRequest QueryLatestInfererScoreRequest +type fastReflection_QueryGetInfererScoreEmaRequest QueryGetInfererScoreEmaRequest -func (x *QueryLatestInfererScoreRequest) ProtoReflect() protoreflect.Message { - return (*fastReflection_QueryLatestInfererScoreRequest)(x) +func (x *QueryGetInfererScoreEmaRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryGetInfererScoreEmaRequest)(x) } -func (x *QueryLatestInfererScoreRequest) slowProtoReflect() protoreflect.Message { +func (x *QueryGetInfererScoreEmaRequest) slowProtoReflect() protoreflect.Message { mi := &file_emissions_v3_query_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51286,43 +51286,43 @@ func (x *QueryLatestInfererScoreRequest) slowProtoReflect() protoreflect.Message return mi.MessageOf(x) } -var _fastReflection_QueryLatestInfererScoreRequest_messageType fastReflection_QueryLatestInfererScoreRequest_messageType -var _ protoreflect.MessageType = fastReflection_QueryLatestInfererScoreRequest_messageType{} +var _fastReflection_QueryGetInfererScoreEmaRequest_messageType fastReflection_QueryGetInfererScoreEmaRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryGetInfererScoreEmaRequest_messageType{} -type fastReflection_QueryLatestInfererScoreRequest_messageType struct{} +type fastReflection_QueryGetInfererScoreEmaRequest_messageType struct{} -func (x fastReflection_QueryLatestInfererScoreRequest_messageType) Zero() protoreflect.Message { - return (*fastReflection_QueryLatestInfererScoreRequest)(nil) +func (x fastReflection_QueryGetInfererScoreEmaRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryGetInfererScoreEmaRequest)(nil) } -func (x fastReflection_QueryLatestInfererScoreRequest_messageType) New() protoreflect.Message { - return new(fastReflection_QueryLatestInfererScoreRequest) +func (x fastReflection_QueryGetInfererScoreEmaRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryGetInfererScoreEmaRequest) } -func (x fastReflection_QueryLatestInfererScoreRequest_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestInfererScoreRequest +func (x fastReflection_QueryGetInfererScoreEmaRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetInfererScoreEmaRequest } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_QueryLatestInfererScoreRequest) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestInfererScoreRequest +func (x *fastReflection_QueryGetInfererScoreEmaRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetInfererScoreEmaRequest } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_QueryLatestInfererScoreRequest) Type() protoreflect.MessageType { - return _fastReflection_QueryLatestInfererScoreRequest_messageType +func (x *fastReflection_QueryGetInfererScoreEmaRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryGetInfererScoreEmaRequest_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_QueryLatestInfererScoreRequest) New() protoreflect.Message { - return new(fastReflection_QueryLatestInfererScoreRequest) +func (x *fastReflection_QueryGetInfererScoreEmaRequest) New() protoreflect.Message { + return new(fastReflection_QueryGetInfererScoreEmaRequest) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_QueryLatestInfererScoreRequest) Interface() protoreflect.ProtoMessage { - return (*QueryLatestInfererScoreRequest)(x) +func (x *fastReflection_QueryGetInfererScoreEmaRequest) Interface() protoreflect.ProtoMessage { + return (*QueryGetInfererScoreEmaRequest)(x) } // Range iterates over every populated field in an undefined order, @@ -51330,16 +51330,16 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) Interface() protoreflect // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_QueryLatestInfererScoreRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { if x.TopicId != uint64(0) { value := protoreflect.ValueOfUint64(x.TopicId) - if !f(fd_QueryLatestInfererScoreRequest_topic_id, value) { + if !f(fd_QueryGetInfererScoreEmaRequest_topic_id, value) { return } } if x.Inferer != "" { value := protoreflect.ValueOfString(x.Inferer) - if !f(fd_QueryLatestInfererScoreRequest_inferer, value) { + if !f(fd_QueryGetInfererScoreEmaRequest_inferer, value) { return } } @@ -51356,17 +51356,17 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) Range(f func(protoreflec // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_QueryLatestInfererScoreRequest) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "emissions.v3.QueryLatestInfererScoreRequest.topic_id": + case "emissions.v3.QueryGetInfererScoreEmaRequest.topic_id": return x.TopicId != uint64(0) - case "emissions.v3.QueryLatestInfererScoreRequest.inferer": + case "emissions.v3.QueryGetInfererScoreEmaRequest.inferer": return x.Inferer != "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaRequest does not contain field %s", fd.FullName())) } } @@ -51376,17 +51376,17 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) Has(fd protoreflect.Fiel // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestInfererScoreRequest) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "emissions.v3.QueryLatestInfererScoreRequest.topic_id": + case "emissions.v3.QueryGetInfererScoreEmaRequest.topic_id": x.TopicId = uint64(0) - case "emissions.v3.QueryLatestInfererScoreRequest.inferer": + case "emissions.v3.QueryGetInfererScoreEmaRequest.inferer": x.Inferer = "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaRequest does not contain field %s", fd.FullName())) } } @@ -51396,19 +51396,19 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) Clear(fd protoreflect.Fi // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_QueryLatestInfererScoreRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "emissions.v3.QueryLatestInfererScoreRequest.topic_id": + case "emissions.v3.QueryGetInfererScoreEmaRequest.topic_id": value := x.TopicId return protoreflect.ValueOfUint64(value) - case "emissions.v3.QueryLatestInfererScoreRequest.inferer": + case "emissions.v3.QueryGetInfererScoreEmaRequest.inferer": value := x.Inferer return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreRequest does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaRequest does not contain field %s", descriptor.FullName())) } } @@ -51422,17 +51422,17 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) Get(descriptor protorefl // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestInfererScoreRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "emissions.v3.QueryLatestInfererScoreRequest.topic_id": + case "emissions.v3.QueryGetInfererScoreEmaRequest.topic_id": x.TopicId = value.Uint() - case "emissions.v3.QueryLatestInfererScoreRequest.inferer": + case "emissions.v3.QueryGetInfererScoreEmaRequest.inferer": x.Inferer = value.Interface().(string) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaRequest does not contain field %s", fd.FullName())) } } @@ -51446,44 +51446,44 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) Set(fd protoreflect.Fiel // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestInfererScoreRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestInfererScoreRequest.topic_id": - panic(fmt.Errorf("field topic_id of message emissions.v3.QueryLatestInfererScoreRequest is not mutable")) - case "emissions.v3.QueryLatestInfererScoreRequest.inferer": - panic(fmt.Errorf("field inferer of message emissions.v3.QueryLatestInfererScoreRequest is not mutable")) + case "emissions.v3.QueryGetInfererScoreEmaRequest.topic_id": + panic(fmt.Errorf("field topic_id of message emissions.v3.QueryGetInfererScoreEmaRequest is not mutable")) + case "emissions.v3.QueryGetInfererScoreEmaRequest.inferer": + panic(fmt.Errorf("field inferer of message emissions.v3.QueryGetInfererScoreEmaRequest is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaRequest does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_QueryLatestInfererScoreRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestInfererScoreRequest.topic_id": + case "emissions.v3.QueryGetInfererScoreEmaRequest.topic_id": return protoreflect.ValueOfUint64(uint64(0)) - case "emissions.v3.QueryLatestInfererScoreRequest.inferer": + case "emissions.v3.QueryGetInfererScoreEmaRequest.inferer": return protoreflect.ValueOfString("") default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaRequest does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_QueryLatestInfererScoreRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryLatestInfererScoreRequest", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryGetInfererScoreEmaRequest", d.FullName())) } panic("unreachable") } @@ -51491,7 +51491,7 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) WhichOneof(d protoreflec // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_QueryLatestInfererScoreRequest) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -51502,7 +51502,7 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) GetUnknown() protoreflec // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestInfererScoreRequest) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -51514,7 +51514,7 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) SetUnknown(fields protor // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_QueryLatestInfererScoreRequest) IsValid() bool { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) IsValid() bool { return x != nil } @@ -51524,9 +51524,9 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_QueryLatestInfererScoreRequest) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_QueryGetInfererScoreEmaRequest) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*QueryLatestInfererScoreRequest) + x := input.Message.Interface().(*QueryGetInfererScoreEmaRequest) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -51555,7 +51555,7 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) ProtoMethods() *protoifa } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestInfererScoreRequest) + x := input.Message.Interface().(*QueryGetInfererScoreEmaRequest) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -51597,7 +51597,7 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) ProtoMethods() *protoifa }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestInfererScoreRequest) + x := input.Message.Interface().(*QueryGetInfererScoreEmaRequest) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -51629,10 +51629,10 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) ProtoMethods() *protoifa fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestInfererScoreRequest: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetInfererScoreEmaRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestInfererScoreRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetInfererScoreEmaRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -51722,25 +51722,25 @@ func (x *fastReflection_QueryLatestInfererScoreRequest) ProtoMethods() *protoifa } var ( - md_QueryLatestInfererScoreResponse protoreflect.MessageDescriptor - fd_QueryLatestInfererScoreResponse_score protoreflect.FieldDescriptor + md_QueryGetInfererScoreEmaResponse protoreflect.MessageDescriptor + fd_QueryGetInfererScoreEmaResponse_score protoreflect.FieldDescriptor ) func init() { file_emissions_v3_query_proto_init() - md_QueryLatestInfererScoreResponse = File_emissions_v3_query_proto.Messages().ByName("QueryLatestInfererScoreResponse") - fd_QueryLatestInfererScoreResponse_score = md_QueryLatestInfererScoreResponse.Fields().ByName("score") + md_QueryGetInfererScoreEmaResponse = File_emissions_v3_query_proto.Messages().ByName("QueryGetInfererScoreEmaResponse") + fd_QueryGetInfererScoreEmaResponse_score = md_QueryGetInfererScoreEmaResponse.Fields().ByName("score") } -var _ protoreflect.Message = (*fastReflection_QueryLatestInfererScoreResponse)(nil) +var _ protoreflect.Message = (*fastReflection_QueryGetInfererScoreEmaResponse)(nil) -type fastReflection_QueryLatestInfererScoreResponse QueryLatestInfererScoreResponse +type fastReflection_QueryGetInfererScoreEmaResponse QueryGetInfererScoreEmaResponse -func (x *QueryLatestInfererScoreResponse) ProtoReflect() protoreflect.Message { - return (*fastReflection_QueryLatestInfererScoreResponse)(x) +func (x *QueryGetInfererScoreEmaResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryGetInfererScoreEmaResponse)(x) } -func (x *QueryLatestInfererScoreResponse) slowProtoReflect() protoreflect.Message { +func (x *QueryGetInfererScoreEmaResponse) slowProtoReflect() protoreflect.Message { mi := &file_emissions_v3_query_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -51752,43 +51752,43 @@ func (x *QueryLatestInfererScoreResponse) slowProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -var _fastReflection_QueryLatestInfererScoreResponse_messageType fastReflection_QueryLatestInfererScoreResponse_messageType -var _ protoreflect.MessageType = fastReflection_QueryLatestInfererScoreResponse_messageType{} +var _fastReflection_QueryGetInfererScoreEmaResponse_messageType fastReflection_QueryGetInfererScoreEmaResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryGetInfererScoreEmaResponse_messageType{} -type fastReflection_QueryLatestInfererScoreResponse_messageType struct{} +type fastReflection_QueryGetInfererScoreEmaResponse_messageType struct{} -func (x fastReflection_QueryLatestInfererScoreResponse_messageType) Zero() protoreflect.Message { - return (*fastReflection_QueryLatestInfererScoreResponse)(nil) +func (x fastReflection_QueryGetInfererScoreEmaResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryGetInfererScoreEmaResponse)(nil) } -func (x fastReflection_QueryLatestInfererScoreResponse_messageType) New() protoreflect.Message { - return new(fastReflection_QueryLatestInfererScoreResponse) +func (x fastReflection_QueryGetInfererScoreEmaResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryGetInfererScoreEmaResponse) } -func (x fastReflection_QueryLatestInfererScoreResponse_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestInfererScoreResponse +func (x fastReflection_QueryGetInfererScoreEmaResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetInfererScoreEmaResponse } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_QueryLatestInfererScoreResponse) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestInfererScoreResponse +func (x *fastReflection_QueryGetInfererScoreEmaResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetInfererScoreEmaResponse } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_QueryLatestInfererScoreResponse) Type() protoreflect.MessageType { - return _fastReflection_QueryLatestInfererScoreResponse_messageType +func (x *fastReflection_QueryGetInfererScoreEmaResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryGetInfererScoreEmaResponse_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_QueryLatestInfererScoreResponse) New() protoreflect.Message { - return new(fastReflection_QueryLatestInfererScoreResponse) +func (x *fastReflection_QueryGetInfererScoreEmaResponse) New() protoreflect.Message { + return new(fastReflection_QueryGetInfererScoreEmaResponse) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_QueryLatestInfererScoreResponse) Interface() protoreflect.ProtoMessage { - return (*QueryLatestInfererScoreResponse)(x) +func (x *fastReflection_QueryGetInfererScoreEmaResponse) Interface() protoreflect.ProtoMessage { + return (*QueryGetInfererScoreEmaResponse)(x) } // Range iterates over every populated field in an undefined order, @@ -51796,10 +51796,10 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) Interface() protoreflec // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_QueryLatestInfererScoreResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { if x.Score != nil { value := protoreflect.ValueOfMessage(x.Score.ProtoReflect()) - if !f(fd_QueryLatestInfererScoreResponse_score, value) { + if !f(fd_QueryGetInfererScoreEmaResponse_score, value) { return } } @@ -51816,15 +51816,15 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) Range(f func(protorefle // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_QueryLatestInfererScoreResponse) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "emissions.v3.QueryLatestInfererScoreResponse.score": + case "emissions.v3.QueryGetInfererScoreEmaResponse.score": return x.Score != nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaResponse does not contain field %s", fd.FullName())) } } @@ -51834,15 +51834,15 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) Has(fd protoreflect.Fie // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestInfererScoreResponse) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "emissions.v3.QueryLatestInfererScoreResponse.score": + case "emissions.v3.QueryGetInfererScoreEmaResponse.score": x.Score = nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaResponse does not contain field %s", fd.FullName())) } } @@ -51852,16 +51852,16 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) Clear(fd protoreflect.F // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_QueryLatestInfererScoreResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "emissions.v3.QueryLatestInfererScoreResponse.score": + case "emissions.v3.QueryGetInfererScoreEmaResponse.score": value := x.Score return protoreflect.ValueOfMessage(value.ProtoReflect()) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreResponse does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaResponse does not contain field %s", descriptor.FullName())) } } @@ -51875,15 +51875,15 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) Get(descriptor protoref // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestInfererScoreResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "emissions.v3.QueryLatestInfererScoreResponse.score": + case "emissions.v3.QueryGetInfererScoreEmaResponse.score": x.Score = value.Message().Interface().(*Score) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaResponse does not contain field %s", fd.FullName())) } } @@ -51897,44 +51897,44 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) Set(fd protoreflect.Fie // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestInfererScoreResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestInfererScoreResponse.score": + case "emissions.v3.QueryGetInfererScoreEmaResponse.score": if x.Score == nil { x.Score = new(Score) } return protoreflect.ValueOfMessage(x.Score.ProtoReflect()) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaResponse does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_QueryLatestInfererScoreResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestInfererScoreResponse.score": + case "emissions.v3.QueryGetInfererScoreEmaResponse.score": m := new(Score) return protoreflect.ValueOfMessage(m.ProtoReflect()) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestInfererScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetInfererScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestInfererScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetInfererScoreEmaResponse does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_QueryLatestInfererScoreResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryLatestInfererScoreResponse", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryGetInfererScoreEmaResponse", d.FullName())) } panic("unreachable") } @@ -51942,7 +51942,7 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) WhichOneof(d protorefle // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_QueryLatestInfererScoreResponse) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -51953,7 +51953,7 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) GetUnknown() protorefle // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestInfererScoreResponse) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -51965,7 +51965,7 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) SetUnknown(fields proto // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_QueryLatestInfererScoreResponse) IsValid() bool { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) IsValid() bool { return x != nil } @@ -51975,9 +51975,9 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_QueryLatestInfererScoreResponse) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_QueryGetInfererScoreEmaResponse) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*QueryLatestInfererScoreResponse) + x := input.Message.Interface().(*QueryGetInfererScoreEmaResponse) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -52003,7 +52003,7 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) ProtoMethods() *protoif } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestInfererScoreResponse) + x := input.Message.Interface().(*QueryGetInfererScoreEmaResponse) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -52047,7 +52047,7 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) ProtoMethods() *protoif }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestInfererScoreResponse) + x := input.Message.Interface().(*QueryGetInfererScoreEmaResponse) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -52079,10 +52079,10 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) ProtoMethods() *protoif fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestInfererScoreResponse: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetInfererScoreEmaResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestInfererScoreResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetInfererScoreEmaResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -52157,27 +52157,27 @@ func (x *fastReflection_QueryLatestInfererScoreResponse) ProtoMethods() *protoif } var ( - md_QueryLatestForecasterScoreRequest protoreflect.MessageDescriptor - fd_QueryLatestForecasterScoreRequest_topic_id protoreflect.FieldDescriptor - fd_QueryLatestForecasterScoreRequest_forecaster protoreflect.FieldDescriptor + md_QueryGetForecasterScoreEmaRequest protoreflect.MessageDescriptor + fd_QueryGetForecasterScoreEmaRequest_topic_id protoreflect.FieldDescriptor + fd_QueryGetForecasterScoreEmaRequest_forecaster protoreflect.FieldDescriptor ) func init() { file_emissions_v3_query_proto_init() - md_QueryLatestForecasterScoreRequest = File_emissions_v3_query_proto.Messages().ByName("QueryLatestForecasterScoreRequest") - fd_QueryLatestForecasterScoreRequest_topic_id = md_QueryLatestForecasterScoreRequest.Fields().ByName("topic_id") - fd_QueryLatestForecasterScoreRequest_forecaster = md_QueryLatestForecasterScoreRequest.Fields().ByName("forecaster") + md_QueryGetForecasterScoreEmaRequest = File_emissions_v3_query_proto.Messages().ByName("QueryGetForecasterScoreEmaRequest") + fd_QueryGetForecasterScoreEmaRequest_topic_id = md_QueryGetForecasterScoreEmaRequest.Fields().ByName("topic_id") + fd_QueryGetForecasterScoreEmaRequest_forecaster = md_QueryGetForecasterScoreEmaRequest.Fields().ByName("forecaster") } -var _ protoreflect.Message = (*fastReflection_QueryLatestForecasterScoreRequest)(nil) +var _ protoreflect.Message = (*fastReflection_QueryGetForecasterScoreEmaRequest)(nil) -type fastReflection_QueryLatestForecasterScoreRequest QueryLatestForecasterScoreRequest +type fastReflection_QueryGetForecasterScoreEmaRequest QueryGetForecasterScoreEmaRequest -func (x *QueryLatestForecasterScoreRequest) ProtoReflect() protoreflect.Message { - return (*fastReflection_QueryLatestForecasterScoreRequest)(x) +func (x *QueryGetForecasterScoreEmaRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryGetForecasterScoreEmaRequest)(x) } -func (x *QueryLatestForecasterScoreRequest) slowProtoReflect() protoreflect.Message { +func (x *QueryGetForecasterScoreEmaRequest) slowProtoReflect() protoreflect.Message { mi := &file_emissions_v3_query_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52189,43 +52189,43 @@ func (x *QueryLatestForecasterScoreRequest) slowProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -var _fastReflection_QueryLatestForecasterScoreRequest_messageType fastReflection_QueryLatestForecasterScoreRequest_messageType -var _ protoreflect.MessageType = fastReflection_QueryLatestForecasterScoreRequest_messageType{} +var _fastReflection_QueryGetForecasterScoreEmaRequest_messageType fastReflection_QueryGetForecasterScoreEmaRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryGetForecasterScoreEmaRequest_messageType{} -type fastReflection_QueryLatestForecasterScoreRequest_messageType struct{} +type fastReflection_QueryGetForecasterScoreEmaRequest_messageType struct{} -func (x fastReflection_QueryLatestForecasterScoreRequest_messageType) Zero() protoreflect.Message { - return (*fastReflection_QueryLatestForecasterScoreRequest)(nil) +func (x fastReflection_QueryGetForecasterScoreEmaRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryGetForecasterScoreEmaRequest)(nil) } -func (x fastReflection_QueryLatestForecasterScoreRequest_messageType) New() protoreflect.Message { - return new(fastReflection_QueryLatestForecasterScoreRequest) +func (x fastReflection_QueryGetForecasterScoreEmaRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryGetForecasterScoreEmaRequest) } -func (x fastReflection_QueryLatestForecasterScoreRequest_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestForecasterScoreRequest +func (x fastReflection_QueryGetForecasterScoreEmaRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetForecasterScoreEmaRequest } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_QueryLatestForecasterScoreRequest) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestForecasterScoreRequest +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetForecasterScoreEmaRequest } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_QueryLatestForecasterScoreRequest) Type() protoreflect.MessageType { - return _fastReflection_QueryLatestForecasterScoreRequest_messageType +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryGetForecasterScoreEmaRequest_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_QueryLatestForecasterScoreRequest) New() protoreflect.Message { - return new(fastReflection_QueryLatestForecasterScoreRequest) +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) New() protoreflect.Message { + return new(fastReflection_QueryGetForecasterScoreEmaRequest) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_QueryLatestForecasterScoreRequest) Interface() protoreflect.ProtoMessage { - return (*QueryLatestForecasterScoreRequest)(x) +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) Interface() protoreflect.ProtoMessage { + return (*QueryGetForecasterScoreEmaRequest)(x) } // Range iterates over every populated field in an undefined order, @@ -52233,16 +52233,16 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) Interface() protorefl // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_QueryLatestForecasterScoreRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { if x.TopicId != uint64(0) { value := protoreflect.ValueOfUint64(x.TopicId) - if !f(fd_QueryLatestForecasterScoreRequest_topic_id, value) { + if !f(fd_QueryGetForecasterScoreEmaRequest_topic_id, value) { return } } if x.Forecaster != "" { value := protoreflect.ValueOfString(x.Forecaster) - if !f(fd_QueryLatestForecasterScoreRequest_forecaster, value) { + if !f(fd_QueryGetForecasterScoreEmaRequest_forecaster, value) { return } } @@ -52259,17 +52259,17 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) Range(f func(protoref // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_QueryLatestForecasterScoreRequest) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "emissions.v3.QueryLatestForecasterScoreRequest.topic_id": + case "emissions.v3.QueryGetForecasterScoreEmaRequest.topic_id": return x.TopicId != uint64(0) - case "emissions.v3.QueryLatestForecasterScoreRequest.forecaster": + case "emissions.v3.QueryGetForecasterScoreEmaRequest.forecaster": return x.Forecaster != "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaRequest does not contain field %s", fd.FullName())) } } @@ -52279,17 +52279,17 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) Has(fd protoreflect.F // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestForecasterScoreRequest) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "emissions.v3.QueryLatestForecasterScoreRequest.topic_id": + case "emissions.v3.QueryGetForecasterScoreEmaRequest.topic_id": x.TopicId = uint64(0) - case "emissions.v3.QueryLatestForecasterScoreRequest.forecaster": + case "emissions.v3.QueryGetForecasterScoreEmaRequest.forecaster": x.Forecaster = "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaRequest does not contain field %s", fd.FullName())) } } @@ -52299,19 +52299,19 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) Clear(fd protoreflect // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_QueryLatestForecasterScoreRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "emissions.v3.QueryLatestForecasterScoreRequest.topic_id": + case "emissions.v3.QueryGetForecasterScoreEmaRequest.topic_id": value := x.TopicId return protoreflect.ValueOfUint64(value) - case "emissions.v3.QueryLatestForecasterScoreRequest.forecaster": + case "emissions.v3.QueryGetForecasterScoreEmaRequest.forecaster": value := x.Forecaster return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreRequest does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaRequest does not contain field %s", descriptor.FullName())) } } @@ -52325,17 +52325,17 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) Get(descriptor protor // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestForecasterScoreRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "emissions.v3.QueryLatestForecasterScoreRequest.topic_id": + case "emissions.v3.QueryGetForecasterScoreEmaRequest.topic_id": x.TopicId = value.Uint() - case "emissions.v3.QueryLatestForecasterScoreRequest.forecaster": + case "emissions.v3.QueryGetForecasterScoreEmaRequest.forecaster": x.Forecaster = value.Interface().(string) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaRequest does not contain field %s", fd.FullName())) } } @@ -52349,44 +52349,44 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) Set(fd protoreflect.F // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestForecasterScoreRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestForecasterScoreRequest.topic_id": - panic(fmt.Errorf("field topic_id of message emissions.v3.QueryLatestForecasterScoreRequest is not mutable")) - case "emissions.v3.QueryLatestForecasterScoreRequest.forecaster": - panic(fmt.Errorf("field forecaster of message emissions.v3.QueryLatestForecasterScoreRequest is not mutable")) + case "emissions.v3.QueryGetForecasterScoreEmaRequest.topic_id": + panic(fmt.Errorf("field topic_id of message emissions.v3.QueryGetForecasterScoreEmaRequest is not mutable")) + case "emissions.v3.QueryGetForecasterScoreEmaRequest.forecaster": + panic(fmt.Errorf("field forecaster of message emissions.v3.QueryGetForecasterScoreEmaRequest is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaRequest does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_QueryLatestForecasterScoreRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestForecasterScoreRequest.topic_id": + case "emissions.v3.QueryGetForecasterScoreEmaRequest.topic_id": return protoreflect.ValueOfUint64(uint64(0)) - case "emissions.v3.QueryLatestForecasterScoreRequest.forecaster": + case "emissions.v3.QueryGetForecasterScoreEmaRequest.forecaster": return protoreflect.ValueOfString("") default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaRequest does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_QueryLatestForecasterScoreRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryLatestForecasterScoreRequest", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryGetForecasterScoreEmaRequest", d.FullName())) } panic("unreachable") } @@ -52394,7 +52394,7 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) WhichOneof(d protoref // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_QueryLatestForecasterScoreRequest) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -52405,7 +52405,7 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) GetUnknown() protoref // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestForecasterScoreRequest) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -52417,7 +52417,7 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) SetUnknown(fields pro // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_QueryLatestForecasterScoreRequest) IsValid() bool { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) IsValid() bool { return x != nil } @@ -52427,9 +52427,9 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_QueryLatestForecasterScoreRequest) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_QueryGetForecasterScoreEmaRequest) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*QueryLatestForecasterScoreRequest) + x := input.Message.Interface().(*QueryGetForecasterScoreEmaRequest) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -52458,7 +52458,7 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) ProtoMethods() *proto } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestForecasterScoreRequest) + x := input.Message.Interface().(*QueryGetForecasterScoreEmaRequest) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -52500,7 +52500,7 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) ProtoMethods() *proto }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestForecasterScoreRequest) + x := input.Message.Interface().(*QueryGetForecasterScoreEmaRequest) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -52532,10 +52532,10 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) ProtoMethods() *proto fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestForecasterScoreRequest: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetForecasterScoreEmaRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestForecasterScoreRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetForecasterScoreEmaRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -52625,25 +52625,25 @@ func (x *fastReflection_QueryLatestForecasterScoreRequest) ProtoMethods() *proto } var ( - md_QueryLatestForecasterScoreResponse protoreflect.MessageDescriptor - fd_QueryLatestForecasterScoreResponse_score protoreflect.FieldDescriptor + md_QueryGetForecasterScoreEmaResponse protoreflect.MessageDescriptor + fd_QueryGetForecasterScoreEmaResponse_score protoreflect.FieldDescriptor ) func init() { file_emissions_v3_query_proto_init() - md_QueryLatestForecasterScoreResponse = File_emissions_v3_query_proto.Messages().ByName("QueryLatestForecasterScoreResponse") - fd_QueryLatestForecasterScoreResponse_score = md_QueryLatestForecasterScoreResponse.Fields().ByName("score") + md_QueryGetForecasterScoreEmaResponse = File_emissions_v3_query_proto.Messages().ByName("QueryGetForecasterScoreEmaResponse") + fd_QueryGetForecasterScoreEmaResponse_score = md_QueryGetForecasterScoreEmaResponse.Fields().ByName("score") } -var _ protoreflect.Message = (*fastReflection_QueryLatestForecasterScoreResponse)(nil) +var _ protoreflect.Message = (*fastReflection_QueryGetForecasterScoreEmaResponse)(nil) -type fastReflection_QueryLatestForecasterScoreResponse QueryLatestForecasterScoreResponse +type fastReflection_QueryGetForecasterScoreEmaResponse QueryGetForecasterScoreEmaResponse -func (x *QueryLatestForecasterScoreResponse) ProtoReflect() protoreflect.Message { - return (*fastReflection_QueryLatestForecasterScoreResponse)(x) +func (x *QueryGetForecasterScoreEmaResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryGetForecasterScoreEmaResponse)(x) } -func (x *QueryLatestForecasterScoreResponse) slowProtoReflect() protoreflect.Message { +func (x *QueryGetForecasterScoreEmaResponse) slowProtoReflect() protoreflect.Message { mi := &file_emissions_v3_query_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -52655,43 +52655,43 @@ func (x *QueryLatestForecasterScoreResponse) slowProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -var _fastReflection_QueryLatestForecasterScoreResponse_messageType fastReflection_QueryLatestForecasterScoreResponse_messageType -var _ protoreflect.MessageType = fastReflection_QueryLatestForecasterScoreResponse_messageType{} +var _fastReflection_QueryGetForecasterScoreEmaResponse_messageType fastReflection_QueryGetForecasterScoreEmaResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryGetForecasterScoreEmaResponse_messageType{} -type fastReflection_QueryLatestForecasterScoreResponse_messageType struct{} +type fastReflection_QueryGetForecasterScoreEmaResponse_messageType struct{} -func (x fastReflection_QueryLatestForecasterScoreResponse_messageType) Zero() protoreflect.Message { - return (*fastReflection_QueryLatestForecasterScoreResponse)(nil) +func (x fastReflection_QueryGetForecasterScoreEmaResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryGetForecasterScoreEmaResponse)(nil) } -func (x fastReflection_QueryLatestForecasterScoreResponse_messageType) New() protoreflect.Message { - return new(fastReflection_QueryLatestForecasterScoreResponse) +func (x fastReflection_QueryGetForecasterScoreEmaResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryGetForecasterScoreEmaResponse) } -func (x fastReflection_QueryLatestForecasterScoreResponse_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestForecasterScoreResponse +func (x fastReflection_QueryGetForecasterScoreEmaResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetForecasterScoreEmaResponse } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_QueryLatestForecasterScoreResponse) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestForecasterScoreResponse +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetForecasterScoreEmaResponse } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_QueryLatestForecasterScoreResponse) Type() protoreflect.MessageType { - return _fastReflection_QueryLatestForecasterScoreResponse_messageType +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryGetForecasterScoreEmaResponse_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_QueryLatestForecasterScoreResponse) New() protoreflect.Message { - return new(fastReflection_QueryLatestForecasterScoreResponse) +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) New() protoreflect.Message { + return new(fastReflection_QueryGetForecasterScoreEmaResponse) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_QueryLatestForecasterScoreResponse) Interface() protoreflect.ProtoMessage { - return (*QueryLatestForecasterScoreResponse)(x) +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) Interface() protoreflect.ProtoMessage { + return (*QueryGetForecasterScoreEmaResponse)(x) } // Range iterates over every populated field in an undefined order, @@ -52699,10 +52699,10 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) Interface() protoref // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_QueryLatestForecasterScoreResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { if x.Score != nil { value := protoreflect.ValueOfMessage(x.Score.ProtoReflect()) - if !f(fd_QueryLatestForecasterScoreResponse_score, value) { + if !f(fd_QueryGetForecasterScoreEmaResponse_score, value) { return } } @@ -52719,15 +52719,15 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) Range(f func(protore // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_QueryLatestForecasterScoreResponse) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "emissions.v3.QueryLatestForecasterScoreResponse.score": + case "emissions.v3.QueryGetForecasterScoreEmaResponse.score": return x.Score != nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaResponse does not contain field %s", fd.FullName())) } } @@ -52737,15 +52737,15 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) Has(fd protoreflect. // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestForecasterScoreResponse) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "emissions.v3.QueryLatestForecasterScoreResponse.score": + case "emissions.v3.QueryGetForecasterScoreEmaResponse.score": x.Score = nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaResponse does not contain field %s", fd.FullName())) } } @@ -52755,16 +52755,16 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) Clear(fd protoreflec // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_QueryLatestForecasterScoreResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "emissions.v3.QueryLatestForecasterScoreResponse.score": + case "emissions.v3.QueryGetForecasterScoreEmaResponse.score": value := x.Score return protoreflect.ValueOfMessage(value.ProtoReflect()) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreResponse does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaResponse does not contain field %s", descriptor.FullName())) } } @@ -52778,15 +52778,15 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) Get(descriptor proto // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestForecasterScoreResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "emissions.v3.QueryLatestForecasterScoreResponse.score": + case "emissions.v3.QueryGetForecasterScoreEmaResponse.score": x.Score = value.Message().Interface().(*Score) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaResponse does not contain field %s", fd.FullName())) } } @@ -52800,44 +52800,44 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) Set(fd protoreflect. // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestForecasterScoreResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestForecasterScoreResponse.score": + case "emissions.v3.QueryGetForecasterScoreEmaResponse.score": if x.Score == nil { x.Score = new(Score) } return protoreflect.ValueOfMessage(x.Score.ProtoReflect()) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaResponse does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_QueryLatestForecasterScoreResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestForecasterScoreResponse.score": + case "emissions.v3.QueryGetForecasterScoreEmaResponse.score": m := new(Score) return protoreflect.ValueOfMessage(m.ProtoReflect()) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestForecasterScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetForecasterScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestForecasterScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetForecasterScoreEmaResponse does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_QueryLatestForecasterScoreResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryLatestForecasterScoreResponse", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryGetForecasterScoreEmaResponse", d.FullName())) } panic("unreachable") } @@ -52845,7 +52845,7 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) WhichOneof(d protore // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_QueryLatestForecasterScoreResponse) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -52856,7 +52856,7 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) GetUnknown() protore // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestForecasterScoreResponse) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -52868,7 +52868,7 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) SetUnknown(fields pr // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_QueryLatestForecasterScoreResponse) IsValid() bool { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) IsValid() bool { return x != nil } @@ -52878,9 +52878,9 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_QueryLatestForecasterScoreResponse) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_QueryGetForecasterScoreEmaResponse) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*QueryLatestForecasterScoreResponse) + x := input.Message.Interface().(*QueryGetForecasterScoreEmaResponse) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -52906,7 +52906,7 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) ProtoMethods() *prot } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestForecasterScoreResponse) + x := input.Message.Interface().(*QueryGetForecasterScoreEmaResponse) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -52950,7 +52950,7 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) ProtoMethods() *prot }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestForecasterScoreResponse) + x := input.Message.Interface().(*QueryGetForecasterScoreEmaResponse) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -52982,10 +52982,10 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) ProtoMethods() *prot fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestForecasterScoreResponse: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetForecasterScoreEmaResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestForecasterScoreResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetForecasterScoreEmaResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -53060,27 +53060,27 @@ func (x *fastReflection_QueryLatestForecasterScoreResponse) ProtoMethods() *prot } var ( - md_QueryLatestReputerScoreRequest protoreflect.MessageDescriptor - fd_QueryLatestReputerScoreRequest_topic_id protoreflect.FieldDescriptor - fd_QueryLatestReputerScoreRequest_reputer protoreflect.FieldDescriptor + md_QueryGetReputerScoreEmaRequest protoreflect.MessageDescriptor + fd_QueryGetReputerScoreEmaRequest_topic_id protoreflect.FieldDescriptor + fd_QueryGetReputerScoreEmaRequest_reputer protoreflect.FieldDescriptor ) func init() { file_emissions_v3_query_proto_init() - md_QueryLatestReputerScoreRequest = File_emissions_v3_query_proto.Messages().ByName("QueryLatestReputerScoreRequest") - fd_QueryLatestReputerScoreRequest_topic_id = md_QueryLatestReputerScoreRequest.Fields().ByName("topic_id") - fd_QueryLatestReputerScoreRequest_reputer = md_QueryLatestReputerScoreRequest.Fields().ByName("reputer") + md_QueryGetReputerScoreEmaRequest = File_emissions_v3_query_proto.Messages().ByName("QueryGetReputerScoreEmaRequest") + fd_QueryGetReputerScoreEmaRequest_topic_id = md_QueryGetReputerScoreEmaRequest.Fields().ByName("topic_id") + fd_QueryGetReputerScoreEmaRequest_reputer = md_QueryGetReputerScoreEmaRequest.Fields().ByName("reputer") } -var _ protoreflect.Message = (*fastReflection_QueryLatestReputerScoreRequest)(nil) +var _ protoreflect.Message = (*fastReflection_QueryGetReputerScoreEmaRequest)(nil) -type fastReflection_QueryLatestReputerScoreRequest QueryLatestReputerScoreRequest +type fastReflection_QueryGetReputerScoreEmaRequest QueryGetReputerScoreEmaRequest -func (x *QueryLatestReputerScoreRequest) ProtoReflect() protoreflect.Message { - return (*fastReflection_QueryLatestReputerScoreRequest)(x) +func (x *QueryGetReputerScoreEmaRequest) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryGetReputerScoreEmaRequest)(x) } -func (x *QueryLatestReputerScoreRequest) slowProtoReflect() protoreflect.Message { +func (x *QueryGetReputerScoreEmaRequest) slowProtoReflect() protoreflect.Message { mi := &file_emissions_v3_query_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53092,43 +53092,43 @@ func (x *QueryLatestReputerScoreRequest) slowProtoReflect() protoreflect.Message return mi.MessageOf(x) } -var _fastReflection_QueryLatestReputerScoreRequest_messageType fastReflection_QueryLatestReputerScoreRequest_messageType -var _ protoreflect.MessageType = fastReflection_QueryLatestReputerScoreRequest_messageType{} +var _fastReflection_QueryGetReputerScoreEmaRequest_messageType fastReflection_QueryGetReputerScoreEmaRequest_messageType +var _ protoreflect.MessageType = fastReflection_QueryGetReputerScoreEmaRequest_messageType{} -type fastReflection_QueryLatestReputerScoreRequest_messageType struct{} +type fastReflection_QueryGetReputerScoreEmaRequest_messageType struct{} -func (x fastReflection_QueryLatestReputerScoreRequest_messageType) Zero() protoreflect.Message { - return (*fastReflection_QueryLatestReputerScoreRequest)(nil) +func (x fastReflection_QueryGetReputerScoreEmaRequest_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryGetReputerScoreEmaRequest)(nil) } -func (x fastReflection_QueryLatestReputerScoreRequest_messageType) New() protoreflect.Message { - return new(fastReflection_QueryLatestReputerScoreRequest) +func (x fastReflection_QueryGetReputerScoreEmaRequest_messageType) New() protoreflect.Message { + return new(fastReflection_QueryGetReputerScoreEmaRequest) } -func (x fastReflection_QueryLatestReputerScoreRequest_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestReputerScoreRequest +func (x fastReflection_QueryGetReputerScoreEmaRequest_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetReputerScoreEmaRequest } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_QueryLatestReputerScoreRequest) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestReputerScoreRequest +func (x *fastReflection_QueryGetReputerScoreEmaRequest) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetReputerScoreEmaRequest } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_QueryLatestReputerScoreRequest) Type() protoreflect.MessageType { - return _fastReflection_QueryLatestReputerScoreRequest_messageType +func (x *fastReflection_QueryGetReputerScoreEmaRequest) Type() protoreflect.MessageType { + return _fastReflection_QueryGetReputerScoreEmaRequest_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_QueryLatestReputerScoreRequest) New() protoreflect.Message { - return new(fastReflection_QueryLatestReputerScoreRequest) +func (x *fastReflection_QueryGetReputerScoreEmaRequest) New() protoreflect.Message { + return new(fastReflection_QueryGetReputerScoreEmaRequest) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_QueryLatestReputerScoreRequest) Interface() protoreflect.ProtoMessage { - return (*QueryLatestReputerScoreRequest)(x) +func (x *fastReflection_QueryGetReputerScoreEmaRequest) Interface() protoreflect.ProtoMessage { + return (*QueryGetReputerScoreEmaRequest)(x) } // Range iterates over every populated field in an undefined order, @@ -53136,16 +53136,16 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) Interface() protoreflect // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_QueryLatestReputerScoreRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { if x.TopicId != uint64(0) { value := protoreflect.ValueOfUint64(x.TopicId) - if !f(fd_QueryLatestReputerScoreRequest_topic_id, value) { + if !f(fd_QueryGetReputerScoreEmaRequest_topic_id, value) { return } } if x.Reputer != "" { value := protoreflect.ValueOfString(x.Reputer) - if !f(fd_QueryLatestReputerScoreRequest_reputer, value) { + if !f(fd_QueryGetReputerScoreEmaRequest_reputer, value) { return } } @@ -53162,17 +53162,17 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) Range(f func(protoreflec // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_QueryLatestReputerScoreRequest) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "emissions.v3.QueryLatestReputerScoreRequest.topic_id": + case "emissions.v3.QueryGetReputerScoreEmaRequest.topic_id": return x.TopicId != uint64(0) - case "emissions.v3.QueryLatestReputerScoreRequest.reputer": + case "emissions.v3.QueryGetReputerScoreEmaRequest.reputer": return x.Reputer != "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaRequest does not contain field %s", fd.FullName())) } } @@ -53182,17 +53182,17 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) Has(fd protoreflect.Fiel // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestReputerScoreRequest) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "emissions.v3.QueryLatestReputerScoreRequest.topic_id": + case "emissions.v3.QueryGetReputerScoreEmaRequest.topic_id": x.TopicId = uint64(0) - case "emissions.v3.QueryLatestReputerScoreRequest.reputer": + case "emissions.v3.QueryGetReputerScoreEmaRequest.reputer": x.Reputer = "" default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaRequest does not contain field %s", fd.FullName())) } } @@ -53202,19 +53202,19 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) Clear(fd protoreflect.Fi // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_QueryLatestReputerScoreRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "emissions.v3.QueryLatestReputerScoreRequest.topic_id": + case "emissions.v3.QueryGetReputerScoreEmaRequest.topic_id": value := x.TopicId return protoreflect.ValueOfUint64(value) - case "emissions.v3.QueryLatestReputerScoreRequest.reputer": + case "emissions.v3.QueryGetReputerScoreEmaRequest.reputer": value := x.Reputer return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreRequest does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaRequest does not contain field %s", descriptor.FullName())) } } @@ -53228,17 +53228,17 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) Get(descriptor protorefl // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestReputerScoreRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "emissions.v3.QueryLatestReputerScoreRequest.topic_id": + case "emissions.v3.QueryGetReputerScoreEmaRequest.topic_id": x.TopicId = value.Uint() - case "emissions.v3.QueryLatestReputerScoreRequest.reputer": + case "emissions.v3.QueryGetReputerScoreEmaRequest.reputer": x.Reputer = value.Interface().(string) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaRequest does not contain field %s", fd.FullName())) } } @@ -53252,44 +53252,44 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) Set(fd protoreflect.Fiel // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestReputerScoreRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestReputerScoreRequest.topic_id": - panic(fmt.Errorf("field topic_id of message emissions.v3.QueryLatestReputerScoreRequest is not mutable")) - case "emissions.v3.QueryLatestReputerScoreRequest.reputer": - panic(fmt.Errorf("field reputer of message emissions.v3.QueryLatestReputerScoreRequest is not mutable")) + case "emissions.v3.QueryGetReputerScoreEmaRequest.topic_id": + panic(fmt.Errorf("field topic_id of message emissions.v3.QueryGetReputerScoreEmaRequest is not mutable")) + case "emissions.v3.QueryGetReputerScoreEmaRequest.reputer": + panic(fmt.Errorf("field reputer of message emissions.v3.QueryGetReputerScoreEmaRequest is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaRequest does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_QueryLatestReputerScoreRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestReputerScoreRequest.topic_id": + case "emissions.v3.QueryGetReputerScoreEmaRequest.topic_id": return protoreflect.ValueOfUint64(uint64(0)) - case "emissions.v3.QueryLatestReputerScoreRequest.reputer": + case "emissions.v3.QueryGetReputerScoreEmaRequest.reputer": return protoreflect.ValueOfString("") default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreRequest")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaRequest")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreRequest does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaRequest does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_QueryLatestReputerScoreRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryLatestReputerScoreRequest", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryGetReputerScoreEmaRequest", d.FullName())) } panic("unreachable") } @@ -53297,7 +53297,7 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) WhichOneof(d protoreflec // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_QueryLatestReputerScoreRequest) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -53308,7 +53308,7 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) GetUnknown() protoreflec // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestReputerScoreRequest) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -53320,7 +53320,7 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) SetUnknown(fields protor // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_QueryLatestReputerScoreRequest) IsValid() bool { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) IsValid() bool { return x != nil } @@ -53330,9 +53330,9 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_QueryLatestReputerScoreRequest) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_QueryGetReputerScoreEmaRequest) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*QueryLatestReputerScoreRequest) + x := input.Message.Interface().(*QueryGetReputerScoreEmaRequest) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -53361,7 +53361,7 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) ProtoMethods() *protoifa } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestReputerScoreRequest) + x := input.Message.Interface().(*QueryGetReputerScoreEmaRequest) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -53403,7 +53403,7 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) ProtoMethods() *protoifa }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestReputerScoreRequest) + x := input.Message.Interface().(*QueryGetReputerScoreEmaRequest) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -53435,10 +53435,10 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) ProtoMethods() *protoifa fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestReputerScoreRequest: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetReputerScoreEmaRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestReputerScoreRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetReputerScoreEmaRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -53528,25 +53528,25 @@ func (x *fastReflection_QueryLatestReputerScoreRequest) ProtoMethods() *protoifa } var ( - md_QueryLatestReputerScoreResponse protoreflect.MessageDescriptor - fd_QueryLatestReputerScoreResponse_score protoreflect.FieldDescriptor + md_QueryGetReputerScoreEmaResponse protoreflect.MessageDescriptor + fd_QueryGetReputerScoreEmaResponse_score protoreflect.FieldDescriptor ) func init() { file_emissions_v3_query_proto_init() - md_QueryLatestReputerScoreResponse = File_emissions_v3_query_proto.Messages().ByName("QueryLatestReputerScoreResponse") - fd_QueryLatestReputerScoreResponse_score = md_QueryLatestReputerScoreResponse.Fields().ByName("score") + md_QueryGetReputerScoreEmaResponse = File_emissions_v3_query_proto.Messages().ByName("QueryGetReputerScoreEmaResponse") + fd_QueryGetReputerScoreEmaResponse_score = md_QueryGetReputerScoreEmaResponse.Fields().ByName("score") } -var _ protoreflect.Message = (*fastReflection_QueryLatestReputerScoreResponse)(nil) +var _ protoreflect.Message = (*fastReflection_QueryGetReputerScoreEmaResponse)(nil) -type fastReflection_QueryLatestReputerScoreResponse QueryLatestReputerScoreResponse +type fastReflection_QueryGetReputerScoreEmaResponse QueryGetReputerScoreEmaResponse -func (x *QueryLatestReputerScoreResponse) ProtoReflect() protoreflect.Message { - return (*fastReflection_QueryLatestReputerScoreResponse)(x) +func (x *QueryGetReputerScoreEmaResponse) ProtoReflect() protoreflect.Message { + return (*fastReflection_QueryGetReputerScoreEmaResponse)(x) } -func (x *QueryLatestReputerScoreResponse) slowProtoReflect() protoreflect.Message { +func (x *QueryGetReputerScoreEmaResponse) slowProtoReflect() protoreflect.Message { mi := &file_emissions_v3_query_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -53558,43 +53558,43 @@ func (x *QueryLatestReputerScoreResponse) slowProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -var _fastReflection_QueryLatestReputerScoreResponse_messageType fastReflection_QueryLatestReputerScoreResponse_messageType -var _ protoreflect.MessageType = fastReflection_QueryLatestReputerScoreResponse_messageType{} +var _fastReflection_QueryGetReputerScoreEmaResponse_messageType fastReflection_QueryGetReputerScoreEmaResponse_messageType +var _ protoreflect.MessageType = fastReflection_QueryGetReputerScoreEmaResponse_messageType{} -type fastReflection_QueryLatestReputerScoreResponse_messageType struct{} +type fastReflection_QueryGetReputerScoreEmaResponse_messageType struct{} -func (x fastReflection_QueryLatestReputerScoreResponse_messageType) Zero() protoreflect.Message { - return (*fastReflection_QueryLatestReputerScoreResponse)(nil) +func (x fastReflection_QueryGetReputerScoreEmaResponse_messageType) Zero() protoreflect.Message { + return (*fastReflection_QueryGetReputerScoreEmaResponse)(nil) } -func (x fastReflection_QueryLatestReputerScoreResponse_messageType) New() protoreflect.Message { - return new(fastReflection_QueryLatestReputerScoreResponse) +func (x fastReflection_QueryGetReputerScoreEmaResponse_messageType) New() protoreflect.Message { + return new(fastReflection_QueryGetReputerScoreEmaResponse) } -func (x fastReflection_QueryLatestReputerScoreResponse_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestReputerScoreResponse +func (x fastReflection_QueryGetReputerScoreEmaResponse_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetReputerScoreEmaResponse } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_QueryLatestReputerScoreResponse) Descriptor() protoreflect.MessageDescriptor { - return md_QueryLatestReputerScoreResponse +func (x *fastReflection_QueryGetReputerScoreEmaResponse) Descriptor() protoreflect.MessageDescriptor { + return md_QueryGetReputerScoreEmaResponse } // Type returns the message type, which encapsulates both Go and protobuf // type information. If the Go type information is not needed, // it is recommended that the message descriptor be used instead. -func (x *fastReflection_QueryLatestReputerScoreResponse) Type() protoreflect.MessageType { - return _fastReflection_QueryLatestReputerScoreResponse_messageType +func (x *fastReflection_QueryGetReputerScoreEmaResponse) Type() protoreflect.MessageType { + return _fastReflection_QueryGetReputerScoreEmaResponse_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_QueryLatestReputerScoreResponse) New() protoreflect.Message { - return new(fastReflection_QueryLatestReputerScoreResponse) +func (x *fastReflection_QueryGetReputerScoreEmaResponse) New() protoreflect.Message { + return new(fastReflection_QueryGetReputerScoreEmaResponse) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_QueryLatestReputerScoreResponse) Interface() protoreflect.ProtoMessage { - return (*QueryLatestReputerScoreResponse)(x) +func (x *fastReflection_QueryGetReputerScoreEmaResponse) Interface() protoreflect.ProtoMessage { + return (*QueryGetReputerScoreEmaResponse)(x) } // Range iterates over every populated field in an undefined order, @@ -53602,10 +53602,10 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) Interface() protoreflec // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_QueryLatestReputerScoreResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { if x.Score != nil { value := protoreflect.ValueOfMessage(x.Score.ProtoReflect()) - if !f(fd_QueryLatestReputerScoreResponse_score, value) { + if !f(fd_QueryGetReputerScoreEmaResponse_score, value) { return } } @@ -53622,15 +53622,15 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) Range(f func(protorefle // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_QueryLatestReputerScoreResponse) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "emissions.v3.QueryLatestReputerScoreResponse.score": + case "emissions.v3.QueryGetReputerScoreEmaResponse.score": return x.Score != nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaResponse does not contain field %s", fd.FullName())) } } @@ -53640,15 +53640,15 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) Has(fd protoreflect.Fie // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestReputerScoreResponse) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "emissions.v3.QueryLatestReputerScoreResponse.score": + case "emissions.v3.QueryGetReputerScoreEmaResponse.score": x.Score = nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaResponse does not contain field %s", fd.FullName())) } } @@ -53658,16 +53658,16 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) Clear(fd protoreflect.F // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_QueryLatestReputerScoreResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "emissions.v3.QueryLatestReputerScoreResponse.score": + case "emissions.v3.QueryGetReputerScoreEmaResponse.score": value := x.Score return protoreflect.ValueOfMessage(value.ProtoReflect()) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreResponse does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaResponse does not contain field %s", descriptor.FullName())) } } @@ -53681,15 +53681,15 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) Get(descriptor protoref // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestReputerScoreResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "emissions.v3.QueryLatestReputerScoreResponse.score": + case "emissions.v3.QueryGetReputerScoreEmaResponse.score": x.Score = value.Message().Interface().(*Score) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaResponse does not contain field %s", fd.FullName())) } } @@ -53703,44 +53703,44 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) Set(fd protoreflect.Fie // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestReputerScoreResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestReputerScoreResponse.score": + case "emissions.v3.QueryGetReputerScoreEmaResponse.score": if x.Score == nil { x.Score = new(Score) } return protoreflect.ValueOfMessage(x.Score.ProtoReflect()) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaResponse does not contain field %s", fd.FullName())) } } // NewField returns a new value that is assignable to the field // for the given descriptor. For scalars, this returns the default value. // For lists, maps, and messages, this returns a new, empty, mutable value. -func (x *fastReflection_QueryLatestReputerScoreResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "emissions.v3.QueryLatestReputerScoreResponse.score": + case "emissions.v3.QueryGetReputerScoreEmaResponse.score": m := new(Score) return protoreflect.ValueOfMessage(m.ProtoReflect()) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryLatestReputerScoreResponse")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.QueryGetReputerScoreEmaResponse")) } - panic(fmt.Errorf("message emissions.v3.QueryLatestReputerScoreResponse does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message emissions.v3.QueryGetReputerScoreEmaResponse does not contain field %s", fd.FullName())) } } // WhichOneof reports which field within the oneof is populated, // returning nil if none are populated. // It panics if the oneof descriptor does not belong to this message. -func (x *fastReflection_QueryLatestReputerScoreResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryLatestReputerScoreResponse", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in emissions.v3.QueryGetReputerScoreEmaResponse", d.FullName())) } panic("unreachable") } @@ -53748,7 +53748,7 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) WhichOneof(d protorefle // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_QueryLatestReputerScoreResponse) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -53759,7 +53759,7 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) GetUnknown() protorefle // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_QueryLatestReputerScoreResponse) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -53771,7 +53771,7 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) SetUnknown(fields proto // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_QueryLatestReputerScoreResponse) IsValid() bool { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) IsValid() bool { return x != nil } @@ -53781,9 +53781,9 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_QueryLatestReputerScoreResponse) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_QueryGetReputerScoreEmaResponse) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*QueryLatestReputerScoreResponse) + x := input.Message.Interface().(*QueryGetReputerScoreEmaResponse) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -53809,7 +53809,7 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) ProtoMethods() *protoif } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestReputerScoreResponse) + x := input.Message.Interface().(*QueryGetReputerScoreEmaResponse) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -53853,7 +53853,7 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) ProtoMethods() *protoif }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*QueryLatestReputerScoreResponse) + x := input.Message.Interface().(*QueryGetReputerScoreEmaResponse) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -53885,10 +53885,10 @@ func (x *fastReflection_QueryLatestReputerScoreResponse) ProtoMethods() *protoif fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestReputerScoreResponse: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetReputerScoreEmaResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryLatestReputerScoreResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: QueryGetReputerScoreEmaResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -69984,7 +69984,7 @@ func (x *QueryRewardableTopicsResponse) GetRewardableTopicIds() []uint64 { return nil } -type QueryLatestInfererScoreRequest struct { +type QueryGetInfererScoreEmaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -69993,8 +69993,8 @@ type QueryLatestInfererScoreRequest struct { Inferer string `protobuf:"bytes,2,opt,name=inferer,proto3" json:"inferer,omitempty"` } -func (x *QueryLatestInfererScoreRequest) Reset() { - *x = QueryLatestInfererScoreRequest{} +func (x *QueryGetInfererScoreEmaRequest) Reset() { + *x = QueryGetInfererScoreEmaRequest{} if protoimpl.UnsafeEnabled { mi := &file_emissions_v3_query_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70002,32 +70002,32 @@ func (x *QueryLatestInfererScoreRequest) Reset() { } } -func (x *QueryLatestInfererScoreRequest) String() string { +func (x *QueryGetInfererScoreEmaRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueryLatestInfererScoreRequest) ProtoMessage() {} +func (*QueryGetInfererScoreEmaRequest) ProtoMessage() {} -// Deprecated: Use QueryLatestInfererScoreRequest.ProtoReflect.Descriptor instead. -func (*QueryLatestInfererScoreRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use QueryGetInfererScoreEmaRequest.ProtoReflect.Descriptor instead. +func (*QueryGetInfererScoreEmaRequest) Descriptor() ([]byte, []int) { return file_emissions_v3_query_proto_rawDescGZIP(), []int{112} } -func (x *QueryLatestInfererScoreRequest) GetTopicId() uint64 { +func (x *QueryGetInfererScoreEmaRequest) GetTopicId() uint64 { if x != nil { return x.TopicId } return 0 } -func (x *QueryLatestInfererScoreRequest) GetInferer() string { +func (x *QueryGetInfererScoreEmaRequest) GetInferer() string { if x != nil { return x.Inferer } return "" } -type QueryLatestInfererScoreResponse struct { +type QueryGetInfererScoreEmaResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70035,8 +70035,8 @@ type QueryLatestInfererScoreResponse struct { Score *Score `protobuf:"bytes,1,opt,name=score,proto3" json:"score,omitempty"` } -func (x *QueryLatestInfererScoreResponse) Reset() { - *x = QueryLatestInfererScoreResponse{} +func (x *QueryGetInfererScoreEmaResponse) Reset() { + *x = QueryGetInfererScoreEmaResponse{} if protoimpl.UnsafeEnabled { mi := &file_emissions_v3_query_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70044,25 +70044,25 @@ func (x *QueryLatestInfererScoreResponse) Reset() { } } -func (x *QueryLatestInfererScoreResponse) String() string { +func (x *QueryGetInfererScoreEmaResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueryLatestInfererScoreResponse) ProtoMessage() {} +func (*QueryGetInfererScoreEmaResponse) ProtoMessage() {} -// Deprecated: Use QueryLatestInfererScoreResponse.ProtoReflect.Descriptor instead. -func (*QueryLatestInfererScoreResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use QueryGetInfererScoreEmaResponse.ProtoReflect.Descriptor instead. +func (*QueryGetInfererScoreEmaResponse) Descriptor() ([]byte, []int) { return file_emissions_v3_query_proto_rawDescGZIP(), []int{113} } -func (x *QueryLatestInfererScoreResponse) GetScore() *Score { +func (x *QueryGetInfererScoreEmaResponse) GetScore() *Score { if x != nil { return x.Score } return nil } -type QueryLatestForecasterScoreRequest struct { +type QueryGetForecasterScoreEmaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70071,8 +70071,8 @@ type QueryLatestForecasterScoreRequest struct { Forecaster string `protobuf:"bytes,2,opt,name=forecaster,proto3" json:"forecaster,omitempty"` } -func (x *QueryLatestForecasterScoreRequest) Reset() { - *x = QueryLatestForecasterScoreRequest{} +func (x *QueryGetForecasterScoreEmaRequest) Reset() { + *x = QueryGetForecasterScoreEmaRequest{} if protoimpl.UnsafeEnabled { mi := &file_emissions_v3_query_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70080,32 +70080,32 @@ func (x *QueryLatestForecasterScoreRequest) Reset() { } } -func (x *QueryLatestForecasterScoreRequest) String() string { +func (x *QueryGetForecasterScoreEmaRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueryLatestForecasterScoreRequest) ProtoMessage() {} +func (*QueryGetForecasterScoreEmaRequest) ProtoMessage() {} -// Deprecated: Use QueryLatestForecasterScoreRequest.ProtoReflect.Descriptor instead. -func (*QueryLatestForecasterScoreRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use QueryGetForecasterScoreEmaRequest.ProtoReflect.Descriptor instead. +func (*QueryGetForecasterScoreEmaRequest) Descriptor() ([]byte, []int) { return file_emissions_v3_query_proto_rawDescGZIP(), []int{114} } -func (x *QueryLatestForecasterScoreRequest) GetTopicId() uint64 { +func (x *QueryGetForecasterScoreEmaRequest) GetTopicId() uint64 { if x != nil { return x.TopicId } return 0 } -func (x *QueryLatestForecasterScoreRequest) GetForecaster() string { +func (x *QueryGetForecasterScoreEmaRequest) GetForecaster() string { if x != nil { return x.Forecaster } return "" } -type QueryLatestForecasterScoreResponse struct { +type QueryGetForecasterScoreEmaResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70113,8 +70113,8 @@ type QueryLatestForecasterScoreResponse struct { Score *Score `protobuf:"bytes,1,opt,name=score,proto3" json:"score,omitempty"` } -func (x *QueryLatestForecasterScoreResponse) Reset() { - *x = QueryLatestForecasterScoreResponse{} +func (x *QueryGetForecasterScoreEmaResponse) Reset() { + *x = QueryGetForecasterScoreEmaResponse{} if protoimpl.UnsafeEnabled { mi := &file_emissions_v3_query_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70122,25 +70122,25 @@ func (x *QueryLatestForecasterScoreResponse) Reset() { } } -func (x *QueryLatestForecasterScoreResponse) String() string { +func (x *QueryGetForecasterScoreEmaResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueryLatestForecasterScoreResponse) ProtoMessage() {} +func (*QueryGetForecasterScoreEmaResponse) ProtoMessage() {} -// Deprecated: Use QueryLatestForecasterScoreResponse.ProtoReflect.Descriptor instead. -func (*QueryLatestForecasterScoreResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use QueryGetForecasterScoreEmaResponse.ProtoReflect.Descriptor instead. +func (*QueryGetForecasterScoreEmaResponse) Descriptor() ([]byte, []int) { return file_emissions_v3_query_proto_rawDescGZIP(), []int{115} } -func (x *QueryLatestForecasterScoreResponse) GetScore() *Score { +func (x *QueryGetForecasterScoreEmaResponse) GetScore() *Score { if x != nil { return x.Score } return nil } -type QueryLatestReputerScoreRequest struct { +type QueryGetReputerScoreEmaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70149,8 +70149,8 @@ type QueryLatestReputerScoreRequest struct { Reputer string `protobuf:"bytes,2,opt,name=reputer,proto3" json:"reputer,omitempty"` } -func (x *QueryLatestReputerScoreRequest) Reset() { - *x = QueryLatestReputerScoreRequest{} +func (x *QueryGetReputerScoreEmaRequest) Reset() { + *x = QueryGetReputerScoreEmaRequest{} if protoimpl.UnsafeEnabled { mi := &file_emissions_v3_query_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70158,32 +70158,32 @@ func (x *QueryLatestReputerScoreRequest) Reset() { } } -func (x *QueryLatestReputerScoreRequest) String() string { +func (x *QueryGetReputerScoreEmaRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueryLatestReputerScoreRequest) ProtoMessage() {} +func (*QueryGetReputerScoreEmaRequest) ProtoMessage() {} -// Deprecated: Use QueryLatestReputerScoreRequest.ProtoReflect.Descriptor instead. -func (*QueryLatestReputerScoreRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use QueryGetReputerScoreEmaRequest.ProtoReflect.Descriptor instead. +func (*QueryGetReputerScoreEmaRequest) Descriptor() ([]byte, []int) { return file_emissions_v3_query_proto_rawDescGZIP(), []int{116} } -func (x *QueryLatestReputerScoreRequest) GetTopicId() uint64 { +func (x *QueryGetReputerScoreEmaRequest) GetTopicId() uint64 { if x != nil { return x.TopicId } return 0 } -func (x *QueryLatestReputerScoreRequest) GetReputer() string { +func (x *QueryGetReputerScoreEmaRequest) GetReputer() string { if x != nil { return x.Reputer } return "" } -type QueryLatestReputerScoreResponse struct { +type QueryGetReputerScoreEmaResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -70191,8 +70191,8 @@ type QueryLatestReputerScoreResponse struct { Score *Score `protobuf:"bytes,1,opt,name=score,proto3" json:"score,omitempty"` } -func (x *QueryLatestReputerScoreResponse) Reset() { - *x = QueryLatestReputerScoreResponse{} +func (x *QueryGetReputerScoreEmaResponse) Reset() { + *x = QueryGetReputerScoreEmaResponse{} if protoimpl.UnsafeEnabled { mi := &file_emissions_v3_query_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -70200,18 +70200,18 @@ func (x *QueryLatestReputerScoreResponse) Reset() { } } -func (x *QueryLatestReputerScoreResponse) String() string { +func (x *QueryGetReputerScoreEmaResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueryLatestReputerScoreResponse) ProtoMessage() {} +func (*QueryGetReputerScoreEmaResponse) ProtoMessage() {} -// Deprecated: Use QueryLatestReputerScoreResponse.ProtoReflect.Descriptor instead. -func (*QueryLatestReputerScoreResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use QueryGetReputerScoreEmaResponse.ProtoReflect.Descriptor instead. +func (*QueryGetReputerScoreEmaResponse) Descriptor() ([]byte, []int) { return file_emissions_v3_query_proto_rawDescGZIP(), []int{117} } -func (x *QueryLatestReputerScoreResponse) GetScore() *Score { +func (x *QueryGetReputerScoreEmaResponse) GetScore() *Score { if x != nil { return x.Score } @@ -72002,35 +72002,35 @@ var file_emissions_v3_query_proto_rawDesc = []byte{ 0x73, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x12, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x73, 0x22, 0x55, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, + 0x63, 0x49, 0x64, 0x73, 0x22, 0x55, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x22, 0x4c, 0x0a, 0x1f, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, + 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x5e, 0x0a, 0x21, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, - 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x72, 0x79, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x22, 0x4f, 0x0a, 0x22, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, - 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x72, 0x79, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x55, 0x0a, 0x1e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x45, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x22, 0x4c, 0x0a, 0x1f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x72, 0x22, 0x4c, 0x0a, 0x1f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, @@ -72205,8 +72205,8 @@ var file_emissions_v3_query_proto_rawDesc = []byte{ 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x32, 0x8b, - 0x70, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x6b, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, + 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x32, 0xf9, + 0x6f, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x6b, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, @@ -72813,309 +72813,308 @@ var file_emissions_v3_query_proto_rawDesc = []byte{ 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0xba, 0x01, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x44, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6c, 0x61, 0x74, - 0x65, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x69, 0x6e, - 0x66, 0x65, 0x72, 0x65, 0x72, 0x7d, 0x12, 0xc9, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, 0x6f, - 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x46, - 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x76, 0x33, 0x2f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, - 0x72, 0x7d, 0x12, 0xba, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, - 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x88, 0xe7, 0xb0, 0x2a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x7d, 0x12, - 0xdc, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x12, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x88, 0xe7, 0xb0, - 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x7b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0xe9, - 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x12, 0x36, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, - 0x6f, 0x72, 0x65, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x55, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, - 0x12, 0x48, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, - 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0xd8, 0x01, 0x0a, 0x1b, 0x47, - 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x32, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, - 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x55, 0x6e, 0x74, - 0x69, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x6c, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x12, 0xb4, 0x01, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, + 0x12, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x50, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, - 0x12, 0x43, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, - 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, - 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x7b, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0xe5, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x35, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x36, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, - 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x49, 0x12, 0x47, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x76, 0x33, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x5f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0xcc, 0x01, - 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, + 0x65, 0x72, 0x79, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x45, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x88, + 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, + 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x74, 0x6f, 0x70, + 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x7d, + 0x12, 0xc3, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x47, + 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x45, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x88, - 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x12, 0x40, 0x2f, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x73, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x5f, 0x62, 0x6c, 0x6f, + 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x45, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x88, + 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x2f, 0x7b, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x66, 0x6f, 0x72, 0x65, 0x63, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x12, 0xb4, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6d, 0x61, 0x12, 0x2c, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x45, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, + 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x88, 0xe7, 0xb0, 0x2a, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x6d, 0x61, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, + 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x7d, 0x12, 0xdc, 0x01, + 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x33, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0xc1, 0x01, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, - 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x88, 0xe7, 0xb0, 0x2a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x5f, - 0x63, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x7b, 0x74, 0x6f, 0x70, - 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x7d, - 0x12, 0xe7, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0xe9, 0x01, 0x0a, + 0x1f, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x36, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x55, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x12, 0x48, + 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x7b, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0xd8, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, + 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x55, 0x6e, + 0x74, 0x69, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, + 0x65, 0x63, 0x61, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x55, 0x6e, 0x74, 0x69, 0x6c, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x55, + 0x6e, 0x74, 0x69, 0x6c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x50, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, + 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x66, 0x6f, + 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x75, 0x6e, + 0x74, 0x69, 0x6c, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x7d, 0x12, 0xe5, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x35, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x49, 0x12, 0x47, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, + 0x33, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0xcc, 0x01, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x41, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x88, 0xe7, 0xb0, + 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x12, 0x40, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, + 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x62, 0x6c, 0x6f, + 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0xc1, 0x01, 0x0a, 0x17, 0x47, + 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, + 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x76, 0x33, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, + 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x7d, 0x12, 0xe7, + 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, - 0x75, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x72, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x66, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, - 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x7d, 0x12, 0xee, 0x01, 0x0a, 0x22, 0x47, - 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x39, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x49, 0x6e, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x69, 0x6e, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x66, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, - 0x64, 0x7d, 0x2f, 0x7b, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x7d, 0x12, 0xea, 0x01, 0x0a, 0x21, - 0x47, 0x65, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x65, 0x63, - 0x61, 0x73, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x38, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, - 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, + 0x79, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x43, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x76, 0x33, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x65, - 0x63, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x66, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, - 0x7b, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x7d, 0x12, 0x80, 0x02, 0x0a, 0x2b, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x42, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x48, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, - 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, - 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6b, - 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0xba, 0x01, 0x0a, 0x1a, - 0x47, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, - 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x44, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x35, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, - 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0xc3, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, - 0x4e, 0x61, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x61, + 0x76, 0x33, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, + 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x7d, 0x12, 0xee, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x39, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x46, 0x12, 0x44, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x76, 0x33, 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x66, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, + 0x2f, 0x7b, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x7d, 0x12, 0xea, 0x01, 0x0a, 0x21, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, + 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x38, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x65, + 0x63, 0x61, 0x73, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x45, 0x12, 0x43, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, + 0x2f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x77, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x7d, 0x12, 0x80, 0x02, 0x0a, 0x2b, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x52, 0x65, + 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x42, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x65, 0x76, 0x69, + 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x64, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x48, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 0x2f, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x72, 0x65, 0x76, + 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x5f, + 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x64, + 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0xba, 0x01, 0x0a, 0x1a, 0x47, 0x65, + 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x44, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x54, 0x6f, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x35, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0xc3, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4e, 0x61, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x4e, 0x61, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x2d, 0x12, 0x2b, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, - 0x2f, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0xe4, - 0x01, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x3b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, - 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, - 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x41, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, - 0x34, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6f, - 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x69, - 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, - 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0xf0, 0x01, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, - 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, - 0x74, 0x12, 0x3e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x3f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, - 0x72, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, + 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x61, 0x69, 0x76, + 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x4e, 0x61, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x44, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, - 0x37, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6f, - 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x66, - 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0xf0, 0x01, 0x0a, 0x27, 0x47, 0x65, 0x74, + 0x73, 0x65, 0x22, 0x38, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, + 0x2b, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6e, + 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0xe4, 0x01, 0x0a, + 0x24, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x3b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, + 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, + 0x65, 0x72, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x41, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6f, 0x6e, 0x65, + 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, + 0x65, 0x72, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, + 0x72, 0x65, 0x74, 0x12, 0xf0, 0x01, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, + 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, + 0x3e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, + 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, + 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x44, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6f, 0x6e, 0x65, + 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, + 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, + 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0xf0, 0x01, 0x0a, 0x27, 0x47, 0x65, 0x74, 0x4f, 0x6e, + 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, + 0x65, 0x74, 0x12, 0x3e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, + 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, + 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x44, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, + 0x12, 0x37, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, + 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0xfc, 0x01, 0x0a, 0x2a, 0x47, 0x65, + 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x41, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, + 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x46, 0x6f, 0x72, + 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, + 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, - 0x67, 0x72, 0x65, 0x74, 0x12, 0x3e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, - 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, - 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x39, 0x12, 0x37, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, - 0x33, 0x2f, 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, - 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0xfc, 0x01, 0x0a, 0x2a, - 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x41, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4f, - 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x46, - 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x4f, 0x6e, 0x65, 0x4f, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, - 0x65, 0x72, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x47, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, - 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6f, 0x6e, - 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, - 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0xb9, 0x01, 0x0a, 0x16, 0x47, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x41, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x2d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x35, 0x12, 0x33, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, - 0x2f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x61, - 0x74, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x7b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0xd3, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4e, 0x65, - 0x78, 0x74, 0x43, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, - 0x79, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, - 0x74, 0x43, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x43, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x3a, 0x12, 0x38, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, - 0x33, 0x2f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, - 0x64, 0x2f, 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x42, 0xc0, 0x01, 0x0a, - 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, - 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, - 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x76, 0x33, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x33, - 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x56, 0x33, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x5c, 0x56, 0x33, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x5c, 0x56, 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x33, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x47, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6f, 0x6e, 0x65, 0x5f, + 0x6f, 0x75, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x66, + 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0xb9, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x41, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x2d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x73, 0x41, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x40, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, + 0x33, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x61, 0x74, 0x5f, + 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2f, 0x7b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x7d, 0x12, 0xd3, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, + 0x43, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x78, 0x74, 0x43, + 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x42, 0x79, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x4e, 0x65, 0x78, 0x74, 0x43, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x42, 0x79, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x45, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, + 0x12, 0x38, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x63, 0x68, 0x75, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x2f, + 0x7b, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x7d, 0x42, 0xc0, 0x01, 0x0a, 0x10, 0x63, + 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x42, + 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, + 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x76, 0x33, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x33, 0xa2, 0x02, + 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x56, 0x33, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, + 0x56, 0x33, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, + 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, + 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x33, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -73244,12 +73243,12 @@ var file_emissions_v3_query_proto_goTypes = []interface{}{ (*QueryTopicFeeRevenueResponse)(nil), // 109: emissions.v3.QueryTopicFeeRevenueResponse (*QueryRewardableTopicsRequest)(nil), // 110: emissions.v3.QueryRewardableTopicsRequest (*QueryRewardableTopicsResponse)(nil), // 111: emissions.v3.QueryRewardableTopicsResponse - (*QueryLatestInfererScoreRequest)(nil), // 112: emissions.v3.QueryLatestInfererScoreRequest - (*QueryLatestInfererScoreResponse)(nil), // 113: emissions.v3.QueryLatestInfererScoreResponse - (*QueryLatestForecasterScoreRequest)(nil), // 114: emissions.v3.QueryLatestForecasterScoreRequest - (*QueryLatestForecasterScoreResponse)(nil), // 115: emissions.v3.QueryLatestForecasterScoreResponse - (*QueryLatestReputerScoreRequest)(nil), // 116: emissions.v3.QueryLatestReputerScoreRequest - (*QueryLatestReputerScoreResponse)(nil), // 117: emissions.v3.QueryLatestReputerScoreResponse + (*QueryGetInfererScoreEmaRequest)(nil), // 112: emissions.v3.QueryGetInfererScoreEmaRequest + (*QueryGetInfererScoreEmaResponse)(nil), // 113: emissions.v3.QueryGetInfererScoreEmaResponse + (*QueryGetForecasterScoreEmaRequest)(nil), // 114: emissions.v3.QueryGetForecasterScoreEmaRequest + (*QueryGetForecasterScoreEmaResponse)(nil), // 115: emissions.v3.QueryGetForecasterScoreEmaResponse + (*QueryGetReputerScoreEmaRequest)(nil), // 116: emissions.v3.QueryGetReputerScoreEmaRequest + (*QueryGetReputerScoreEmaResponse)(nil), // 117: emissions.v3.QueryGetReputerScoreEmaResponse (*QueryInferenceScoresUntilBlockRequest)(nil), // 118: emissions.v3.QueryInferenceScoresUntilBlockRequest (*QueryInferenceScoresUntilBlockResponse)(nil), // 119: emissions.v3.QueryInferenceScoresUntilBlockResponse (*QueryWorkerInferenceScoresAtBlockRequest)(nil), // 120: emissions.v3.QueryWorkerInferenceScoresAtBlockRequest @@ -73343,9 +73342,9 @@ var file_emissions_v3_query_proto_depIdxs = []int32{ 163, // 39: emissions.v3.QueryDelegateStakePlacementResponse.delegator_info:type_name -> emissions.v3.DelegatorInfo 159, // 40: emissions.v3.QueryStakeRemovalForReputerAndTopicIdResponse.stake_removal_info:type_name -> emissions.v3.StakeRemovalInfo 160, // 41: emissions.v3.QueryDelegateStakeRemovalResponse.stake_removal_info:type_name -> emissions.v3.DelegateStakeRemovalInfo - 164, // 42: emissions.v3.QueryLatestInfererScoreResponse.score:type_name -> emissions.v3.Score - 164, // 43: emissions.v3.QueryLatestForecasterScoreResponse.score:type_name -> emissions.v3.Score - 164, // 44: emissions.v3.QueryLatestReputerScoreResponse.score:type_name -> emissions.v3.Score + 164, // 42: emissions.v3.QueryGetInfererScoreEmaResponse.score:type_name -> emissions.v3.Score + 164, // 43: emissions.v3.QueryGetForecasterScoreEmaResponse.score:type_name -> emissions.v3.Score + 164, // 44: emissions.v3.QueryGetReputerScoreEmaResponse.score:type_name -> emissions.v3.Score 164, // 45: emissions.v3.QueryInferenceScoresUntilBlockResponse.scores:type_name -> emissions.v3.Score 165, // 46: emissions.v3.QueryWorkerInferenceScoresAtBlockResponse.scores:type_name -> emissions.v3.Scores 164, // 47: emissions.v3.QueryForecastScoresUntilBlockResponse.scores:type_name -> emissions.v3.Score @@ -73404,9 +73403,9 @@ var file_emissions_v3_query_proto_depIdxs = []int32{ 106, // 100: emissions.v3.Query.IsTopicActive:input_type -> emissions.v3.QueryIsTopicActiveRequest 108, // 101: emissions.v3.Query.GetTopicFeeRevenue:input_type -> emissions.v3.QueryTopicFeeRevenueRequest 110, // 102: emissions.v3.Query.GetRewardableTopics:input_type -> emissions.v3.QueryRewardableTopicsRequest - 112, // 103: emissions.v3.Query.GetLatestInfererScore:input_type -> emissions.v3.QueryLatestInfererScoreRequest - 114, // 104: emissions.v3.Query.GetLatestForecasterScore:input_type -> emissions.v3.QueryLatestForecasterScoreRequest - 116, // 105: emissions.v3.Query.GetLatestReputerScore:input_type -> emissions.v3.QueryLatestReputerScoreRequest + 112, // 103: emissions.v3.Query.GetInfererScoreEma:input_type -> emissions.v3.QueryGetInfererScoreEmaRequest + 114, // 104: emissions.v3.Query.GetForecasterScoreEma:input_type -> emissions.v3.QueryGetForecasterScoreEmaRequest + 116, // 105: emissions.v3.Query.GetReputerScoreEma:input_type -> emissions.v3.QueryGetReputerScoreEmaRequest 118, // 106: emissions.v3.Query.GetInferenceScoresUntilBlock:input_type -> emissions.v3.QueryInferenceScoresUntilBlockRequest 120, // 107: emissions.v3.Query.GetWorkerInferenceScoresAtBlock:input_type -> emissions.v3.QueryWorkerInferenceScoresAtBlockRequest 122, // 108: emissions.v3.Query.GetForecastScoresUntilBlock:input_type -> emissions.v3.QueryForecastScoresUntilBlockRequest @@ -73475,9 +73474,9 @@ var file_emissions_v3_query_proto_depIdxs = []int32{ 107, // 171: emissions.v3.Query.IsTopicActive:output_type -> emissions.v3.QueryIsTopicActiveResponse 109, // 172: emissions.v3.Query.GetTopicFeeRevenue:output_type -> emissions.v3.QueryTopicFeeRevenueResponse 111, // 173: emissions.v3.Query.GetRewardableTopics:output_type -> emissions.v3.QueryRewardableTopicsResponse - 113, // 174: emissions.v3.Query.GetLatestInfererScore:output_type -> emissions.v3.QueryLatestInfererScoreResponse - 115, // 175: emissions.v3.Query.GetLatestForecasterScore:output_type -> emissions.v3.QueryLatestForecasterScoreResponse - 117, // 176: emissions.v3.Query.GetLatestReputerScore:output_type -> emissions.v3.QueryLatestReputerScoreResponse + 113, // 174: emissions.v3.Query.GetInfererScoreEma:output_type -> emissions.v3.QueryGetInfererScoreEmaResponse + 115, // 175: emissions.v3.Query.GetForecasterScoreEma:output_type -> emissions.v3.QueryGetForecasterScoreEmaResponse + 117, // 176: emissions.v3.Query.GetReputerScoreEma:output_type -> emissions.v3.QueryGetReputerScoreEmaResponse 119, // 177: emissions.v3.Query.GetInferenceScoresUntilBlock:output_type -> emissions.v3.QueryInferenceScoresUntilBlockResponse 121, // 178: emissions.v3.Query.GetWorkerInferenceScoresAtBlock:output_type -> emissions.v3.QueryWorkerInferenceScoresAtBlockResponse 123, // 179: emissions.v3.Query.GetForecastScoresUntilBlock:output_type -> emissions.v3.QueryForecastScoresUntilBlockResponse @@ -74864,7 +74863,7 @@ func file_emissions_v3_query_proto_init() { } } file_emissions_v3_query_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryLatestInfererScoreRequest); i { + switch v := v.(*QueryGetInfererScoreEmaRequest); i { case 0: return &v.state case 1: @@ -74876,7 +74875,7 @@ func file_emissions_v3_query_proto_init() { } } file_emissions_v3_query_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryLatestInfererScoreResponse); i { + switch v := v.(*QueryGetInfererScoreEmaResponse); i { case 0: return &v.state case 1: @@ -74888,7 +74887,7 @@ func file_emissions_v3_query_proto_init() { } } file_emissions_v3_query_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryLatestForecasterScoreRequest); i { + switch v := v.(*QueryGetForecasterScoreEmaRequest); i { case 0: return &v.state case 1: @@ -74900,7 +74899,7 @@ func file_emissions_v3_query_proto_init() { } } file_emissions_v3_query_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryLatestForecasterScoreResponse); i { + switch v := v.(*QueryGetForecasterScoreEmaResponse); i { case 0: return &v.state case 1: @@ -74912,7 +74911,7 @@ func file_emissions_v3_query_proto_init() { } } file_emissions_v3_query_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryLatestReputerScoreRequest); i { + switch v := v.(*QueryGetReputerScoreEmaRequest); i { case 0: return &v.state case 1: @@ -74924,7 +74923,7 @@ func file_emissions_v3_query_proto_init() { } } file_emissions_v3_query_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QueryLatestReputerScoreResponse); i { + switch v := v.(*QueryGetReputerScoreEmaResponse); i { case 0: return &v.state case 1: diff --git a/x/emissions/api/v3/query_grpc.pb.go b/x/emissions/api/v3/query_grpc.pb.go index fbc330e28..4b88f236d 100644 --- a/x/emissions/api/v3/query_grpc.pb.go +++ b/x/emissions/api/v3/query_grpc.pb.go @@ -69,9 +69,9 @@ const ( Query_IsTopicActive_FullMethodName = "/emissions.v3.Query/IsTopicActive" Query_GetTopicFeeRevenue_FullMethodName = "/emissions.v3.Query/GetTopicFeeRevenue" Query_GetRewardableTopics_FullMethodName = "/emissions.v3.Query/GetRewardableTopics" - Query_GetLatestInfererScore_FullMethodName = "/emissions.v3.Query/GetLatestInfererScore" - Query_GetLatestForecasterScore_FullMethodName = "/emissions.v3.Query/GetLatestForecasterScore" - Query_GetLatestReputerScore_FullMethodName = "/emissions.v3.Query/GetLatestReputerScore" + Query_GetInfererScoreEma_FullMethodName = "/emissions.v3.Query/GetInfererScoreEma" + Query_GetForecasterScoreEma_FullMethodName = "/emissions.v3.Query/GetForecasterScoreEma" + Query_GetReputerScoreEma_FullMethodName = "/emissions.v3.Query/GetReputerScoreEma" Query_GetInferenceScoresUntilBlock_FullMethodName = "/emissions.v3.Query/GetInferenceScoresUntilBlock" Query_GetWorkerInferenceScoresAtBlock_FullMethodName = "/emissions.v3.Query/GetWorkerInferenceScoresAtBlock" Query_GetForecastScoresUntilBlock_FullMethodName = "/emissions.v3.Query/GetForecastScoresUntilBlock" @@ -147,9 +147,9 @@ type QueryClient interface { IsTopicActive(ctx context.Context, in *QueryIsTopicActiveRequest, opts ...grpc.CallOption) (*QueryIsTopicActiveResponse, error) GetTopicFeeRevenue(ctx context.Context, in *QueryTopicFeeRevenueRequest, opts ...grpc.CallOption) (*QueryTopicFeeRevenueResponse, error) GetRewardableTopics(ctx context.Context, in *QueryRewardableTopicsRequest, opts ...grpc.CallOption) (*QueryRewardableTopicsResponse, error) - GetLatestInfererScore(ctx context.Context, in *QueryLatestInfererScoreRequest, opts ...grpc.CallOption) (*QueryLatestInfererScoreResponse, error) - GetLatestForecasterScore(ctx context.Context, in *QueryLatestForecasterScoreRequest, opts ...grpc.CallOption) (*QueryLatestForecasterScoreResponse, error) - GetLatestReputerScore(ctx context.Context, in *QueryLatestReputerScoreRequest, opts ...grpc.CallOption) (*QueryLatestReputerScoreResponse, error) + GetInfererScoreEma(ctx context.Context, in *QueryGetInfererScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetInfererScoreEmaResponse, error) + GetForecasterScoreEma(ctx context.Context, in *QueryGetForecasterScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetForecasterScoreEmaResponse, error) + GetReputerScoreEma(ctx context.Context, in *QueryGetReputerScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetReputerScoreEmaResponse, error) GetInferenceScoresUntilBlock(ctx context.Context, in *QueryInferenceScoresUntilBlockRequest, opts ...grpc.CallOption) (*QueryInferenceScoresUntilBlockResponse, error) GetWorkerInferenceScoresAtBlock(ctx context.Context, in *QueryWorkerInferenceScoresAtBlockRequest, opts ...grpc.CallOption) (*QueryWorkerInferenceScoresAtBlockResponse, error) GetForecastScoresUntilBlock(ctx context.Context, in *QueryForecastScoresUntilBlockRequest, opts ...grpc.CallOption) (*QueryForecastScoresUntilBlockResponse, error) @@ -628,27 +628,27 @@ func (c *queryClient) GetRewardableTopics(ctx context.Context, in *QueryRewardab return out, nil } -func (c *queryClient) GetLatestInfererScore(ctx context.Context, in *QueryLatestInfererScoreRequest, opts ...grpc.CallOption) (*QueryLatestInfererScoreResponse, error) { - out := new(QueryLatestInfererScoreResponse) - err := c.cc.Invoke(ctx, Query_GetLatestInfererScore_FullMethodName, in, out, opts...) +func (c *queryClient) GetInfererScoreEma(ctx context.Context, in *QueryGetInfererScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetInfererScoreEmaResponse, error) { + out := new(QueryGetInfererScoreEmaResponse) + err := c.cc.Invoke(ctx, Query_GetInfererScoreEma_FullMethodName, in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *queryClient) GetLatestForecasterScore(ctx context.Context, in *QueryLatestForecasterScoreRequest, opts ...grpc.CallOption) (*QueryLatestForecasterScoreResponse, error) { - out := new(QueryLatestForecasterScoreResponse) - err := c.cc.Invoke(ctx, Query_GetLatestForecasterScore_FullMethodName, in, out, opts...) +func (c *queryClient) GetForecasterScoreEma(ctx context.Context, in *QueryGetForecasterScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetForecasterScoreEmaResponse, error) { + out := new(QueryGetForecasterScoreEmaResponse) + err := c.cc.Invoke(ctx, Query_GetForecasterScoreEma_FullMethodName, in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *queryClient) GetLatestReputerScore(ctx context.Context, in *QueryLatestReputerScoreRequest, opts ...grpc.CallOption) (*QueryLatestReputerScoreResponse, error) { - out := new(QueryLatestReputerScoreResponse) - err := c.cc.Invoke(ctx, Query_GetLatestReputerScore_FullMethodName, in, out, opts...) +func (c *queryClient) GetReputerScoreEma(ctx context.Context, in *QueryGetReputerScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetReputerScoreEmaResponse, error) { + out := new(QueryGetReputerScoreEmaResponse) + err := c.cc.Invoke(ctx, Query_GetReputerScoreEma_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -872,9 +872,9 @@ type QueryServer interface { IsTopicActive(context.Context, *QueryIsTopicActiveRequest) (*QueryIsTopicActiveResponse, error) GetTopicFeeRevenue(context.Context, *QueryTopicFeeRevenueRequest) (*QueryTopicFeeRevenueResponse, error) GetRewardableTopics(context.Context, *QueryRewardableTopicsRequest) (*QueryRewardableTopicsResponse, error) - GetLatestInfererScore(context.Context, *QueryLatestInfererScoreRequest) (*QueryLatestInfererScoreResponse, error) - GetLatestForecasterScore(context.Context, *QueryLatestForecasterScoreRequest) (*QueryLatestForecasterScoreResponse, error) - GetLatestReputerScore(context.Context, *QueryLatestReputerScoreRequest) (*QueryLatestReputerScoreResponse, error) + GetInfererScoreEma(context.Context, *QueryGetInfererScoreEmaRequest) (*QueryGetInfererScoreEmaResponse, error) + GetForecasterScoreEma(context.Context, *QueryGetForecasterScoreEmaRequest) (*QueryGetForecasterScoreEmaResponse, error) + GetReputerScoreEma(context.Context, *QueryGetReputerScoreEmaRequest) (*QueryGetReputerScoreEmaResponse, error) GetInferenceScoresUntilBlock(context.Context, *QueryInferenceScoresUntilBlockRequest) (*QueryInferenceScoresUntilBlockResponse, error) GetWorkerInferenceScoresAtBlock(context.Context, *QueryWorkerInferenceScoresAtBlockRequest) (*QueryWorkerInferenceScoresAtBlockResponse, error) GetForecastScoresUntilBlock(context.Context, *QueryForecastScoresUntilBlockRequest) (*QueryForecastScoresUntilBlockResponse, error) @@ -1050,14 +1050,14 @@ func (UnimplementedQueryServer) GetTopicFeeRevenue(context.Context, *QueryTopicF func (UnimplementedQueryServer) GetRewardableTopics(context.Context, *QueryRewardableTopicsRequest) (*QueryRewardableTopicsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetRewardableTopics not implemented") } -func (UnimplementedQueryServer) GetLatestInfererScore(context.Context, *QueryLatestInfererScoreRequest) (*QueryLatestInfererScoreResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetLatestInfererScore not implemented") +func (UnimplementedQueryServer) GetInfererScoreEma(context.Context, *QueryGetInfererScoreEmaRequest) (*QueryGetInfererScoreEmaResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInfererScoreEma not implemented") } -func (UnimplementedQueryServer) GetLatestForecasterScore(context.Context, *QueryLatestForecasterScoreRequest) (*QueryLatestForecasterScoreResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetLatestForecasterScore not implemented") +func (UnimplementedQueryServer) GetForecasterScoreEma(context.Context, *QueryGetForecasterScoreEmaRequest) (*QueryGetForecasterScoreEmaResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetForecasterScoreEma not implemented") } -func (UnimplementedQueryServer) GetLatestReputerScore(context.Context, *QueryLatestReputerScoreRequest) (*QueryLatestReputerScoreResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetLatestReputerScore not implemented") +func (UnimplementedQueryServer) GetReputerScoreEma(context.Context, *QueryGetReputerScoreEmaRequest) (*QueryGetReputerScoreEmaResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetReputerScoreEma not implemented") } func (UnimplementedQueryServer) GetInferenceScoresUntilBlock(context.Context, *QueryInferenceScoresUntilBlockRequest) (*QueryInferenceScoresUntilBlockResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetInferenceScoresUntilBlock not implemented") @@ -2026,56 +2026,56 @@ func _Query_GetRewardableTopics_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } -func _Query_GetLatestInfererScore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryLatestInfererScoreRequest) +func _Query_GetInfererScoreEma_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGetInfererScoreEmaRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).GetLatestInfererScore(ctx, in) + return srv.(QueryServer).GetInfererScoreEma(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Query_GetLatestInfererScore_FullMethodName, + FullMethod: Query_GetInfererScoreEma_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).GetLatestInfererScore(ctx, req.(*QueryLatestInfererScoreRequest)) + return srv.(QueryServer).GetInfererScoreEma(ctx, req.(*QueryGetInfererScoreEmaRequest)) } return interceptor(ctx, in, info, handler) } -func _Query_GetLatestForecasterScore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryLatestForecasterScoreRequest) +func _Query_GetForecasterScoreEma_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGetForecasterScoreEmaRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).GetLatestForecasterScore(ctx, in) + return srv.(QueryServer).GetForecasterScoreEma(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Query_GetLatestForecasterScore_FullMethodName, + FullMethod: Query_GetForecasterScoreEma_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).GetLatestForecasterScore(ctx, req.(*QueryLatestForecasterScoreRequest)) + return srv.(QueryServer).GetForecasterScoreEma(ctx, req.(*QueryGetForecasterScoreEmaRequest)) } return interceptor(ctx, in, info, handler) } -func _Query_GetLatestReputerScore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryLatestReputerScoreRequest) +func _Query_GetReputerScoreEma_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGetReputerScoreEmaRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).GetLatestReputerScore(ctx, in) + return srv.(QueryServer).GetReputerScoreEma(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: Query_GetLatestReputerScore_FullMethodName, + FullMethod: Query_GetReputerScoreEma_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).GetLatestReputerScore(ctx, req.(*QueryLatestReputerScoreRequest)) + return srv.(QueryServer).GetReputerScoreEma(ctx, req.(*QueryGetReputerScoreEmaRequest)) } return interceptor(ctx, in, info, handler) } @@ -2612,16 +2612,16 @@ var Query_ServiceDesc = grpc.ServiceDesc{ Handler: _Query_GetRewardableTopics_Handler, }, { - MethodName: "GetLatestInfererScore", - Handler: _Query_GetLatestInfererScore_Handler, + MethodName: "GetInfererScoreEma", + Handler: _Query_GetInfererScoreEma_Handler, }, { - MethodName: "GetLatestForecasterScore", - Handler: _Query_GetLatestForecasterScore_Handler, + MethodName: "GetForecasterScoreEma", + Handler: _Query_GetForecasterScoreEma_Handler, }, { - MethodName: "GetLatestReputerScore", - Handler: _Query_GetLatestReputerScore_Handler, + MethodName: "GetReputerScoreEma", + Handler: _Query_GetReputerScoreEma_Handler, }, { MethodName: "GetInferenceScoresUntilBlock", diff --git a/x/emissions/api/v3/topic.pulsar.go b/x/emissions/api/v3/topic.pulsar.go index 46c14c798..33761c9b7 100644 --- a/x/emissions/api/v3/topic.pulsar.go +++ b/x/emissions/api/v3/topic.pulsar.go @@ -14,20 +14,24 @@ import ( ) var ( - md_Topic protoreflect.MessageDescriptor - fd_Topic_id protoreflect.FieldDescriptor - fd_Topic_creator protoreflect.FieldDescriptor - fd_Topic_metadata protoreflect.FieldDescriptor - fd_Topic_loss_method protoreflect.FieldDescriptor - fd_Topic_epoch_last_ended protoreflect.FieldDescriptor - fd_Topic_epoch_length protoreflect.FieldDescriptor - fd_Topic_ground_truth_lag protoreflect.FieldDescriptor - fd_Topic_p_norm protoreflect.FieldDescriptor - fd_Topic_alpha_regret protoreflect.FieldDescriptor - fd_Topic_allow_negative protoreflect.FieldDescriptor - fd_Topic_epsilon protoreflect.FieldDescriptor - fd_Topic_initial_regret protoreflect.FieldDescriptor - fd_Topic_worker_submission_window protoreflect.FieldDescriptor + md_Topic protoreflect.MessageDescriptor + fd_Topic_id protoreflect.FieldDescriptor + fd_Topic_creator protoreflect.FieldDescriptor + fd_Topic_metadata protoreflect.FieldDescriptor + fd_Topic_loss_method protoreflect.FieldDescriptor + fd_Topic_epoch_last_ended protoreflect.FieldDescriptor + fd_Topic_epoch_length protoreflect.FieldDescriptor + fd_Topic_ground_truth_lag protoreflect.FieldDescriptor + fd_Topic_p_norm protoreflect.FieldDescriptor + fd_Topic_alpha_regret protoreflect.FieldDescriptor + fd_Topic_allow_negative protoreflect.FieldDescriptor + fd_Topic_epsilon protoreflect.FieldDescriptor + fd_Topic_initial_regret protoreflect.FieldDescriptor + fd_Topic_worker_submission_window protoreflect.FieldDescriptor + fd_Topic_merit_sortition_alpha protoreflect.FieldDescriptor + fd_Topic_active_inferer_quantile protoreflect.FieldDescriptor + fd_Topic_active_forecaster_quantile protoreflect.FieldDescriptor + fd_Topic_active_reputer_quantile protoreflect.FieldDescriptor ) func init() { @@ -46,6 +50,10 @@ func init() { fd_Topic_epsilon = md_Topic.Fields().ByName("epsilon") fd_Topic_initial_regret = md_Topic.Fields().ByName("initial_regret") fd_Topic_worker_submission_window = md_Topic.Fields().ByName("worker_submission_window") + fd_Topic_merit_sortition_alpha = md_Topic.Fields().ByName("merit_sortition_alpha") + fd_Topic_active_inferer_quantile = md_Topic.Fields().ByName("active_inferer_quantile") + fd_Topic_active_forecaster_quantile = md_Topic.Fields().ByName("active_forecaster_quantile") + fd_Topic_active_reputer_quantile = md_Topic.Fields().ByName("active_reputer_quantile") } var _ protoreflect.Message = (*fastReflection_Topic)(nil) @@ -191,6 +199,30 @@ func (x *fastReflection_Topic) Range(f func(protoreflect.FieldDescriptor, protor return } } + if x.MeritSortitionAlpha != "" { + value := protoreflect.ValueOfString(x.MeritSortitionAlpha) + if !f(fd_Topic_merit_sortition_alpha, value) { + return + } + } + if x.ActiveInfererQuantile != "" { + value := protoreflect.ValueOfString(x.ActiveInfererQuantile) + if !f(fd_Topic_active_inferer_quantile, value) { + return + } + } + if x.ActiveForecasterQuantile != "" { + value := protoreflect.ValueOfString(x.ActiveForecasterQuantile) + if !f(fd_Topic_active_forecaster_quantile, value) { + return + } + } + if x.ActiveReputerQuantile != "" { + value := protoreflect.ValueOfString(x.ActiveReputerQuantile) + if !f(fd_Topic_active_reputer_quantile, value) { + return + } + } } // Has reports whether a field is populated. @@ -232,6 +264,14 @@ func (x *fastReflection_Topic) Has(fd protoreflect.FieldDescriptor) bool { return x.InitialRegret != "" case "emissions.v3.Topic.worker_submission_window": return x.WorkerSubmissionWindow != int64(0) + case "emissions.v3.Topic.merit_sortition_alpha": + return x.MeritSortitionAlpha != "" + case "emissions.v3.Topic.active_inferer_quantile": + return x.ActiveInfererQuantile != "" + case "emissions.v3.Topic.active_forecaster_quantile": + return x.ActiveForecasterQuantile != "" + case "emissions.v3.Topic.active_reputer_quantile": + return x.ActiveReputerQuantile != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.Topic")) @@ -274,6 +314,14 @@ func (x *fastReflection_Topic) Clear(fd protoreflect.FieldDescriptor) { x.InitialRegret = "" case "emissions.v3.Topic.worker_submission_window": x.WorkerSubmissionWindow = int64(0) + case "emissions.v3.Topic.merit_sortition_alpha": + x.MeritSortitionAlpha = "" + case "emissions.v3.Topic.active_inferer_quantile": + x.ActiveInfererQuantile = "" + case "emissions.v3.Topic.active_forecaster_quantile": + x.ActiveForecasterQuantile = "" + case "emissions.v3.Topic.active_reputer_quantile": + x.ActiveReputerQuantile = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.Topic")) @@ -329,6 +377,18 @@ func (x *fastReflection_Topic) Get(descriptor protoreflect.FieldDescriptor) prot case "emissions.v3.Topic.worker_submission_window": value := x.WorkerSubmissionWindow return protoreflect.ValueOfInt64(value) + case "emissions.v3.Topic.merit_sortition_alpha": + value := x.MeritSortitionAlpha + return protoreflect.ValueOfString(value) + case "emissions.v3.Topic.active_inferer_quantile": + value := x.ActiveInfererQuantile + return protoreflect.ValueOfString(value) + case "emissions.v3.Topic.active_forecaster_quantile": + value := x.ActiveForecasterQuantile + return protoreflect.ValueOfString(value) + case "emissions.v3.Topic.active_reputer_quantile": + value := x.ActiveReputerQuantile + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.Topic")) @@ -375,6 +435,14 @@ func (x *fastReflection_Topic) Set(fd protoreflect.FieldDescriptor, value protor x.InitialRegret = value.Interface().(string) case "emissions.v3.Topic.worker_submission_window": x.WorkerSubmissionWindow = value.Int() + case "emissions.v3.Topic.merit_sortition_alpha": + x.MeritSortitionAlpha = value.Interface().(string) + case "emissions.v3.Topic.active_inferer_quantile": + x.ActiveInfererQuantile = value.Interface().(string) + case "emissions.v3.Topic.active_forecaster_quantile": + x.ActiveForecasterQuantile = value.Interface().(string) + case "emissions.v3.Topic.active_reputer_quantile": + x.ActiveReputerQuantile = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.Topic")) @@ -421,6 +489,14 @@ func (x *fastReflection_Topic) Mutable(fd protoreflect.FieldDescriptor) protoref panic(fmt.Errorf("field initial_regret of message emissions.v3.Topic is not mutable")) case "emissions.v3.Topic.worker_submission_window": panic(fmt.Errorf("field worker_submission_window of message emissions.v3.Topic is not mutable")) + case "emissions.v3.Topic.merit_sortition_alpha": + panic(fmt.Errorf("field merit_sortition_alpha of message emissions.v3.Topic is not mutable")) + case "emissions.v3.Topic.active_inferer_quantile": + panic(fmt.Errorf("field active_inferer_quantile of message emissions.v3.Topic is not mutable")) + case "emissions.v3.Topic.active_forecaster_quantile": + panic(fmt.Errorf("field active_forecaster_quantile of message emissions.v3.Topic is not mutable")) + case "emissions.v3.Topic.active_reputer_quantile": + panic(fmt.Errorf("field active_reputer_quantile of message emissions.v3.Topic is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.Topic")) @@ -460,6 +536,14 @@ func (x *fastReflection_Topic) NewField(fd protoreflect.FieldDescriptor) protore return protoreflect.ValueOfString("") case "emissions.v3.Topic.worker_submission_window": return protoreflect.ValueOfInt64(int64(0)) + case "emissions.v3.Topic.merit_sortition_alpha": + return protoreflect.ValueOfString("") + case "emissions.v3.Topic.active_inferer_quantile": + return protoreflect.ValueOfString("") + case "emissions.v3.Topic.active_forecaster_quantile": + return protoreflect.ValueOfString("") + case "emissions.v3.Topic.active_reputer_quantile": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.Topic")) @@ -575,6 +659,22 @@ func (x *fastReflection_Topic) ProtoMethods() *protoiface.Methods { if x.WorkerSubmissionWindow != 0 { n += 2 + runtime.Sov(uint64(x.WorkerSubmissionWindow)) } + l = len(x.MeritSortitionAlpha) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.ActiveInfererQuantile) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.ActiveForecasterQuantile) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.ActiveReputerQuantile) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -604,6 +704,42 @@ func (x *fastReflection_Topic) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.ActiveReputerQuantile) > 0 { + i -= len(x.ActiveReputerQuantile) + copy(dAtA[i:], x.ActiveReputerQuantile) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ActiveReputerQuantile))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + } + if len(x.ActiveForecasterQuantile) > 0 { + i -= len(x.ActiveForecasterQuantile) + copy(dAtA[i:], x.ActiveForecasterQuantile) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ActiveForecasterQuantile))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + } + if len(x.ActiveInfererQuantile) > 0 { + i -= len(x.ActiveInfererQuantile) + copy(dAtA[i:], x.ActiveInfererQuantile) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ActiveInfererQuantile))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + } + if len(x.MeritSortitionAlpha) > 0 { + i -= len(x.MeritSortitionAlpha) + copy(dAtA[i:], x.MeritSortitionAlpha) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MeritSortitionAlpha))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } if x.WorkerSubmissionWindow != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.WorkerSubmissionWindow)) i-- @@ -1080,6 +1216,134 @@ func (x *fastReflection_Topic) ProtoMethods() *protoiface.Methods { break } } + case 18: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MeritSortitionAlpha", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.MeritSortitionAlpha = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 19: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ActiveInfererQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ActiveInfererQuantile = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 20: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ActiveForecasterQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ActiveForecasterQuantile = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 21: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ActiveReputerQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ActiveReputerQuantile = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -3127,6 +3391,12 @@ type Topic struct { Epsilon string `protobuf:"bytes,15,opt,name=epsilon,proto3" json:"epsilon,omitempty"` InitialRegret string `protobuf:"bytes,16,opt,name=initial_regret,json=initialRegret,proto3" json:"initial_regret,omitempty"` WorkerSubmissionWindow int64 `protobuf:"varint,17,opt,name=worker_submission_window,json=workerSubmissionWindow,proto3" json:"worker_submission_window,omitempty"` + // alpha parameter to weight previous score EMA importance in + // filtering the active set of inferers, forecasters, and reputers + MeritSortitionAlpha string `protobuf:"bytes,18,opt,name=merit_sortition_alpha,json=meritSortitionAlpha,proto3" json:"merit_sortition_alpha,omitempty"` + ActiveInfererQuantile string `protobuf:"bytes,19,opt,name=active_inferer_quantile,json=activeInfererQuantile,proto3" json:"active_inferer_quantile,omitempty"` + ActiveForecasterQuantile string `protobuf:"bytes,20,opt,name=active_forecaster_quantile,json=activeForecasterQuantile,proto3" json:"active_forecaster_quantile,omitempty"` + ActiveReputerQuantile string `protobuf:"bytes,21,opt,name=active_reputer_quantile,json=activeReputerQuantile,proto3" json:"active_reputer_quantile,omitempty"` } func (x *Topic) Reset() { @@ -3240,6 +3510,34 @@ func (x *Topic) GetWorkerSubmissionWindow() int64 { return 0 } +func (x *Topic) GetMeritSortitionAlpha() string { + if x != nil { + return x.MeritSortitionAlpha + } + return "" +} + +func (x *Topic) GetActiveInfererQuantile() string { + if x != nil { + return x.ActiveInfererQuantile + } + return "" +} + +func (x *Topic) GetActiveForecasterQuantile() string { + if x != nil { + return x.ActiveForecasterQuantile + } + return "" +} + +func (x *Topic) GetActiveReputerQuantile() string { + if x != nil { + return x.ActiveReputerQuantile + } + return "" +} + type TopicList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3404,7 +3702,7 @@ var file_emissions_v3_topic_proto_rawDesc = []byte{ 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x1a, 0x18, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x2f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, - 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf9, 0x05, 0x0a, 0x05, 0x54, 0x6f, 0x70, + 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x09, 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, @@ -3447,47 +3745,75 @@ var file_emissions_v3_topic_proto_rawDesc = []byte{ 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x07, - 0x10, 0x08, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6c, - 0x6f, 0x67, 0x69, 0x63, 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, - 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x61, 0x72, 0x67, 0x22, 0x38, 0x0a, 0x09, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x22, 0x78, - 0x0a, 0x15, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, - 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x29, 0x0a, 0x05, 0x6e, 0x6f, - 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x05, - 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x4a, 0x04, 0x08, 0x02, 0x10, - 0x03, 0x52, 0x05, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x2d, 0x0a, 0x08, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0x7f, 0x0a, 0x11, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, 0x69, 0x72, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, - 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, - 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, - 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, - 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0xc0, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x42, 0x0a, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, - 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x45, - 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, - 0x33, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, - 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x12, 0x6b, 0x0a, 0x15, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, + 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x13, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x53, + 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x6f, 0x0a, + 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x5f, + 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, + 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, + 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x49, + 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x75, + 0x0a, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x18, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x51, 0x75, 0x61, + 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, + 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, + 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, + 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x51, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x06, + 0x10, 0x07, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x52, 0x0a, + 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x10, 0x69, 0x6e, 0x66, + 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0b, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x22, 0x38, 0x0a, 0x09, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x06, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x73, 0x22, 0x78, 0x0a, 0x15, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x65, 0x64, 0x41, 0x63, 0x74, 0x6f, 0x72, 0x4e, 0x6f, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x29, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4e, + 0x6f, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, + 0x01, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x05, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x2d, + 0x0a, 0x08, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0x7f, 0x0a, + 0x11, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x61, + 0x69, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x4f, 0x0a, + 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, + 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, + 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0xc0, + 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x42, 0x0a, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, + 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, + 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x76, 0x33, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x33, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x5c, 0x56, 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, + 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/x/emissions/api/v3/tx.pulsar.go b/x/emissions/api/v3/tx.pulsar.go index 890b0f252..f06b30189 100644 --- a/x/emissions/api/v3/tx.pulsar.go +++ b/x/emissions/api/v3/tx.pulsar.go @@ -7198,17 +7198,21 @@ func (x *fastReflection_MsgUpdateParamsResponse) ProtoMethods() *protoiface.Meth } var ( - md_MsgCreateNewTopic protoreflect.MessageDescriptor - fd_MsgCreateNewTopic_creator protoreflect.FieldDescriptor - fd_MsgCreateNewTopic_metadata protoreflect.FieldDescriptor - fd_MsgCreateNewTopic_loss_method protoreflect.FieldDescriptor - fd_MsgCreateNewTopic_epoch_length protoreflect.FieldDescriptor - fd_MsgCreateNewTopic_ground_truth_lag protoreflect.FieldDescriptor - fd_MsgCreateNewTopic_p_norm protoreflect.FieldDescriptor - fd_MsgCreateNewTopic_alpha_regret protoreflect.FieldDescriptor - fd_MsgCreateNewTopic_allow_negative protoreflect.FieldDescriptor - fd_MsgCreateNewTopic_epsilon protoreflect.FieldDescriptor - fd_MsgCreateNewTopic_worker_submission_window protoreflect.FieldDescriptor + md_MsgCreateNewTopic protoreflect.MessageDescriptor + fd_MsgCreateNewTopic_creator protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_metadata protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_loss_method protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_epoch_length protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_ground_truth_lag protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_p_norm protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_alpha_regret protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_allow_negative protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_epsilon protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_worker_submission_window protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_merit_sortition_alpha protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_active_inferer_quantile protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_active_forecaster_quantile protoreflect.FieldDescriptor + fd_MsgCreateNewTopic_active_reputer_quantile protoreflect.FieldDescriptor ) func init() { @@ -7224,6 +7228,10 @@ func init() { fd_MsgCreateNewTopic_allow_negative = md_MsgCreateNewTopic.Fields().ByName("allow_negative") fd_MsgCreateNewTopic_epsilon = md_MsgCreateNewTopic.Fields().ByName("epsilon") fd_MsgCreateNewTopic_worker_submission_window = md_MsgCreateNewTopic.Fields().ByName("worker_submission_window") + fd_MsgCreateNewTopic_merit_sortition_alpha = md_MsgCreateNewTopic.Fields().ByName("merit_sortition_alpha") + fd_MsgCreateNewTopic_active_inferer_quantile = md_MsgCreateNewTopic.Fields().ByName("active_inferer_quantile") + fd_MsgCreateNewTopic_active_forecaster_quantile = md_MsgCreateNewTopic.Fields().ByName("active_forecaster_quantile") + fd_MsgCreateNewTopic_active_reputer_quantile = md_MsgCreateNewTopic.Fields().ByName("active_reputer_quantile") } var _ protoreflect.Message = (*fastReflection_MsgCreateNewTopic)(nil) @@ -7351,6 +7359,30 @@ func (x *fastReflection_MsgCreateNewTopic) Range(f func(protoreflect.FieldDescri return } } + if x.MeritSortitionAlpha != "" { + value := protoreflect.ValueOfString(x.MeritSortitionAlpha) + if !f(fd_MsgCreateNewTopic_merit_sortition_alpha, value) { + return + } + } + if x.ActiveInfererQuantile != "" { + value := protoreflect.ValueOfString(x.ActiveInfererQuantile) + if !f(fd_MsgCreateNewTopic_active_inferer_quantile, value) { + return + } + } + if x.ActiveForecasterQuantile != "" { + value := protoreflect.ValueOfString(x.ActiveForecasterQuantile) + if !f(fd_MsgCreateNewTopic_active_forecaster_quantile, value) { + return + } + } + if x.ActiveReputerQuantile != "" { + value := protoreflect.ValueOfString(x.ActiveReputerQuantile) + if !f(fd_MsgCreateNewTopic_active_reputer_quantile, value) { + return + } + } } // Has reports whether a field is populated. @@ -7386,6 +7418,14 @@ func (x *fastReflection_MsgCreateNewTopic) Has(fd protoreflect.FieldDescriptor) return x.Epsilon != "" case "emissions.v3.MsgCreateNewTopic.worker_submission_window": return x.WorkerSubmissionWindow != int64(0) + case "emissions.v3.MsgCreateNewTopic.merit_sortition_alpha": + return x.MeritSortitionAlpha != "" + case "emissions.v3.MsgCreateNewTopic.active_inferer_quantile": + return x.ActiveInfererQuantile != "" + case "emissions.v3.MsgCreateNewTopic.active_forecaster_quantile": + return x.ActiveForecasterQuantile != "" + case "emissions.v3.MsgCreateNewTopic.active_reputer_quantile": + return x.ActiveReputerQuantile != "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.MsgCreateNewTopic")) @@ -7422,6 +7462,14 @@ func (x *fastReflection_MsgCreateNewTopic) Clear(fd protoreflect.FieldDescriptor x.Epsilon = "" case "emissions.v3.MsgCreateNewTopic.worker_submission_window": x.WorkerSubmissionWindow = int64(0) + case "emissions.v3.MsgCreateNewTopic.merit_sortition_alpha": + x.MeritSortitionAlpha = "" + case "emissions.v3.MsgCreateNewTopic.active_inferer_quantile": + x.ActiveInfererQuantile = "" + case "emissions.v3.MsgCreateNewTopic.active_forecaster_quantile": + x.ActiveForecasterQuantile = "" + case "emissions.v3.MsgCreateNewTopic.active_reputer_quantile": + x.ActiveReputerQuantile = "" default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.MsgCreateNewTopic")) @@ -7468,6 +7516,18 @@ func (x *fastReflection_MsgCreateNewTopic) Get(descriptor protoreflect.FieldDesc case "emissions.v3.MsgCreateNewTopic.worker_submission_window": value := x.WorkerSubmissionWindow return protoreflect.ValueOfInt64(value) + case "emissions.v3.MsgCreateNewTopic.merit_sortition_alpha": + value := x.MeritSortitionAlpha + return protoreflect.ValueOfString(value) + case "emissions.v3.MsgCreateNewTopic.active_inferer_quantile": + value := x.ActiveInfererQuantile + return protoreflect.ValueOfString(value) + case "emissions.v3.MsgCreateNewTopic.active_forecaster_quantile": + value := x.ActiveForecasterQuantile + return protoreflect.ValueOfString(value) + case "emissions.v3.MsgCreateNewTopic.active_reputer_quantile": + value := x.ActiveReputerQuantile + return protoreflect.ValueOfString(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.MsgCreateNewTopic")) @@ -7508,6 +7568,14 @@ func (x *fastReflection_MsgCreateNewTopic) Set(fd protoreflect.FieldDescriptor, x.Epsilon = value.Interface().(string) case "emissions.v3.MsgCreateNewTopic.worker_submission_window": x.WorkerSubmissionWindow = value.Int() + case "emissions.v3.MsgCreateNewTopic.merit_sortition_alpha": + x.MeritSortitionAlpha = value.Interface().(string) + case "emissions.v3.MsgCreateNewTopic.active_inferer_quantile": + x.ActiveInfererQuantile = value.Interface().(string) + case "emissions.v3.MsgCreateNewTopic.active_forecaster_quantile": + x.ActiveForecasterQuantile = value.Interface().(string) + case "emissions.v3.MsgCreateNewTopic.active_reputer_quantile": + x.ActiveReputerQuantile = value.Interface().(string) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.MsgCreateNewTopic")) @@ -7548,6 +7616,14 @@ func (x *fastReflection_MsgCreateNewTopic) Mutable(fd protoreflect.FieldDescript panic(fmt.Errorf("field epsilon of message emissions.v3.MsgCreateNewTopic is not mutable")) case "emissions.v3.MsgCreateNewTopic.worker_submission_window": panic(fmt.Errorf("field worker_submission_window of message emissions.v3.MsgCreateNewTopic is not mutable")) + case "emissions.v3.MsgCreateNewTopic.merit_sortition_alpha": + panic(fmt.Errorf("field merit_sortition_alpha of message emissions.v3.MsgCreateNewTopic is not mutable")) + case "emissions.v3.MsgCreateNewTopic.active_inferer_quantile": + panic(fmt.Errorf("field active_inferer_quantile of message emissions.v3.MsgCreateNewTopic is not mutable")) + case "emissions.v3.MsgCreateNewTopic.active_forecaster_quantile": + panic(fmt.Errorf("field active_forecaster_quantile of message emissions.v3.MsgCreateNewTopic is not mutable")) + case "emissions.v3.MsgCreateNewTopic.active_reputer_quantile": + panic(fmt.Errorf("field active_reputer_quantile of message emissions.v3.MsgCreateNewTopic is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.MsgCreateNewTopic")) @@ -7581,6 +7657,14 @@ func (x *fastReflection_MsgCreateNewTopic) NewField(fd protoreflect.FieldDescrip return protoreflect.ValueOfString("") case "emissions.v3.MsgCreateNewTopic.worker_submission_window": return protoreflect.ValueOfInt64(int64(0)) + case "emissions.v3.MsgCreateNewTopic.merit_sortition_alpha": + return protoreflect.ValueOfString("") + case "emissions.v3.MsgCreateNewTopic.active_inferer_quantile": + return protoreflect.ValueOfString("") + case "emissions.v3.MsgCreateNewTopic.active_forecaster_quantile": + return protoreflect.ValueOfString("") + case "emissions.v3.MsgCreateNewTopic.active_reputer_quantile": + return protoreflect.ValueOfString("") default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v3.MsgCreateNewTopic")) @@ -7686,6 +7770,22 @@ func (x *fastReflection_MsgCreateNewTopic) ProtoMethods() *protoiface.Methods { if x.WorkerSubmissionWindow != 0 { n += 1 + runtime.Sov(uint64(x.WorkerSubmissionWindow)) } + l = len(x.MeritSortitionAlpha) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.ActiveInfererQuantile) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.ActiveForecasterQuantile) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } + l = len(x.ActiveReputerQuantile) + if l > 0 { + n += 2 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -7715,6 +7815,40 @@ func (x *fastReflection_MsgCreateNewTopic) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.ActiveReputerQuantile) > 0 { + i -= len(x.ActiveReputerQuantile) + copy(dAtA[i:], x.ActiveReputerQuantile) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ActiveReputerQuantile))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + } + if len(x.ActiveForecasterQuantile) > 0 { + i -= len(x.ActiveForecasterQuantile) + copy(dAtA[i:], x.ActiveForecasterQuantile) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ActiveForecasterQuantile))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + if len(x.ActiveInfererQuantile) > 0 { + i -= len(x.ActiveInfererQuantile) + copy(dAtA[i:], x.ActiveInfererQuantile) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ActiveInfererQuantile))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + if len(x.MeritSortitionAlpha) > 0 { + i -= len(x.MeritSortitionAlpha) + copy(dAtA[i:], x.MeritSortitionAlpha) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.MeritSortitionAlpha))) + i-- + dAtA[i] = 0x7a + } if x.WorkerSubmissionWindow != 0 { i = runtime.EncodeVarint(dAtA, i, uint64(x.WorkerSubmissionWindow)) i-- @@ -8100,6 +8234,134 @@ func (x *fastReflection_MsgCreateNewTopic) ProtoMethods() *protoiface.Methods { break } } + case 15: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MeritSortitionAlpha", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.MeritSortitionAlpha = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 16: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ActiveInfererQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ActiveInfererQuantile = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 17: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ActiveForecasterQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ActiveForecasterQuantile = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 18: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ActiveReputerQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ActiveReputerQuantile = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -21658,16 +21920,20 @@ type MsgCreateNewTopic struct { unknownFields protoimpl.UnknownFields // creator is the message sender. - Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` - Metadata string `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` - LossMethod string `protobuf:"bytes,4,opt,name=loss_method,json=lossMethod,proto3" json:"loss_method,omitempty"` - EpochLength int64 `protobuf:"varint,7,opt,name=epoch_length,json=epochLength,proto3" json:"epoch_length,omitempty"` - GroundTruthLag int64 `protobuf:"varint,8,opt,name=ground_truth_lag,json=groundTruthLag,proto3" json:"ground_truth_lag,omitempty"` - PNorm string `protobuf:"bytes,10,opt,name=p_norm,json=pNorm,proto3" json:"p_norm,omitempty"` - AlphaRegret string `protobuf:"bytes,11,opt,name=alpha_regret,json=alphaRegret,proto3" json:"alpha_regret,omitempty"` - AllowNegative bool `protobuf:"varint,12,opt,name=allow_negative,json=allowNegative,proto3" json:"allow_negative,omitempty"` - Epsilon string `protobuf:"bytes,13,opt,name=epsilon,proto3" json:"epsilon,omitempty"` - WorkerSubmissionWindow int64 `protobuf:"varint,14,opt,name=worker_submission_window,json=workerSubmissionWindow,proto3" json:"worker_submission_window,omitempty"` + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Metadata string `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` + LossMethod string `protobuf:"bytes,4,opt,name=loss_method,json=lossMethod,proto3" json:"loss_method,omitempty"` + EpochLength int64 `protobuf:"varint,7,opt,name=epoch_length,json=epochLength,proto3" json:"epoch_length,omitempty"` + GroundTruthLag int64 `protobuf:"varint,8,opt,name=ground_truth_lag,json=groundTruthLag,proto3" json:"ground_truth_lag,omitempty"` + PNorm string `protobuf:"bytes,10,opt,name=p_norm,json=pNorm,proto3" json:"p_norm,omitempty"` + AlphaRegret string `protobuf:"bytes,11,opt,name=alpha_regret,json=alphaRegret,proto3" json:"alpha_regret,omitempty"` + AllowNegative bool `protobuf:"varint,12,opt,name=allow_negative,json=allowNegative,proto3" json:"allow_negative,omitempty"` + Epsilon string `protobuf:"bytes,13,opt,name=epsilon,proto3" json:"epsilon,omitempty"` + WorkerSubmissionWindow int64 `protobuf:"varint,14,opt,name=worker_submission_window,json=workerSubmissionWindow,proto3" json:"worker_submission_window,omitempty"` + MeritSortitionAlpha string `protobuf:"bytes,15,opt,name=merit_sortition_alpha,json=meritSortitionAlpha,proto3" json:"merit_sortition_alpha,omitempty"` + ActiveInfererQuantile string `protobuf:"bytes,16,opt,name=active_inferer_quantile,json=activeInfererQuantile,proto3" json:"active_inferer_quantile,omitempty"` + ActiveForecasterQuantile string `protobuf:"bytes,17,opt,name=active_forecaster_quantile,json=activeForecasterQuantile,proto3" json:"active_forecaster_quantile,omitempty"` + ActiveReputerQuantile string `protobuf:"bytes,18,opt,name=active_reputer_quantile,json=activeReputerQuantile,proto3" json:"active_reputer_quantile,omitempty"` } func (x *MsgCreateNewTopic) Reset() { @@ -21760,6 +22026,34 @@ func (x *MsgCreateNewTopic) GetWorkerSubmissionWindow() int64 { return 0 } +func (x *MsgCreateNewTopic) GetMeritSortitionAlpha() string { + if x != nil { + return x.MeritSortitionAlpha + } + return "" +} + +func (x *MsgCreateNewTopic) GetActiveInfererQuantile() string { + if x != nil { + return x.ActiveInfererQuantile + } + return "" +} + +func (x *MsgCreateNewTopic) GetActiveForecasterQuantile() string { + if x != nil { + return x.ActiveForecasterQuantile + } + return "" +} + +func (x *MsgCreateNewTopic) GetActiveReputerQuantile() string { + if x != nil { + return x.ActiveReputerQuantile + } + return "" +} + type MsgCreateNewTopicResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -23143,7 +23437,7 @@ var file_emissions_v3_tx_proto_rawDesc = []byte{ 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf9, 0x04, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x43, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbf, 0x08, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, @@ -23177,284 +23471,313 @@ var file_emissions_v3_tx_proto_rawDesc = []byte{ 0x72, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4a, - 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, - 0x07, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6c, 0x6f, - 0x67, 0x69, 0x63, 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, - 0x6f, 0x67, 0x69, 0x63, 0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x61, 0x72, 0x67, 0x22, 0x36, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x17, - 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x52, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, - 0x12, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, - 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, - 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x12, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x42, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, - 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, - 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, - 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, - 0x08, 0x03, 0x10, 0x04, 0x52, 0x0b, 0x6c, 0x69, 0x62, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6b, 0x65, - 0x79, 0x52, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0x49, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x76, 0x0a, 0x15, 0x4d, - 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x22, 0x53, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x0b, 0x4d, 0x73, 0x67, - 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, - 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, - 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x0e, 0x4d, 0x73, - 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, - 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, - 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, - 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x18, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x56, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, - 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x43, - 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x10, 0x4d, 0x73, 0x67, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x16, 0x0a, + 0x77, 0x12, 0x6b, 0x0a, 0x15, 0x6d, 0x65, 0x72, 0x69, 0x74, 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x13, 0x6d, 0x65, 0x72, 0x69, 0x74, + 0x53, 0x6f, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x6f, + 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, + 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, + 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x49, 0x6e, 0x66, 0x65, 0x72, 0x65, 0x72, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, + 0x75, 0x0a, 0x1a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x65, 0x63, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x2f, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x18, 0x61, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x46, 0x6f, 0x72, 0x65, 0x63, 0x61, 0x73, 0x74, 0x65, 0x72, 0x51, 0x75, + 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x12, 0x6f, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x71, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, + 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, + 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, + 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x44, 0x65, 0x63, + 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x51, + 0x75, 0x61, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x3a, 0x0c, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x05, 0x10, + 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, 0x0a, 0x6c, + 0x6f, 0x73, 0x73, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x0f, 0x69, 0x6e, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x52, 0x10, 0x69, 0x6e, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x0b, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x22, 0x36, 0x0a, 0x19, 0x4d, 0x73, 0x67, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x22, 0x92, 0x01, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, - 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, - 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, - 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, - 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x12, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8b, 0x01, 0x0a, 0x16, 0x4d, 0x73, + 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x12, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x62, 0x75, 0x6e, 0x64, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x10, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x49, 0x6e, + 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x0b, 0x4d, 0x73, + 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4a, 0x04, + 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x52, 0x0b, 0x6c, 0x69, 0x62, 0x5f, + 0x70, 0x32, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x52, 0x0d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x49, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x22, 0x76, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x69, 0x73, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, + 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x53, 0x0a, 0x1d, 0x4d, 0x73, 0x67, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x97, + 0x01, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, + 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, + 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, + 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x41, + 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x9a, 0x01, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, + 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, - 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x20, 0x0a, 0x1e, - 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, - 0x01, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x26, 0x0a, 0x24, 0x4d, 0x73, 0x67, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x98, 0x01, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, - 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, - 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, - 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, - 0x67, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x57, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x0b, - 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x4d, - 0x73, 0x67, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, - 0x1b, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x0b, - 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x23, 0x4d, - 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x16, + 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x18, 0x0a, 0x16, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, - 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x32, 0xa9, 0x0c, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x12, 0x54, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, - 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, - 0x25, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, - 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x1a, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x48, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x64, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1e, + 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb6, + 0x01, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, + 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, + 0x00, 0xda, 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, + 0x6f, 0x2f, 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x96, 0x01, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x26, 0x0a, + 0x24, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, + 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x08, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xda, + 0xde, 0x1f, 0x15, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x6d, 0x61, 0x74, 0x68, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x41, + 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x22, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x1b, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x22, 0x25, 0x0a, 0x23, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, + 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, 0x0a, 0x16, 0x4d, 0x73, + 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x74, 0x6f, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x32, 0xa9, + 0x0c, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x54, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x25, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, - 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x12, + 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x1a, + 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, + 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x1a, + 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, + 0x73, 0x67, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x66, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2b, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x2b, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, - 0x12, 0x19, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, - 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x21, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, - 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, - 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1c, 0x2e, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x08, 0x41, 0x64, + 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x19, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, + 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x12, 0x1c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x1a, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, + 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x22, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x43, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, + 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0d, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x24, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x63, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x69, 0x0a, 0x13, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x2c, 0x2e, 0x65, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x26, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x13, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x13, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6b, 0x65, 0x1a, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x69, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x6b, 0x65, 0x12, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, - 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x32, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, - 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x09, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, - 0x1a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, - 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x1a, 0x22, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, - 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x69, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x1a, 0x2c, 0x2e, 0x65, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x2c, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x19, 0x43, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x1a, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x09, 0x46, 0x75, 0x6e, 0x64, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x1a, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, + 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, - 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x78, 0x0a, 0x18, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, - 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, - 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, + 0x69, 0x6e, 0x1a, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x78, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x29, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x46, 0x72, 0x6f, 0x6d, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x1a, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, + 0x64, 0x12, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x6c, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x25, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x2c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x2d, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, - 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, - 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xbd, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, - 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x33, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x3a, 0x3a, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x25, 0x2e, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, + 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x1a, 0x2d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x33, 0x2e, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xbd, 0x01, 0x0a, 0x10, 0x63, + 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x33, 0x42, + 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4f, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x6c, 0x6c, 0x6f, 0x72, 0x61, 0x2d, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x76, 0x33, 0x3b, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x33, 0xa2, 0x02, 0x03, 0x45, 0x58, + 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x33, + 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 0xe2, + 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x33, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x45, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x3a, 0x56, 0x33, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/x/emissions/keeper/genesis.go b/x/emissions/keeper/genesis.go index 2a45d0ae6..7621a9710 100644 --- a/x/emissions/keeper/genesis.go +++ b/x/emissions/keeper/genesis.go @@ -134,10 +134,10 @@ func (k *Keeper) InitGenesis(ctx context.Context, data *types.GenesisState) erro } } //LatestInfererScoresByWorker []*TopicIdActorIdScore - if len(data.LatestInfererScoresByWorker) != 0 { - for _, topicIdActorIdScore := range data.LatestInfererScoresByWorker { + if len(data.InfererScoreEmas) != 0 { + for _, topicIdActorIdScore := range data.InfererScoreEmas { if topicIdActorIdScore != nil { - if err := k.latestInfererScoresByWorker.Set(ctx, + if err := k.infererScoreEmas.Set(ctx, collections.Join(topicIdActorIdScore.TopicId, topicIdActorIdScore.ActorId), *topicIdActorIdScore.Score); err != nil { return errors.Wrap(err, "error setting latestInfererScoresByWorker") @@ -146,10 +146,10 @@ func (k *Keeper) InitGenesis(ctx context.Context, data *types.GenesisState) erro } } //LatestForecasterScoresByWorker []*TopicIdActorIdScore - if len(data.LatestForecasterScoresByWorker) != 0 { - for _, topicIdActorIdScore := range data.LatestForecasterScoresByWorker { + if len(data.ForecasterScoreEmas) != 0 { + for _, topicIdActorIdScore := range data.ForecasterScoreEmas { if topicIdActorIdScore != nil { - if err := k.latestForecasterScoresByWorker.Set(ctx, + if err := k.forecasterScoreEmas.Set(ctx, collections.Join(topicIdActorIdScore.TopicId, topicIdActorIdScore.ActorId), *topicIdActorIdScore.Score); err != nil { return errors.Wrap(err, "error setting latestForecasterScoresByWorker") @@ -158,10 +158,10 @@ func (k *Keeper) InitGenesis(ctx context.Context, data *types.GenesisState) erro } } //LatestReputerScoresByReputer []*TopicIdActorIdScore - if len(data.LatestReputerScoresByReputer) != 0 { - for _, topicIdActorIdScore := range data.LatestReputerScoresByReputer { + if len(data.ReputerScoreEmas) != 0 { + for _, topicIdActorIdScore := range data.ReputerScoreEmas { if topicIdActorIdScore != nil { - if err := k.latestReputerScoresByReputer.Set(ctx, + if err := k.reputerScoreEmas.Set(ctx, collections.Join(topicIdActorIdScore.TopicId, topicIdActorIdScore.ActorId), *topicIdActorIdScore.Score); err != nil { return errors.Wrap(err, "error setting latestReputerScoresByReputer") @@ -928,13 +928,13 @@ func (k *Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error) reputerScoresByBlock = append(reputerScoresByBlock, &topicIdBlockHeightScores) } - latestInfererScoresByWorker := make([]*types.TopicIdActorIdScore, 0) - latestInfererScoresByWorkerIter, err := k.latestInfererScoresByWorker.Iterate(ctx, nil) + innfererScoreEmas := make([]*types.TopicIdActorIdScore, 0) + infererScoreEmasIter, err := k.infererScoreEmas.Iterate(ctx, nil) if err != nil { return nil, errors.Wrap(err, "failed to iterate latest inferer scores by worker") } - for ; latestInfererScoresByWorkerIter.Valid(); latestInfererScoresByWorkerIter.Next() { - keyValue, err := latestInfererScoresByWorkerIter.KeyValue() + for ; infererScoreEmasIter.Valid(); infererScoreEmasIter.Next() { + keyValue, err := infererScoreEmasIter.KeyValue() if err != nil { return nil, errors.Wrap(err, "failed to get key value: latestInfererScoresByWorkerIter") } @@ -944,16 +944,16 @@ func (k *Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error) ActorId: keyValue.Key.K2(), Score: &value, } - latestInfererScoresByWorker = append(latestInfererScoresByWorker, &topicIdActorIdScore) + innfererScoreEmas = append(innfererScoreEmas, &topicIdActorIdScore) } - latestForecasterScoresByWorker := make([]*types.TopicIdActorIdScore, 0) - latestForecasterScoresByWorkerIter, err := k.latestForecasterScoresByWorker.Iterate(ctx, nil) + forecasterScoreEmas := make([]*types.TopicIdActorIdScore, 0) + forecasterScoreEmaIter, err := k.forecasterScoreEmas.Iterate(ctx, nil) if err != nil { return nil, errors.Wrap(err, "failed to iterate latest forecaster scores by worker") } - for ; latestForecasterScoresByWorkerIter.Valid(); latestForecasterScoresByWorkerIter.Next() { - keyValue, err := latestForecasterScoresByWorkerIter.KeyValue() + for ; forecasterScoreEmaIter.Valid(); forecasterScoreEmaIter.Next() { + keyValue, err := forecasterScoreEmaIter.KeyValue() if err != nil { return nil, errors.Wrap(err, "failed to get key value: latestForecasterScoresByWorkerIter") } @@ -963,16 +963,16 @@ func (k *Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error) ActorId: keyValue.Key.K2(), Score: &value, } - latestForecasterScoresByWorker = append(latestForecasterScoresByWorker, &topicIdActorIdScore) + forecasterScoreEmas = append(forecasterScoreEmas, &topicIdActorIdScore) } - latestReputerScoresByReputer := make([]*types.TopicIdActorIdScore, 0) - latestReputerScoresByReputerIter, err := k.latestReputerScoresByReputer.Iterate(ctx, nil) + reputerScoreEmas := make([]*types.TopicIdActorIdScore, 0) + reputerScoreEmasIter, err := k.reputerScoreEmas.Iterate(ctx, nil) if err != nil { return nil, errors.Wrap(err, "failed to iterate latest reputer scores by reputer") } - for ; latestReputerScoresByReputerIter.Valid(); latestReputerScoresByReputerIter.Next() { - keyValue, err := latestReputerScoresByReputerIter.KeyValue() + for ; reputerScoreEmasIter.Valid(); reputerScoreEmasIter.Next() { + keyValue, err := reputerScoreEmasIter.KeyValue() if err != nil { return nil, errors.Wrap(err, "failed to get key value: latestReputerScoresByReputerIter") } @@ -982,7 +982,7 @@ func (k *Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error) ActorId: keyValue.Key.K2(), Score: &value, } - latestReputerScoresByReputer = append(latestReputerScoresByReputer, &topicIdActorIdScore) + reputerScoreEmas = append(reputerScoreEmas, &topicIdActorIdScore) } reputerListeningCoefficient := make([]*types.TopicIdActorIdListeningCoefficient, 0) @@ -1725,60 +1725,60 @@ func (k *Keeper) ExportGenesis(ctx context.Context) (*types.GenesisState, error) } return &types.GenesisState{ - Params: moduleParams, - NextTopicId: nextTopicId, - Topics: topics, - ActiveTopics: activeTopics, - RewardableTopics: rewardableTopics, - TopicWorkers: topicWorkers, - TopicReputers: topicReputers, - TopicRewardNonce: topicRewardNonce, - InfererScoresByBlock: infererScoresByBlock, - ForecasterScoresByBlock: forecasterScoresByBlock, - ReputerScoresByBlock: reputerScoresByBlock, - LatestInfererScoresByWorker: latestInfererScoresByWorker, - LatestForecasterScoresByWorker: latestForecasterScoresByWorker, - LatestReputerScoresByReputer: latestReputerScoresByReputer, - ReputerListeningCoefficient: reputerListeningCoefficient, - PreviousReputerRewardFraction: previousReputerRewardFraction, - PreviousInferenceRewardFraction: previousInferenceRewardFraction, - PreviousForecastRewardFraction: previousForecastRewardFraction, - TotalStake: totalStake, - TopicStake: topicStake, - StakeReputerAuthority: stakeReputerAuthority, - StakeSumFromDelegator: stakeSumFromDelegator, - DelegatedStakes: delegatedStakes, - StakeFromDelegatorsUponReputer: stakeFromDelegatorsUponReputer, - DelegateRewardPerShare: delegateRewardPerShare, - StakeRemovalsByBlock: stakeRemovalsByBlock, - StakeRemovalsByActor: stakeRemovalsByActor, - DelegateStakeRemovalsByBlock: delegateStakeRemovalsByBlock, - DelegateStakeRemovalsByActor: delegateStakeRemovalsByActor, - Inferences: inferences, - Forecasts: forecasts, - Workers: workers, - Reputers: reputers, - TopicFeeRevenue: topicFeeRevenue, - PreviousTopicWeight: previousTopicWeight, - AllInferences: allInferences, - AllForecasts: allForecasts, - AllLossBundles: allLossBundles, - NetworkLossBundles: networkLossBundles, - PreviousPercentageRewardToStakedReputers: previousPercentageRewardToStakedReputers, - OpenWorkerWindows: openWorkerWindows, - UnfulfilledWorkerNonces: unfulfilledWorkerNonces, - UnfulfilledReputerNonces: unfulfilledReputerNonces, - LastDripBlock: lastDripBlock, - LatestInfererNetworkRegrets: latestInfererNetworkRegrets, - LatestForecasterNetworkRegrets: latestForecasterNetworkRegrets, - LatestOneInForecasterNetworkRegrets: latestOneInForecasterNetworkRegrets, - CoreTeamAddresses: coreTeamAddresses, - TopicLastWorkerCommit: topicLastWorkerCommit, - TopicLastReputerCommit: topicLastReputerCommit, - LatestNaiveInfererNetworkRegrets: latestNaiveInfererNetworkRegrets, - LatestOneOutInfererInfererNetworkRegrets: latestOneOutInfererInfererNetworkRegrets, - LatestOneOutForecasterInfererNetworkRegrets: latestOneOutForecasterInfererNetworkRegrets, - LatestOneOutInfererForecasterNetworkRegrets: latestOneOutInfererForecasterNetworkRegrets, + Params: moduleParams, + NextTopicId: nextTopicId, + Topics: topics, + ActiveTopics: activeTopics, + RewardableTopics: rewardableTopics, + TopicWorkers: topicWorkers, + TopicReputers: topicReputers, + TopicRewardNonce: topicRewardNonce, + InfererScoresByBlock: infererScoresByBlock, + ForecasterScoresByBlock: forecasterScoresByBlock, + ReputerScoresByBlock: reputerScoresByBlock, + InfererScoreEmas: innfererScoreEmas, + ForecasterScoreEmas: forecasterScoreEmas, + ReputerScoreEmas: reputerScoreEmas, + ReputerListeningCoefficient: reputerListeningCoefficient, + PreviousReputerRewardFraction: previousReputerRewardFraction, + PreviousInferenceRewardFraction: previousInferenceRewardFraction, + PreviousForecastRewardFraction: previousForecastRewardFraction, + TotalStake: totalStake, + TopicStake: topicStake, + StakeReputerAuthority: stakeReputerAuthority, + StakeSumFromDelegator: stakeSumFromDelegator, + DelegatedStakes: delegatedStakes, + StakeFromDelegatorsUponReputer: stakeFromDelegatorsUponReputer, + DelegateRewardPerShare: delegateRewardPerShare, + StakeRemovalsByBlock: stakeRemovalsByBlock, + StakeRemovalsByActor: stakeRemovalsByActor, + DelegateStakeRemovalsByBlock: delegateStakeRemovalsByBlock, + DelegateStakeRemovalsByActor: delegateStakeRemovalsByActor, + Inferences: inferences, + Forecasts: forecasts, + Workers: workers, + Reputers: reputers, + TopicFeeRevenue: topicFeeRevenue, + PreviousTopicWeight: previousTopicWeight, + AllInferences: allInferences, + AllForecasts: allForecasts, + AllLossBundles: allLossBundles, + NetworkLossBundles: networkLossBundles, + PreviousPercentageRewardToStakedReputers: previousPercentageRewardToStakedReputers, + OpenWorkerWindows: openWorkerWindows, + UnfulfilledWorkerNonces: unfulfilledWorkerNonces, + UnfulfilledReputerNonces: unfulfilledReputerNonces, + LastDripBlock: lastDripBlock, + LatestInfererNetworkRegrets: latestInfererNetworkRegrets, + LatestForecasterNetworkRegrets: latestForecasterNetworkRegrets, + LatestOneInForecasterNetworkRegrets: latestOneInForecasterNetworkRegrets, + CoreTeamAddresses: coreTeamAddresses, + TopicLastWorkerCommit: topicLastWorkerCommit, + TopicLastReputerCommit: topicLastReputerCommit, + LatestNaiveInfererNetworkRegrets: latestNaiveInfererNetworkRegrets, + LatestOneOutInfererInfererNetworkRegrets: latestOneOutInfererInfererNetworkRegrets, + LatestOneOutForecasterInfererNetworkRegrets: latestOneOutForecasterInfererNetworkRegrets, + LatestOneOutInfererForecasterNetworkRegrets: latestOneOutInfererForecasterNetworkRegrets, LatestOneOutForecasterForecasterNetworkRegrets: latestOneOutForecasterForecasterNetworkRegrets, TopicToNextPossibleChurningBlock: topicToNextPossibleChurningBlock, BlockToActiveTopics: blockHeightTopicIds, diff --git a/x/emissions/keeper/keeper.go b/x/emissions/keeper/keeper.go index 156a0d61e..ef91e748a 100644 --- a/x/emissions/keeper/keeper.go +++ b/x/emissions/keeper/keeper.go @@ -73,11 +73,11 @@ type Keeper struct { // map of (topic, block_height, reputer) -> score reputerScoresByBlock collections.Map[collections.Pair[TopicId, BlockHeight], types.Scores] // map of (topic, block_height, worker) -> score - latestInfererScoresByWorker collections.Map[collections.Pair[TopicId, ActorId], types.Score] + infererScoreEmas collections.Map[collections.Pair[TopicId, ActorId], types.Score] // map of (topic, block_height, worker) -> score - latestForecasterScoresByWorker collections.Map[collections.Pair[TopicId, ActorId], types.Score] + forecasterScoreEmas collections.Map[collections.Pair[TopicId, ActorId], types.Score] // map of (topic, block_height, reputer) -> score - latestReputerScoresByReputer collections.Map[collections.Pair[TopicId, ActorId], types.Score] + reputerScoreEmas collections.Map[collections.Pair[TopicId, ActorId], types.Score] // map of (topic, reputer) -> listening coefficient reputerListeningCoefficient collections.Map[collections.Pair[TopicId, ActorId], types.ListeningCoefficient] // map of (topic, reputer) -> previous reward (used for EMA) @@ -86,7 +86,8 @@ type Keeper struct { previousInferenceRewardFraction collections.Map[collections.Pair[TopicId, ActorId], alloraMath.Dec] // map of (topic, worker) -> previous reward for forecast (used for EMA) previousForecastRewardFraction collections.Map[collections.Pair[TopicId, ActorId], alloraMath.Dec] - previousForecasterScoreRatio collections.Map[TopicId, alloraMath.Dec] + // map of topic -> previous forecaster score ratio + previousForecasterScoreRatio collections.Map[TopicId, alloraMath.Dec] /// STAKING @@ -255,9 +256,9 @@ func NewKeeper( whitelistAdmins: collections.NewKeySet(sb, types.WhitelistAdminsKey, "whitelist_admins", collections.StringKey), infererScoresByBlock: collections.NewMap(sb, types.InferenceScoresKey, "inferer_scores_by_block", collections.PairKeyCodec(collections.Uint64Key, collections.Int64Key), codec.CollValue[types.Scores](cdc)), forecasterScoresByBlock: collections.NewMap(sb, types.ForecastScoresKey, "forecaster_scores_by_block", collections.PairKeyCodec(collections.Uint64Key, collections.Int64Key), codec.CollValue[types.Scores](cdc)), - latestInfererScoresByWorker: collections.NewMap(sb, types.LatestInfererScoresByWorkerKey, "latest_inferer_scores_by_worker", collections.PairKeyCodec(collections.Uint64Key, collections.StringKey), codec.CollValue[types.Score](cdc)), - latestForecasterScoresByWorker: collections.NewMap(sb, types.LatestForecasterScoresByWorkerKey, "latest_forecaster_scores_by_worker", collections.PairKeyCodec(collections.Uint64Key, collections.StringKey), codec.CollValue[types.Score](cdc)), - latestReputerScoresByReputer: collections.NewMap(sb, types.LatestReputerScoresByReputerKey, "latest_reputer_scores_by_reputer", collections.PairKeyCodec(collections.Uint64Key, collections.StringKey), codec.CollValue[types.Score](cdc)), + infererScoreEmas: collections.NewMap(sb, types.InfererScoreEmasKey, "latest_inferer_scores_by_worker", collections.PairKeyCodec(collections.Uint64Key, collections.StringKey), codec.CollValue[types.Score](cdc)), + forecasterScoreEmas: collections.NewMap(sb, types.ForecasterScoreEmasKey, "latest_forecaster_scores_by_worker", collections.PairKeyCodec(collections.Uint64Key, collections.StringKey), codec.CollValue[types.Score](cdc)), + reputerScoreEmas: collections.NewMap(sb, types.ReputerScoreEmasKey, "latest_reputer_scores_by_reputer", collections.PairKeyCodec(collections.Uint64Key, collections.StringKey), codec.CollValue[types.Score](cdc)), previousReputerRewardFraction: collections.NewMap(sb, types.PreviousReputerRewardFractionKey, "previous_reputer_reward_fraction", collections.PairKeyCodec(collections.Uint64Key, collections.StringKey), alloraMath.DecValue), previousInferenceRewardFraction: collections.NewMap(sb, types.PreviousInferenceRewardFractionKey, "previous_inference_reward_fraction", collections.PairKeyCodec(collections.Uint64Key, collections.StringKey), alloraMath.DecValue), previousForecastRewardFraction: collections.NewMap(sb, types.PreviousForecastRewardFractionKey, "previous_forecast_reward_fraction", collections.PairKeyCodec(collections.Uint64Key, collections.StringKey), alloraMath.DecValue), @@ -813,7 +814,7 @@ func (k *Keeper) AppendInference(ctx context.Context, topicId TopicId, nonce typ return k.allInferences.Set(ctx, key, newInferences) } // get score of current inference and check with - score, err := k.GetLatestInfererScore(ctx, topicId, inference.Inferer) + score, err := k.GetInfererScoreEma(ctx, topicId, inference.Inferer) if err != nil { return err } @@ -875,7 +876,7 @@ func (k *Keeper) AppendForecast(ctx context.Context, topicId TopicId, nonce type return k.allForecasts.Set(ctx, key, newForecasts) } // get score of current inference and check with - score, err := k.GetLatestForecasterScore(ctx, topicId, forecast.Forecaster) + score, err := k.GetForecasterScoreEma(ctx, topicId, forecast.Forecaster) if err != nil { return err } @@ -975,7 +976,7 @@ func (k *Keeper) AppendReputerLoss(ctx context.Context, topicId TopicId, block B } // get score of current inference and check with - score, err := k.GetLatestReputerScore(ctx, topicId, reputerLoss.ValueBundle.Reputer) + score, err := k.GetReputerScoreEma(ctx, topicId, reputerLoss.ValueBundle.Reputer) if err != nil { return err } @@ -2126,25 +2127,14 @@ func (k *Keeper) RemoveRewardableTopic(ctx context.Context, topicId TopicId) err /// SCORES // If the new score is older than the current score, don't update -func (k *Keeper) SetLatestInfererScore(ctx context.Context, topicId TopicId, worker ActorId, score types.Score) error { - oldScore, err := k.GetLatestInfererScore(ctx, topicId, worker) - if err != nil { - return errorsmod.Wrap(err, "error getting latest inferer score") - } - if oldScore.BlockHeight >= score.BlockHeight { - return nil - } +func (k *Keeper) SetInfererScoreEma(ctx context.Context, topicId TopicId, worker ActorId, score types.Score) error { key := collections.Join(topicId, worker) - err = k.latestInfererScoresByWorker.Set(ctx, key, score) - if err != nil { - return errorsmod.Wrap(err, "error setting latest inferer score") - } - return nil + return k.infererScoreEmas.Set(ctx, key, score) } -func (k *Keeper) GetLatestInfererScore(ctx context.Context, topicId TopicId, worker ActorId) (types.Score, error) { +func (k *Keeper) GetInfererScoreEma(ctx context.Context, topicId TopicId, worker ActorId) (types.Score, error) { key := collections.Join(topicId, worker) - score, err := k.latestInfererScoresByWorker.Get(ctx, key) + score, err := k.infererScoreEmas.Get(ctx, key) if err != nil { if errors.Is(err, collections.ErrNotFound) { return types.Score{ @@ -2159,25 +2149,22 @@ func (k *Keeper) GetLatestInfererScore(ctx context.Context, topicId TopicId, wor return score, nil } -// If the new score is older than the current score, don't update -func (k *Keeper) SetLatestForecasterScore(ctx context.Context, topicId TopicId, worker ActorId, score types.Score) error { - oldScore, err := k.GetLatestForecasterScore(ctx, topicId, worker) - if err != nil { - return err - } - if oldScore.BlockHeight >= score.BlockHeight { - return nil - } +func (k *Keeper) SetForecasterScoreEma(ctx context.Context, topicId TopicId, worker ActorId, score types.Score) error { key := collections.Join(topicId, worker) - return k.latestForecasterScoresByWorker.Set(ctx, key, score) + return k.forecasterScoreEmas.Set(ctx, key, score) } -func (k *Keeper) GetLatestForecasterScore(ctx context.Context, topicId TopicId, worker ActorId) (types.Score, error) { +func (k *Keeper) GetForecasterScoreEma(ctx context.Context, topicId TopicId, worker ActorId) (types.Score, error) { key := collections.Join(topicId, worker) - score, err := k.latestForecasterScoresByWorker.Get(ctx, key) + score, err := k.forecasterScoreEmas.Get(ctx, key) if err != nil { if errors.Is(err, collections.ErrNotFound) { - return types.Score{}, nil + return types.Score{ + BlockHeight: 0, + Address: worker, + TopicId: topicId, + Score: alloraMath.ZeroDec(), + }, nil } return types.Score{}, err } @@ -2185,24 +2172,22 @@ func (k *Keeper) GetLatestForecasterScore(ctx context.Context, topicId TopicId, } // If the new score is older than the current score, don't update -func (k *Keeper) SetLatestReputerScore(ctx context.Context, topicId TopicId, reputer ActorId, score types.Score) error { - oldScore, err := k.GetLatestReputerScore(ctx, topicId, reputer) - if err != nil { - return err - } - if oldScore.BlockHeight >= score.BlockHeight { - return nil - } +func (k *Keeper) SetReputerScoreEma(ctx context.Context, topicId TopicId, reputer ActorId, score types.Score) error { key := collections.Join(topicId, reputer) - return k.latestReputerScoresByReputer.Set(ctx, key, score) + return k.reputerScoreEmas.Set(ctx, key, score) } -func (k *Keeper) GetLatestReputerScore(ctx context.Context, topicId TopicId, reputer ActorId) (types.Score, error) { +func (k *Keeper) GetReputerScoreEma(ctx context.Context, topicId TopicId, reputer ActorId) (types.Score, error) { key := collections.Join(topicId, reputer) - score, err := k.latestReputerScoresByReputer.Get(ctx, key) + score, err := k.reputerScoreEmas.Get(ctx, key) if err != nil { if errors.Is(err, collections.ErrNotFound) { - return types.Score{}, nil + return types.Score{ + BlockHeight: 0, + Address: reputer, + TopicId: topicId, + Score: alloraMath.ZeroDec(), + }, nil } return types.Score{}, err } diff --git a/x/emissions/keeper/keeper_test.go b/x/emissions/keeper/keeper_test.go index 4b77a4896..0165c020b 100644 --- a/x/emissions/keeper/keeper_test.go +++ b/x/emissions/keeper/keeper_test.go @@ -184,15 +184,19 @@ func (s *KeeperTestSuite) CreateOneTopic(epochLen int64) uint64 { creator := sdk.AccAddress(PKS[0].Address()) newTopicMsg := &types.MsgCreateNewTopic{ - Creator: creator.String(), - Metadata: metadata, - LossMethod: "method", - EpochLength: epochLen, - GroundTruthLag: epochLen, - WorkerSubmissionWindow: epochLen, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: creator.String(), + Metadata: metadata, + LossMethod: "method", + EpochLength: epochLen, + GroundTruthLag: epochLen, + WorkerSubmissionWindow: epochLen, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } s.MintTokensToAddress(creator, types.DefaultParams().CreateTopicFee) @@ -2454,7 +2458,7 @@ func (s *KeeperTestSuite) TestRewardableTopics() { /// SCORES -func (s *KeeperTestSuite) TestGetLatestScores() { +func (s *KeeperTestSuite) TestGetScoreEmas() { ctx := s.ctx keeper := s.emissionsKeeper topicId := uint64(1) @@ -2463,7 +2467,7 @@ func (s *KeeperTestSuite) TestGetLatestScores() { reputer := "reputer1" // Test getting latest scores when none are set - infererScore, err := keeper.GetLatestInfererScore(ctx, topicId, worker) + infererScore, err := keeper.GetInfererScoreEma(ctx, topicId, worker) s.Require().NoError(err, "Fetching latest inferer score should not fail") s.Require().Equal(types.Score{ TopicId: topicId, @@ -2472,41 +2476,54 @@ func (s *KeeperTestSuite) TestGetLatestScores() { Score: alloraMath.ZeroDec(), }, infererScore, "Inferer score should be zero if not set") - forecasterScore, err := keeper.GetLatestForecasterScore(ctx, topicId, forecaster) + forecasterScore, err := keeper.GetForecasterScoreEma(ctx, topicId, forecaster) s.Require().NoError(err, "Fetching latest forecaster score should not fail") - s.Require().Equal(types.Score{}, forecasterScore, "Forecaster score should be empty if not set") + s.Require().Equal(types.Score{ + TopicId: topicId, + BlockHeight: 0, + Address: forecaster, + Score: alloraMath.ZeroDec(), + }, forecasterScore, "Forecaster score should be empty if not set") - reputerScore, err := keeper.GetLatestReputerScore(ctx, topicId, reputer) + reputerScore, err := keeper.GetReputerScoreEma(ctx, topicId, reputer) s.Require().NoError(err, "Fetching latest reputer score should not fail") - s.Require().Equal(types.Score{}, reputerScore, "Reputer score should be empty if not set") + s.Require().Equal(types.Score{ + TopicId: topicId, + BlockHeight: 0, + Address: reputer, + Score: alloraMath.ZeroDec(), + }, reputerScore, "Reputer score should be empty if not set") } -func (s *KeeperTestSuite) TestSetLatestScores() { +func (s *KeeperTestSuite) TestSetScoreEmas() { ctx := s.ctx keeper := s.emissionsKeeper topicId := uint64(1) worker := "worker1" forecaster := "forecaster1" reputer := "reputer1" - oldScore := types.Score{TopicId: topicId, BlockHeight: 1, Address: worker, Score: alloraMath.NewDecFromInt64(90)} - newScore := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker, Score: alloraMath.NewDecFromInt64(95)} + score := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker, Score: alloraMath.NewDecFromInt64(95)} // Set an initial score for inferer and attempt to update with an older score - _ = keeper.SetLatestInfererScore(ctx, topicId, worker, newScore) - err := keeper.SetLatestInfererScore(ctx, topicId, worker, oldScore) - s.Require().NoError(err, "Setting an older inferer score should not fail but should not update") - updatedScore, _ := keeper.GetLatestInfererScore(ctx, topicId, worker) - s.Require().NotEqual(oldScore.Score, updatedScore.Score, "Older score should not replace newer score") + err := keeper.SetInfererScoreEma(ctx, topicId, worker, score) + s.Require().NoError(err) + infererScore, err := keeper.GetInfererScoreEma(ctx, topicId, worker) + s.Require().NoError(err) + s.Require().Equal(score.Score, infererScore.Score, "Newer inferer score should be set") // Set a new score for forecaster - _ = keeper.SetLatestForecasterScore(ctx, topicId, forecaster, newScore) - forecasterScore, _ := keeper.GetLatestForecasterScore(ctx, topicId, forecaster) - s.Require().Equal(newScore.Score, forecasterScore.Score, "Newer forecaster score should be set") + err = keeper.SetForecasterScoreEma(ctx, topicId, forecaster, score) + s.Require().NoError(err) + forecasterScore, err := keeper.GetForecasterScoreEma(ctx, topicId, forecaster) + s.Require().NoError(err) + s.Require().Equal(score.Score, forecasterScore.Score, "Newer forecaster score should be set") // Set a new score for reputer - _ = keeper.SetLatestReputerScore(ctx, topicId, reputer, newScore) - reputerScore, _ := keeper.GetLatestReputerScore(ctx, topicId, reputer) - s.Require().Equal(newScore.Score, reputerScore.Score, "Newer reputer score should be set") + err = keeper.SetReputerScoreEma(ctx, topicId, reputer, score) + s.Require().NoError(err) + reputerScore, err := keeper.GetReputerScoreEma(ctx, topicId, reputer) + s.Require().NoError(err) + s.Require().Equal(score.Score, reputerScore.Score, "Newer reputer score should be set") } func (s *KeeperTestSuite) TestInsertWorkerInferenceScore() { @@ -3476,15 +3493,15 @@ func (s *KeeperTestSuite) TestAppendForecast() { score3 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker3, Score: alloraMath.NewDecFromInt64(99)} score4 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker4, Score: alloraMath.NewDecFromInt64(91)} score5 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker5, Score: alloraMath.NewDecFromInt64(96)} - err := k.SetLatestInfererScore(ctx, topicId, worker1, score1) + err := k.SetInfererScoreEma(ctx, topicId, worker1, score1) s.Require().NoError(err) - err = k.SetLatestInfererScore(ctx, topicId, worker2, score2) + err = k.SetInfererScoreEma(ctx, topicId, worker2, score2) s.Require().NoError(err) - err = k.SetLatestInfererScore(ctx, topicId, worker3, score3) + err = k.SetInfererScoreEma(ctx, topicId, worker3, score3) s.Require().NoError(err) - err = k.SetLatestInfererScore(ctx, topicId, worker4, score4) + err = k.SetInfererScoreEma(ctx, topicId, worker4, score4) s.Require().NoError(err) - err = k.SetLatestInfererScore(ctx, topicId, worker5, score5) + err = k.SetInfererScoreEma(ctx, topicId, worker5, score5) s.Require().NoError(err) allInferences := types.Inferences{ @@ -3539,15 +3556,15 @@ func (s *KeeperTestSuite) TestAppendInference() { score3 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker3, Score: alloraMath.NewDecFromInt64(99)} score4 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker4, Score: alloraMath.NewDecFromInt64(91)} score5 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker5, Score: alloraMath.NewDecFromInt64(96)} - err := k.SetLatestForecasterScore(ctx, topicId, worker1, score1) + err := k.SetForecasterScoreEma(ctx, topicId, worker1, score1) s.Require().NoError(err) - err = k.SetLatestForecasterScore(ctx, topicId, worker2, score2) + err = k.SetForecasterScoreEma(ctx, topicId, worker2, score2) s.Require().NoError(err) - err = k.SetLatestForecasterScore(ctx, topicId, worker3, score3) + err = k.SetForecasterScoreEma(ctx, topicId, worker3, score3) s.Require().NoError(err) - err = k.SetLatestForecasterScore(ctx, topicId, worker4, score4) + err = k.SetForecasterScoreEma(ctx, topicId, worker4, score4) s.Require().NoError(err) - err = k.SetLatestForecasterScore(ctx, topicId, worker5, score5) + err = k.SetForecasterScoreEma(ctx, topicId, worker5, score5) s.Require().NoError(err) allForecasts := types.Forecasts{ @@ -3671,15 +3688,15 @@ func (s *KeeperTestSuite) TestAppendReputerLoss() { score3 := types.Score{TopicId: topicId, BlockHeight: 2, Address: reputer3, Score: alloraMath.NewDecFromInt64(99)} score4 := types.Score{TopicId: topicId, BlockHeight: 2, Address: reputer4, Score: alloraMath.NewDecFromInt64(91)} score5 := types.Score{TopicId: topicId, BlockHeight: 2, Address: reputer5, Score: alloraMath.NewDecFromInt64(96)} - err := k.SetLatestReputerScore(ctx, topicId, reputer1, score1) + err := k.SetReputerScoreEma(ctx, topicId, reputer1, score1) s.Require().NoError(err) - err = k.SetLatestReputerScore(ctx, topicId, reputer2, score2) + err = k.SetReputerScoreEma(ctx, topicId, reputer2, score2) s.Require().NoError(err) - err = k.SetLatestReputerScore(ctx, topicId, reputer3, score3) + err = k.SetReputerScoreEma(ctx, topicId, reputer3, score3) s.Require().NoError(err) - err = k.SetLatestReputerScore(ctx, topicId, reputer4, score4) + err = k.SetReputerScoreEma(ctx, topicId, reputer4, score4) s.Require().NoError(err) - err = k.SetLatestReputerScore(ctx, topicId, reputer5, score5) + err = k.SetReputerScoreEma(ctx, topicId, reputer5, score5) s.Require().NoError(err) allReputerLosses := types.ReputerValueBundles{ diff --git a/x/emissions/keeper/msgserver/msg_server_registrations_test.go b/x/emissions/keeper/msgserver/msg_server_registrations_test.go index 2c35e1324..65f97d971 100644 --- a/x/emissions/keeper/msgserver/msg_server_registrations_test.go +++ b/x/emissions/keeper/msgserver/msg_server_registrations_test.go @@ -315,15 +315,19 @@ func (s *MsgServerTestSuite) TestBlocklistedAddressUnableToRegister() { s.MintTokensToAddress(worker, cosmosMath.NewInt(10).Mul(cosmosOneE18)) // Create topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: worker.String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: epochLength, - GroundTruthLag: epochLength, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: worker.String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: epochLength, + GroundTruthLag: epochLength, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) diff --git a/x/emissions/keeper/msgserver/msg_server_stake_test.go b/x/emissions/keeper/msgserver/msg_server_stake_test.go index fdbb5062e..c65890f83 100644 --- a/x/emissions/keeper/msgserver/msg_server_stake_test.go +++ b/x/emissions/keeper/msgserver/msg_server_stake_test.go @@ -28,15 +28,19 @@ func (s *MsgServerTestSuite) commonStakingSetup( // Create Topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: reputerAddr.String(), - Metadata: "Some metadata for the new topic", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddr.String(), + Metadata: "Some metadata for the new topic", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } reputerInitialBalance := types.DefaultParams().CreateTopicFee.Add(reputerInitialBalanceUint) diff --git a/x/emissions/keeper/msgserver/msg_server_test.go b/x/emissions/keeper/msgserver/msg_server_test.go index 95757db3b..3c6c0ff0c 100644 --- a/x/emissions/keeper/msgserver/msg_server_test.go +++ b/x/emissions/keeper/msgserver/msg_server_test.go @@ -196,15 +196,19 @@ func (s *MsgServerTestSuite) CreateCustomEpochTopic(epochLen int64) uint64 { creator := sdk.AccAddress(PKS[0].Address()) newTopicMsg := &types.MsgCreateNewTopic{ - Creator: creator.String(), - Metadata: metadata, - LossMethod: "mse", - EpochLength: epochLen, - GroundTruthLag: epochLen, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: creator.String(), + Metadata: metadata, + LossMethod: "mse", + EpochLength: epochLen, + GroundTruthLag: epochLen, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } s.MintTokensToAddress(creator, types.DefaultParams().CreateTopicFee) @@ -225,15 +229,19 @@ func (s *MsgServerTestSuite) TestCreateSeveralTopics() { creator := sdk.AccAddress(PKS[0].Address()) newTopicMsg := &types.MsgCreateNewTopic{ - Creator: creator.String(), - Metadata: metadata, - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: creator.String(), + Metadata: metadata, + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } creatorInitialBalance := types.DefaultParams().CreateTopicFee.Mul(cosmosMath.NewInt(3)) diff --git a/x/emissions/keeper/msgserver/msg_server_topics_test.go b/x/emissions/keeper/msgserver/msg_server_topics_test.go index 3e3e84369..4a2a8389c 100644 --- a/x/emissions/keeper/msgserver/msg_server_topics_test.go +++ b/x/emissions/keeper/msgserver/msg_server_topics_test.go @@ -19,15 +19,19 @@ func (s *MsgServerTestSuite) TestMsgCreateNewTopic() { // Create a MsgCreateNewTopic message newTopicMsg := &types.MsgCreateNewTopic{ - Creator: sender, - Metadata: "Some metadata for the new topic", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: sender, + Metadata: "Some metadata for the new topic", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } s.MintTokensToAddress(senderAddr, types.DefaultParams().CreateTopicFee) @@ -58,15 +62,19 @@ func (s *MsgServerTestSuite) TestMsgCreateNewTopicWithEpsilonZeroFails() { // Create a MsgCreateNewTopic message newTopicMsg := &types.MsgCreateNewTopic{ - Creator: sender, - Metadata: "Some metadata for the new topic", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0"), + Creator: sender, + Metadata: "Some metadata for the new topic", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } s.MintTokensToAddress(senderAddr, types.DefaultParams().CreateTopicFee) diff --git a/x/emissions/keeper/msgserver/msg_server_worker_payload.go b/x/emissions/keeper/msgserver/msg_server_worker_payload.go index 9fddef4f9..f952d711c 100644 --- a/x/emissions/keeper/msgserver/msg_server_worker_payload.go +++ b/x/emissions/keeper/msgserver/msg_server_worker_payload.go @@ -118,7 +118,7 @@ func (ms msgServer) InsertWorkerPayload(ctx context.Context, msg *types.MsgInser // LImit forecast elements for top inferers latestScoresForForecastedInferers := make([]types.Score, 0) for _, el := range forecast.ForecastElements { - score, err := ms.k.GetLatestInfererScore(ctx, forecast.TopicId, el.Inferer) + score, err := ms.k.GetInfererScoreEma(ctx, forecast.TopicId, el.Inferer) if err != nil { continue } diff --git a/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go b/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go index 0b6a7f7dc..be2874653 100644 --- a/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go +++ b/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go @@ -306,10 +306,10 @@ func (s *MsgServerTestSuite) TestMsgInsertWorkerPayloadWithFewTopElementsPerFore score3 := types.Score{TopicId: topicId, BlockHeight: blockHeight, Address: inferer3, Score: alloraMath.NewDecFromInt64(80)} score4 := types.Score{TopicId: topicId, BlockHeight: blockHeight, Address: inferer4, Score: alloraMath.NewDecFromInt64(99)} - _ = s.emissionsKeeper.SetLatestInfererScore(ctx, topicId, inferer1, score1) - _ = s.emissionsKeeper.SetLatestInfererScore(ctx, topicId, inferer2, score2) - _ = s.emissionsKeeper.SetLatestInfererScore(ctx, topicId, inferer3, score3) - _ = s.emissionsKeeper.SetLatestInfererScore(ctx, topicId, inferer4, score4) + _ = s.emissionsKeeper.SetInfererScoreEma(ctx, topicId, inferer1, score1) + _ = s.emissionsKeeper.SetInfererScoreEma(ctx, topicId, inferer2, score2) + _ = s.emissionsKeeper.SetInfererScoreEma(ctx, topicId, inferer3, score3) + _ = s.emissionsKeeper.SetInfererScoreEma(ctx, topicId, inferer4, score4) _, err = msgServer.InsertWorkerPayload(ctx, &workerMsg) require.NoError(err, "InsertWorkerPayload should not return an error") @@ -648,10 +648,10 @@ func (s *MsgServerTestSuite) TestMsgInsertWorkerPayloadWithLowScoreForecastsAreR score3 := types.Score{TopicId: topicId, BlockHeight: blockHeight, Address: inferer3, Score: alloraMath.NewDecFromInt64(80)} score4 := types.Score{TopicId: topicId, BlockHeight: blockHeight, Address: inferer4, Score: alloraMath.NewDecFromInt64(50)} - _ = keeper.SetLatestInfererScore(ctx, topicId, inferer1, score1) - _ = keeper.SetLatestInfererScore(ctx, topicId, inferer2, score2) - _ = keeper.SetLatestInfererScore(ctx, topicId, inferer3, score3) - _ = keeper.SetLatestInfererScore(ctx, topicId, inferer4, score4) + _ = keeper.SetInfererScoreEma(ctx, topicId, inferer1, score1) + _ = keeper.SetInfererScoreEma(ctx, topicId, inferer2, score2) + _ = keeper.SetInfererScoreEma(ctx, topicId, inferer3, score3) + _ = keeper.SetInfererScoreEma(ctx, topicId, inferer4, score4) _, err = msgServer.InsertWorkerPayload(ctx, &workerMsg) require.NoError(err, "InsertWorkerPayload should not return an error even if the forecast elements are below the threshold") diff --git a/x/emissions/keeper/queryserver/query_server_score.go b/x/emissions/keeper/queryserver/query_server_score.go index a22c206da..18667b73d 100644 --- a/x/emissions/keeper/queryserver/query_server_score.go +++ b/x/emissions/keeper/queryserver/query_server_score.go @@ -6,49 +6,49 @@ import ( "github.com/allora-network/allora-chain/x/emissions/types" ) -func (qs queryServer) GetLatestInfererScore( +func (qs queryServer) GetInfererScoreEma( ctx context.Context, - req *types.QueryLatestInfererScoreRequest, + req *types.QueryGetInfererScoreEmaRequest, ) ( - *types.QueryLatestInfererScoreResponse, + *types.QueryGetInfererScoreEmaResponse, error, ) { - latestInfererScore, err := qs.k.GetLatestInfererScore(ctx, req.TopicId, req.Inferer) + latestInfererScore, err := qs.k.GetInfererScoreEma(ctx, req.TopicId, req.Inferer) if err != nil { return nil, err } - return &types.QueryLatestInfererScoreResponse{Score: &latestInfererScore}, nil + return &types.QueryGetInfererScoreEmaResponse{Score: &latestInfererScore}, nil } -func (qs queryServer) GetLatestForecasterScore( +func (qs queryServer) GetForecasterScoreEma( ctx context.Context, - req *types.QueryLatestForecasterScoreRequest, + req *types.QueryGetForecasterScoreEmaRequest, ) ( - *types.QueryLatestForecasterScoreResponse, + *types.QueryGetForecasterScoreEmaResponse, error, ) { - latestForecasterScore, err := qs.k.GetLatestForecasterScore(ctx, req.TopicId, req.Forecaster) + latestForecasterScore, err := qs.k.GetForecasterScoreEma(ctx, req.TopicId, req.Forecaster) if err != nil { return nil, err } - return &types.QueryLatestForecasterScoreResponse{Score: &latestForecasterScore}, nil + return &types.QueryGetForecasterScoreEmaResponse{Score: &latestForecasterScore}, nil } -func (qs queryServer) GetLatestReputerScore( +func (qs queryServer) GetReputerScoreEma( ctx context.Context, - req *types.QueryLatestReputerScoreRequest, + req *types.QueryGetReputerScoreEmaRequest, ) ( - *types.QueryLatestReputerScoreResponse, + *types.QueryGetReputerScoreEmaResponse, error, ) { - latestReputerScore, err := qs.k.GetLatestReputerScore(ctx, req.TopicId, req.Reputer) + latestReputerScore, err := qs.k.GetReputerScoreEma(ctx, req.TopicId, req.Reputer) if err != nil { return nil, err } - return &types.QueryLatestReputerScoreResponse{Score: &latestReputerScore}, nil + return &types.QueryGetReputerScoreEmaResponse{Score: &latestReputerScore}, nil } func (qs queryServer) GetInferenceScoresUntilBlock( diff --git a/x/emissions/keeper/queryserver/query_server_score_test.go b/x/emissions/keeper/queryserver/query_server_score_test.go index ab68fb197..093dba878 100644 --- a/x/emissions/keeper/queryserver/query_server_score_test.go +++ b/x/emissions/keeper/queryserver/query_server_score_test.go @@ -8,31 +8,32 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" ) -func (s *QueryServerTestSuite) TestGetLatestInfererScore() { +func (s *QueryServerTestSuite) TestGetInfererScoreEma() { ctx := s.ctx keeper := s.emissionsKeeper topicId := uint64(1) worker := "worker1" - oldScore := types.Score{TopicId: topicId, BlockHeight: 1, Address: worker, Score: alloraMath.NewDecFromInt64(90)} newScore := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker, Score: alloraMath.NewDecFromInt64(95)} // Set an initial score for inferer and attempt to update with an older score - _ = keeper.SetLatestInfererScore(ctx, topicId, worker, newScore) - err := keeper.SetLatestInfererScore(ctx, topicId, worker, oldScore) - s.Require().NoError(err, "Setting an older inferer score should not fail but should not update") + err := keeper.SetInfererScoreEma(ctx, topicId, worker, newScore) + s.Require().NoError(err, "Setting an inferer score should not fail") - req := &types.QueryLatestInfererScoreRequest{ + req := &types.QueryGetInfererScoreEmaRequest{ TopicId: topicId, Inferer: worker, } - response, err := s.queryServer.GetLatestInfererScore(ctx, req) + response, err := s.queryServer.GetInfererScoreEma(ctx, req) s.Require().NoError(err) - updatedScore := response.Score - s.Require().NotEqual(oldScore.Score, updatedScore.Score, "Older score should not replace newer score") + s.Require().True( + newScore.Score.Equal(response.Score.Score), + "Score should be set %s | %s", + newScore.Score.String(), + response.Score.Score.String()) } -func (s *QueryServerTestSuite) TestGetLatestForecasterScore() { +func (s *QueryServerTestSuite) TestGetForecasterScoreEma() { ctx := s.ctx keeper := s.emissionsKeeper topicId := uint64(1) @@ -41,20 +42,20 @@ func (s *QueryServerTestSuite) TestGetLatestForecasterScore() { newScore := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker, Score: alloraMath.NewDecFromInt64(95)} // Set a new score for forecaster - _ = keeper.SetLatestForecasterScore(ctx, topicId, forecaster, newScore) + _ = keeper.SetForecasterScoreEma(ctx, topicId, forecaster, newScore) - req := &types.QueryLatestForecasterScoreRequest{ + req := &types.QueryGetForecasterScoreEmaRequest{ TopicId: topicId, Forecaster: forecaster, } - response, err := s.queryServer.GetLatestForecasterScore(ctx, req) + response, err := s.queryServer.GetForecasterScoreEma(ctx, req) s.Require().NoError(err) forecasterScore := response.Score s.Require().Equal(newScore.Score, forecasterScore.Score, "Newer forecaster score should be set") } -func (s *QueryServerTestSuite) TestGetLatestReputerScore() { +func (s *QueryServerTestSuite) TestGetReputerScoreEma() { ctx := s.ctx keeper := s.emissionsKeeper topicId := uint64(1) @@ -63,13 +64,13 @@ func (s *QueryServerTestSuite) TestGetLatestReputerScore() { newScore := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker, Score: alloraMath.NewDecFromInt64(95)} // Set a new score for reputer - _ = keeper.SetLatestReputerScore(ctx, topicId, reputer, newScore) + _ = keeper.SetReputerScoreEma(ctx, topicId, reputer, newScore) - req := &types.QueryLatestReputerScoreRequest{ + req := &types.QueryGetReputerScoreEmaRequest{ TopicId: topicId, Reputer: reputer, } - response, err := s.queryServer.GetLatestReputerScore(ctx, req) + response, err := s.queryServer.GetReputerScoreEma(ctx, req) s.Require().NoError(err) reputerScore := response.Score diff --git a/x/emissions/keeper/queryserver/query_server_test.go b/x/emissions/keeper/queryserver/query_server_test.go index e06c73e00..a1c3885c4 100644 --- a/x/emissions/keeper/queryserver/query_server_test.go +++ b/x/emissions/keeper/queryserver/query_server_test.go @@ -178,15 +178,19 @@ func (s *QueryServerTestSuite) CreateOneTopic() uint64 { creator := sdk.AccAddress(PKS[0].Address()) newTopicMsg := &types.MsgCreateNewTopic{ - Creator: creator.String(), - Metadata: metadata, - LossMethod: "method", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: creator.String(), + Metadata: metadata, + LossMethod: "method", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } s.MintTokensToAddress(creator, types.DefaultParams().CreateTopicFee) @@ -207,15 +211,19 @@ func (s *QueryServerTestSuite) TestCreateSeveralTopics() { creator := sdk.AccAddress(PKS[0].Address()) newTopicMsg := &types.MsgCreateNewTopic{ - Creator: creator.String(), - Metadata: metadata, - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: creator.String(), + Metadata: metadata, + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } creatorInitialBalance := types.DefaultParams().CreateTopicFee.Mul(cosmosMath.NewInt(3)) diff --git a/x/emissions/keeper/score_utils.go b/x/emissions/keeper/score_utils.go index 90699d9f8..bfbde707f 100644 --- a/x/emissions/keeper/score_utils.go +++ b/x/emissions/keeper/score_utils.go @@ -14,12 +14,12 @@ func GetLowScoreFromAllLossBundles( lossBundles types.ReputerValueBundles, ) (types.Score, int, error) { lowScoreIndex := 0 - lowScore, err := k.GetLatestReputerScore(ctx, topicId, lossBundles.ReputerValueBundles[0].ValueBundle.Reputer) + lowScore, err := k.GetReputerScoreEma(ctx, topicId, lossBundles.ReputerValueBundles[0].ValueBundle.Reputer) if err != nil { return types.Score{}, lowScoreIndex, err } for index, extLossBundle := range lossBundles.ReputerValueBundles { - extScore, err := k.GetLatestReputerScore(ctx, topicId, extLossBundle.ValueBundle.Reputer) + extScore, err := k.GetReputerScoreEma(ctx, topicId, extLossBundle.ValueBundle.Reputer) if err != nil { continue } @@ -39,12 +39,12 @@ func GetLowScoreFromAllInferences( inferences types.Inferences, ) (types.Score, int, error) { lowScoreIndex := 0 - lowScore, err := k.GetLatestInfererScore(ctx, topicId, inferences.Inferences[0].Inferer) + lowScore, err := k.GetInfererScoreEma(ctx, topicId, inferences.Inferences[0].Inferer) if err != nil { return types.Score{}, lowScoreIndex, err } for index, extInference := range inferences.Inferences { - extScore, err := k.GetLatestInfererScore(ctx, topicId, extInference.Inferer) + extScore, err := k.GetInfererScoreEma(ctx, topicId, extInference.Inferer) if err != nil { continue } @@ -64,12 +64,12 @@ func GetLowScoreFromAllForecasts( forecasts types.Forecasts, ) (types.Score, int, error) { lowScoreIndex := 0 - lowScore, err := k.GetLatestForecasterScore(ctx, topicId, forecasts.Forecasts[0].Forecaster) + lowScore, err := k.GetForecasterScoreEma(ctx, topicId, forecasts.Forecasts[0].Forecaster) if err != nil { return types.Score{}, lowScoreIndex, err } for index, extForecast := range forecasts.Forecasts { - extScore, err := k.GetLatestForecasterScore(ctx, topicId, extForecast.Forecaster) + extScore, err := k.GetForecasterScoreEma(ctx, topicId, extForecast.Forecaster) if err != nil { continue } diff --git a/x/emissions/keeper/score_utils_test.go b/x/emissions/keeper/score_utils_test.go index 2167f87be..6901efc04 100644 --- a/x/emissions/keeper/score_utils_test.go +++ b/x/emissions/keeper/score_utils_test.go @@ -19,9 +19,9 @@ func (s *KeeperTestSuite) TestGetLowScoreFromAllInferences() { score1 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker1, Score: alloraMath.NewDecFromInt64(95)} score2 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker2, Score: alloraMath.NewDecFromInt64(90)} score3 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker3, Score: alloraMath.NewDecFromInt64(99)} - _ = k.SetLatestInfererScore(ctx, topicId, worker1, score1) - _ = k.SetLatestInfererScore(ctx, topicId, worker2, score2) - _ = k.SetLatestInfererScore(ctx, topicId, worker3, score3) + _ = k.SetInfererScoreEma(ctx, topicId, worker1, score1) + _ = k.SetInfererScoreEma(ctx, topicId, worker2, score2) + _ = k.SetInfererScoreEma(ctx, topicId, worker3, score3) allInferences := types.Inferences{ Inferences: []*types.Inference{ @@ -49,9 +49,9 @@ func (s *KeeperTestSuite) TestGetLowScoreFromAllForecasts() { score1 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker1, Score: alloraMath.NewDecFromInt64(95)} score2 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker2, Score: alloraMath.NewDecFromInt64(90)} score3 := types.Score{TopicId: topicId, BlockHeight: 2, Address: worker3, Score: alloraMath.NewDecFromInt64(99)} - _ = k.SetLatestForecasterScore(ctx, topicId, worker1, score1) - _ = k.SetLatestForecasterScore(ctx, topicId, worker2, score2) - _ = k.SetLatestForecasterScore(ctx, topicId, worker3, score3) + _ = k.SetForecasterScoreEma(ctx, topicId, worker1, score1) + _ = k.SetForecasterScoreEma(ctx, topicId, worker2, score2) + _ = k.SetForecasterScoreEma(ctx, topicId, worker3, score3) allForecasts := types.Forecasts{ Forecasts: []*types.Forecast{ @@ -124,9 +124,9 @@ func (s *KeeperTestSuite) TestGetLowScoreFromAllLossBundles() { score1 := types.Score{TopicId: topicId, BlockHeight: 2, Address: reputer1, Score: alloraMath.NewDecFromInt64(95)} score2 := types.Score{TopicId: topicId, BlockHeight: 2, Address: reputer2, Score: alloraMath.NewDecFromInt64(90)} score3 := types.Score{TopicId: topicId, BlockHeight: 2, Address: reputer3, Score: alloraMath.NewDecFromInt64(99)} - _ = k.SetLatestReputerScore(ctx, topicId, reputer1, score1) - _ = k.SetLatestReputerScore(ctx, topicId, reputer2, score2) - _ = k.SetLatestReputerScore(ctx, topicId, reputer3, score3) + _ = k.SetReputerScoreEma(ctx, topicId, reputer1, score1) + _ = k.SetReputerScoreEma(ctx, topicId, reputer2, score2) + _ = k.SetReputerScoreEma(ctx, topicId, reputer3, score3) allReputerLosses := types.ReputerValueBundles{ ReputerValueBundles: []*types.ReputerValueBundle{ diff --git a/x/emissions/migrations/v3/migrate.go b/x/emissions/migrations/v3/migrate.go index 94f83a933..a7ab25d40 100644 --- a/x/emissions/migrations/v3/migrate.go +++ b/x/emissions/migrations/v3/migrate.go @@ -5,7 +5,7 @@ import ( "fmt" "cosmossdk.io/collections" - "cosmossdk.io/errors" + errorsmod "cosmossdk.io/errors" cosmosMath "cosmossdk.io/math" "cosmossdk.io/store/prefix" storetypes "cosmossdk.io/store/types" @@ -19,19 +19,29 @@ import ( "github.com/gogo/protobuf/proto" ) +const maxPageSize = uint64(10000) + func MigrateStore(ctx sdk.Context, emissionsKeeper keeper.Keeper) error { ctx.Logger().Info("MIGRATING STORE FROM VERSION 2 TO VERSION 3") storageService := emissionsKeeper.GetStorageService() store := runtime.KVStoreAdapter(storageService.OpenKVStore(ctx)) cdc := emissionsKeeper.GetBinaryCodec() + ctx.Logger().Info("INVOKING MIGRATION HANDLER MigrateParams() FROM VERSION 2 TO VERSION 3") if err := MigrateParams(store, cdc); err != nil { + ctx.Logger().Error("ERROR INVOKING MIGRATION HANDLER MigrateParams() FROM VERSION 2 TO VERSION 3") return err } - if err := MigrateActiveTopics(store, ctx, emissionsKeeper); err != nil { + + ctx.Logger().Info("INVOKING MIGRATION HANDLER MigrateTopics() FROM VERSION 2 TO VERSION 3") + if err := MigrateTopics(ctx, store, cdc, emissionsKeeper); err != nil { + ctx.Logger().Error("ERROR INVOKING MIGRATION HANDLER MigrateTopics() FROM VERSION 2 TO VERSION 3") return err } + ctx.Logger().Info("INVOKING MIGRATION HANDLER ResetMapsWithNonNumericValues() FROM VERSION 2 TO VERSION 3") + ResetMapsWithNonNumericValues(store, cdc) + return nil } @@ -39,11 +49,11 @@ func MigrateParams(store storetypes.KVStore, cdc codec.BinaryCodec) error { oldParams := oldtypes.Params{} oldParamsBytes := store.Get(types.ParamsKey) if oldParamsBytes == nil { - return errors.Wrapf(types.ErrNotFound, "old parameters not found") + return errorsmod.Wrapf(types.ErrNotFound, "old parameters not found") } err := proto.Unmarshal(oldParamsBytes, &oldParams) if err != nil { - return errors.Wrapf(err, "failed to unmarshal old parameters") + return errorsmod.Wrapf(err, "failed to unmarshal old parameters") } defaultParams := types.DefaultParams() @@ -97,8 +107,9 @@ func MigrateParams(store storetypes.KVStore, cdc codec.BinaryCodec) error { HalfMaxProcessStakeRemovalsEndBlock: oldParams.HalfMaxProcessStakeRemovalsEndBlock, EpsilonSafeDiv: oldParams.EpsilonSafeDiv, DataSendingFee: oldParams.DataSendingFee, - MaxElementsPerForecast: defaultParams.MaxElementsPerForecast, - MaxActiveTopicsPerBlock: defaultParams.MaxActiveTopicsPerBlock, + // NEW PARAMS + MaxElementsPerForecast: defaultParams.MaxElementsPerForecast, + MaxActiveTopicsPerBlock: defaultParams.MaxActiveTopicsPerBlock, } store.Delete(types.ParamsKey) @@ -106,9 +117,12 @@ func MigrateParams(store storetypes.KVStore, cdc codec.BinaryCodec) error { return nil } -func MigrateActiveTopics(store storetypes.KVStore, ctx sdk.Context, emissionsKeeper keeper.Keeper) error { - sdkCtx := sdk.UnwrapSDKContext(ctx) - sdkCtx.Logger().Warn("MigrateActiveTopics") +func MigrateTopics( + ctx sdk.Context, + store storetypes.KVStore, + cdc codec.BinaryCodec, + emissionsKeeper keeper.Keeper, +) error { topicStore := prefix.NewStore(store, types.TopicsKey) topicFeeRevStore := prefix.NewStore(store, types.TopicFeeRevenueKey) topicStakeStore := prefix.NewStore(store, types.TopicStakeKey) @@ -119,7 +133,7 @@ func MigrateActiveTopics(store storetypes.KVStore, ctx sdk.Context, emissionsKee blockLowestWeightStore := prefix.NewStore(store, types.BlockToLowestActiveTopicWeightKey) params, err := emissionsKeeper.GetParams(ctx) if err != nil { - return errors.Wrapf(err, "failed to get params for active topic migration") + return errorsmod.Wrapf(err, "failed to get params for active topic migration") } churningBlock := make(map[types.TopicId]types.BlockHeight, 0) blockToActiveTopics := make(map[types.BlockHeight]types.TopicIds, 0) @@ -127,27 +141,31 @@ func MigrateActiveTopics(store storetypes.KVStore, ctx sdk.Context, emissionsKee topicWeightData := make(map[types.TopicId]alloraMath.Dec, 0) + topicsToChange := make(map[string]types.Topic, 0) for ; iterator.Valid(); iterator.Next() { var oldMsg oldtypes.Topic err := proto.Unmarshal(iterator.Value(), &oldMsg) if err != nil { - continue + return errorsmod.Wrapf(err, "failed to unmarshal old topic") } var feeRevenue = cosmosMath.NewInt(0) idArray := make([]byte, 8) binary.BigEndian.PutUint64(idArray, oldMsg.Id) err = feeRevenue.Unmarshal(topicFeeRevStore.Get(idArray)) if err != nil { + topicsToChange[string(iterator.Key())] = getNewTopic(oldMsg) continue } var stake = cosmosMath.NewInt(0) err = stake.Unmarshal(topicStakeStore.Get(idArray)) if err != nil { + topicsToChange[string(iterator.Key())] = getNewTopic(oldMsg) continue } var previousWeight = alloraMath.NewDecFromInt64(0) err = previousWeight.Unmarshal(topicPreviousWeightStore.Get(idArray)) if err != nil { + topicsToChange[string(iterator.Key())] = getNewTopic(oldMsg) continue } // Get topic's latest weight @@ -162,13 +180,15 @@ func MigrateActiveTopics(store storetypes.KVStore, ctx sdk.Context, emissionsKee emissionsKeeper, ) if err != nil { + topicsToChange[string(iterator.Key())] = getNewTopic(oldMsg) continue } topicWeightData[oldMsg.Id] = weight blockHeight := oldMsg.EpochLastEnded + oldMsg.EpochLength - sdkCtx.Logger().Warn(fmt.Sprintf("update blockHeight %d", blockHeight)) - // If the weight less than minimum weight then skip this topic + ctx.Logger().Warn(fmt.Sprintf("update blockHeight %d", blockHeight)) + // If the weight is less than minimum weight then skip this topic if weight.Lt(params.MinTopicWeight) { + topicsToChange[string(iterator.Key())] = getNewTopic(oldMsg) continue } @@ -221,11 +241,94 @@ func MigrateActiveTopics(store storetypes.KVStore, ctx sdk.Context, emissionsKee } blockToActiveStore.Set(blockHeightBytes, activeTopicsBytes) blockLowestWeightStore.Set(blockHeightBytes, lowestWeightBytes) + + topicsToChange[string(iterator.Key())] = getNewTopic(oldMsg) } _ = iterator.Close() + for key, value := range topicsToChange { + topicStore.Set([]byte(key), cdc.MustMarshal(&value)) + } + return nil } +func getNewTopic(oldMsg oldtypes.Topic) types.Topic { + return types.Topic{ + Id: oldMsg.Id, + Creator: oldMsg.Creator, + Metadata: oldMsg.Metadata, + LossMethod: oldMsg.LossMethod, + EpochLastEnded: oldMsg.EpochLastEnded, // Add default value + EpochLength: oldMsg.EpochLength, + GroundTruthLag: oldMsg.GroundTruthLag, + PNorm: oldMsg.PNorm, + AlphaRegret: oldMsg.AlphaRegret, + AllowNegative: oldMsg.AllowNegative, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + // InitialRegret is being reset to account for NaNs that were previously stored due to insufficient validation + InitialRegret: alloraMath.MustNewDecFromString("0"), + WorkerSubmissionWindow: oldMsg.WorkerSubmissionWindow, + // These are new fields + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.25"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.25"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.25"), + } +} + +// Deletes all keys in the store with the given keyPrefix `maxPageSize` keys at a time +func safelyClearWholeMap(store storetypes.KVStore, keyPrefix []byte) { + s := prefix.NewStore(store, keyPrefix) + + // Loop until all keys are deleted. + // Unbounded not best practice but we are sure that the number of keys will be limited + // and not deleting all keys means "poison" will remain in the store. + for { + // Gather keys to eventually delete + iterator := s.Iterator(nil, nil) + keysToDelete := make([][]byte, 0) + count := uint64(0) + for ; iterator.Valid(); iterator.Next() { + if count >= maxPageSize { + break + } + + keysToDelete = append(keysToDelete, iterator.Key()) + count++ + } + iterator.Close() + + // If no keys to delete, break => Exit whole function + if len(keysToDelete) == 0 { + break + } + + // Delete the keys + for _, key := range keysToDelete { + s.Delete(key) + } + } +} + +func ResetMapsWithNonNumericValues(store storetypes.KVStore, cdc codec.BinaryCodec) { + safelyClearWholeMap(store, types.InferenceScoresKey) + safelyClearWholeMap(store, types.ForecastScoresKey) + safelyClearWholeMap(store, types.ReputerScoresKey) + safelyClearWholeMap(store, types.InfererScoreEmasKey) + safelyClearWholeMap(store, types.ForecasterScoreEmasKey) + safelyClearWholeMap(store, types.ReputerScoreEmasKey) + safelyClearWholeMap(store, types.AllLossBundlesKey) + safelyClearWholeMap(store, types.NetworkLossBundlesKey) + safelyClearWholeMap(store, types.InfererNetworkRegretsKey) + safelyClearWholeMap(store, types.ForecasterNetworkRegretsKey) + safelyClearWholeMap(store, types.OneInForecasterNetworkRegretsKey) + safelyClearWholeMap(store, types.LatestNaiveInfererNetworkRegretsKey) + safelyClearWholeMap(store, types.LatestOneOutInfererInfererNetworkRegretsKey) + safelyClearWholeMap(store, types.LatestOneOutInfererForecasterNetworkRegretsKey) + safelyClearWholeMap(store, types.LatestOneOutForecasterInfererNetworkRegretsKey) + safelyClearWholeMap(store, types.LatestOneOutForecasterForecasterNetworkRegretsKey) +} + func getTopicWeight( feeRevenue, stake cosmosMath.Int, previousWeight alloraMath.Dec, diff --git a/x/emissions/migrations/v3/migrate_test.go b/x/emissions/migrations/v3/migrate_test.go index 47044ef06..30c924373 100644 --- a/x/emissions/migrations/v3/migrate_test.go +++ b/x/emissions/migrations/v3/migrate_test.go @@ -1,22 +1,19 @@ package v3_test import ( - "encoding/json" - "strconv" "testing" - cosmosMath "cosmossdk.io/math" - "cosmossdk.io/store/prefix" - oldtypes "github.com/allora-network/allora-chain/x/emissions/migrations/v2/types" - alloraMath "github.com/allora-network/allora-chain/math" codecAddress "github.com/cosmos/cosmos-sdk/codec/address" + "cosmossdk.io/core/store" "github.com/allora-network/allora-chain/app/params" + "cosmossdk.io/store/prefix" "github.com/allora-network/allora-chain/x/emissions/keeper" - migrations "github.com/allora-network/allora-chain/x/emissions/migrations/v3" + v3 "github.com/allora-network/allora-chain/x/emissions/migrations/v3" + oldtypes "github.com/allora-network/allora-chain/x/emissions/migrations/v3/types" emissions "github.com/allora-network/allora-chain/x/emissions/module" emissionstestutil "github.com/allora-network/allora-chain/x/emissions/testutil" "github.com/allora-network/allora-chain/x/emissions/types" @@ -30,7 +27,6 @@ import ( moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" storetypes "cosmossdk.io/store/types" - oldparams "github.com/allora-network/allora-chain/x/emissions/migrations/v3/types" cosmostestutil "github.com/cosmos/cosmos-sdk/testutil" ) @@ -39,6 +35,7 @@ type EmissionsV3MigrationTestSuite struct { ctrl *gomock.Controller ctx sdk.Context + storeService store.KVStoreService emissionsKeeper *keeper.Keeper } @@ -50,6 +47,7 @@ func (s *EmissionsV3MigrationTestSuite) SetupTest() { encCfg := moduletestutil.MakeTestEncodingConfig(emissions.AppModule{}) key := storetypes.NewKVStoreKey(types.StoreKey) storeService := runtime.NewKVStoreService(key) + s.storeService = storeService testCtx := cosmostestutil.DefaultContextWithDB(s.T(), key, storetypes.NewTransientStoreKey("transient_test")) s.ctx = testCtx.Ctx @@ -72,8 +70,9 @@ func (s *EmissionsV3MigrationTestSuite) TestMigrate() { storageService := s.emissionsKeeper.GetStorageService() store := runtime.KVStoreAdapter(storageService.OpenKVStore(s.ctx)) cdc := s.emissionsKeeper.GetBinaryCodec() + defaultParams := types.DefaultParams() - paramsOld := oldparams.Params{ + paramsOld := oldtypes.Params{ Version: defaultParams.Version, MaxSerializedMsgLength: defaultParams.MaxSerializedMsgLength, MinTopicWeight: defaultParams.MinTopicWeight, @@ -118,16 +117,19 @@ func (s *EmissionsV3MigrationTestSuite) TestMigrate() { TopicFeeRevenueDecayRate: alloraMath.NewDecFromInt64(1338), MaxRetriesToFulfilNoncesWorker: 4242, MaxRetriesToFulfilNoncesReputer: 4243, + MaxTopicsPerBlock: 4244, } store.Set(types.ParamsKey, cdc.MustMarshal(¶msOld)) // Run migration - err := migrations.MigrateStore(s.ctx, *s.emissionsKeeper) + err := v3.MigrateStore(s.ctx, *s.emissionsKeeper) s.Require().NoError(err) // TO BE ADDED VIA DEFAULT PARAMS // MaxElementsPerForecast: defaultParams.MaxElementsPerForecast + // MaxActiveTopicsPerBlock: defaultParams.MaxActiveTopicsPerBlock + paramsExpected := defaultParams params, err := s.emissionsKeeper.GetParams(s.ctx) @@ -175,99 +177,97 @@ func (s *EmissionsV3MigrationTestSuite) TestMigrate() { s.Require().Equal(paramsExpected, params) } -func (s *EmissionsV3MigrationTestSuite) TestActiveTopicsMigration() { - storageService := s.emissionsKeeper.GetStorageService() - store := runtime.KVStoreAdapter(storageService.OpenKVStore(s.ctx)) +func (s *EmissionsV3MigrationTestSuite) TestMigrateTopics() { + store := runtime.KVStoreAdapter(s.storeService.OpenKVStore(s.ctx)) + cdc := s.emissionsKeeper.GetBinaryCodec() + + oldTopic := oldtypes.Topic{ + Id: 1, + Creator: "creator", + Metadata: "metadata", + LossMethod: "lossmethod", + EpochLastEnded: 0, + EpochLength: 100, + GroundTruthLag: 10, + PNorm: alloraMath.NewDecFromInt64(3), + AlphaRegret: alloraMath.MustNewDecFromString("0.1"), + AllowNegative: false, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + // InitialRegret is being reset to account for NaNs that were previously stored due to insufficient validation + InitialRegret: alloraMath.MustNewDecFromString("11"), + WorkerSubmissionWindow: 120, + } - err := s.emissionsKeeper.SetParams(s.ctx, types.Params{ - MinTopicWeight: alloraMath.MustNewDecFromString("0"), - MaxActiveTopicsPerBlock: uint64(4), - }) + bz, err := proto.Marshal(&oldTopic) s.Require().NoError(err) - topicCnt := 10 - s.setUpOldTopicsData(store, topicCnt) - err = migrations.MigrateActiveTopics(store, s.ctx, *s.emissionsKeeper) + topicStore := prefix.NewStore(store, types.TopicsKey) + topicStore.Set([]byte("testKey"), bz) + + err = v3.MigrateTopics(s.ctx, store, cdc, *s.emissionsKeeper) s.Require().NoError(err) - blockToActiveStore := prefix.NewStore(store, types.BlockToActiveTopicsKey) - iterator := blockToActiveStore.Iterator(nil, nil) - for ; iterator.Valid(); iterator.Next() { - var msg types.TopicIds - err := proto.Unmarshal(iterator.Value(), &msg) - s.Require().NoError(err) - s.Require().GreaterOrEqual(len(msg.TopicIds), 3) - } + // Verify the store has been updated correctly + iterator := topicStore.Iterator(nil, nil) + s.Require().True(iterator.Valid()) + defer iterator.Close() + + var newMsg types.Topic + err = proto.Unmarshal(iterator.Value(), &newMsg) + s.Require().NoError(err) + + // Old props are the same + s.Require().Equal(oldTopic.Id, newMsg.Id) + s.Require().Equal(oldTopic.Creator, newMsg.Creator) + s.Require().Equal(oldTopic.Metadata, newMsg.Metadata) + s.Require().Equal(oldTopic.LossMethod, newMsg.LossMethod) + s.Require().Equal(oldTopic.EpochLength, newMsg.EpochLength) + s.Require().Equal(oldTopic.GroundTruthLag, newMsg.GroundTruthLag) + s.Require().Equal(oldTopic.PNorm.String(), newMsg.PNorm.String()) + s.Require().Equal(oldTopic.AlphaRegret.String(), newMsg.AlphaRegret.String()) + s.Require().Equal(oldTopic.AllowNegative, newMsg.AllowNegative) + s.Require().Equal(oldTopic.EpochLastEnded, newMsg.EpochLastEnded) + // New props are imputed with defaults + s.Require().Equal("0.1", newMsg.MeritSortitionAlpha.String()) + s.Require().Equal("0.25", newMsg.ActiveInfererQuantile.String()) + s.Require().Equal("0.25", newMsg.ActiveForecasterQuantile.String()) + s.Require().Equal("0.25", newMsg.ActiveReputerQuantile.String()) + // InitialRegret is reset to 0 + s.Require().Equal("0", newMsg.InitialRegret.String()) } -func (s *EmissionsV3MigrationTestSuite) TestLimitedActiveTopicsMigration() { - storageService := s.emissionsKeeper.GetStorageService() - store := runtime.KVStoreAdapter(storageService.OpenKVStore(s.ctx)) +func (s *EmissionsV3MigrationTestSuite) TestResetMapsWithNonNumericValues() { + store := runtime.KVStoreAdapter(s.storeService.OpenKVStore(s.ctx)) + cdc := s.emissionsKeeper.GetBinaryCodec() - maxActiveTopicPerBlock := 2 - err := s.emissionsKeeper.SetParams(s.ctx, types.Params{ - MinTopicWeight: alloraMath.MustNewDecFromString("0"), - MaxActiveTopicsPerBlock: uint64(maxActiveTopicPerBlock), - }) + score := []*types.Score{ + { + TopicId: uint64(1), + BlockHeight: int64(1), + Address: "address", + Score: alloraMath.NewDecFromInt64(10), + }, + } + scores := types.Scores{Scores: score} + + bz, err := proto.Marshal(&scores) s.Require().NoError(err) - topicCnt := 10 - s.setUpOldTopicsData(store, topicCnt) - err = migrations.MigrateActiveTopics(store, s.ctx, *s.emissionsKeeper) + infererScoresByBlock := prefix.NewStore(store, types.InferenceScoresKey) + infererScoresByBlock.Set([]byte("testKey"), bz) + + // Sanity check + iterator := infererScoresByBlock.Iterator(nil, nil) + s.Require().True(iterator.Valid()) + err = proto.Unmarshal(iterator.Value(), &scores) s.Require().NoError(err) + iterator.Close() + s.Require().Len(scores.Scores, 1) - blockToActiveStore := prefix.NewStore(store, types.BlockToActiveTopicsKey) - iterator := blockToActiveStore.Iterator(nil, nil) - for ; iterator.Valid(); iterator.Next() { - var msg types.TopicIds - err := proto.Unmarshal(iterator.Value(), &msg) - s.Require().NoError(err) - if len(msg.TopicIds) == 0 { - continue - } - s.Require().Len(msg.TopicIds, 3) - } -} + v3.ResetMapsWithNonNumericValues(store, cdc) -func (s *EmissionsV3MigrationTestSuite) setUpOldTopicsData(store storetypes.KVStore, topicCnt int) { - topicStore := prefix.NewStore(store, types.TopicsKey) - topicFeeRevenueStore := prefix.NewStore(store, types.TopicFeeRevenueKey) - topicStakeStore := prefix.NewStore(store, types.TopicStakeKey) - previousTopicWeightStore := prefix.NewStore(store, types.PreviousTopicWeightKey) - - for i := 1; i <= topicCnt; i++ { - oldTopic := oldtypes.Topic{ - Id: uint64(i), - Creator: "creator", - Metadata: "metadata", - LossLogic: "losslogic", - LossMethod: "lossmethod", - InferenceLogic: "inferencelogic", - InferenceMethod: "inferencemethod", - EpochLastEnded: 0, - EpochLength: int64(100 + 50*(i%3)), - GroundTruthLag: 10, - DefaultArg: "defaultarg", - PNorm: alloraMath.NewDecFromInt64(3), - AlphaRegret: alloraMath.MustNewDecFromString("0.1"), - AllowNegative: false, - } - - bz, err := proto.Marshal(&oldTopic) - s.Require().NoError(err) - - topicStore.Set([]byte(strconv.Itoa(i)), bz) - - topicFeeRevenue, err := json.Marshal(cosmosMath.NewInt(int64(10 + i*30))) - s.Require().NoError(err) - topicFeeRevenueStore.Set([]byte(strconv.Itoa(i)), topicFeeRevenue) - - topicStake, err := json.Marshal(cosmosMath.NewInt(int64(1000 + i*100))) - s.Require().NoError(err) - topicStakeStore.Set([]byte(strconv.Itoa(i)), topicStake) - - previousTopicWeight, err := json.Marshal(alloraMath.NewDecFromInt64(int64(50 + i*10))) - s.Require().NoError(err) - previousTopicWeightStore.Set([]byte(strconv.Itoa(i)), previousTopicWeight) - } + // Verify the store has been updated correctly + iterator = infererScoresByBlock.Iterator(nil, nil) + s.Require().False(iterator.Valid(), "iterator should be invalid because the store should be empty") + iterator.Close() } diff --git a/x/emissions/module/autocli.go b/x/emissions/module/autocli.go index 162714f02..a9219767a 100644 --- a/x/emissions/module/autocli.go +++ b/x/emissions/module/autocli.go @@ -170,8 +170,8 @@ func (am AppModule) AutoCLIOptions() *autocliv1.ModuleOptions { }, }, { - RpcMethod: "GetLatestForecasterScore", - Use: "latest-forecaster-score [topic_id] [forecaster]", + RpcMethod: "GetForecasterScoreEma", + Use: "forecaster-score-ema [topic_id] [forecaster]", Short: "Returns latest score for a forecaster in a topic", PositionalArgs: []*autocliv1.PositionalArgDescriptor{ {ProtoField: "topic_id"}, @@ -179,8 +179,8 @@ func (am AppModule) AutoCLIOptions() *autocliv1.ModuleOptions { }, }, { - RpcMethod: "GetLatestInfererScore", - Use: "latest-inferer-score [topic_id] [inferer]", + RpcMethod: "GetInfererScoreEma", + Use: "inferer-score-ema [topic_id] [inferer]", Short: "Returns latest score for a inferer in a topic", PositionalArgs: []*autocliv1.PositionalArgDescriptor{ {ProtoField: "topic_id"}, @@ -188,8 +188,8 @@ func (am AppModule) AutoCLIOptions() *autocliv1.ModuleOptions { }, }, { - RpcMethod: "GetLatestReputerScore", - Use: "latest-reputer-score [topic_id] [reputer]", + RpcMethod: "GetReputerScoreEma", + Use: "reputer-score-ema [topic_id] [reputer]", Short: "Returns latest score for a reputer in a topic", PositionalArgs: []*autocliv1.PositionalArgDescriptor{ {ProtoField: "topic_id"}, diff --git a/x/emissions/module/rewards/reputer_rewards_test.go b/x/emissions/module/rewards/reputer_rewards_test.go index 58fda194e..818a0940b 100644 --- a/x/emissions/module/rewards/reputer_rewards_test.go +++ b/x/emissions/module/rewards/reputer_rewards_test.go @@ -658,15 +658,19 @@ func mockReputersData(s *RewardsTestSuite, topicId uint64, block int64, reputerA func CreateTopic(ctx context.Context, msgServer types.MsgServer, creator string) (uint64, error) { // Create topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: creator, - Metadata: "test", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: creator, + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := msgServer.CreateNewTopic(ctx, newTopicMsg) if err != nil { diff --git a/x/emissions/module/rewards/rewards_test.go b/x/emissions/module/rewards/rewards_test.go index 36e0605bb..d07d01f3e 100644 --- a/x/emissions/module/rewards/rewards_test.go +++ b/x/emissions/module/rewards/rewards_test.go @@ -214,15 +214,19 @@ func (s *RewardsTestSuite) TestStandardRewardEmission() { // Create topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -345,15 +349,19 @@ func (s *RewardsTestSuite) TestStandardRewardEmissionShouldRewardTopicsWithFulfi // Create topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -485,15 +493,19 @@ func (s *RewardsTestSuite) TestStandardRewardEmissionShouldRewardTopicsWithFulfi // Create topic newTopicMsg = &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err = s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -617,15 +629,19 @@ func (s *RewardsTestSuite) setUpTopicWithEpochLength( // Create topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: epochLength, - GroundTruthLag: epochLength, - WorkerSubmissionWindow: epochLength, - AlphaRegret: alphaRegret, - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: epochLength, + GroundTruthLag: epochLength, + WorkerSubmissionWindow: epochLength, + AlphaRegret: alphaRegret, + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) require.NoError(err) @@ -1251,15 +1267,19 @@ func (s *RewardsTestSuite) TestGenerateTasksRewardsShouldIncreaseRewardShareIfMo // Create topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -1397,15 +1417,19 @@ func (s *RewardsTestSuite) TestGenerateTasksRewardsShouldIncreaseRewardShareIfMo // Create new topic newTopicMsg = &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err = s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -1547,15 +1571,19 @@ func (s *RewardsTestSuite) TestRewardsIncreasesBalance() { // Create topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: epochLength, - GroundTruthLag: epochLength, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.MustNewDecFromString("0.1"), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: epochLength, + GroundTruthLag: epochLength, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.MustNewDecFromString("0.1"), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -1727,15 +1755,19 @@ func (s *RewardsTestSuite) TestRewardsHandleStandardDeviationOfZero() { // Create first topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: epochLength, - GroundTruthLag: epochLength, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: epochLength, + GroundTruthLag: epochLength, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -1938,15 +1970,19 @@ func (s *RewardsTestSuite) TestStandardRewardEmissionWithOneInfererAndOneReputer // Create topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: reputer.String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: epochLength, - GroundTruthLag: epochLength, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputer.String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: epochLength, + GroundTruthLag: epochLength, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -2128,15 +2164,19 @@ func (s *RewardsTestSuite) TestOnlyFewTopActorsGetReward() { // Create topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: epochLength, - GroundTruthLag: epochLength, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: epochLength, + GroundTruthLag: epochLength, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -2287,15 +2327,19 @@ func (s *RewardsTestSuite) TestTotalInferersRewardFractionGrowsWithMoreInferers( // Create topic newTopicMsg := &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -2441,15 +2485,19 @@ func (s *RewardsTestSuite) TestTotalInferersRewardFractionGrowsWithMoreInferers( // Create new topic newTopicMsg = &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err = s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -2591,15 +2639,19 @@ func (s *RewardsTestSuite) TestTotalInferersRewardFractionGrowsWithMoreInferers( // Create new topic newTopicMsg = &types.MsgCreateNewTopic{ - Creator: reputerAddrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: reputerAddrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err = s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) diff --git a/x/emissions/module/rewards/scores.go b/x/emissions/module/rewards/scores.go index 7a1b9d4b5..6437bfb21 100644 --- a/x/emissions/module/rewards/scores.go +++ b/x/emissions/module/rewards/scores.go @@ -27,6 +27,10 @@ func GenerateReputerScores( // This is necessary to ensure that all workers are accounted for in the final scores // If a worker is missing from the reported losses, it will be added with a NaN value reportedLosses = ensureWorkerPresence(reportedLosses) + topic, err := keeper.GetTopic(ctx, topicId) + if err != nil { + return []types.Score{}, errors.Wrapf(err, "Error getting topic") + } // Fetch reputers data var reputers []string @@ -104,7 +108,27 @@ func GenerateReputerScores( if err != nil { return []types.Score{}, errors.Wrapf(err, "Error inserting reputer score") } - err = keeper.SetLatestReputerScore(ctx, topicId, reputer, newScore) + previousScore, err := keeper.GetReputerScoreEma(ctx, topicId, reputer) + if err != nil { + return []types.Score{}, errors.Wrapf(err, "Error getting reputer score ema") + } + firstTime := previousScore.BlockHeight == 0 && previousScore.Score.IsZero() + emaScoreDec, err := alloraMath.CalcEma( + topic.MeritSortitionAlpha, + newScore.Score, + previousScore.Score, + firstTime, + ) + if err != nil { + return []types.Score{}, errors.Wrapf(err, "Error calculating ema") + } + emaScore := types.Score{ + TopicId: topicId, + BlockHeight: block, + Address: reputer, + Score: emaScoreDec, + } + err = keeper.SetReputerScoreEma(ctx, topicId, reputer, emaScore) if err != nil { return []types.Score{}, errors.Wrapf(err, "Error setting latest reputer score") } @@ -141,6 +165,10 @@ func GenerateInferenceScores( newScores = append(newScores, newScore) return newScores, nil } + topic, err := keeper.GetTopic(ctx, topicId) + if err != nil { + return []types.Score{}, errors.Wrapf(err, "Error getting topic") + } for _, oneOutLoss := range networkLosses.OneOutInfererValues { workerNewScore, err := oneOutLoss.Value.Sub(networkLosses.CombinedValue) @@ -158,7 +186,27 @@ func GenerateInferenceScores( if err != nil { return []types.Score{}, errors.Wrapf(err, "Error inserting worker inference score") } - err = keeper.SetLatestInfererScore(ctx, topicId, oneOutLoss.Worker, newScore) + previousScore, err := keeper.GetInfererScoreEma(ctx, topicId, oneOutLoss.Worker) + if err != nil { + return []types.Score{}, errors.Wrapf(err, "Error getting inferer score ema") + } + firstTime := previousScore.BlockHeight == 0 && previousScore.Score.IsZero() + emaScoreDec, err := alloraMath.CalcEma( + topic.MeritSortitionAlpha, + newScore.Score, + previousScore.Score, + firstTime, + ) + if err != nil { + return []types.Score{}, errors.Wrapf(err, "Error calculating ema") + } + emaScore := types.Score{ + TopicId: topicId, + BlockHeight: block, + Address: oneOutLoss.Worker, + Score: emaScoreDec, + } + err = keeper.SetInfererScoreEma(ctx, topicId, oneOutLoss.Worker, emaScore) if err != nil { return []types.Score{}, errors.Wrapf(err, "error setting latest inferer score") } @@ -178,6 +226,10 @@ func GenerateForecastScores( networkLosses types.ValueBundle, ) ([]types.Score, error) { var newScores []types.Score + topic, err := keeper.GetTopic(ctx, topicId) + if err != nil { + return []types.Score{}, errors.Wrapf(err, "Error getting topic") + } // If there is only one forecaster, set score to 0 // More than one forecaster is required to have one-out losses @@ -236,7 +288,27 @@ func GenerateForecastScores( if err != nil { return []types.Score{}, errors.Wrapf(err, "Error inserting worker forecast score") } - err = keeper.SetLatestForecasterScore(ctx, topicId, oneInNaiveLoss.Worker, newScore) + previousScore, err := keeper.GetForecasterScoreEma(ctx, topicId, oneInNaiveLoss.Worker) + if err != nil { + return []types.Score{}, errors.Wrapf(err, "Error getting inferer score ema") + } + firstTime := previousScore.BlockHeight == 0 && previousScore.Score.IsZero() + emaScoreDec, err := alloraMath.CalcEma( + topic.MeritSortitionAlpha, + newScore.Score, + previousScore.Score, + firstTime, + ) + if err != nil { + return []types.Score{}, errors.Wrapf(err, "Error calculating ema") + } + emaScore := types.Score{ + TopicId: topicId, + BlockHeight: block, + Address: oneInNaiveLoss.Worker, + Score: emaScoreDec, + } + err = keeper.SetForecasterScoreEma(ctx, topicId, oneInNaiveLoss.Worker, emaScore) if err != nil { return []types.Score{}, errors.Wrapf(err, "Error setting latest forecaster score") } diff --git a/x/emissions/module/rewards/scores_test.go b/x/emissions/module/rewards/scores_test.go index 13b8bc96e..f467033cd 100644 --- a/x/emissions/module/rewards/scores_test.go +++ b/x/emissions/module/rewards/scores_test.go @@ -21,16 +21,20 @@ func (s *RewardsTestSuite) TestGetReputersScoresFromCsv() { block := int64(1003) newTopicMsg := &types.MsgCreateNewTopic{ - Creator: s.addrs[0].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - PNorm: alloraMath.NewDecFromInt64(3), - AlphaRegret: alloraMath.MustNewDecFromString("0.1"), - AllowNegative: true, - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: s.addrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + PNorm: alloraMath.NewDecFromInt64(3), + AlphaRegret: alloraMath.MustNewDecFromString("0.1"), + AllowNegative: true, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) @@ -144,7 +148,25 @@ func (s *RewardsTestSuite) TestGetReputersScoresFromCsv() { } func (s *RewardsTestSuite) TestGetInferenceScores() { - topicId := uint64(1) + newTopicMsg := &types.MsgCreateNewTopic{ + Creator: s.addrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + PNorm: alloraMath.NewDecFromInt64(3), + AlphaRegret: alloraMath.MustNewDecFromString("0.1"), + AllowNegative: true, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), + } + res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) + s.Require().NoError(err) + topicId := res.TopicId block := int64(1003) // Generate workers data for tests @@ -182,7 +204,25 @@ func (s *RewardsTestSuite) TestGetInferenceScores() { func (s *RewardsTestSuite) TestGetInferenceScoresFromCsv() { epochGet := testutil.GetSimulatedValuesGetterForEpochs() epoch3Get := epochGet[300] - topicId := uint64(1) + newTopicMsg := &types.MsgCreateNewTopic{ + Creator: s.addrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + PNorm: alloraMath.NewDecFromInt64(3), + AlphaRegret: alloraMath.MustNewDecFromString("0.1"), + AllowNegative: true, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), + } + res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) + s.Require().NoError(err) + topicId := res.TopicId block := int64(1003) inferer0 := s.addrs[5].String() @@ -225,7 +265,25 @@ func (s *RewardsTestSuite) TestGetInferenceScoresFromCsv() { // and the second with higher one out losses. // We then compare the resulting scores and check that the higher one out losses result in higher scores. func (s *RewardsTestSuite) TestHigherOneOutLossesHigherInferenceScore() { - topicId := uint64(1) + newTopicMsg := &types.MsgCreateNewTopic{ + Creator: s.addrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + PNorm: alloraMath.NewDecFromInt64(3), + AlphaRegret: alloraMath.MustNewDecFromString("0.1"), + AllowNegative: true, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), + } + res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) + s.Require().NoError(err) + topicId := res.TopicId block0 := int64(1003) require := s.Require() @@ -259,8 +317,26 @@ func (s *RewardsTestSuite) TestHigherOneOutLossesHigherInferenceScore() { } func (s *RewardsTestSuite) TestGetForecastScores() { - topicId := uint64(1) block := int64(1003) + newTopicMsg := &types.MsgCreateNewTopic{ + Creator: s.addrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + PNorm: alloraMath.NewDecFromInt64(3), + AlphaRegret: alloraMath.MustNewDecFromString("0.1"), + AllowNegative: true, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), + } + res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) + s.Require().NoError(err) + topicId := res.TopicId // Generate workers data for tests reportedLosses, err := mockNetworkLosses(s, topicId, block) @@ -295,7 +371,25 @@ func (s *RewardsTestSuite) TestGetForecastScores() { func (s *RewardsTestSuite) TestGetForecasterScoresFromCsv() { epochGet := testutil.GetSimulatedValuesGetterForEpochs() epoch3Get := epochGet[300] - topicId := uint64(1) + newTopicMsg := &types.MsgCreateNewTopic{ + Creator: s.addrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + PNorm: alloraMath.NewDecFromInt64(3), + AlphaRegret: alloraMath.MustNewDecFromString("0.1"), + AllowNegative: true, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), + } + res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) + s.Require().NoError(err) + topicId := res.TopicId block := int64(1003) inferer0 := s.addrs[5].String() @@ -337,7 +431,25 @@ func (s *RewardsTestSuite) TestGetForecasterScoresFromCsv() { // We then compare the resulting forecaster scores and check that the higher one out losses result // in higher scores. func (s *RewardsTestSuite) TestHigherOneOutLossesHigherForecastScore() { - topicId := uint64(1) + newTopicMsg := &types.MsgCreateNewTopic{ + Creator: s.addrs[0].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + PNorm: alloraMath.NewDecFromInt64(3), + AlphaRegret: alloraMath.MustNewDecFromString("0.1"), + AllowNegative: true, + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), + } + res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) + s.Require().NoError(err) + topicId := res.TopicId block0 := int64(1003) require := s.Require() diff --git a/x/emissions/module/rewards/worker_rewards_test.go b/x/emissions/module/rewards/worker_rewards_test.go index 637e0dd4d..2447f22b6 100644 --- a/x/emissions/module/rewards/worker_rewards_test.go +++ b/x/emissions/module/rewards/worker_rewards_test.go @@ -11,15 +11,19 @@ import ( func createNewTopic(s *RewardsTestSuite) uint64 { newTopicMsg := &types.MsgCreateNewTopic{ - Creator: s.addrs[5].String(), - Metadata: "test", - LossMethod: "mse", - EpochLength: 10800, - GroundTruthLag: 10800, - WorkerSubmissionWindow: 10, - AlphaRegret: alloraMath.NewDecFromInt64(1), - PNorm: alloraMath.NewDecFromInt64(3), - Epsilon: alloraMath.MustNewDecFromString("0.01"), + Creator: s.addrs[5].String(), + Metadata: "test", + LossMethod: "mse", + EpochLength: 10800, + GroundTruthLag: 10800, + WorkerSubmissionWindow: 10, + AlphaRegret: alloraMath.NewDecFromInt64(1), + PNorm: alloraMath.NewDecFromInt64(3), + Epsilon: alloraMath.MustNewDecFromString("0.01"), + MeritSortitionAlpha: alloraMath.MustNewDecFromString("0.1"), + ActiveInfererQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveForecasterQuantile: alloraMath.MustNewDecFromString("0.2"), + ActiveReputerQuantile: alloraMath.MustNewDecFromString("0.2"), } res, err := s.msgServer.CreateNewTopic(s.ctx, newTopicMsg) s.Require().NoError(err) diff --git a/x/emissions/proto/emissions/v3/genesis.proto b/x/emissions/proto/emissions/v3/genesis.proto index 7f4f1f841..bccc5012a 100644 --- a/x/emissions/proto/emissions/v3/genesis.proto +++ b/x/emissions/proto/emissions/v3/genesis.proto @@ -18,6 +18,9 @@ option go_package = "github.com/allora-network/allora-chain/x/emissions/types"; // GenesisState is the state that must be provided at genesis. message GenesisState { + reserved 13, 14, 15; + reserved "latestInfererScoresByWorker", "latestForecasterScoresByWorker", "latestReputerScoresByReputer"; + // params defines all the parameters of the module. Params params = 1 [(gogoproto.nullable) = false]; @@ -47,11 +50,11 @@ message GenesisState { // map of (topic, block_height, reputer) -> score repeated TopicIdBlockHeightScores reputerScoresByBlock = 12; // map of (topic, block_height, worker) -> score - repeated TopicIdActorIdScore latestInfererScoresByWorker = 13; + repeated TopicIdActorIdScore infererScoreEmas = 60; // map of (topic, block_height, worker) -> score - repeated TopicIdActorIdScore latestForecasterScoresByWorker = 14; + repeated TopicIdActorIdScore forecasterScoreEmas = 61; // map of (topic, block_height, reputer) -> score - repeated TopicIdActorIdScore latestReputerScoresByReputer = 15; + repeated TopicIdActorIdScore reputerScoreEmas = 62; // map of (topic, reputer) -> listening coefficient repeated TopicIdActorIdListeningCoefficient reputerListeningCoefficient = 16; // map of (topic, reputer) -> previous reward (used for EMA) diff --git a/x/emissions/proto/emissions/v3/query.proto b/x/emissions/proto/emissions/v3/query.proto index 820a8ed53..a36760ac0 100644 --- a/x/emissions/proto/emissions/v3/query.proto +++ b/x/emissions/proto/emissions/v3/query.proto @@ -282,19 +282,19 @@ service Query { option (google.api.http).get = "/emissions/v3/rewardable_topics"; } - rpc GetLatestInfererScore(QueryLatestInfererScoreRequest) returns (QueryLatestInfererScoreResponse) { + rpc GetInfererScoreEma(QueryGetInfererScoreEmaRequest) returns (QueryGetInfererScoreEmaResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/emissions/v3/latest_inferer_score/{topic_id}/{inferer}"; + option (google.api.http).get = "/emissions/v3/inferer_score_ema/{topic_id}/{inferer}"; } - rpc GetLatestForecasterScore(QueryLatestForecasterScoreRequest) returns (QueryLatestForecasterScoreResponse) { + rpc GetForecasterScoreEma(QueryGetForecasterScoreEmaRequest) returns (QueryGetForecasterScoreEmaResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/emissions/v3/latest_forecaster_score/{topic_id}/{forecaster}"; + option (google.api.http).get = "/emissions/v3/forecaster_score_ema/{topic_id}/{forecaster}"; } - rpc GetLatestReputerScore(QueryLatestReputerScoreRequest) returns (QueryLatestReputerScoreResponse) { + rpc GetReputerScoreEma(QueryGetReputerScoreEmaRequest) returns (QueryGetReputerScoreEmaResponse) { option (cosmos.query.v1.module_query_safe) = true; - option (google.api.http).get = "/emissions/v3/latest_reputer_score/{topic_id}/{reputer}"; + option (google.api.http).get = "/emissions/v3/reputer_score_ema/{topic_id}/{reputer}"; } rpc GetInferenceScoresUntilBlock(QueryInferenceScoresUntilBlockRequest) returns (QueryInferenceScoresUntilBlockResponse) { @@ -998,30 +998,30 @@ message QueryRewardableTopicsResponse { repeated uint64 rewardable_topic_ids = 1; } -message QueryLatestInfererScoreRequest { +message QueryGetInfererScoreEmaRequest { uint64 topic_id = 1; string inferer = 2; } -message QueryLatestInfererScoreResponse { +message QueryGetInfererScoreEmaResponse { Score score = 1; } -message QueryLatestForecasterScoreRequest { +message QueryGetForecasterScoreEmaRequest { uint64 topic_id = 1; string forecaster = 2; } -message QueryLatestForecasterScoreResponse { +message QueryGetForecasterScoreEmaResponse { Score score = 1; } -message QueryLatestReputerScoreRequest { +message QueryGetReputerScoreEmaRequest { uint64 topic_id = 1; string reputer = 2; } -message QueryLatestReputerScoreResponse { +message QueryGetReputerScoreEmaResponse { Score score = 1; } diff --git a/x/emissions/proto/emissions/v3/topic.proto b/x/emissions/proto/emissions/v3/topic.proto index c17458c09..2fe67c77e 100644 --- a/x/emissions/proto/emissions/v3/topic.proto +++ b/x/emissions/proto/emissions/v3/topic.proto @@ -35,6 +35,24 @@ message Topic { (gogoproto.nullable) = false ]; int64 worker_submission_window = 17; + // alpha parameter to weight previous score EMA importance in + // filtering the active set of inferers, forecasters, and reputers + string merit_sortition_alpha = 18 [ + (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", + (gogoproto.nullable) = false + ]; + string active_inferer_quantile = 19 [ + (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", + (gogoproto.nullable) = false + ]; + string active_forecaster_quantile = 20 [ + (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", + (gogoproto.nullable) = false + ]; + string active_reputer_quantile = 21 [ + (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", + (gogoproto.nullable) = false + ]; } message TopicList { diff --git a/x/emissions/proto/emissions/v3/tx.proto b/x/emissions/proto/emissions/v3/tx.proto index 6dfd7664b..fe5034974 100644 --- a/x/emissions/proto/emissions/v3/tx.proto +++ b/x/emissions/proto/emissions/v3/tx.proto @@ -211,6 +211,22 @@ message MsgCreateNewTopic { (gogoproto.nullable) = false ]; int64 worker_submission_window = 14; + string merit_sortition_alpha = 15 [ + (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", + (gogoproto.nullable) = false + ]; + string active_inferer_quantile = 16 [ + (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", + (gogoproto.nullable) = false + ]; + string active_forecaster_quantile = 17 [ + (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", + (gogoproto.nullable) = false + ]; + string active_reputer_quantile = 18 [ + (gogoproto.customtype) = "github.com/allora-network/allora-chain/math.Dec", + (gogoproto.nullable) = false + ]; } message MsgCreateNewTopicResponse { diff --git a/x/emissions/types/genesis.pb.go b/x/emissions/types/genesis.pb.go index 453864534..a5351530c 100644 --- a/x/emissions/types/genesis.pb.go +++ b/x/emissions/types/genesis.pb.go @@ -56,11 +56,11 @@ type GenesisState struct { // map of (topic, block_height, reputer) -> score ReputerScoresByBlock []*TopicIdBlockHeightScores `protobuf:"bytes,12,rep,name=reputerScoresByBlock,proto3" json:"reputerScoresByBlock,omitempty"` // map of (topic, block_height, worker) -> score - LatestInfererScoresByWorker []*TopicIdActorIdScore `protobuf:"bytes,13,rep,name=latestInfererScoresByWorker,proto3" json:"latestInfererScoresByWorker,omitempty"` + InfererScoreEmas []*TopicIdActorIdScore `protobuf:"bytes,60,rep,name=infererScoreEmas,proto3" json:"infererScoreEmas,omitempty"` // map of (topic, block_height, worker) -> score - LatestForecasterScoresByWorker []*TopicIdActorIdScore `protobuf:"bytes,14,rep,name=latestForecasterScoresByWorker,proto3" json:"latestForecasterScoresByWorker,omitempty"` + ForecasterScoreEmas []*TopicIdActorIdScore `protobuf:"bytes,61,rep,name=forecasterScoreEmas,proto3" json:"forecasterScoreEmas,omitempty"` // map of (topic, block_height, reputer) -> score - LatestReputerScoresByReputer []*TopicIdActorIdScore `protobuf:"bytes,15,rep,name=latestReputerScoresByReputer,proto3" json:"latestReputerScoresByReputer,omitempty"` + ReputerScoreEmas []*TopicIdActorIdScore `protobuf:"bytes,62,rep,name=reputerScoreEmas,proto3" json:"reputerScoreEmas,omitempty"` // map of (topic, reputer) -> listening coefficient ReputerListeningCoefficient []*TopicIdActorIdListeningCoefficient `protobuf:"bytes,16,rep,name=reputerListeningCoefficient,proto3" json:"reputerListeningCoefficient,omitempty"` // map of (topic, reputer) -> previous reward (used for EMA) @@ -279,23 +279,23 @@ func (m *GenesisState) GetReputerScoresByBlock() []*TopicIdBlockHeightScores { return nil } -func (m *GenesisState) GetLatestInfererScoresByWorker() []*TopicIdActorIdScore { +func (m *GenesisState) GetInfererScoreEmas() []*TopicIdActorIdScore { if m != nil { - return m.LatestInfererScoresByWorker + return m.InfererScoreEmas } return nil } -func (m *GenesisState) GetLatestForecasterScoresByWorker() []*TopicIdActorIdScore { +func (m *GenesisState) GetForecasterScoreEmas() []*TopicIdActorIdScore { if m != nil { - return m.LatestForecasterScoresByWorker + return m.ForecasterScoreEmas } return nil } -func (m *GenesisState) GetLatestReputerScoresByReputer() []*TopicIdActorIdScore { +func (m *GenesisState) GetReputerScoreEmas() []*TopicIdActorIdScore { if m != nil { - return m.LatestReputerScoresByReputer + return m.ReputerScoreEmas } return nil } @@ -2370,154 +2370,157 @@ func init() { func init() { proto.RegisterFile("emissions/v3/genesis.proto", fileDescriptor_ddb55d068ee88122) } var fileDescriptor_ddb55d068ee88122 = []byte{ - // 2346 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5a, 0xcb, 0x6f, 0x1b, 0xc7, - 0x19, 0xf7, 0x8a, 0x8a, 0x6c, 0x7d, 0x92, 0x62, 0x79, 0xf4, 0x5a, 0x4b, 0x32, 0xcd, 0xac, 0x1f, - 0x91, 0x5f, 0x94, 0x23, 0xd7, 0xb5, 0x1b, 0x03, 0x45, 0x29, 0x3f, 0x1a, 0xa6, 0x8e, 0x2d, 0x8c, - 0x14, 0xbb, 0x75, 0x02, 0x38, 0x2b, 0x72, 0x44, 0x2d, 0xb4, 0xdc, 0x61, 0x76, 0x86, 0xb2, 0x7c, - 0x2b, 0xd0, 0xf4, 0xd4, 0x02, 0x0d, 0x9a, 0x14, 0x68, 0xd1, 0x4b, 0x8f, 0x3d, 0xe6, 0xd0, 0x43, - 0x81, 0x9e, 0x0b, 0xa4, 0x87, 0x02, 0x41, 0x4f, 0x45, 0x0f, 0x41, 0x61, 0x1f, 0xfa, 0x6f, 0x14, - 0x3b, 0x33, 0xbb, 0xdc, 0xc7, 0xec, 0x92, 0xa2, 0x72, 0x31, 0xb8, 0x3b, 0xdf, 0xf7, 0xfb, 0xfd, - 0x66, 0xbe, 0xd9, 0x79, 0xfc, 0x2c, 0x58, 0x24, 0x6d, 0x87, 0x31, 0x87, 0x7a, 0x6c, 0x75, 0xff, - 0xc6, 0x6a, 0x8b, 0x78, 0x84, 0x39, 0xac, 0xda, 0xf1, 0x29, 0xa7, 0x68, 0x32, 0x6a, 0xab, 0xee, - 0xdf, 0x58, 0x3c, 0x65, 0xb7, 0x1d, 0x8f, 0xae, 0x8a, 0x7f, 0x65, 0xc0, 0xe2, 0xe9, 0x06, 0x65, - 0x6d, 0xca, 0x9e, 0x8b, 0xa7, 0x55, 0xf9, 0xa0, 0x9a, 0x16, 0x12, 0xb8, 0x1e, 0x6d, 0x12, 0xd5, - 0x60, 0xa6, 0x1a, 0xbc, 0x46, 0xd8, 0x72, 0x3a, 0xd1, 0xd2, 0xb1, 0x7d, 0xbb, 0x1d, 0xa2, 0x25, - 0x55, 0xfa, 0xa4, 0xd3, 0xe5, 0xc4, 0xd7, 0x02, 0xb2, 0x06, 0xf5, 0xf5, 0x54, 0x8c, 0xdb, 0x7b, - 0xfa, 0x16, 0x4e, 0x3b, 0x4e, 0x43, 0xdf, 0xf2, 0xb2, 0x43, 0x98, 0x56, 0xde, 0x0b, 0xea, 0xef, - 0x45, 0x12, 0x66, 0x5b, 0xb4, 0x45, 0xe5, 0x20, 0x04, 0xbf, 0xe4, 0x5b, 0xeb, 0x1f, 0x57, 0x60, - 0xf2, 0xc7, 0x72, 0x40, 0x37, 0xb9, 0xcd, 0x09, 0x5a, 0x83, 0x31, 0xd9, 0x2b, 0xd3, 0xa8, 0x18, - 0x2b, 0x13, 0x6b, 0xb3, 0xd5, 0xf8, 0x00, 0x57, 0x37, 0x44, 0xdb, 0xfa, 0xe8, 0xd7, 0xdf, 0x9e, - 0x3d, 0x86, 0x55, 0x24, 0xaa, 0xc0, 0x84, 0x47, 0x0e, 0xf8, 0x56, 0x20, 0xb1, 0xde, 0x34, 0x4b, - 0x15, 0x63, 0x65, 0x14, 0xc7, 0x5f, 0xa1, 0x9b, 0x30, 0x26, 0x3a, 0xc0, 0xcc, 0xd1, 0x4a, 0x69, - 0x65, 0x62, 0xed, 0x4c, 0x12, 0x55, 0x85, 0xd5, 0xbc, 0xa6, 0xf8, 0x85, 0x55, 0x30, 0xb2, 0x60, - 0xd2, 0x6e, 0x70, 0x67, 0x9f, 0x6c, 0xc9, 0xe4, 0x37, 0x2a, 0xa5, 0x95, 0x51, 0x9c, 0x78, 0x87, - 0x2e, 0xc3, 0xb4, 0x4f, 0x5e, 0xd8, 0x7e, 0xd3, 0xde, 0x76, 0xc3, 0xb8, 0x31, 0x11, 0x97, 0x79, - 0x8f, 0x6a, 0x30, 0x29, 0x90, 0x9f, 0x8a, 0x81, 0x61, 0xe6, 0xf1, 0x5c, 0x31, 0x35, 0xaf, 0x59, - 0x6b, 0x70, 0xea, 0xd7, 0x9b, 0x38, 0x91, 0x82, 0xee, 0xc2, 0x94, 0x78, 0xc6, 0xb2, 0xbe, 0xcc, - 0x3c, 0x31, 0x08, 0x46, 0x32, 0x07, 0x3d, 0x86, 0x69, 0xf5, 0x22, 0x10, 0xf8, 0x28, 0x98, 0x5f, - 0xe6, 0xb8, 0xc0, 0x39, 0x97, 0x37, 0x30, 0xeb, 0x2e, 0x6d, 0xec, 0xbd, 0x47, 0x9c, 0xd6, 0x2e, - 0xc7, 0x99, 0x64, 0xf4, 0x0c, 0x66, 0x1d, 0x6f, 0x87, 0xf8, 0xc4, 0xdf, 0x0c, 0xe6, 0x16, 0x5b, - 0x7f, 0x29, 0xe2, 0x4d, 0x10, 0xa0, 0x17, 0xb5, 0xa0, 0x31, 0x44, 0x99, 0x84, 0xb5, 0x18, 0xe8, - 0x13, 0x58, 0xd8, 0xa1, 0x3e, 0x69, 0xd8, 0x8c, 0xa7, 0xe1, 0x27, 0x0e, 0x05, 0x9f, 0x07, 0x13, - 0xa8, 0x57, 0x9f, 0x4b, 0x12, 0x7e, 0xf2, 0x70, 0xea, 0x75, 0x18, 0xa8, 0x01, 0x4b, 0xae, 0xcd, - 0x09, 0xe3, 0xf5, 0x64, 0xdf, 0x64, 0x3d, 0xcd, 0x29, 0x41, 0xf1, 0x96, 0x7e, 0xd4, 0x65, 0xf1, - 0x44, 0x06, 0x2e, 0x42, 0x41, 0x0e, 0x94, 0x65, 0xf3, 0x83, 0x4c, 0x0f, 0x15, 0xcf, 0x9b, 0x83, - 0xf2, 0xf4, 0x01, 0x42, 0x04, 0x96, 0x65, 0x04, 0x4e, 0xf6, 0x56, 0x3d, 0x9a, 0x27, 0x07, 0x25, - 0x2a, 0x84, 0x41, 0x3e, 0x2c, 0xa9, 0xe1, 0x7c, 0xe8, 0x30, 0x4e, 0x3c, 0xc7, 0x6b, 0xdd, 0xa5, - 0x64, 0x67, 0xc7, 0x69, 0x38, 0xc4, 0xe3, 0xe6, 0xb4, 0x60, 0xb9, 0x5e, 0xc4, 0xa2, 0xcb, 0xc3, - 0x45, 0xa0, 0x88, 0xc0, 0x99, 0x8e, 0x4f, 0xf6, 0x1d, 0xda, 0x65, 0x4a, 0x86, 0x9c, 0xe2, 0x0f, - 0xfc, 0xe0, 0x83, 0xa7, 0x9e, 0x79, 0x4a, 0xb0, 0x9e, 0x2d, 0x62, 0xbd, 0x47, 0x1a, 0xb8, 0x18, - 0x05, 0x39, 0x70, 0x36, 0x0c, 0x90, 0xd5, 0xf4, 0x1a, 0x24, 0x45, 0x84, 0x06, 0x23, 0xea, 0x87, - 0x83, 0x5a, 0x50, 0x0e, 0x43, 0xc2, 0x82, 0xa6, 0x98, 0x66, 0x06, 0x63, 0xea, 0x03, 0x83, 0x1a, - 0xb0, 0x9c, 0x8e, 0x50, 0x35, 0xc5, 0x36, 0x77, 0xa8, 0x39, 0x3b, 0x18, 0x4d, 0x21, 0x08, 0xda, - 0x00, 0xe0, 0x94, 0xdb, 0xee, 0x66, 0xb0, 0x49, 0x99, 0x73, 0x15, 0x63, 0x65, 0x7c, 0xfd, 0x7a, - 0xb0, 0x11, 0xfc, 0xe7, 0xdb, 0xb3, 0x73, 0x72, 0x63, 0x65, 0xcd, 0xbd, 0xaa, 0x43, 0x57, 0xdb, - 0x36, 0xdf, 0xad, 0xd6, 0x3d, 0xfe, 0xaf, 0xbf, 0x5c, 0x03, 0xb5, 0xe3, 0xd6, 0x3d, 0xfe, 0xe7, - 0xff, 0x7d, 0x75, 0xd9, 0xc0, 0x31, 0x0c, 0x74, 0x27, 0x40, 0xec, 0x38, 0x0d, 0x89, 0x38, 0x2f, - 0x44, 0x2e, 0xe5, 0xad, 0x80, 0x75, 0x8f, 0xe3, 0x58, 0x38, 0xfa, 0x10, 0xe6, 0xc4, 0x76, 0xa9, - 0xaa, 0x5c, 0xeb, 0xf2, 0x5d, 0xea, 0x3b, 0xfc, 0xa5, 0xb9, 0xd0, 0xbf, 0xb3, 0x01, 0x96, 0x3e, - 0x3b, 0x82, 0xdd, 0xec, 0xb6, 0x1f, 0xf8, 0xb4, 0x7d, 0x8f, 0xb8, 0xa4, 0x65, 0x73, 0xea, 0x9b, - 0xe6, 0x61, 0x60, 0xd3, 0xd9, 0xe8, 0x63, 0x38, 0xd9, 0x94, 0x0f, 0xa4, 0x29, 0xf4, 0x33, 0xf3, - 0xb4, 0x00, 0x5c, 0xd3, 0x02, 0x46, 0x89, 0x4a, 0x5f, 0xf4, 0x5c, 0xf7, 0x76, 0x28, 0x4e, 0x43, - 0x05, 0x13, 0x4d, 0xd0, 0x26, 0x38, 0xd9, 0x87, 0x1d, 0xea, 0x85, 0xeb, 0xc2, 0xe2, 0x60, 0xea, - 0xfb, 0xc0, 0xa0, 0xa7, 0x30, 0x1f, 0x72, 0xcb, 0x29, 0xb8, 0x41, 0xfc, 0xcd, 0x5d, 0xdb, 0x27, - 0xe6, 0xd2, 0x60, 0x53, 0x2c, 0x27, 0x1d, 0xed, 0xc1, 0xac, 0xaa, 0x47, 0x9b, 0xee, 0xdb, 0x6e, - 0xb4, 0x07, 0x2c, 0x0b, 0xd8, 0x5b, 0x49, 0xd8, 0xd8, 0xe2, 0xaf, 0x18, 0xc2, 0x65, 0x2c, 0x06, - 0x21, 0x46, 0x4a, 0x0b, 0x8a, 0x3e, 0xca, 0x90, 0x09, 0x85, 0xe6, 0x19, 0x41, 0xf6, 0x76, 0x92, - 0x4c, 0x89, 0xcf, 0xee, 0x3b, 0x58, 0x0b, 0x82, 0x7e, 0x6d, 0xc0, 0x72, 0xd8, 0xc9, 0x4d, 0x5d, - 0x97, 0xca, 0x82, 0xe5, 0xbd, 0x7e, 0x5d, 0xca, 0x99, 0x02, 0x24, 0xd3, 0xc7, 0x42, 0x36, 0xc4, - 0x73, 0xd5, 0xc8, 0x3e, 0x9f, 0xd5, 0x2d, 0xe5, 0x69, 0x6e, 0x4d, 0xe7, 0x0b, 0x51, 0xd1, 0x7d, - 0x00, 0x27, 0x5c, 0x14, 0x99, 0x59, 0x11, 0x1c, 0x17, 0x8a, 0x27, 0x5f, 0xb8, 0x84, 0xc6, 0x12, - 0xd1, 0x3a, 0x8c, 0x87, 0x87, 0x06, 0x66, 0xbe, 0x25, 0x50, 0xce, 0x17, 0xa1, 0x44, 0xcb, 0x63, - 0x2f, 0x0d, 0xfd, 0x08, 0x8e, 0xbf, 0x50, 0xe7, 0x3d, 0x4b, 0x77, 0xa0, 0x78, 0xe8, 0x6c, 0x6f, - 0xac, 0x75, 0x7e, 0x42, 0x5e, 0xd6, 0xbc, 0xe6, 0xe3, 0x9d, 0x9d, 0xc6, 0xae, 0xed, 0x78, 0x8f, - 0x68, 0x93, 0xe0, 0x30, 0x0d, 0xad, 0xc3, 0x09, 0x3f, 0x3c, 0xee, 0x9d, 0x3b, 0x14, 0x44, 0x94, - 0x87, 0xee, 0xc3, 0x49, 0xb1, 0x76, 0x3d, 0x20, 0x04, 0x93, 0x7d, 0xe2, 0x75, 0x89, 0x79, 0xbe, - 0xff, 0x7a, 0x97, 0xce, 0x41, 0x1f, 0xc0, 0x4c, 0xb8, 0x46, 0x8b, 0xc8, 0xa7, 0xa2, 0x18, 0xe6, - 0x85, 0x62, 0xa8, 0xe0, 0xc3, 0xd3, 0xe5, 0xa1, 0x0d, 0x98, 0xb2, 0x5d, 0xb7, 0xde, 0xab, 0xd4, - 0x45, 0x01, 0x74, 0xb9, 0xdf, 0x91, 0xab, 0x97, 0x81, 0x93, 0x00, 0xe8, 0x03, 0x98, 0xb4, 0x5d, - 0xf7, 0x41, 0x54, 0xb4, 0xb7, 0x05, 0xe0, 0xa5, 0x7e, 0x80, 0x51, 0x02, 0x4e, 0xa4, 0xa3, 0x8f, - 0xe0, 0x4d, 0xdb, 0x75, 0x1f, 0x52, 0xc6, 0xd6, 0xbb, 0x5e, 0xd3, 0x25, 0xcc, 0x5c, 0x11, 0x80, - 0x37, 0xfa, 0x01, 0xaa, 0x89, 0xfb, 0xc4, 0x76, 0xbb, 0x44, 0xa5, 0xe2, 0x14, 0x14, 0xfa, 0x18, - 0x90, 0x47, 0x78, 0x50, 0xe5, 0x38, 0xc1, 0x25, 0x41, 0x70, 0xb5, 0x1f, 0x41, 0x02, 0x59, 0x83, - 0x83, 0xbe, 0x30, 0x60, 0x25, 0x1c, 0xf3, 0x0d, 0xe2, 0x37, 0x88, 0xc7, 0xed, 0x96, 0x5a, 0xf6, - 0xb6, 0xa8, 0xf8, 0x6a, 0x9a, 0xd1, 0x2d, 0xe2, 0xb2, 0xd8, 0x4d, 0x6f, 0xa9, 0xdd, 0x74, 0xb5, - 0xe5, 0xf0, 0xdd, 0xee, 0x76, 0xb5, 0x41, 0xdb, 0xab, 0xb6, 0xeb, 0x52, 0xdf, 0xbe, 0xa6, 0x08, - 0xc2, 0x47, 0x31, 0xc5, 0xe4, 0x3e, 0x1b, 0x14, 0x77, 0x60, 0x22, 0x84, 0xe1, 0x14, 0xed, 0x10, - 0x4f, 0x9e, 0x26, 0x9f, 0x3a, 0x5e, 0x93, 0xbe, 0x60, 0xe6, 0x2d, 0xdd, 0x97, 0x15, 0xeb, 0x6b, - 0x78, 0x31, 0xab, 0x37, 0x19, 0xce, 0xa6, 0xa3, 0x9f, 0xc2, 0x42, 0xd7, 0xdb, 0xe9, 0xba, 0x3b, - 0x8e, 0xeb, 0x92, 0xa6, 0x6c, 0x13, 0xf7, 0x12, 0x66, 0x5e, 0x11, 0xc8, 0xe5, 0xbc, 0x89, 0x29, - 0xa3, 0x70, 0x5e, 0x3a, 0xda, 0x05, 0x33, 0xd6, 0xa4, 0x3a, 0xa1, 0xa0, 0xaf, 0x16, 0xd4, 0xa9, - 0xe6, 0x35, 0xa3, 0xc3, 0xdf, 0xa7, 0x5d, 0xc2, 0xb8, 0x22, 0xca, 0x45, 0x43, 0x75, 0x98, 0x72, - 0x6d, 0xc6, 0xef, 0xf9, 0x4e, 0x47, 0xae, 0xd2, 0xb7, 0x07, 0xbf, 0x8f, 0x25, 0x33, 0x91, 0x97, - 0xba, 0x72, 0x3c, 0x92, 0xa5, 0xc3, 0xa4, 0xe5, 0x13, 0xce, 0xcc, 0x6b, 0x45, 0xba, 0xd5, 0x5e, - 0xe3, 0xb4, 0x83, 0x65, 0xb5, 0xdd, 0x21, 0x4d, 0x31, 0xcd, 0x70, 0x11, 0x20, 0xe2, 0xd9, 0xdb, - 0x47, 0x8a, 0xb2, 0x3a, 0x04, 0x65, 0x1f, 0x4c, 0xf4, 0x4b, 0x03, 0xce, 0xc9, 0x90, 0xc7, 0x1e, - 0xa9, 0x7b, 0xb9, 0xdc, 0xab, 0x05, 0xdf, 0xab, 0xe2, 0xce, 0x93, 0x30, 0x08, 0x3e, 0x3a, 0x80, - 0x8a, 0x0c, 0x7b, 0x64, 0x3b, 0xfb, 0x44, 0x3f, 0xe4, 0xd7, 0x87, 0xe8, 0x7f, 0x5f, 0x54, 0xf4, - 0x1b, 0x03, 0x56, 0x22, 0x85, 0x8f, 0xbb, 0x61, 0x75, 0xf4, 0x12, 0xde, 0x19, 0x7e, 0x18, 0x06, - 0x26, 0x41, 0xbf, 0x33, 0xe0, 0x8a, 0x26, 0x38, 0xb7, 0x36, 0x6b, 0xc3, 0x8b, 0x3a, 0x0c, 0x4f, - 0x46, 0x57, 0x2f, 0x50, 0x3f, 0x58, 0x37, 0xbe, 0x23, 0x5d, 0x7d, 0x78, 0xd0, 0x1f, 0x0d, 0xa8, - 0xea, 0xe3, 0x73, 0x87, 0xec, 0x7b, 0xc3, 0x4b, 0x3b, 0x24, 0x15, 0xaa, 0xc2, 0x4c, 0x70, 0xf9, - 0x7a, 0xce, 0x89, 0xdd, 0x7e, 0x6e, 0x37, 0x9b, 0x3e, 0x61, 0x8c, 0x30, 0x73, 0xa4, 0x52, 0x5a, - 0x19, 0xc7, 0xa7, 0x82, 0xa6, 0x2d, 0x62, 0xb7, 0x6b, 0x61, 0x03, 0xfa, 0x04, 0xe6, 0xc4, 0x71, - 0xe1, 0xa1, 0xcd, 0xb8, 0x5c, 0x45, 0xef, 0xd2, 0x76, 0xdb, 0xe1, 0xe6, 0xcd, 0x82, 0x4d, 0x3d, - 0x50, 0xc9, 0xa4, 0x4a, 0xa1, 0x5b, 0x2c, 0x87, 0x58, 0x0f, 0x84, 0xb6, 0x61, 0x3e, 0x6a, 0x50, - 0xcb, 0xa7, 0xa2, 0xf8, 0xfe, 0xa1, 0x29, 0x72, 0x90, 0x10, 0x85, 0x8a, 0x68, 0xd9, 0xa2, 0x8f, - 0xc8, 0x01, 0xdf, 0xa0, 0x8c, 0x39, 0xdb, 0x2e, 0xb9, 0xbb, 0xdb, 0xf5, 0x3d, 0xc7, 0x6b, 0xc9, - 0xb5, 0xf9, 0x07, 0x83, 0xaf, 0xcd, 0x7d, 0xc1, 0xd0, 0x26, 0xcc, 0x6c, 0x07, 0x3f, 0xb6, 0x68, - 0x2d, 0xee, 0x35, 0xbe, 0xab, 0x33, 0x52, 0xb2, 0xa7, 0x74, 0x86, 0x75, 0xd9, 0xc8, 0x87, 0xb2, - 0x7a, 0xfd, 0x90, 0xbe, 0x20, 0x8c, 0xc7, 0x1a, 0xd5, 0x91, 0xed, 0x8e, 0x6e, 0xc4, 0xb2, 0xf8, - 0x32, 0x7a, 0xc3, 0x76, 0x7c, 0xdc, 0x07, 0xd1, 0x7a, 0x02, 0x27, 0x53, 0x46, 0x2a, 0x32, 0xe1, - 0x78, 0xe8, 0xca, 0x1a, 0xc2, 0x95, 0x0d, 0x1f, 0xd1, 0x25, 0x78, 0x43, 0xfc, 0x34, 0x47, 0x84, - 0xcd, 0x3b, 0xa3, 0x19, 0x4b, 0x2c, 0x23, 0xac, 0xfb, 0x0a, 0xb7, 0xe7, 0x67, 0x16, 0xe0, 0x9a, - 0x70, 0x5c, 0x05, 0x09, 0xe4, 0x71, 0x1c, 0x3e, 0x5a, 0x9b, 0x30, 0xa7, 0x2d, 0x51, 0x01, 0x58, - 0x05, 0x26, 0x62, 0x81, 0x02, 0xb0, 0x84, 0xe3, 0xaf, 0xac, 0x27, 0x30, 0xaf, 0x3f, 0xa7, 0xa4, - 0x73, 0x8d, 0x4c, 0x2e, 0x5a, 0x84, 0x13, 0x61, 0xb4, 0xf8, 0xa8, 0x46, 0x71, 0xf4, 0x6c, 0x7d, - 0x66, 0x80, 0x99, 0xe7, 0x34, 0x1e, 0x45, 0x30, 0xba, 0x0a, 0x63, 0x12, 0x45, 0xd8, 0xe4, 0x19, - 0x7f, 0x5d, 0x79, 0x99, 0x2a, 0xc6, 0xe2, 0x30, 0xa3, 0xf1, 0xee, 0x86, 0x19, 0xfe, 0xa0, 0xe0, - 0x22, 0x59, 0xf1, 0xce, 0x68, 0x78, 0xb1, 0x8c, 0xb0, 0xbe, 0x32, 0xc0, 0xea, 0x6f, 0xe6, 0x0d, - 0xa5, 0xe2, 0x09, 0xcc, 0x6a, 0x0d, 0x45, 0x29, 0xca, 0x4a, 0x5f, 0xab, 0x34, 0x16, 0xa2, 0x36, - 0xdf, 0xfa, 0xad, 0x01, 0xa7, 0x32, 0x66, 0xc3, 0x50, 0x0a, 0xeb, 0x50, 0xba, 0x47, 0x1a, 0x42, - 0xd0, 0x11, 0x0e, 0xe4, 0x01, 0x86, 0xd5, 0x86, 0xa9, 0xc4, 0x75, 0xae, 0x40, 0xcf, 0x3a, 0x94, - 0xea, 0x9e, 0x9c, 0x30, 0xc3, 0x98, 0x6a, 0x41, 0xb2, 0xf5, 0xab, 0xcc, 0x18, 0xd4, 0x87, 0xac, - 0x92, 0x52, 0x53, 0x3a, 0x8a, 0x9a, 0xbf, 0x19, 0x70, 0x7e, 0x10, 0x33, 0xab, 0x40, 0xe0, 0x32, - 0x8c, 0xf7, 0xec, 0x37, 0x29, 0xb1, 0xf7, 0x22, 0xc8, 0x0b, 0xcd, 0xad, 0x92, 0x94, 0x1f, 0x9a, - 0x54, 0x35, 0x98, 0x4a, 0x50, 0x98, 0xa3, 0x62, 0x76, 0x2d, 0xe5, 0x78, 0x1c, 0xc2, 0x44, 0x49, - 0x66, 0x58, 0xff, 0x34, 0xe0, 0xd2, 0xc0, 0x2e, 0xd3, 0x00, 0x6b, 0x4d, 0xac, 0x93, 0x23, 0x99, - 0x2a, 0xe4, 0x74, 0xe3, 0x7d, 0x98, 0x4e, 0x33, 0xa9, 0x9e, 0xa4, 0xee, 0x53, 0x19, 0x47, 0x28, - 0x93, 0x67, 0x7d, 0x0a, 0xa7, 0x73, 0x7d, 0xac, 0xf8, 0x44, 0x30, 0x92, 0x13, 0x21, 0x5f, 0x76, - 0xaa, 0xcb, 0xa5, 0xec, 0xd2, 0xfc, 0xe5, 0x08, 0xbc, 0x3b, 0xbc, 0xab, 0x75, 0xa4, 0x31, 0x4d, - 0x4c, 0x9c, 0x52, 0xc1, 0xc4, 0x19, 0x4d, 0x8e, 0xf8, 0x36, 0x98, 0x79, 0x7a, 0xcc, 0x37, 0xc4, - 0xc8, 0x5f, 0xd4, 0xce, 0xa1, 0xac, 0x27, 0x97, 0x8b, 0x63, 0xfd, 0xde, 0x00, 0xab, 0xbf, 0xbd, - 0x96, 0xec, 0x82, 0x51, 0xd0, 0x85, 0x91, 0x64, 0x17, 0x62, 0x83, 0x52, 0x2a, 0xac, 0xd8, 0x68, - 0xb6, 0x62, 0x9f, 0x19, 0xb0, 0x90, 0xe3, 0xca, 0x0d, 0xb5, 0x8c, 0xdc, 0x84, 0xf1, 0x08, 0x40, - 0xad, 0xf0, 0x0b, 0xc9, 0xf1, 0xeb, 0xb9, 0x7e, 0xbd, 0x48, 0xeb, 0xe7, 0x06, 0xcc, 0xeb, 0x6d, - 0xbd, 0xa1, 0x54, 0xac, 0xc1, 0x89, 0x30, 0x5f, 0x89, 0x98, 0x4f, 0x8a, 0x88, 0x4c, 0xc3, 0x28, - 0xce, 0x3a, 0x00, 0x33, 0xcf, 0xd3, 0x0b, 0x2a, 0x13, 0xb5, 0x85, 0x95, 0x89, 0x5e, 0xa0, 0x1f, - 0xc2, 0x64, 0x3c, 0x5a, 0x1d, 0xaf, 0x16, 0x93, 0x8c, 0x09, 0x8f, 0x30, 0x11, 0x6f, 0xf1, 0xf8, - 0x9e, 0x51, 0xbc, 0x87, 0xa9, 0x9d, 0x6a, 0xe4, 0x3b, 0xd8, 0xa9, 0xbe, 0x34, 0x60, 0xb9, 0xc8, - 0xe5, 0x3b, 0xd2, 0x91, 0xe7, 0x36, 0x40, 0xcc, 0x61, 0x94, 0x25, 0x30, 0x73, 0xe6, 0x01, 0xc3, - 0xb1, 0x58, 0xeb, 0x73, 0x03, 0x96, 0x0a, 0xbc, 0xc2, 0x23, 0xa9, 0xba, 0x09, 0xe3, 0x3d, 0x97, - 0x52, 0x3b, 0x39, 0x7b, 0x9e, 0x64, 0x2f, 0xd2, 0xfa, 0xab, 0x01, 0x17, 0x06, 0x72, 0x1b, 0x8f, - 0x24, 0x6e, 0x13, 0x66, 0x34, 0x90, 0x4a, 0x66, 0xea, 0x4e, 0xa2, 0x73, 0x3a, 0x75, 0xd9, 0xd6, - 0x1f, 0x0c, 0x28, 0x17, 0xfb, 0x98, 0x47, 0xd2, 0x7c, 0x07, 0x26, 0x62, 0x58, 0x4a, 0xeb, 0xe9, - 0xa4, 0xd6, 0x58, 0x00, 0x8e, 0x47, 0x5b, 0xcf, 0x60, 0x3a, 0xed, 0x0a, 0x16, 0x88, 0xb9, 0x0a, - 0x63, 0xca, 0x04, 0x1c, 0xd1, 0x1d, 0xa2, 0x95, 0xd9, 0xa7, 0x62, 0x82, 0xb3, 0x61, 0xb9, 0xd8, - 0x17, 0x2c, 0xa0, 0x7a, 0x02, 0xb3, 0xba, 0x0c, 0x45, 0x6c, 0x69, 0x4b, 0x91, 0xf4, 0x1c, 0xb5, - 0xf9, 0xd6, 0x9f, 0x62, 0xa2, 0xf4, 0x7e, 0xc1, 0x50, 0x8b, 0xdd, 0xfb, 0x30, 0x1d, 0xbb, 0x6e, - 0x0b, 0x1c, 0x55, 0x89, 0xb4, 0x07, 0x9b, 0x8a, 0xc2, 0x99, 0x3c, 0xeb, 0xef, 0xbd, 0xa9, 0x5e, - 0xec, 0x6c, 0x14, 0x28, 0x5d, 0x84, 0x13, 0x2a, 0xe9, 0x1d, 0x25, 0x35, 0x7a, 0x8e, 0xb5, 0xad, - 0xa9, 0x4d, 0x3a, 0x7a, 0xd6, 0xf6, 0x63, 0x74, 0xc8, 0x7e, 0x7c, 0xd1, 0x5b, 0xdc, 0xb4, 0x56, - 0x44, 0x81, 0xfc, 0x9f, 0xc1, 0x9c, 0x36, 0x45, 0x95, 0xff, 0x5c, 0xae, 0x96, 0xb8, 0x97, 0xa2, - 0x7d, 0x6d, 0xed, 0xc1, 0x8c, 0xc6, 0x4d, 0x18, 0xe0, 0xd8, 0xb3, 0x96, 0xb8, 0xb6, 0x6a, 0xf6, - 0xb3, 0xc8, 0x99, 0xe8, 0x5d, 0x67, 0x7f, 0x61, 0xc0, 0x72, 0x91, 0xb7, 0x30, 0x00, 0x6d, 0x0d, - 0x26, 0xe2, 0xf6, 0x85, 0x64, 0xd6, 0xff, 0x77, 0x6f, 0xcc, 0xb3, 0x88, 0xe7, 0xac, 0xe3, 0xaf, - 0x5f, 0x95, 0x8d, 0x6f, 0x5e, 0x95, 0x8d, 0xff, 0xbe, 0x2a, 0x1b, 0x9f, 0xbf, 0x2e, 0x1f, 0xfb, - 0xe6, 0x75, 0xf9, 0xd8, 0xbf, 0x5f, 0x97, 0x8f, 0x3d, 0xbb, 0x3d, 0xe0, 0xae, 0x75, 0xb0, 0xda, - 0xfb, 0x03, 0x37, 0xf1, 0x77, 0x6f, 0xdb, 0x63, 0xe2, 0xef, 0xd8, 0x6e, 0xfc, 0x3f, 0x00, 0x00, - 0xff, 0xff, 0xca, 0xd7, 0x7f, 0xd4, 0x24, 0x28, 0x00, 0x00, + // 2386 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x5a, 0xcd, 0x6f, 0x1b, 0xc7, + 0x15, 0xf7, 0x8a, 0xb4, 0x2c, 0x3d, 0x49, 0x36, 0x3d, 0xfa, 0x5a, 0x4b, 0x32, 0xcd, 0xac, 0x3f, + 0x22, 0x7f, 0x49, 0x8e, 0x5c, 0xd7, 0x6e, 0xdc, 0x06, 0xa5, 0xfc, 0xd1, 0xd0, 0xf5, 0x87, 0x30, + 0x54, 0xec, 0xd6, 0x09, 0xe0, 0xac, 0xc8, 0x11, 0xb5, 0xd0, 0x72, 0x87, 0xd9, 0x59, 0xca, 0xf2, + 0xad, 0x40, 0xd3, 0x53, 0x0b, 0x34, 0x68, 0x52, 0xa0, 0x45, 0x2f, 0x3d, 0xf6, 0x98, 0x43, 0x0f, + 0x05, 0x7a, 0x2e, 0x90, 0x4b, 0x81, 0xa0, 0xa7, 0xa2, 0x87, 0xa0, 0xb0, 0x0f, 0xbd, 0xf7, 0x2f, + 0x08, 0x76, 0x66, 0x76, 0xb9, 0x1f, 0xb3, 0x4b, 0x8a, 0xca, 0xc5, 0xe0, 0xee, 0xbc, 0xf7, 0x7b, + 0xbf, 0x99, 0xf7, 0xf6, 0xcd, 0xcc, 0xcf, 0x82, 0x05, 0xd2, 0xb6, 0x18, 0xb3, 0xa8, 0xc3, 0x56, + 0xf7, 0xae, 0xaf, 0xb6, 0x88, 0x43, 0x98, 0xc5, 0x56, 0x3a, 0x2e, 0xf5, 0x28, 0x9a, 0x0c, 0xc7, + 0x56, 0xf6, 0xae, 0x2f, 0x9c, 0x34, 0xdb, 0x96, 0x43, 0x57, 0xf9, 0xbf, 0xc2, 0x60, 0xe1, 0x54, + 0x83, 0xb2, 0x36, 0x65, 0x2f, 0xf8, 0xd3, 0xaa, 0x78, 0x90, 0x43, 0xf3, 0x31, 0x5c, 0x87, 0x36, + 0x89, 0x1c, 0xd0, 0x13, 0x03, 0x4e, 0x23, 0x18, 0x39, 0x15, 0x1b, 0xe9, 0x98, 0xae, 0xd9, 0x0e, + 0xd0, 0xe2, 0x2c, 0x5d, 0xd2, 0xe9, 0x7a, 0xc4, 0x55, 0x02, 0xb2, 0x06, 0x75, 0xd5, 0xa1, 0x98, + 0x67, 0xee, 0xaa, 0x47, 0x3c, 0xda, 0xb1, 0x1a, 0xea, 0x91, 0x57, 0x1d, 0xc2, 0x94, 0xf4, 0x5e, + 0x52, 0x77, 0x37, 0xa4, 0x30, 0xd3, 0xa2, 0x2d, 0x2a, 0x16, 0xc1, 0xff, 0x25, 0xde, 0x1a, 0xff, + 0xbf, 0x0c, 0x93, 0x3f, 0x11, 0x0b, 0x5a, 0xf7, 0x4c, 0x8f, 0xa0, 0x35, 0x18, 0x15, 0xb3, 0xd2, + 0xb5, 0x8a, 0xb6, 0x3c, 0xb1, 0x36, 0xb3, 0x12, 0x5d, 0xe0, 0x95, 0x0d, 0x3e, 0xb6, 0x5e, 0xfc, + 0xea, 0x9b, 0x33, 0x47, 0xb0, 0xb4, 0x44, 0x15, 0x98, 0x70, 0xc8, 0xbe, 0xb7, 0xe9, 0x53, 0xac, + 0x35, 0xf5, 0x42, 0x45, 0x5b, 0x2e, 0xe2, 0xe8, 0x2b, 0x74, 0x03, 0x46, 0xf9, 0x04, 0x98, 0x5e, + 0xac, 0x14, 0x96, 0x27, 0xd6, 0x4e, 0xc7, 0x51, 0xa5, 0x59, 0xd5, 0x69, 0xf2, 0x5f, 0x58, 0x1a, + 0x23, 0x03, 0x26, 0xcd, 0x86, 0x67, 0xed, 0x91, 0x4d, 0xe1, 0x7c, 0xb4, 0x52, 0x58, 0x2e, 0xe2, + 0xd8, 0x3b, 0x74, 0x09, 0x4a, 0x2e, 0x79, 0x69, 0xba, 0x4d, 0x73, 0xcb, 0x0e, 0xec, 0x46, 0xb9, + 0x5d, 0xea, 0x3d, 0xaa, 0xc2, 0x24, 0x47, 0x7e, 0xc6, 0x17, 0x86, 0xe9, 0xc7, 0x32, 0xc9, 0x54, + 0x9d, 0x66, 0xb5, 0xe1, 0x51, 0xb7, 0xd6, 0xc4, 0x31, 0x17, 0x74, 0x07, 0xa6, 0xf8, 0x33, 0x16, + 0xf9, 0x65, 0xfa, 0xd8, 0x20, 0x18, 0x71, 0x1f, 0xf4, 0x04, 0x4a, 0xf2, 0x85, 0x4f, 0xf0, 0xb1, + 0x5f, 0x5f, 0xfa, 0x38, 0xc7, 0x39, 0x9b, 0xb5, 0x30, 0xeb, 0x36, 0x6d, 0xec, 0xbe, 0x4f, 0xac, + 0xd6, 0x8e, 0x87, 0x53, 0xce, 0xe8, 0x39, 0xcc, 0x58, 0xce, 0x36, 0x71, 0x89, 0x5b, 0xf7, 0x6b, + 0x8b, 0xad, 0xbf, 0xe2, 0xf6, 0x3a, 0x70, 0xd0, 0x0b, 0x4a, 0xd0, 0x08, 0xa2, 0x70, 0xc2, 0x4a, + 0x0c, 0xf4, 0x31, 0xcc, 0x6f, 0x53, 0x97, 0x34, 0x4c, 0xe6, 0x25, 0xe1, 0x27, 0x0e, 0x04, 0x9f, + 0x05, 0xe3, 0xb3, 0x97, 0x9f, 0x4b, 0x1c, 0x7e, 0xf2, 0x60, 0xec, 0x55, 0x18, 0xe8, 0x11, 0x94, + 0xa2, 0xb3, 0xba, 0xd7, 0x36, 0x99, 0xfe, 0x43, 0x8e, 0xfb, 0x96, 0x7a, 0xa9, 0x45, 0xc6, 0xb8, + 0x31, 0x4e, 0xb9, 0xa2, 0x3a, 0x4c, 0x27, 0x66, 0xc1, 0x11, 0x7f, 0x34, 0x28, 0xa2, 0xca, 0xdb, + 0xe7, 0x18, 0xe5, 0xce, 0x11, 0xdf, 0x1b, 0x98, 0x63, 0xd2, 0x15, 0xb9, 0xb0, 0x28, 0xdf, 0x3d, + 0xb4, 0x98, 0x47, 0x1c, 0xcb, 0x69, 0xdd, 0xa1, 0x64, 0x7b, 0xdb, 0x6a, 0x58, 0xc4, 0xf1, 0xf4, + 0x12, 0x47, 0xbe, 0x96, 0x87, 0xac, 0xf2, 0xc3, 0x79, 0xa0, 0x88, 0xc0, 0xe9, 0x8e, 0x4b, 0xf6, + 0x2c, 0xda, 0x65, 0xb2, 0xca, 0x45, 0x79, 0xde, 0x77, 0xfd, 0x8f, 0x95, 0x3a, 0xfa, 0x49, 0x1e, + 0xf5, 0x4c, 0x5e, 0xd4, 0xbb, 0xa4, 0x81, 0xf3, 0x51, 0x90, 0x05, 0x67, 0x02, 0x83, 0x1a, 0x4f, + 0x8d, 0xd3, 0x20, 0x89, 0x40, 0x68, 0xb0, 0x40, 0xfd, 0x70, 0x50, 0x0b, 0xca, 0x81, 0xc9, 0x7d, + 0x99, 0xb3, 0x44, 0xa4, 0xe9, 0xc1, 0x22, 0xf5, 0x81, 0x41, 0x0d, 0x58, 0x4a, 0x5a, 0xc8, 0x6c, + 0x62, 0xd3, 0xb3, 0xa8, 0x3e, 0x33, 0x58, 0x98, 0x5c, 0x10, 0xb4, 0x01, 0xe0, 0x51, 0xcf, 0xb4, + 0xeb, 0xfe, 0x06, 0xa3, 0xcf, 0x56, 0xb4, 0xe5, 0xf1, 0xf5, 0x6b, 0x7e, 0x13, 0xff, 0xcf, 0x37, + 0x67, 0x66, 0xc5, 0xa6, 0xc8, 0x9a, 0xbb, 0x2b, 0x16, 0x5d, 0x6d, 0x9b, 0xde, 0xce, 0x4a, 0xcd, + 0xf1, 0xfe, 0xf5, 0xd7, 0xab, 0x20, 0x77, 0xcb, 0x9a, 0xe3, 0xfd, 0xe5, 0x7f, 0x5f, 0x5e, 0xd2, + 0x70, 0x04, 0x03, 0xdd, 0xf6, 0x11, 0x3b, 0x56, 0x43, 0x20, 0xce, 0x71, 0x92, 0x8b, 0x59, 0xdd, + 0xab, 0xe6, 0x78, 0x38, 0x62, 0x8e, 0x3e, 0x80, 0x59, 0xbe, 0xd5, 0xc9, 0x2c, 0x57, 0xbb, 0xde, + 0x0e, 0x75, 0x2d, 0xef, 0x95, 0x3e, 0xdf, 0x7f, 0xb2, 0x3e, 0x96, 0xda, 0x3b, 0x84, 0xad, 0x77, + 0xdb, 0xf7, 0x5d, 0xda, 0xbe, 0x4b, 0x6c, 0xd2, 0x32, 0x3d, 0xea, 0xea, 0xfa, 0x41, 0x60, 0x93, + 0xde, 0xe8, 0x23, 0x38, 0xd1, 0x14, 0x0f, 0xa4, 0xc9, 0xf9, 0x33, 0xfd, 0x14, 0x07, 0x5c, 0x53, + 0x02, 0x86, 0x8e, 0x92, 0x5f, 0xf8, 0x5c, 0x73, 0xb6, 0x29, 0x4e, 0x42, 0xf9, 0x85, 0xc6, 0xc3, + 0xc6, 0x62, 0xb2, 0x0f, 0x3a, 0xd4, 0x91, 0xfe, 0xfa, 0xc2, 0x60, 0xec, 0xfb, 0xc0, 0xa0, 0x67, + 0x30, 0x17, 0xc4, 0x16, 0x25, 0xb8, 0x41, 0xdc, 0xfa, 0x8e, 0xe9, 0x12, 0x7d, 0x71, 0xb0, 0x12, + 0xcb, 0x70, 0x47, 0xbb, 0x30, 0x23, 0xf3, 0xd1, 0xa6, 0x7b, 0xa6, 0x1d, 0xf6, 0xef, 0x25, 0x0e, + 0x7b, 0x33, 0x0e, 0x1b, 0x69, 0xdc, 0x32, 0x82, 0xe4, 0x57, 0x8f, 0x40, 0xf0, 0x95, 0x52, 0x82, + 0xa2, 0x0f, 0x53, 0xc1, 0x38, 0x43, 0xfd, 0x34, 0x0f, 0xf6, 0x76, 0x3c, 0x98, 0x24, 0x9f, 0xde, + 0x33, 0xb0, 0x12, 0x04, 0xfd, 0x46, 0x83, 0xa5, 0x60, 0x92, 0x75, 0xd5, 0x94, 0xca, 0x3c, 0xca, + 0xfb, 0xfd, 0xa6, 0x94, 0x51, 0x02, 0x24, 0x35, 0xc7, 0xdc, 0x68, 0xc8, 0xcb, 0x64, 0x23, 0xe6, + 0x7c, 0x46, 0xd5, 0xca, 0x93, 0xb1, 0x15, 0x93, 0xcf, 0x45, 0x45, 0xf7, 0x00, 0xac, 0xa0, 0x29, + 0x32, 0xbd, 0xc2, 0x63, 0x9c, 0xcf, 0x2f, 0xbe, 0xa0, 0x85, 0x46, 0x1c, 0xd1, 0x3a, 0x8c, 0x07, + 0x9b, 0x1d, 0xd3, 0xdf, 0xe2, 0x28, 0xe7, 0xf2, 0x50, 0xc2, 0xf6, 0xd8, 0x73, 0x43, 0x3f, 0x86, + 0x63, 0x2f, 0xe5, 0x59, 0xcd, 0x50, 0x1d, 0x06, 0x1e, 0x5a, 0x5b, 0x1b, 0x6b, 0x9d, 0x9f, 0x92, + 0x57, 0x55, 0xa7, 0xf9, 0x64, 0x7b, 0xbb, 0xb1, 0x63, 0x5a, 0xce, 0x63, 0xda, 0x24, 0x38, 0x70, + 0x43, 0xeb, 0x30, 0xe6, 0x06, 0x47, 0xb5, 0xb3, 0x07, 0x82, 0x08, 0xfd, 0xd0, 0x3d, 0x38, 0xc1, + 0x7b, 0xd7, 0x7d, 0x42, 0x30, 0xd9, 0x23, 0x4e, 0x97, 0xe8, 0xe7, 0xfa, 0xf7, 0xbb, 0xa4, 0x0f, + 0x7a, 0x04, 0xd3, 0x41, 0x8f, 0xe6, 0x96, 0xcf, 0x78, 0x32, 0xf4, 0xf3, 0xf9, 0x50, 0xfe, 0x87, + 0xa7, 0xf2, 0x43, 0x1b, 0x30, 0x65, 0xda, 0x76, 0xad, 0x97, 0xa9, 0x0b, 0x1c, 0xe8, 0x52, 0xbf, + 0xe3, 0x52, 0xcf, 0x03, 0xc7, 0x01, 0xd0, 0x23, 0x98, 0x34, 0x6d, 0xfb, 0x7e, 0x98, 0xb4, 0xb7, + 0x39, 0xe0, 0xc5, 0x7e, 0x80, 0xa1, 0x03, 0x8e, 0xb9, 0xa3, 0x0f, 0xe1, 0xb8, 0x69, 0xdb, 0x0f, + 0x29, 0x63, 0xeb, 0x5d, 0xa7, 0x69, 0x13, 0xa6, 0x2f, 0x73, 0xc0, 0xeb, 0xfd, 0x00, 0x65, 0xe1, + 0x3e, 0x35, 0xed, 0x2e, 0x91, 0xae, 0x38, 0x01, 0x85, 0x3e, 0x02, 0xe4, 0x10, 0xcf, 0xcf, 0x72, + 0x34, 0xc0, 0x45, 0x1e, 0xe0, 0x4a, 0xbf, 0x00, 0x31, 0x64, 0x05, 0x0e, 0xfa, 0x5c, 0x83, 0xe5, + 0x60, 0xcd, 0x37, 0x88, 0xdb, 0x20, 0x8e, 0x67, 0xb6, 0x64, 0xdb, 0xdb, 0xa4, 0xfc, 0xab, 0x69, + 0x86, 0x37, 0x80, 0x4b, 0x7c, 0x37, 0xbd, 0x29, 0x77, 0xd3, 0xd5, 0x96, 0xe5, 0xed, 0x74, 0xb7, + 0x56, 0x1a, 0xb4, 0xbd, 0x6a, 0xda, 0x36, 0x75, 0xcd, 0xab, 0x32, 0x40, 0xf0, 0xc8, 0x4b, 0x4c, + 0xec, 0xb3, 0x7e, 0x72, 0x07, 0x0e, 0x84, 0x30, 0x9c, 0xa4, 0x1d, 0xe2, 0x88, 0xab, 0xc8, 0x33, + 0xcb, 0x69, 0xd2, 0x97, 0x4c, 0xbf, 0xa9, 0xfa, 0xb2, 0x22, 0x73, 0x0d, 0x2e, 0x55, 0xb5, 0x26, + 0xc3, 0x69, 0x77, 0xf4, 0x33, 0x98, 0xef, 0x3a, 0xdb, 0x5d, 0x7b, 0xdb, 0xb2, 0x6d, 0xd2, 0x14, + 0x63, 0xfc, 0x4e, 0xc1, 0xf4, 0xcb, 0x1c, 0xb9, 0x9c, 0x55, 0x98, 0xc2, 0x0a, 0x67, 0xb9, 0xa3, + 0x1d, 0xd0, 0x23, 0x43, 0x72, 0x12, 0x12, 0xfa, 0x4a, 0x4e, 0x9e, 0xaa, 0x4e, 0x33, 0x3c, 0xfc, + 0x7d, 0xd2, 0x25, 0xcc, 0x93, 0x81, 0x32, 0xd1, 0x50, 0x0d, 0xa6, 0x6c, 0x93, 0x79, 0x77, 0x5d, + 0xab, 0x23, 0xba, 0xf4, 0xad, 0xc1, 0xef, 0x52, 0x71, 0x4f, 0xe4, 0xc0, 0xa2, 0x6d, 0x7a, 0x84, + 0xc9, 0xaf, 0xc4, 0x7d, 0x2c, 0x52, 0x87, 0x49, 0xcb, 0x25, 0x1e, 0xd3, 0xaf, 0xe6, 0xf1, 0x96, + 0x7b, 0x8d, 0xd5, 0xf6, 0xdb, 0x6a, 0xbb, 0x43, 0x9a, 0xbc, 0xcc, 0x70, 0x1e, 0x20, 0xf2, 0xa0, + 0x2c, 0x86, 0x7b, 0xa7, 0xb6, 0x44, 0xc8, 0x95, 0x21, 0x42, 0xf6, 0xc1, 0x44, 0xbf, 0xd2, 0xe0, + 0xac, 0x30, 0x79, 0xe2, 0x90, 0x9a, 0x93, 0x19, 0x7b, 0x35, 0xe7, 0x7b, 0x95, 0xb1, 0xb3, 0x28, + 0x0c, 0x82, 0x8f, 0xf6, 0xa1, 0x22, 0xcc, 0x1e, 0x9b, 0xd6, 0x1e, 0x51, 0x2f, 0xf9, 0xb5, 0x21, + 0xe6, 0xdf, 0x17, 0x15, 0xfd, 0x56, 0x83, 0xe5, 0x90, 0xe1, 0x93, 0x6e, 0x90, 0x1d, 0x35, 0x85, + 0x77, 0x86, 0x5f, 0x86, 0x81, 0x83, 0xa0, 0xdf, 0x6b, 0x70, 0x59, 0x61, 0x9c, 0x99, 0x9b, 0xb5, + 0xe1, 0x49, 0x1d, 0x24, 0x4e, 0x8a, 0x57, 0xcf, 0x50, 0xbd, 0x58, 0xd7, 0xbf, 0x23, 0x5e, 0x7d, + 0xe2, 0xa0, 0x3f, 0x69, 0xb0, 0xa2, 0xb6, 0xcf, 0x5c, 0xb2, 0xef, 0x0d, 0x4f, 0xed, 0x80, 0xa1, + 0xd0, 0x0a, 0x4c, 0xfb, 0x97, 0xaf, 0x17, 0x1e, 0x31, 0xdb, 0x2f, 0xcc, 0x66, 0xd3, 0x25, 0x8c, + 0x11, 0xa6, 0x8f, 0x54, 0x0a, 0xcb, 0xe3, 0xf8, 0xa4, 0x3f, 0xb4, 0x49, 0xcc, 0x76, 0x35, 0x18, + 0x40, 0x1f, 0xc3, 0x2c, 0x3f, 0x2e, 0x3c, 0x34, 0x99, 0x27, 0xba, 0xe8, 0x1d, 0xda, 0x6e, 0x5b, + 0x9e, 0x7e, 0x23, 0x67, 0x53, 0xf7, 0x59, 0x32, 0xc1, 0x92, 0xf3, 0xe6, 0xed, 0x10, 0xab, 0x81, + 0xd0, 0x16, 0xcc, 0x85, 0x03, 0xb2, 0x7d, 0xca, 0x10, 0xdf, 0x3f, 0x70, 0x88, 0x0c, 0x24, 0x44, + 0xa1, 0xc2, 0x47, 0x36, 0xe9, 0x63, 0xb2, 0xef, 0x6d, 0x50, 0xc6, 0xac, 0x2d, 0x9b, 0xdc, 0xd9, + 0xe9, 0xba, 0x8e, 0xe5, 0xb4, 0x44, 0x6f, 0xfe, 0xc1, 0xe0, 0xbd, 0xb9, 0x2f, 0x18, 0xaa, 0xc3, + 0xf4, 0x96, 0xff, 0x63, 0x93, 0x56, 0xa3, 0x3a, 0xe1, 0xbb, 0x2a, 0xf1, 0x24, 0x7d, 0x4a, 0x67, + 0x58, 0xe5, 0x8d, 0x5c, 0x28, 0xcb, 0xd7, 0x0f, 0xe9, 0x4b, 0xc2, 0xbc, 0xc8, 0xa0, 0x3c, 0xb2, + 0xdd, 0x56, 0xad, 0x58, 0x1a, 0x5f, 0x58, 0x6f, 0x98, 0x96, 0x8b, 0xfb, 0x20, 0x3e, 0x28, 0x8e, + 0x4d, 0x95, 0x8e, 0x3f, 0x28, 0x8e, 0x1d, 0x2f, 0x9d, 0x78, 0x50, 0x1c, 0x3b, 0x51, 0x2a, 0x25, + 0xb6, 0x8d, 0x40, 0xd4, 0x12, 0x29, 0x4d, 0x37, 0xf8, 0xc4, 0xf8, 0x92, 0x18, 0xc7, 0x71, 0x45, + 0x4c, 0x3e, 0x1a, 0x4f, 0xe1, 0x44, 0x42, 0x71, 0x45, 0x3a, 0x1c, 0x0b, 0xe4, 0x5b, 0x8d, 0xcb, + 0xb7, 0xc1, 0x23, 0xba, 0x08, 0x47, 0xf9, 0x4f, 0x7d, 0x84, 0xeb, 0xc1, 0xd3, 0x8a, 0xc4, 0x61, + 0x61, 0x61, 0xdc, 0x93, 0xb8, 0x3d, 0xe1, 0x33, 0x07, 0x57, 0x87, 0x63, 0xd2, 0x88, 0x23, 0x8f, + 0xe3, 0xe0, 0xd1, 0xa8, 0xc3, 0xac, 0xb2, 0x1e, 0x72, 0xc0, 0x2a, 0x30, 0x11, 0x31, 0xe4, 0x80, + 0x05, 0x1c, 0x7d, 0x65, 0x3c, 0x85, 0x39, 0xf5, 0xa1, 0x28, 0xe9, 0xab, 0xa5, 0x7c, 0xd1, 0x02, + 0x8c, 0x05, 0xd6, 0xfc, 0x0b, 0x2e, 0xe2, 0xf0, 0xd9, 0xf8, 0x54, 0x03, 0x3d, 0x4b, 0x92, 0x3c, + 0x0c, 0x61, 0x74, 0x05, 0x46, 0x05, 0x0a, 0xd7, 0xd3, 0x53, 0x42, 0xbc, 0x14, 0x3d, 0xa5, 0x8d, + 0xe1, 0xc1, 0xb4, 0x42, 0x1c, 0x1c, 0x66, 0xf9, 0xfd, 0x84, 0x73, 0x67, 0x19, 0x77, 0x5a, 0x11, + 0x17, 0x0b, 0x0b, 0xe3, 0x4b, 0x0d, 0x8c, 0xfe, 0xca, 0xe1, 0x50, 0x2c, 0x9e, 0xc2, 0x8c, 0x52, + 0xbd, 0x14, 0xa4, 0x8c, 0xe4, 0x1d, 0x4e, 0xa1, 0x57, 0x2a, 0xfd, 0x8d, 0xdf, 0x69, 0x70, 0x32, + 0xa5, 0x6c, 0x0c, 0xc5, 0xb0, 0x06, 0x85, 0xbb, 0xa4, 0xc1, 0x09, 0x1d, 0xe2, 0xf4, 0xef, 0x63, + 0x18, 0x6d, 0x98, 0x8a, 0xdd, 0x1d, 0x73, 0xf8, 0xac, 0x43, 0xa1, 0xe6, 0x88, 0x82, 0x19, 0x46, + 0xc1, 0xf3, 0x9d, 0x8d, 0x5f, 0xa7, 0xd6, 0xa0, 0x36, 0x64, 0x96, 0x24, 0x9b, 0xc2, 0x61, 0xd8, + 0xfc, 0x5d, 0x83, 0x73, 0x83, 0x28, 0x67, 0x39, 0x04, 0x97, 0x60, 0xbc, 0xa7, 0xf5, 0x09, 0x8a, + 0xbd, 0x17, 0xbe, 0x5f, 0xa0, 0xa4, 0x15, 0x04, 0xfd, 0x40, 0x11, 0xab, 0xc2, 0x54, 0x2c, 0x84, + 0x5e, 0xe4, 0xd5, 0xb5, 0x98, 0x21, 0xa8, 0x70, 0xc5, 0x26, 0xee, 0x61, 0xfc, 0x53, 0x83, 0x8b, + 0x03, 0x4b, 0x5a, 0x03, 0xf4, 0x9a, 0xc8, 0x24, 0x47, 0x52, 0x59, 0xc8, 0x98, 0xc6, 0x03, 0x28, + 0x25, 0x23, 0xc9, 0x99, 0x24, 0x2e, 0x6f, 0x29, 0xf9, 0x29, 0xe5, 0x67, 0x7c, 0x02, 0xa7, 0x32, + 0x45, 0xb3, 0x68, 0x21, 0x68, 0xf1, 0x42, 0xc8, 0xa6, 0x9d, 0x98, 0x72, 0x21, 0xdd, 0x9a, 0xbf, + 0x18, 0x81, 0x77, 0x87, 0x97, 0xd0, 0x0e, 0xb5, 0xa6, 0xb1, 0xc2, 0x29, 0xe4, 0x14, 0x4e, 0x31, + 0xbe, 0xe2, 0x5b, 0xa0, 0x67, 0xf1, 0xd1, 0x8f, 0xf2, 0x95, 0xbf, 0xa0, 0xac, 0xa1, 0xb4, 0x00, + 0x98, 0x89, 0x63, 0xfc, 0x41, 0x03, 0xa3, 0xbf, 0x96, 0x17, 0x9f, 0x82, 0x96, 0x33, 0x85, 0x91, + 0xf8, 0x14, 0x22, 0x8b, 0x52, 0xc8, 0xcd, 0x58, 0x31, 0x9d, 0xb1, 0x4f, 0x35, 0x98, 0xcf, 0x90, + 0x00, 0x87, 0x6a, 0x23, 0x37, 0x60, 0x3c, 0x04, 0x90, 0x1d, 0x7e, 0x3e, 0xbe, 0x7e, 0x3d, 0x89, + 0xb1, 0x67, 0x69, 0xfc, 0x42, 0x83, 0x39, 0xb5, 0x86, 0x38, 0x14, 0x8b, 0x35, 0x18, 0x0b, 0xfc, + 0x25, 0x89, 0xb9, 0x38, 0x89, 0x50, 0xa1, 0x0c, 0xed, 0x8c, 0x7d, 0xd0, 0xb3, 0x04, 0x44, 0x3f, + 0x33, 0xe1, 0x58, 0x90, 0x99, 0xf0, 0x05, 0x7a, 0x0f, 0x26, 0xa3, 0xd6, 0xf2, 0x78, 0xb5, 0x10, + 0x8f, 0x18, 0x13, 0x24, 0x63, 0xf6, 0x86, 0x17, 0xdd, 0x33, 0xf2, 0xf7, 0x30, 0xb9, 0x53, 0x8d, + 0x7c, 0x07, 0x3b, 0xd5, 0x17, 0x1a, 0x2c, 0xe5, 0x49, 0x8a, 0x87, 0x3a, 0xf2, 0xdc, 0x02, 0x88, + 0xc8, 0x99, 0x22, 0x05, 0x7a, 0x46, 0x1d, 0x30, 0x1c, 0xb1, 0x35, 0x3e, 0xd3, 0x60, 0x31, 0x47, + 0x98, 0x3c, 0x14, 0xab, 0x1b, 0x30, 0xde, 0x93, 0x44, 0x95, 0xc5, 0xd9, 0x13, 0x40, 0x7b, 0x96, + 0xc6, 0xdf, 0x34, 0x38, 0x3f, 0x90, 0xb4, 0x79, 0x28, 0x72, 0x75, 0x98, 0x56, 0x40, 0x4a, 0x9a, + 0x89, 0x0b, 0x90, 0x4a, 0x56, 0x55, 0x79, 0x1b, 0x7f, 0xd4, 0xa0, 0x9c, 0x2f, 0x9a, 0x1e, 0x8a, + 0xf3, 0x6d, 0x98, 0x88, 0x60, 0x49, 0xae, 0xa7, 0xe2, 0x5c, 0x23, 0x06, 0x38, 0x6a, 0x6d, 0x3c, + 0x87, 0x52, 0x52, 0x82, 0xcc, 0x21, 0x73, 0x05, 0x46, 0xa5, 0xe2, 0x38, 0xa2, 0x3a, 0x44, 0x4b, + 0x65, 0x51, 0xda, 0xf8, 0x67, 0xc3, 0x72, 0xbe, 0x08, 0x99, 0x13, 0xea, 0x29, 0xcc, 0xa8, 0x3c, + 0x64, 0x60, 0x43, 0x99, 0x8a, 0xb8, 0xc0, 0xa9, 0xf4, 0x37, 0xfe, 0x1c, 0x21, 0xa5, 0x16, 0x27, + 0x86, 0x6a, 0x76, 0x0f, 0xa0, 0x14, 0xb9, 0xdb, 0x73, 0x1c, 0x99, 0x89, 0xa4, 0xe0, 0x9b, 0xb0, + 0xc2, 0x29, 0x3f, 0xe3, 0x1f, 0xbd, 0x52, 0xcf, 0x97, 0x51, 0x72, 0x98, 0x2e, 0xc0, 0x98, 0x74, + 0x7a, 0x47, 0x52, 0x0d, 0x9f, 0x23, 0x63, 0x6b, 0x72, 0x93, 0x0e, 0x9f, 0x95, 0xf3, 0x28, 0x0e, + 0x39, 0x8f, 0xcf, 0x7b, 0xcd, 0x4d, 0xa9, 0x7b, 0xe4, 0xd0, 0xff, 0x39, 0xcc, 0x2a, 0x5d, 0x64, + 0xfa, 0xcf, 0x66, 0x72, 0x89, 0x0a, 0x37, 0xca, 0xd7, 0xc6, 0x2e, 0x4c, 0x2b, 0xa4, 0x8b, 0x01, + 0x8e, 0x3d, 0x6b, 0xb1, 0x6b, 0xab, 0x62, 0x3f, 0x0b, 0x65, 0x90, 0xde, 0x75, 0xf6, 0x97, 0x1a, + 0x2c, 0xe5, 0x09, 0x19, 0x03, 0x84, 0xad, 0xc2, 0x44, 0x54, 0x2b, 0x11, 0x91, 0xd5, 0xff, 0xb7, + 0x1c, 0x11, 0x48, 0xa2, 0x3e, 0xeb, 0xf8, 0xab, 0xd7, 0x65, 0xed, 0xeb, 0xd7, 0x65, 0xed, 0xbf, + 0xaf, 0xcb, 0xda, 0x67, 0x6f, 0xca, 0x47, 0xbe, 0x7e, 0x53, 0x3e, 0xf2, 0xef, 0x37, 0xe5, 0x23, + 0xcf, 0x6f, 0x0d, 0xb8, 0x6b, 0xed, 0xaf, 0xf6, 0xfe, 0x12, 0x8e, 0xff, 0x81, 0xdc, 0xd6, 0x28, + 0xff, 0x83, 0xb7, 0xeb, 0xdf, 0x06, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x20, 0x41, 0x94, 0x4d, 0x28, + 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -2540,6 +2543,54 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.ReputerScoreEmas) > 0 { + for iNdEx := len(m.ReputerScoreEmas) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ReputerScoreEmas[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xf2 + } + } + if len(m.ForecasterScoreEmas) > 0 { + for iNdEx := len(m.ForecasterScoreEmas) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ForecasterScoreEmas[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xea + } + } + if len(m.InfererScoreEmas) > 0 { + for iNdEx := len(m.InfererScoreEmas) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.InfererScoreEmas[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xe2 + } + } if len(m.BlockToLowestActiveTopicWeight) > 0 { for iNdEx := len(m.BlockToLowestActiveTopicWeight) - 1; iNdEx >= 0; iNdEx-- { { @@ -3236,48 +3287,6 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x82 } } - if len(m.LatestReputerScoresByReputer) > 0 { - for iNdEx := len(m.LatestReputerScoresByReputer) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.LatestReputerScoresByReputer[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenesis(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x7a - } - } - if len(m.LatestForecasterScoresByWorker) > 0 { - for iNdEx := len(m.LatestForecasterScoresByWorker) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.LatestForecasterScoresByWorker[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenesis(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x72 - } - } - if len(m.LatestInfererScoresByWorker) > 0 { - for iNdEx := len(m.LatestInfererScoresByWorker) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.LatestInfererScoresByWorker[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenesis(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x6a - } - } if len(m.ReputerScoresByBlock) > 0 { for iNdEx := len(m.ReputerScoresByBlock) - 1; iNdEx >= 0; iNdEx-- { { @@ -4851,24 +4860,6 @@ func (m *GenesisState) Size() (n int) { n += 1 + l + sovGenesis(uint64(l)) } } - if len(m.LatestInfererScoresByWorker) > 0 { - for _, e := range m.LatestInfererScoresByWorker { - l = e.Size() - n += 1 + l + sovGenesis(uint64(l)) - } - } - if len(m.LatestForecasterScoresByWorker) > 0 { - for _, e := range m.LatestForecasterScoresByWorker { - l = e.Size() - n += 1 + l + sovGenesis(uint64(l)) - } - } - if len(m.LatestReputerScoresByReputer) > 0 { - for _, e := range m.LatestReputerScoresByReputer { - l = e.Size() - n += 1 + l + sovGenesis(uint64(l)) - } - } if len(m.ReputerListeningCoefficient) > 0 { for _, e := range m.ReputerListeningCoefficient { l = e.Size() @@ -5125,6 +5116,24 @@ func (m *GenesisState) Size() (n int) { n += 2 + l + sovGenesis(uint64(l)) } } + if len(m.InfererScoreEmas) > 0 { + for _, e := range m.InfererScoreEmas { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } + if len(m.ForecasterScoreEmas) > 0 { + for _, e := range m.ForecasterScoreEmas { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } + if len(m.ReputerScoreEmas) > 0 { + for _, e := range m.ReputerScoreEmas { + l = e.Size() + n += 2 + l + sovGenesis(uint64(l)) + } + } return n } @@ -6199,108 +6208,6 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LatestInfererScoresByWorker", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenesis - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenesis - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenesis - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.LatestInfererScoresByWorker = append(m.LatestInfererScoresByWorker, &TopicIdActorIdScore{}) - if err := m.LatestInfererScoresByWorker[len(m.LatestInfererScoresByWorker)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LatestForecasterScoresByWorker", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenesis - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenesis - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenesis - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.LatestForecasterScoresByWorker = append(m.LatestForecasterScoresByWorker, &TopicIdActorIdScore{}) - if err := m.LatestForecasterScoresByWorker[len(m.LatestForecasterScoresByWorker)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LatestReputerScoresByReputer", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenesis - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenesis - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthGenesis - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.LatestReputerScoresByReputer = append(m.LatestReputerScoresByReputer, &TopicIdActorIdScore{}) - if err := m.LatestReputerScoresByReputer[len(m.LatestReputerScoresByReputer)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex case 16: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field ReputerListeningCoefficient", wireType) @@ -7797,6 +7704,108 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 60: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InfererScoreEmas", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.InfererScoreEmas = append(m.InfererScoreEmas, &TopicIdActorIdScore{}) + if err := m.InfererScoreEmas[len(m.InfererScoreEmas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 61: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ForecasterScoreEmas", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ForecasterScoreEmas = append(m.ForecasterScoreEmas, &TopicIdActorIdScore{}) + if err := m.ForecasterScoreEmas[len(m.ForecasterScoreEmas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 62: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReputerScoreEmas", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReputerScoreEmas = append(m.ReputerScoreEmas, &TopicIdActorIdScore{}) + if err := m.ReputerScoreEmas[len(m.ReputerScoreEmas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/x/emissions/types/keys.go b/x/emissions/types/keys.go index e928cbaf2..fc1e7781a 100644 --- a/x/emissions/types/keys.go +++ b/x/emissions/types/keys.go @@ -58,9 +58,9 @@ var ( PreviousReputerRewardFractionKey = collections.NewPrefix(43) PreviousInferenceRewardFractionKey = collections.NewPrefix(44) PreviousForecastRewardFractionKey = collections.NewPrefix(45) - LatestInfererScoresByWorkerKey = collections.NewPrefix(46) - LatestForecasterScoresByWorkerKey = collections.NewPrefix(47) - LatestReputerScoresByReputerKey = collections.NewPrefix(48) + InfererScoreEmasKey = collections.NewPrefix(46) + ForecasterScoreEmasKey = collections.NewPrefix(47) + ReputerScoreEmasKey = collections.NewPrefix(48) TopicRewardNonceKey = collections.NewPrefix(49) DelegateRewardPerShare = collections.NewPrefix(50) PreviousPercentageRewardToStakedReputersKey = collections.NewPrefix(51) diff --git a/x/emissions/types/query.pb.go b/x/emissions/types/query.pb.go index 4730ef059..44a58af24 100644 --- a/x/emissions/types/query.pb.go +++ b/x/emissions/types/query.pb.go @@ -5436,23 +5436,23 @@ func (m *QueryRewardableTopicsResponse) GetRewardableTopicIds() []uint64 { return nil } -type QueryLatestInfererScoreRequest struct { +type QueryGetInfererScoreEmaRequest struct { TopicId uint64 `protobuf:"varint,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` Inferer string `protobuf:"bytes,2,opt,name=inferer,proto3" json:"inferer,omitempty"` } -func (m *QueryLatestInfererScoreRequest) Reset() { *m = QueryLatestInfererScoreRequest{} } -func (m *QueryLatestInfererScoreRequest) String() string { return proto.CompactTextString(m) } -func (*QueryLatestInfererScoreRequest) ProtoMessage() {} -func (*QueryLatestInfererScoreRequest) Descriptor() ([]byte, []int) { +func (m *QueryGetInfererScoreEmaRequest) Reset() { *m = QueryGetInfererScoreEmaRequest{} } +func (m *QueryGetInfererScoreEmaRequest) String() string { return proto.CompactTextString(m) } +func (*QueryGetInfererScoreEmaRequest) ProtoMessage() {} +func (*QueryGetInfererScoreEmaRequest) Descriptor() ([]byte, []int) { return fileDescriptor_15a605632fb3bc37, []int{112} } -func (m *QueryLatestInfererScoreRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryGetInfererScoreEmaRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryLatestInfererScoreRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryGetInfererScoreEmaRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryLatestInfererScoreRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryGetInfererScoreEmaRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -5462,48 +5462,48 @@ func (m *QueryLatestInfererScoreRequest) XXX_Marshal(b []byte, deterministic boo return b[:n], nil } } -func (m *QueryLatestInfererScoreRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLatestInfererScoreRequest.Merge(m, src) +func (m *QueryGetInfererScoreEmaRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetInfererScoreEmaRequest.Merge(m, src) } -func (m *QueryLatestInfererScoreRequest) XXX_Size() int { +func (m *QueryGetInfererScoreEmaRequest) XXX_Size() int { return m.Size() } -func (m *QueryLatestInfererScoreRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLatestInfererScoreRequest.DiscardUnknown(m) +func (m *QueryGetInfererScoreEmaRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetInfererScoreEmaRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryLatestInfererScoreRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryGetInfererScoreEmaRequest proto.InternalMessageInfo -func (m *QueryLatestInfererScoreRequest) GetTopicId() uint64 { +func (m *QueryGetInfererScoreEmaRequest) GetTopicId() uint64 { if m != nil { return m.TopicId } return 0 } -func (m *QueryLatestInfererScoreRequest) GetInferer() string { +func (m *QueryGetInfererScoreEmaRequest) GetInferer() string { if m != nil { return m.Inferer } return "" } -type QueryLatestInfererScoreResponse struct { +type QueryGetInfererScoreEmaResponse struct { Score *Score `protobuf:"bytes,1,opt,name=score,proto3" json:"score,omitempty"` } -func (m *QueryLatestInfererScoreResponse) Reset() { *m = QueryLatestInfererScoreResponse{} } -func (m *QueryLatestInfererScoreResponse) String() string { return proto.CompactTextString(m) } -func (*QueryLatestInfererScoreResponse) ProtoMessage() {} -func (*QueryLatestInfererScoreResponse) Descriptor() ([]byte, []int) { +func (m *QueryGetInfererScoreEmaResponse) Reset() { *m = QueryGetInfererScoreEmaResponse{} } +func (m *QueryGetInfererScoreEmaResponse) String() string { return proto.CompactTextString(m) } +func (*QueryGetInfererScoreEmaResponse) ProtoMessage() {} +func (*QueryGetInfererScoreEmaResponse) Descriptor() ([]byte, []int) { return fileDescriptor_15a605632fb3bc37, []int{113} } -func (m *QueryLatestInfererScoreResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryGetInfererScoreEmaResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryLatestInfererScoreResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryGetInfererScoreEmaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryLatestInfererScoreResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryGetInfererScoreEmaResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -5513,42 +5513,42 @@ func (m *QueryLatestInfererScoreResponse) XXX_Marshal(b []byte, deterministic bo return b[:n], nil } } -func (m *QueryLatestInfererScoreResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLatestInfererScoreResponse.Merge(m, src) +func (m *QueryGetInfererScoreEmaResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetInfererScoreEmaResponse.Merge(m, src) } -func (m *QueryLatestInfererScoreResponse) XXX_Size() int { +func (m *QueryGetInfererScoreEmaResponse) XXX_Size() int { return m.Size() } -func (m *QueryLatestInfererScoreResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLatestInfererScoreResponse.DiscardUnknown(m) +func (m *QueryGetInfererScoreEmaResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetInfererScoreEmaResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryLatestInfererScoreResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryGetInfererScoreEmaResponse proto.InternalMessageInfo -func (m *QueryLatestInfererScoreResponse) GetScore() *Score { +func (m *QueryGetInfererScoreEmaResponse) GetScore() *Score { if m != nil { return m.Score } return nil } -type QueryLatestForecasterScoreRequest struct { +type QueryGetForecasterScoreEmaRequest struct { TopicId uint64 `protobuf:"varint,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` Forecaster string `protobuf:"bytes,2,opt,name=forecaster,proto3" json:"forecaster,omitempty"` } -func (m *QueryLatestForecasterScoreRequest) Reset() { *m = QueryLatestForecasterScoreRequest{} } -func (m *QueryLatestForecasterScoreRequest) String() string { return proto.CompactTextString(m) } -func (*QueryLatestForecasterScoreRequest) ProtoMessage() {} -func (*QueryLatestForecasterScoreRequest) Descriptor() ([]byte, []int) { +func (m *QueryGetForecasterScoreEmaRequest) Reset() { *m = QueryGetForecasterScoreEmaRequest{} } +func (m *QueryGetForecasterScoreEmaRequest) String() string { return proto.CompactTextString(m) } +func (*QueryGetForecasterScoreEmaRequest) ProtoMessage() {} +func (*QueryGetForecasterScoreEmaRequest) Descriptor() ([]byte, []int) { return fileDescriptor_15a605632fb3bc37, []int{114} } -func (m *QueryLatestForecasterScoreRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryGetForecasterScoreEmaRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryLatestForecasterScoreRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryGetForecasterScoreEmaRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryLatestForecasterScoreRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryGetForecasterScoreEmaRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -5558,48 +5558,48 @@ func (m *QueryLatestForecasterScoreRequest) XXX_Marshal(b []byte, deterministic return b[:n], nil } } -func (m *QueryLatestForecasterScoreRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLatestForecasterScoreRequest.Merge(m, src) +func (m *QueryGetForecasterScoreEmaRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetForecasterScoreEmaRequest.Merge(m, src) } -func (m *QueryLatestForecasterScoreRequest) XXX_Size() int { +func (m *QueryGetForecasterScoreEmaRequest) XXX_Size() int { return m.Size() } -func (m *QueryLatestForecasterScoreRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLatestForecasterScoreRequest.DiscardUnknown(m) +func (m *QueryGetForecasterScoreEmaRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetForecasterScoreEmaRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryLatestForecasterScoreRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryGetForecasterScoreEmaRequest proto.InternalMessageInfo -func (m *QueryLatestForecasterScoreRequest) GetTopicId() uint64 { +func (m *QueryGetForecasterScoreEmaRequest) GetTopicId() uint64 { if m != nil { return m.TopicId } return 0 } -func (m *QueryLatestForecasterScoreRequest) GetForecaster() string { +func (m *QueryGetForecasterScoreEmaRequest) GetForecaster() string { if m != nil { return m.Forecaster } return "" } -type QueryLatestForecasterScoreResponse struct { +type QueryGetForecasterScoreEmaResponse struct { Score *Score `protobuf:"bytes,1,opt,name=score,proto3" json:"score,omitempty"` } -func (m *QueryLatestForecasterScoreResponse) Reset() { *m = QueryLatestForecasterScoreResponse{} } -func (m *QueryLatestForecasterScoreResponse) String() string { return proto.CompactTextString(m) } -func (*QueryLatestForecasterScoreResponse) ProtoMessage() {} -func (*QueryLatestForecasterScoreResponse) Descriptor() ([]byte, []int) { +func (m *QueryGetForecasterScoreEmaResponse) Reset() { *m = QueryGetForecasterScoreEmaResponse{} } +func (m *QueryGetForecasterScoreEmaResponse) String() string { return proto.CompactTextString(m) } +func (*QueryGetForecasterScoreEmaResponse) ProtoMessage() {} +func (*QueryGetForecasterScoreEmaResponse) Descriptor() ([]byte, []int) { return fileDescriptor_15a605632fb3bc37, []int{115} } -func (m *QueryLatestForecasterScoreResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryGetForecasterScoreEmaResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryLatestForecasterScoreResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryGetForecasterScoreEmaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryLatestForecasterScoreResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryGetForecasterScoreEmaResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -5609,42 +5609,42 @@ func (m *QueryLatestForecasterScoreResponse) XXX_Marshal(b []byte, deterministic return b[:n], nil } } -func (m *QueryLatestForecasterScoreResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLatestForecasterScoreResponse.Merge(m, src) +func (m *QueryGetForecasterScoreEmaResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetForecasterScoreEmaResponse.Merge(m, src) } -func (m *QueryLatestForecasterScoreResponse) XXX_Size() int { +func (m *QueryGetForecasterScoreEmaResponse) XXX_Size() int { return m.Size() } -func (m *QueryLatestForecasterScoreResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLatestForecasterScoreResponse.DiscardUnknown(m) +func (m *QueryGetForecasterScoreEmaResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetForecasterScoreEmaResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryLatestForecasterScoreResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryGetForecasterScoreEmaResponse proto.InternalMessageInfo -func (m *QueryLatestForecasterScoreResponse) GetScore() *Score { +func (m *QueryGetForecasterScoreEmaResponse) GetScore() *Score { if m != nil { return m.Score } return nil } -type QueryLatestReputerScoreRequest struct { +type QueryGetReputerScoreEmaRequest struct { TopicId uint64 `protobuf:"varint,1,opt,name=topic_id,json=topicId,proto3" json:"topic_id,omitempty"` Reputer string `protobuf:"bytes,2,opt,name=reputer,proto3" json:"reputer,omitempty"` } -func (m *QueryLatestReputerScoreRequest) Reset() { *m = QueryLatestReputerScoreRequest{} } -func (m *QueryLatestReputerScoreRequest) String() string { return proto.CompactTextString(m) } -func (*QueryLatestReputerScoreRequest) ProtoMessage() {} -func (*QueryLatestReputerScoreRequest) Descriptor() ([]byte, []int) { +func (m *QueryGetReputerScoreEmaRequest) Reset() { *m = QueryGetReputerScoreEmaRequest{} } +func (m *QueryGetReputerScoreEmaRequest) String() string { return proto.CompactTextString(m) } +func (*QueryGetReputerScoreEmaRequest) ProtoMessage() {} +func (*QueryGetReputerScoreEmaRequest) Descriptor() ([]byte, []int) { return fileDescriptor_15a605632fb3bc37, []int{116} } -func (m *QueryLatestReputerScoreRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryGetReputerScoreEmaRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryLatestReputerScoreRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryGetReputerScoreEmaRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryLatestReputerScoreRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryGetReputerScoreEmaRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -5654,48 +5654,48 @@ func (m *QueryLatestReputerScoreRequest) XXX_Marshal(b []byte, deterministic boo return b[:n], nil } } -func (m *QueryLatestReputerScoreRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLatestReputerScoreRequest.Merge(m, src) +func (m *QueryGetReputerScoreEmaRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetReputerScoreEmaRequest.Merge(m, src) } -func (m *QueryLatestReputerScoreRequest) XXX_Size() int { +func (m *QueryGetReputerScoreEmaRequest) XXX_Size() int { return m.Size() } -func (m *QueryLatestReputerScoreRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLatestReputerScoreRequest.DiscardUnknown(m) +func (m *QueryGetReputerScoreEmaRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetReputerScoreEmaRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryLatestReputerScoreRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryGetReputerScoreEmaRequest proto.InternalMessageInfo -func (m *QueryLatestReputerScoreRequest) GetTopicId() uint64 { +func (m *QueryGetReputerScoreEmaRequest) GetTopicId() uint64 { if m != nil { return m.TopicId } return 0 } -func (m *QueryLatestReputerScoreRequest) GetReputer() string { +func (m *QueryGetReputerScoreEmaRequest) GetReputer() string { if m != nil { return m.Reputer } return "" } -type QueryLatestReputerScoreResponse struct { +type QueryGetReputerScoreEmaResponse struct { Score *Score `protobuf:"bytes,1,opt,name=score,proto3" json:"score,omitempty"` } -func (m *QueryLatestReputerScoreResponse) Reset() { *m = QueryLatestReputerScoreResponse{} } -func (m *QueryLatestReputerScoreResponse) String() string { return proto.CompactTextString(m) } -func (*QueryLatestReputerScoreResponse) ProtoMessage() {} -func (*QueryLatestReputerScoreResponse) Descriptor() ([]byte, []int) { +func (m *QueryGetReputerScoreEmaResponse) Reset() { *m = QueryGetReputerScoreEmaResponse{} } +func (m *QueryGetReputerScoreEmaResponse) String() string { return proto.CompactTextString(m) } +func (*QueryGetReputerScoreEmaResponse) ProtoMessage() {} +func (*QueryGetReputerScoreEmaResponse) Descriptor() ([]byte, []int) { return fileDescriptor_15a605632fb3bc37, []int{117} } -func (m *QueryLatestReputerScoreResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryGetReputerScoreEmaResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryLatestReputerScoreResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryGetReputerScoreEmaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryLatestReputerScoreResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryGetReputerScoreEmaResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -5705,19 +5705,19 @@ func (m *QueryLatestReputerScoreResponse) XXX_Marshal(b []byte, deterministic bo return b[:n], nil } } -func (m *QueryLatestReputerScoreResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryLatestReputerScoreResponse.Merge(m, src) +func (m *QueryGetReputerScoreEmaResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryGetReputerScoreEmaResponse.Merge(m, src) } -func (m *QueryLatestReputerScoreResponse) XXX_Size() int { +func (m *QueryGetReputerScoreEmaResponse) XXX_Size() int { return m.Size() } -func (m *QueryLatestReputerScoreResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryLatestReputerScoreResponse.DiscardUnknown(m) +func (m *QueryGetReputerScoreEmaResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryGetReputerScoreEmaResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryLatestReputerScoreResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryGetReputerScoreEmaResponse proto.InternalMessageInfo -func (m *QueryLatestReputerScoreResponse) GetScore() *Score { +func (m *QueryGetReputerScoreEmaResponse) GetScore() *Score { if m != nil { return m.Score } @@ -7082,12 +7082,12 @@ func init() { proto.RegisterType((*QueryTopicFeeRevenueResponse)(nil), "emissions.v3.QueryTopicFeeRevenueResponse") proto.RegisterType((*QueryRewardableTopicsRequest)(nil), "emissions.v3.QueryRewardableTopicsRequest") proto.RegisterType((*QueryRewardableTopicsResponse)(nil), "emissions.v3.QueryRewardableTopicsResponse") - proto.RegisterType((*QueryLatestInfererScoreRequest)(nil), "emissions.v3.QueryLatestInfererScoreRequest") - proto.RegisterType((*QueryLatestInfererScoreResponse)(nil), "emissions.v3.QueryLatestInfererScoreResponse") - proto.RegisterType((*QueryLatestForecasterScoreRequest)(nil), "emissions.v3.QueryLatestForecasterScoreRequest") - proto.RegisterType((*QueryLatestForecasterScoreResponse)(nil), "emissions.v3.QueryLatestForecasterScoreResponse") - proto.RegisterType((*QueryLatestReputerScoreRequest)(nil), "emissions.v3.QueryLatestReputerScoreRequest") - proto.RegisterType((*QueryLatestReputerScoreResponse)(nil), "emissions.v3.QueryLatestReputerScoreResponse") + proto.RegisterType((*QueryGetInfererScoreEmaRequest)(nil), "emissions.v3.QueryGetInfererScoreEmaRequest") + proto.RegisterType((*QueryGetInfererScoreEmaResponse)(nil), "emissions.v3.QueryGetInfererScoreEmaResponse") + proto.RegisterType((*QueryGetForecasterScoreEmaRequest)(nil), "emissions.v3.QueryGetForecasterScoreEmaRequest") + proto.RegisterType((*QueryGetForecasterScoreEmaResponse)(nil), "emissions.v3.QueryGetForecasterScoreEmaResponse") + proto.RegisterType((*QueryGetReputerScoreEmaRequest)(nil), "emissions.v3.QueryGetReputerScoreEmaRequest") + proto.RegisterType((*QueryGetReputerScoreEmaResponse)(nil), "emissions.v3.QueryGetReputerScoreEmaResponse") proto.RegisterType((*QueryInferenceScoresUntilBlockRequest)(nil), "emissions.v3.QueryInferenceScoresUntilBlockRequest") proto.RegisterType((*QueryInferenceScoresUntilBlockResponse)(nil), "emissions.v3.QueryInferenceScoresUntilBlockResponse") proto.RegisterType((*QueryWorkerInferenceScoresAtBlockRequest)(nil), "emissions.v3.QueryWorkerInferenceScoresAtBlockRequest") @@ -7119,351 +7119,351 @@ func init() { func init() { proto.RegisterFile("emissions/v3/query.proto", fileDescriptor_15a605632fb3bc37) } var fileDescriptor_15a605632fb3bc37 = []byte{ - // 5493 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5d, 0x6d, 0x6c, 0x1c, 0xc7, - 0x79, 0xf6, 0x92, 0x12, 0x45, 0x0e, 0x2d, 0x89, 0x9a, 0xc8, 0x32, 0x79, 0x94, 0x29, 0x69, 0x64, - 0x59, 0xb2, 0x3e, 0x78, 0x12, 0xa9, 0x2f, 0xcb, 0x96, 0x6d, 0x52, 0xb2, 0xa8, 0x93, 0x65, 0x7d, - 0x9c, 0x3e, 0xad, 0x26, 0x3e, 0xaf, 0xee, 0x86, 0xe4, 0x42, 0xc7, 0xdd, 0xf3, 0xee, 0x1e, 0x25, - 0x41, 0x21, 0x9a, 0x04, 0x41, 0x91, 0xa0, 0xfd, 0x61, 0xa0, 0x48, 0xd1, 0x00, 0x49, 0x91, 0x02, - 0xfd, 0x11, 0xa0, 0x4d, 0x51, 0x14, 0x41, 0x81, 0x16, 0xe8, 0x8f, 0xa2, 0x45, 0xe1, 0xa0, 0x5f, - 0x41, 0x5c, 0x03, 0x69, 0xd0, 0x18, 0xad, 0x9d, 0x20, 0x69, 0x81, 0x16, 0xed, 0xff, 0xfe, 0x28, - 0x76, 0xe6, 0x9d, 0xdd, 0x9d, 0xbd, 0x99, 0xd9, 0xbd, 0x23, 0x89, 0xa6, 0x40, 0xfe, 0x08, 0xda, - 0xdd, 0x99, 0x79, 0xdf, 0x67, 0x3e, 0xdf, 0xf7, 0x9d, 0xf7, 0xe1, 0xa1, 0x51, 0xba, 0xe4, 0x04, - 0x81, 0xe3, 0xb9, 0x41, 0x79, 0x79, 0xba, 0xfc, 0x5e, 0x9b, 0xfa, 0x8f, 0x27, 0x5b, 0xbe, 0x17, - 0x7a, 0xf8, 0xe9, 0xf8, 0xcb, 0xe4, 0xf2, 0x74, 0x69, 0x9b, 0xbd, 0xe4, 0xb8, 0x5e, 0x99, 0xfd, - 0xcb, 0x0b, 0x94, 0xc6, 0xeb, 0x5e, 0xb0, 0xe4, 0x05, 0xbc, 0x52, 0x79, 0xf9, 0x58, 0xba, 0x76, - 0x69, 0x8c, 0x7f, 0xac, 0xb1, 0xa7, 0x32, 0x7f, 0x80, 0x4f, 0x3b, 0x25, 0x91, 0x8e, 0x3b, 0x4f, - 0x7d, 0xea, 0xd6, 0x29, 0x7c, 0x7d, 0x56, 0xfa, 0xea, 0x7a, 0x0d, 0xf1, 0x61, 0x34, 0xf3, 0x21, - 0xa9, 0x32, 0x26, 0x7d, 0x69, 0xd9, 0xbe, 0xbd, 0x24, 0x64, 0x95, 0xa4, 0x4f, 0x3e, 0x6d, 0xb5, - 0x43, 0xea, 0x2b, 0x1b, 0x0c, 0xea, 0x9e, 0xaf, 0x16, 0x15, 0x84, 0xf6, 0x03, 0xf5, 0x97, 0xd0, - 0x6b, 0x39, 0x75, 0xf5, 0x97, 0xc7, 0x2d, 0x1a, 0x28, 0xd5, 0x7b, 0xe8, 0xf9, 0x0f, 0x62, 0x15, - 0xb6, 0x2f, 0x78, 0x0b, 0x1e, 0xef, 0xa2, 0xe8, 0x7f, 0xa2, 0x83, 0x16, 0x3c, 0x6f, 0xa1, 0x49, - 0xcb, 0x76, 0xcb, 0x29, 0xdb, 0xae, 0xeb, 0x85, 0x76, 0xc8, 0x86, 0x81, 0x7d, 0x25, 0x9f, 0x45, - 0xfb, 0xae, 0x47, 0x1d, 0x7d, 0xc5, 0x76, 0x96, 0x69, 0x85, 0xf5, 0x9e, 0x7f, 0x85, 0x86, 0x51, - 0xbb, 0x55, 0xba, 0xe0, 0xd3, 0xb0, 0x4a, 0xdf, 0x6b, 0xd3, 0x20, 0xc4, 0x63, 0x68, 0x90, 0x29, - 0x58, 0x73, 0x1a, 0xa3, 0xd6, 0x6e, 0xeb, 0xc0, 0x86, 0xea, 0x26, 0xf6, 0x5c, 0x69, 0xe0, 0x51, - 0xb4, 0x89, 0xf7, 0xbb, 0x3f, 0xda, 0xb7, 0xdb, 0x3a, 0x30, 0x54, 0x15, 0x8f, 0xe4, 0x5d, 0xf4, - 0x42, 0x5e, 0xeb, 0x41, 0xcb, 0x73, 0x03, 0x8a, 0x4f, 0xa2, 0x01, 0x9f, 0xbd, 0x61, 0x8d, 0x0f, - 0x4f, 0x4d, 0x4c, 0xa6, 0x27, 0xcc, 0xe4, 0x4d, 0x67, 0x89, 0x06, 0xa1, 0xbd, 0xd4, 0xa2, 0x8d, - 0xdb, 0x76, 0xb3, 0x4d, 0xab, 0x50, 0x9a, 0xfc, 0x86, 0x85, 0x8e, 0x30, 0x11, 0x57, 0x5d, 0x7a, - 0xb5, 0x1d, 0x82, 0x8c, 0x1e, 0x81, 0xbc, 0x80, 0xb6, 0x7a, 0x2e, 0xad, 0x79, 0xed, 0xb0, 0x26, - 0x03, 0xda, 0xec, 0xa5, 0x5b, 0x4f, 0x03, 0xee, 0x97, 0x01, 0x2f, 0xa2, 0xc9, 0xa2, 0xda, 0xac, - 0x12, 0xf8, 0xd7, 0x2c, 0x74, 0xb4, 0x53, 0xd4, 0x05, 0xcf, 0xa7, 0x75, 0x3b, 0x08, 0xd7, 0x0f, - 0xfb, 0x04, 0x42, 0xf3, 0xb1, 0x10, 0x80, 0x9f, 0x7a, 0x43, 0x1e, 0xa0, 0x63, 0x5d, 0xa8, 0xb5, - 0xb6, 0x9d, 0x90, 0x88, 0xe9, 0x71, 0x02, 0x1c, 0x46, 0x58, 0x74, 0x42, 0x0a, 0x24, 0xef, 0x87, - 0x11, 0x2f, 0x23, 0xc3, 0x30, 0x0d, 0xe4, 0x4e, 0xc8, 0x53, 0x6b, 0x95, 0x9d, 0xf0, 0x3b, 0x16, - 0x9a, 0x56, 0x4a, 0xeb, 0x7d, 0x32, 0x74, 0xd7, 0x0f, 0x79, 0x53, 0xc2, 0x45, 0xc7, 0xbb, 0xd3, - 0x6f, 0x95, 0x1d, 0xb2, 0x1d, 0x61, 0x26, 0xef, 0x1a, 0xdb, 0xbb, 0x01, 0x2e, 0xb9, 0x82, 0x3e, - 0x23, 0xbd, 0x05, 0x21, 0xa7, 0xd0, 0x00, 0xdf, 0xe3, 0x41, 0xc8, 0x76, 0x59, 0x08, 0x2f, 0x3d, - 0x3b, 0xf4, 0xc1, 0xc7, 0xbb, 0x9e, 0xfa, 0xf6, 0xcf, 0xfe, 0xe8, 0xa0, 0x55, 0x85, 0xe2, 0x64, - 0x14, 0xed, 0x60, 0xed, 0xdd, 0xf4, 0x42, 0xbb, 0x79, 0x23, 0xda, 0xd5, 0x85, 0x24, 0x07, 0x3d, - 0xdb, 0xf1, 0x05, 0xa4, 0x5d, 0x44, 0x03, 0xf6, 0x92, 0xd7, 0x76, 0x39, 0xa4, 0xa1, 0xd9, 0xa3, - 0x51, 0xbb, 0x3f, 0xfa, 0x78, 0xd7, 0x33, 0xfc, 0x4c, 0x0b, 0x1a, 0x0f, 0x26, 0x1d, 0xaf, 0xbc, - 0x64, 0x87, 0x8b, 0x93, 0x15, 0x37, 0xfc, 0xc1, 0x77, 0x8f, 0x20, 0x38, 0xec, 0x2a, 0x6e, 0x08, - 0xe2, 0x79, 0xfd, 0x33, 0x1b, 0x7e, 0xfe, 0xad, 0x5d, 0x16, 0xb9, 0x8d, 0x76, 0x31, 0x51, 0x55, - 0x7e, 0x16, 0x31, 0x61, 0x15, 0xf7, 0x66, 0x34, 0x8c, 0x62, 0x98, 0x47, 0xd1, 0x26, 0xbb, 0xd1, - 0xf0, 0x69, 0xc0, 0x11, 0x0e, 0x55, 0xc5, 0xa3, 0x34, 0x01, 0xfa, 0xa4, 0x09, 0x40, 0x7c, 0xb4, - 0x5b, 0xdf, 0xee, 0x3a, 0x61, 0xa9, 0xa1, 0xe7, 0x99, 0xcc, 0xb7, 0xda, 0xcd, 0xd0, 0x31, 0x00, - 0xda, 0x89, 0x86, 0x00, 0x01, 0x8d, 0x20, 0xf5, 0x1f, 0x18, 0xaa, 0x26, 0x2f, 0x4c, 0xa0, 0xee, - 0xc1, 0x59, 0xa7, 0x17, 0x00, 0xc8, 0x8e, 0xa1, 0x4d, 0x5c, 0x33, 0xde, 0xfe, 0xf0, 0xd4, 0xb3, - 0xf2, 0xa4, 0x80, 0x4a, 0xf3, 0x5e, 0x55, 0x94, 0x23, 0x1e, 0x7a, 0x91, 0xb5, 0xcd, 0x3e, 0x5d, - 0xf0, 0xbd, 0x25, 0x68, 0x1f, 0x9a, 0xae, 0xb8, 0x37, 0x68, 0x73, 0x5e, 0x20, 0xd8, 0x8f, 0xb6, - 0x82, 0xf1, 0x50, 0x93, 0x87, 0x66, 0x0b, 0xbc, 0x9e, 0xc9, 0x1f, 0xa1, 0xcf, 0xa3, 0x83, 0x45, - 0x04, 0xae, 0xd3, 0x58, 0x09, 0xb8, 0xe7, 0x69, 0x93, 0x2e, 0xd8, 0x21, 0x4d, 0x77, 0x63, 0xc5, - 0x05, 0x55, 0xd6, 0x03, 0x6e, 0x8e, 0xc0, 0x75, 0x82, 0xfb, 0xbb, 0x16, 0x9c, 0xeb, 0x71, 0x6f, - 0x83, 0x1e, 0x9e, 0xaf, 0x03, 0x7d, 0x08, 0x6d, 0x6b, 0x88, 0x32, 0x19, 0xd8, 0x23, 0xf1, 0x07, - 0x01, 0x5c, 0xd1, 0x43, 0x7d, 0xb9, 0x3d, 0xd4, 0x2f, 0xf7, 0xd0, 0x17, 0x2d, 0x54, 0x2e, 0xac, - 0xe3, 0xba, 0x4d, 0x8b, 0x7d, 0x66, 0x15, 0x7a, 0xea, 0x1d, 0xc3, 0xb4, 0x78, 0x04, 0x06, 0xa6, - 0x41, 0xe0, 0x3a, 0x41, 0x9d, 0x8e, 0xb7, 0xff, 0x96, 0x53, 0x4f, 0x6f, 0xff, 0x86, 0x73, 0x35, - 0x75, 0x32, 0x24, 0x95, 0xd6, 0x49, 0xbf, 0x06, 0xec, 0xa6, 0x70, 0xb4, 0x5e, 0xf6, 0x82, 0x60, - 0xb6, 0xed, 0x36, 0x9a, 0x74, 0x26, 0x9c, 0x6d, 0x7a, 0xf5, 0x07, 0x05, 0xac, 0x80, 0x3d, 0xe8, - 0xe9, 0xfb, 0x51, 0xd1, 0xda, 0x22, 0x75, 0x16, 0x16, 0x43, 0xd6, 0xf7, 0xfd, 0xd5, 0x61, 0xf6, - 0xee, 0x22, 0x7b, 0x45, 0xea, 0xc2, 0x7d, 0xd0, 0x4a, 0x01, 0x78, 0x67, 0xd0, 0x70, 0xd3, 0x0b, - 0x82, 0xda, 0x7d, 0xf6, 0x15, 0xce, 0xda, 0x31, 0x79, 0x5b, 0x65, 0xa7, 0x38, 0xaf, 0x5e, 0x45, - 0xcd, 0xb8, 0x29, 0x32, 0x06, 0xbd, 0x76, 0x85, 0x3e, 0x0a, 0xf9, 0x44, 0x6e, 0x88, 0xa3, 0xf6, - 0x55, 0x34, 0xda, 0xf9, 0x09, 0x44, 0x12, 0xb4, 0xd9, 0xa5, 0x8f, 0xc2, 0x5a, 0x06, 0xde, 0xb0, - 0x9b, 0x94, 0x25, 0x93, 0x68, 0x5b, 0x32, 0x20, 0x05, 0x06, 0xf0, 0xcb, 0x16, 0xd8, 0x16, 0xf2, - 0xe4, 0x7a, 0x11, 0x6d, 0x64, 0x25, 0x00, 0xd7, 0x67, 0x32, 0x86, 0x0a, 0x2b, 0xcb, 0x4b, 0xe0, - 0x1d, 0x68, 0xe0, 0x61, 0xd2, 0x9d, 0x43, 0x55, 0x78, 0x8a, 0x56, 0x04, 0x9d, 0x9f, 0xa7, 0xf5, - 0xd0, 0x59, 0xa6, 0x35, 0x9f, 0x2e, 0x53, 0xb7, 0x4d, 0xc1, 0x96, 0x1a, 0x89, 0x3f, 0x54, 0xf9, - 0x7b, 0xb2, 0x00, 0xb0, 0x67, 0xd8, 0x5b, 0xd6, 0xbe, 0xb0, 0x73, 0xf0, 0x9b, 0x08, 0xb5, 0xec, - 0x05, 0xc7, 0x65, 0x6e, 0x1e, 0x28, 0x74, 0x28, 0x73, 0x7e, 0x39, 0x4b, 0xad, 0x26, 0x3d, 0xd7, - 0xf6, 0x03, 0xcf, 0xbf, 0x16, 0x97, 0x85, 0x06, 0xaa, 0xa9, 0xea, 0xe4, 0xb7, 0x2c, 0x34, 0xa6, - 0x90, 0x04, 0xb0, 0x0f, 0xa1, 0x01, 0x06, 0x4a, 0x1c, 0x93, 0x4a, 0xdc, 0x50, 0x04, 0x5f, 0x96, - 0xf4, 0xea, 0x63, 0x7a, 0x1d, 0x2e, 0xa6, 0x17, 0x17, 0x27, 0x29, 0xf6, 0x39, 0xf4, 0x1c, 0xd3, - 0xab, 0x22, 0x1c, 0xfe, 0x60, 0x4d, 0xe7, 0xf5, 0x3d, 0x34, 0xa1, 0x6b, 0x1e, 0xb0, 0x9f, 0x46, - 0x28, 0x0e, 0x36, 0x08, 0xdb, 0x71, 0x54, 0x86, 0x93, 0x54, 0xae, 0xa6, 0xca, 0x92, 0x57, 0xd1, - 0x1e, 0xd6, 0xf6, 0x65, 0x3b, 0xa4, 0x01, 0xcc, 0xc4, 0xa4, 0x64, 0xfe, 0x1c, 0xfc, 0xa2, 0x85, - 0x88, 0xa9, 0x81, 0xd5, 0x2a, 0x58, 0xa4, 0x7f, 0x3e, 0x8b, 0x76, 0x32, 0x15, 0x84, 0x09, 0xbf, - 0xb6, 0xbd, 0x7f, 0x1b, 0x06, 0xb7, 0xb3, 0x75, 0xc0, 0x76, 0x02, 0x0d, 0x09, 0xff, 0x42, 0x40, - 0xcb, 0x98, 0x68, 0x71, 0xd5, 0x6a, 0x52, 0x92, 0x50, 0xe8, 0xf9, 0x3b, 0x2c, 0x6a, 0xc2, 0xbb, - 0x2f, 0xee, 0x83, 0x02, 0xaa, 0xef, 0x43, 0x5b, 0x78, 0xc0, 0x25, 0x73, 0x4a, 0x6f, 0xe6, 0x6f, - 0xe1, 0xbc, 0x22, 0x8b, 0x30, 0x3e, 0x1a, 0x31, 0x80, 0x61, 0x16, 0x8d, 0x34, 0xd9, 0xa7, 0x5a, - 0xdc, 0xf5, 0x6a, 0x28, 0x49, 0xd5, 0xad, 0x4d, 0xb9, 0x2d, 0x72, 0x11, 0x95, 0x52, 0x92, 0xae, - 0x78, 0x0d, 0x6e, 0x95, 0x76, 0x5a, 0xfe, 0x7d, 0x92, 0xe5, 0x7f, 0x69, 0xc3, 0xa0, 0x35, 0xd2, - 0x57, 0x45, 0x4d, 0xe7, 0x7e, 0x6b, 0xaa, 0x55, 0x7b, 0x40, 0x1f, 0x93, 0xdb, 0x68, 0x5c, 0xd9, - 0x52, 0xec, 0x25, 0x0d, 0xb9, 0x5e, 0x83, 0x46, 0xaa, 0x7a, 0xa0, 0x65, 0x49, 0xd6, 0xf2, 0xea, - 0xfc, 0x7c, 0x7d, 0xd1, 0x76, 0xdc, 0xa8, 0x6a, 0x75, 0xd0, 0x85, 0x06, 0x48, 0x05, 0xda, 0x05, - 0xcb, 0x63, 0x35, 0x2a, 0xde, 0x81, 0x39, 0xd7, 0xd1, 0xd4, 0x6a, 0x75, 0xfc, 0x96, 0x25, 0x9f, - 0x95, 0xbd, 0xec, 0x29, 0x67, 0xd1, 0x78, 0x7a, 0x56, 0xd7, 0x9a, 0xb6, 0x34, 0xb0, 0x7c, 0x92, - 0x8f, 0xa6, 0x26, 0xf9, 0x65, 0x3b, 0x35, 0x90, 0x97, 0x36, 0x0c, 0xf6, 0x8f, 0x6c, 0x80, 0xef, - 0x52, 0x13, 0x3e, 0x7d, 0x68, 0xfb, 0x0d, 0xf2, 0x3a, 0xda, 0x9b, 0x5a, 0xf2, 0x1d, 0x7a, 0x16, - 0xd8, 0x35, 0x2a, 0xe8, 0x70, 0xaa, 0x85, 0x99, 0x65, 0xdb, 0x69, 0xda, 0xf7, 0x9b, 0xb4, 0x97, - 0xa6, 0x84, 0x69, 0x51, 0x09, 0xc4, 0x6c, 0x71, 0xeb, 0xf4, 0x96, 0x3b, 0xdf, 0x6e, 0xce, 0x3b, - 0xcd, 0x26, 0x6d, 0xac, 0xcd, 0x26, 0x30, 0x0f, 0xa6, 0x85, 0x5e, 0x0a, 0x8c, 0xfb, 0x59, 0x34, - 0xee, 0x04, 0x35, 0x58, 0x98, 0x2c, 0x92, 0x5b, 0x6b, 0x27, 0xc5, 0x98, 0xe4, 0xc1, 0xea, 0xa8, - 0xa3, 0x69, 0x86, 0xcc, 0x00, 0x1a, 0xa9, 0x69, 0x98, 0x61, 0x05, 0x3b, 0x44, 0x58, 0x41, 0xfa, - 0x26, 0x62, 0x2b, 0x68, 0x80, 0x29, 0x28, 0x36, 0x2d, 0x22, 0xcf, 0x4f, 0xd9, 0x85, 0x80, 0xba, - 0x50, 0x23, 0x9e, 0x02, 0x29, 0x21, 0x29, 0x44, 0x45, 0xd4, 0xbc, 0xd9, 0x89, 0x54, 0x6e, 0x01, - 0xb4, 0x3c, 0x9c, 0xd1, 0x32, 0x13, 0x12, 0xc9, 0xe8, 0x75, 0x17, 0x42, 0x05, 0x3d, 0x86, 0xdc, - 0xc6, 0xd0, 0xa0, 0x5d, 0x8f, 0xbc, 0x00, 0x30, 0xee, 0xa3, 0x2d, 0x20, 0x7a, 0xae, 0x34, 0xc8, - 0xaf, 0xc0, 0x76, 0xbd, 0x2e, 0x51, 0xb3, 0xbb, 0xd0, 0x9d, 0xbd, 0x07, 0xc9, 0x22, 0x4b, 0x8e, - 0x75, 0x5f, 0x6c, 0xc9, 0xb1, 0x27, 0xf2, 0x0e, 0x74, 0xf3, 0x7a, 0x85, 0xb7, 0x7e, 0x15, 0x1d, - 0x10, 0xe1, 0xb4, 0x8a, 0xdb, 0xbb, 0xfa, 0x72, 0xd4, 0xae, 0x2f, 0x1b, 0xb5, 0x33, 0x44, 0x37, - 0xeb, 0xe0, 0xfc, 0x9b, 0x15, 0x58, 0x25, 0x4a, 0x1a, 0x2f, 0xff, 0xf4, 0x52, 0x5a, 0xf3, 0x5d, - 0xc6, 0x01, 0x07, 0xd2, 0x20, 0x06, 0x80, 0xbc, 0x86, 0x76, 0x3a, 0x41, 0x4d, 0xb8, 0xe9, 0xba, - 0x7d, 0x66, 0xcc, 0xd1, 0x35, 0x44, 0xde, 0x93, 0x7d, 0x25, 0xbd, 0x69, 0x79, 0x11, 0x61, 0x97, - 0x97, 0xa9, 0x75, 0x58, 0x70, 0x06, 0x97, 0x69, 0x9b, 0x9b, 0x6d, 0x98, 0x7c, 0xb4, 0x11, 0xe6, - 0xa2, 0xf6, 0xdc, 0x58, 0x6b, 0x91, 0xf8, 0x4d, 0xb4, 0x15, 0xe6, 0x49, 0x8d, 0x7b, 0x36, 0xd1, - 0xc9, 0xde, 0xaf, 0xda, 0xeb, 0xa2, 0x61, 0x8e, 0xce, 0x5f, 0x7f, 0x89, 0x36, 0xee, 0xb0, 0xa2, - 0xd5, 0x2d, 0x50, 0x95, 0x3f, 0x06, 0xf8, 0x3a, 0xc2, 0xc9, 0x8c, 0x8c, 0xdb, 0xeb, 0x2f, 0xdc, - 0xde, 0xb6, 0xa4, 0xb6, 0x68, 0xd2, 0x46, 0x63, 0xe2, 0x65, 0x65, 0xa9, 0xd5, 0x74, 0x68, 0x23, - 0x51, 0x7e, 0x74, 0x03, 0x6b, 0x79, 0xaf, 0xdc, 0x32, 0xdf, 0x23, 0x67, 0xc2, 0xd0, 0x77, 0xee, - 0xb7, 0x43, 0x31, 0x4f, 0xf5, 0xad, 0xe0, 0xe3, 0x68, 0x47, 0xdc, 0x89, 0x35, 0x69, 0x02, 0x6e, - 0x64, 0x13, 0x70, 0x7b, 0xfc, 0x75, 0x36, 0x99, 0x89, 0xf8, 0x20, 0xda, 0xc6, 0x3d, 0xe4, 0x74, - 0x85, 0x01, 0x56, 0x61, 0x2b, 0x73, 0x86, 0x53, 0x65, 0x7f, 0xcd, 0x42, 0x7b, 0xeb, 0x9e, 0x3b, - 0xef, 0x34, 0x98, 0x0c, 0xc7, 0x0d, 0xa9, 0xbf, 0x6c, 0x37, 0x6b, 0xbe, 0xfd, 0xb0, 0xd6, 0xa2, - 0x7e, 0x9d, 0xba, 0xa1, 0xd3, 0xa4, 0xc1, 0xe8, 0xa6, 0xdd, 0xfd, 0x07, 0x86, 0x66, 0x4f, 0x41, - 0x28, 0xa1, 0xbc, 0xe0, 0x84, 0x8b, 0xed, 0xfb, 0x93, 0x75, 0x6f, 0xa9, 0x6c, 0x37, 0x9b, 0x9e, - 0x6f, 0x1f, 0x81, 0xf1, 0x13, 0x8f, 0xcc, 0x3a, 0xe2, 0x41, 0x86, 0xf3, 0xb4, 0x5e, 0xdd, 0x9d, - 0xc8, 0xa8, 0x80, 0x88, 0xaa, 0xfd, 0xf0, 0x5a, 0x22, 0x00, 0xb7, 0x51, 0x49, 0xa5, 0xc7, 0x72, - 0xd4, 0x45, 0xc1, 0xe8, 0xe0, 0xea, 0xc4, 0x8f, 0x76, 0x8a, 0x67, 0x7d, 0x1f, 0x90, 0x8f, 0x37, - 0xc2, 0xad, 0x5f, 0xbe, 0x35, 0xf3, 0xcb, 0x09, 0xfe, 0xcb, 0x09, 0xfe, 0xff, 0x6f, 0x82, 0xbf, - 0x83, 0xf6, 0x4b, 0xc6, 0x6f, 0x95, 0x2e, 0x38, 0xd1, 0x20, 0x47, 0xc3, 0x20, 0x87, 0xc0, 0x72, - 0x2e, 0xe6, 0xd5, 0xde, 0x15, 0xb9, 0x0a, 0x36, 0x84, 0xb1, 0x7d, 0x58, 0x3a, 0x7b, 0xd1, 0x66, - 0x76, 0xf0, 0x89, 0x12, 0x70, 0xd2, 0x3d, 0x1d, 0x9d, 0x74, 0xe2, 0x1d, 0xa9, 0xc5, 0x0d, 0xc6, - 0x46, 0xec, 0xda, 0x6a, 0x7c, 0x0d, 0x8c, 0x0e, 0xb3, 0x80, 0x6e, 0x54, 0x3e, 0x0d, 0xfe, 0x64, - 0x25, 0xb8, 0xb3, 0xe8, 0x84, 0xb4, 0xe9, 0x04, 0xe1, 0x4c, 0x63, 0xc9, 0x71, 0x73, 0x2f, 0xce, - 0xc8, 0x19, 0x11, 0x7c, 0xea, 0xa8, 0x09, 0xf2, 0xc7, 0xd0, 0xa0, 0x13, 0xd4, 0xec, 0xe8, 0x1d, - 0x88, 0xde, 0xe4, 0x04, 0xac, 0x08, 0xb9, 0x94, 0x0e, 0x91, 0x57, 0xe9, 0x92, 0xb7, 0x6c, 0x37, - 0x83, 0x5b, 0xad, 0x5b, 0xd1, 0x7c, 0x93, 0x9c, 0xcd, 0xac, 0xf1, 0x62, 0x75, 0x1a, 0x2f, 0x8d, - 0x74, 0xf4, 0x5b, 0xdd, 0x56, 0xec, 0x78, 0x0c, 0xfa, 0xf0, 0x1d, 0x62, 0x75, 0x13, 0x8a, 0x2b, - 0x2d, 0x68, 0x82, 0x79, 0xd5, 0x71, 0x79, 0x52, 0x85, 0xbd, 0x56, 0xba, 0x7a, 0x59, 0xa5, 0xe6, - 0x21, 0xdc, 0xa7, 0x14, 0x68, 0x33, 0x0e, 0x97, 0x64, 0x11, 0xbc, 0x20, 0x23, 0x50, 0x35, 0x95, - 0x41, 0x72, 0x03, 0x46, 0xbc, 0xa3, 0x48, 0xa1, 0x89, 0x09, 0xa6, 0x9f, 0x98, 0x98, 0xf0, 0x48, - 0xde, 0x86, 0xc9, 0xd0, 0xd9, 0x68, 0x1c, 0x88, 0xdb, 0x04, 0x1a, 0xa8, 0x4d, 0xe0, 0x8e, 0x8a, - 0xa2, 0x38, 0x79, 0x0c, 0xd6, 0x9b, 0x16, 0x5a, 0xbe, 0xde, 0x3b, 0xd1, 0x50, 0x7c, 0x9f, 0x02, - 0x9a, 0x27, 0x2f, 0xd2, 0xa8, 0xfa, 0x65, 0x54, 0x0e, 0x4c, 0x53, 0xbd, 0x68, 0x40, 0xf7, 0x7a, - 0x16, 0x5d, 0xd1, 0x61, 0x89, 0x51, 0xce, 0x82, 0x28, 0xb6, 0x88, 0x2f, 0xdb, 0x41, 0xc8, 0xb7, - 0xa4, 0x73, 0xde, 0xd2, 0x92, 0x13, 0x16, 0x83, 0x49, 0x5c, 0x58, 0x09, 0x86, 0x36, 0x40, 0xdf, - 0xf3, 0x68, 0x98, 0x05, 0x56, 0xea, 0xec, 0x13, 0xe8, 0xbc, 0x57, 0xeb, 0x94, 0xcc, 0x44, 0xbe, - 0x28, 0x33, 0xe5, 0xab, 0x28, 0xaa, 0xc7, 0x5b, 0x24, 0xe7, 0xb2, 0xf2, 0x60, 0x53, 0xea, 0x4a, - 0x69, 0x0f, 0x36, 0x79, 0x53, 0x23, 0x6b, 0xaa, 0xf5, 0x4b, 0x30, 0xff, 0xe1, 0xf2, 0xe2, 0xa1, - 0xed, 0x37, 0x78, 0xa1, 0x7c, 0x5d, 0x4f, 0xc0, 0x2c, 0xef, 0xac, 0x0a, 0x1a, 0x6e, 0x47, 0x1b, - 0x99, 0x4f, 0x04, 0xab, 0x9d, 0x3f, 0xc4, 0x5e, 0x1c, 0x20, 0x4b, 0xee, 0x87, 0xd6, 0x36, 0x60, - 0x2c, 0x86, 0xdf, 0x20, 0x26, 0xee, 0xc8, 0xa7, 0x53, 0xf7, 0x50, 0xc2, 0x02, 0xdc, 0xa3, 0x8c, - 0xc3, 0xa4, 0x0c, 0xc1, 0xa0, 0x3a, 0x9c, 0x5c, 0x48, 0x05, 0xe4, 0x2e, 0x44, 0x26, 0x60, 0x52, - 0xf3, 0x2b, 0xda, 0x76, 0xb8, 0xe8, 0xf9, 0x4e, 0xf8, 0x78, 0x55, 0xbb, 0x49, 0x08, 0xb1, 0x63, - 0x4d, 0xcb, 0x80, 0xe2, 0x0a, 0x1a, 0xb2, 0xc5, 0xcb, 0x9e, 0xef, 0x0b, 0x93, 0x26, 0x48, 0x1b, - 0xa4, 0x4a, 0x8b, 0xf5, 0x5a, 0xd3, 0xae, 0xd3, 0x25, 0xea, 0x86, 0xab, 0xde, 0x66, 0x76, 0xa0, - 0x81, 0xd0, 0xf6, 0x17, 0x68, 0x08, 0xbb, 0x0c, 0x3c, 0x11, 0x07, 0x62, 0x30, 0x3a, 0xb1, 0xf1, - 0xd6, 0xbf, 0x25, 0xb9, 0x2c, 0x4e, 0x45, 0x77, 0xc7, 0x95, 0x3b, 0x8d, 0xe7, 0xb3, 0x95, 0xb3, - 0xb9, 0x91, 0x7e, 0x24, 0x6f, 0xab, 0xb6, 0xd2, 0x5b, 0x2d, 0x2f, 0x7b, 0x6d, 0x6f, 0x8e, 0xf7, - 0x00, 0x8a, 0x3e, 0x09, 0x85, 0xa7, 0xda, 0x2a, 0xa5, 0xa6, 0x01, 0xc7, 0x05, 0xb4, 0x91, 0x65, - 0x7f, 0xf6, 0x3c, 0x62, 0xbc, 0x3a, 0x79, 0x3b, 0x33, 0x5a, 0x7c, 0x39, 0x5e, 0xa3, 0xfe, 0x8d, - 0x45, 0xdb, 0xa7, 0xab, 0x9a, 0x7e, 0x5f, 0xb1, 0x32, 0x43, 0x92, 0x6d, 0x1b, 0xa0, 0xd8, 0x68, - 0x84, 0x47, 0xa6, 0x23, 0x6b, 0xbc, 0x16, 0x44, 0xdf, 0x00, 0x55, 0xcf, 0xc6, 0xf0, 0x16, 0x5f, - 0x12, 0x45, 0xea, 0x10, 0xb0, 0x4e, 0x1f, 0x1c, 0x17, 0x3c, 0x5f, 0xac, 0x09, 0xb7, 0x91, 0xb1, - 0x2a, 0x53, 0xa0, 0x2c, 0x09, 0x94, 0x29, 0x7f, 0x60, 0x05, 0x6c, 0x9b, 0x7c, 0x21, 0x00, 0xfc, - 0x32, 0xc2, 0x6c, 0x10, 0x6a, 0x70, 0x7a, 0xa5, 0xe7, 0x63, 0xde, 0xb9, 0x3e, 0x12, 0x64, 0xde, - 0x90, 0xdf, 0xb6, 0x20, 0x78, 0xaa, 0x3a, 0x25, 0x8b, 0x9b, 0x53, 0x06, 0x84, 0xf2, 0xca, 0xec, - 0x37, 0x18, 0x00, 0x1b, 0xe4, 0x99, 0xf0, 0x18, 0xb6, 0x38, 0xb5, 0x66, 0xd0, 0x1b, 0x37, 0x0d, - 0xbd, 0x51, 0xd4, 0x0e, 0xe8, 0xec, 0x95, 0x57, 0x20, 0xa9, 0xed, 0x9a, 0x4f, 0x97, 0x1d, 0xaf, - 0x1d, 0xb0, 0x31, 0x00, 0x87, 0x37, 0xff, 0xa4, 0x7a, 0x5f, 0xf4, 0xa9, 0xb2, 0x3a, 0x28, 0x7e, - 0x35, 0xbe, 0x85, 0x5f, 0xe5, 0xac, 0x15, 0xd7, 0xf7, 0xe3, 0x68, 0xc8, 0xf5, 0xc2, 0xda, 0xbc, - 0xd7, 0x76, 0xf9, 0x10, 0x0c, 0x56, 0x07, 0x5d, 0x2f, 0xbc, 0x10, 0x3d, 0x93, 0xe3, 0xe9, 0xb4, - 0x8f, 0x37, 0x1e, 0x39, 0x41, 0x58, 0x24, 0x5c, 0x3f, 0x05, 0x97, 0xfc, 0x52, 0x2d, 0xd0, 0x7f, - 0x07, 0x1a, 0xa0, 0xec, 0x0d, 0xb8, 0x17, 0xf0, 0x44, 0x4e, 0xc2, 0x75, 0x7d, 0x85, 0xa3, 0x9e, - 0x81, 0xac, 0x81, 0x5c, 0x59, 0x2f, 0xc1, 0x45, 0x62, 0xa6, 0x1e, 0x48, 0x1b, 0x47, 0x43, 0x91, - 0x3b, 0xc3, 0x5e, 0x82, 0xc0, 0x41, 0x27, 0xe0, 0x85, 0xc8, 0x69, 0xb8, 0xe1, 0x63, 0x15, 0x2f, - 0x50, 0x91, 0xa3, 0x50, 0x40, 0xe8, 0x7b, 0x69, 0x73, 0x24, 0x5d, 0x13, 0xc4, 0x5e, 0x47, 0xc3, - 0xf3, 0x34, 0x49, 0x86, 0xe8, 0x75, 0xd7, 0x44, 0xf3, 0x71, 0xd3, 0x64, 0x22, 0xbe, 0x43, 0x8c, - 0xf6, 0x1a, 0xfb, 0x7e, 0x53, 0x4e, 0x9e, 0x20, 0xd7, 0xc1, 0xcc, 0xe9, 0xfc, 0x0e, 0x3a, 0x1d, - 0x45, 0xdb, 0xfd, 0xf8, 0x5b, 0x9c, 0x5a, 0xc2, 0x5d, 0x92, 0x0d, 0x55, 0xec, 0xcb, 0xf5, 0x2a, - 0x8d, 0x80, 0xdc, 0x82, 0x54, 0x82, 0xf4, 0x3d, 0xb0, 0x7f, 0xa3, 0xee, 0x15, 0xdd, 0xa9, 0x35, - 0xa9, 0xf5, 0x97, 0x61, 0x91, 0xa8, 0x9a, 0x4d, 0xb2, 0x52, 0x18, 0x0f, 0x41, 0x9d, 0x95, 0xc2, - 0xcb, 0xf2, 0x12, 0xe4, 0x1d, 0x29, 0x27, 0x21, 0x89, 0xe9, 0x17, 0xd5, 0x33, 0xe7, 0x32, 0x81, - 0x5c, 0x95, 0x52, 0x16, 0x3a, 0xda, 0xef, 0x5e, 0x61, 0xb9, 0x57, 0x45, 0x32, 0x67, 0xf1, 0x5e, - 0xd5, 0x9c, 0x7f, 0x72, 0xaf, 0xca, 0xcd, 0x76, 0xaf, 0x64, 0x7c, 0x87, 0x21, 0xc2, 0x61, 0xec, - 0x6b, 0xd0, 0xe9, 0x31, 0xaf, 0xce, 0xfa, 0xbd, 0x25, 0xee, 0x30, 0xf4, 0x62, 0x92, 0x84, 0x1d, - 0xa6, 0x99, 0x26, 0x61, 0x87, 0x2b, 0x0f, 0x45, 0xc8, 0x22, 0x84, 0x74, 0xb8, 0x2b, 0x95, 0x69, - 0x7c, 0x4d, 0xcd, 0xf7, 0xb7, 0x21, 0xb6, 0x63, 0x96, 0x94, 0xdc, 0x4e, 0xc6, 0x18, 0x14, 0xb7, - 0x93, 0xbc, 0x52, 0x0c, 0xa2, 0x91, 0xb9, 0x8c, 0x5b, 0x9f, 0x11, 0xb8, 0x09, 0x03, 0xad, 0x97, - 0xd2, 0xcb, 0x00, 0x2c, 0x80, 0x7f, 0xc8, 0xbb, 0x45, 0x6e, 0x7b, 0x4d, 0xfb, 0xff, 0xae, 0x34, - 0xd2, 0x1a, 0x41, 0x3d, 0x75, 0xbf, 0x0d, 0xfb, 0x0a, 0xac, 0xa4, 0x60, 0x1d, 0x94, 0xaf, 0xc2, - 0xd6, 0xa2, 0x11, 0xd1, 0x93, 0xda, 0x77, 0xc0, 0x84, 0xb8, 0xec, 0x04, 0x21, 0x75, 0x1d, 0x77, - 0xe1, 0x9c, 0x47, 0xe7, 0xe7, 0x9d, 0xba, 0x53, 0xcc, 0x1b, 0xd2, 0xef, 0x2f, 0x9f, 0x17, 0xfb, - 0xac, 0xb2, 0x61, 0xd0, 0xf5, 0x0e, 0x7a, 0xa6, 0x29, 0xbe, 0xd7, 0xea, 0x49, 0x01, 0x75, 0xd2, - 0x80, 0xb2, 0xa9, 0xed, 0x4d, 0xc5, 0x5b, 0xf2, 0x2e, 0xac, 0x33, 0x61, 0x19, 0xc5, 0x0e, 0x4a, - 0x74, 0x68, 0x5d, 0xf0, 0xa3, 0x03, 0x3e, 0x4e, 0x03, 0xec, 0x0d, 0xdf, 0xef, 0x5b, 0x90, 0xa7, - 0x9d, 0x23, 0x02, 0x90, 0xbe, 0x8b, 0xb6, 0x82, 0x1b, 0x31, 0x0f, 0x9f, 0xd6, 0xc8, 0x8b, 0x10, - 0x92, 0xcc, 0x76, 0xd9, 0xbb, 0xe8, 0x90, 0xa4, 0x6c, 0x2a, 0x49, 0xab, 0xcb, 0x1e, 0xd1, 0xe5, - 0x02, 0x7c, 0xc7, 0x02, 0x2f, 0x26, 0x57, 0xc4, 0x2f, 0x46, 0x8f, 0xd4, 0x32, 0xc3, 0x27, 0xf6, - 0x82, 0x35, 0xeb, 0x90, 0x3f, 0xb0, 0x32, 0x7d, 0xae, 0x93, 0xf0, 0x8b, 0xd1, 0x1f, 0x27, 0x81, - 0xba, 0x24, 0xb4, 0x85, 0xab, 0x21, 0x7b, 0x01, 0xc6, 0xef, 0xa6, 0xc7, 0xfc, 0x19, 0x91, 0xee, - 0x13, 0xdb, 0x91, 0xdf, 0xb4, 0xd0, 0x89, 0x2e, 0x2b, 0x02, 0xe0, 0x06, 0xda, 0xd6, 0x8a, 0xcb, - 0x42, 0xfa, 0xd7, 0x6a, 0x21, 0x8f, 0xb4, 0x32, 0xd2, 0xc9, 0x3e, 0x70, 0xf3, 0x19, 0x45, 0x49, - 0x68, 0x74, 0xde, 0x09, 0xe0, 0x0a, 0x50, 0xc0, 0xf8, 0x92, 0xc8, 0x8c, 0xd3, 0x96, 0x03, 0xad, - 0xef, 0xa1, 0xa7, 0xc3, 0xa8, 0xc8, 0x1a, 0x29, 0x3c, 0x1c, 0x26, 0xf2, 0xc8, 0x79, 0xb0, 0xc9, - 0xd2, 0x29, 0xc8, 0x99, 0x13, 0xa4, 0xc0, 0x8d, 0xc3, 0x37, 0x85, 0x5b, 0xa8, 0x6c, 0xe6, 0xff, - 0x3e, 0xa1, 0x59, 0x44, 0x94, 0xaf, 0xd0, 0x47, 0xe1, 0xb9, 0xc5, 0xb6, 0x1f, 0xed, 0xdd, 0x4c, - 0xb9, 0xd9, 0xc7, 0x85, 0xaf, 0xcf, 0xc8, 0x65, 0xb0, 0x18, 0x4c, 0x8d, 0x00, 0xd4, 0xfc, 0x2e, - 0x9b, 0xfa, 0xf5, 0x16, 0xda, 0xc8, 0x9a, 0xc3, 0x0f, 0xd0, 0x00, 0x27, 0xc2, 0xe1, 0xdd, 0x32, - 0xc0, 0x4e, 0x9e, 0x5d, 0x69, 0x8f, 0xa1, 0x04, 0x97, 0x4d, 0x76, 0x7e, 0xe9, 0xc3, 0x9f, 0xfc, - 0x66, 0xdf, 0x0e, 0xbc, 0xbd, 0xac, 0xe0, 0x5a, 0xe3, 0xaf, 0x5a, 0x68, 0xcb, 0x1c, 0x0d, 0x53, - 0x29, 0xfd, 0x78, 0x9f, 0xa2, 0xcd, 0x4e, 0x36, 0x40, 0xe9, 0x85, 0xbc, 0x62, 0x20, 0xff, 0xc0, - 0x57, 0x22, 0xc7, 0x90, 0x29, 0xf1, 0x1c, 0x1e, 0x97, 0x95, 0x90, 0x28, 0x03, 0xf8, 0x09, 0x1a, - 0x9c, 0xa3, 0xbc, 0x3e, 0xde, 0xa5, 0x68, 0x3d, 0xcd, 0x1b, 0x28, 0xed, 0xd6, 0x17, 0x00, 0xc1, - 0x87, 0x13, 0xc1, 0x7b, 0xf0, 0xae, 0x72, 0x27, 0xfd, 0x3b, 0x28, 0x3f, 0x11, 0xb2, 0x57, 0xf0, - 0xc7, 0x16, 0xda, 0x33, 0x47, 0x43, 0x65, 0x1a, 0x71, 0x3c, 0xa0, 0xb8, 0xac, 0x90, 0x6a, 0x4a, - 0x70, 0x2e, 0x1d, 0x2d, 0x5e, 0x01, 0xd4, 0xbe, 0x9d, 0xa8, 0xfd, 0x26, 0xae, 0xe4, 0xa8, 0x0d, - 0x9c, 0xf4, 0xa0, 0xfc, 0x44, 0xce, 0x95, 0x5e, 0x29, 0x67, 0xd3, 0x9d, 0xf1, 0x1f, 0x5b, 0x68, - 0xfb, 0x1c, 0x0d, 0x3b, 0x32, 0xa1, 0xf0, 0x21, 0x85, 0x8a, 0xba, 0xac, 0xdc, 0xd2, 0xe1, 0x62, - 0x85, 0x01, 0xcb, 0x6b, 0x09, 0x96, 0xe3, 0x78, 0xaa, 0xac, 0xfe, 0xeb, 0x01, 0x12, 0x9e, 0x27, - 0xe9, 0x75, 0xb2, 0x82, 0xff, 0xc4, 0x42, 0xa3, 0x73, 0x34, 0x54, 0x26, 0xdf, 0x2b, 0x07, 0xc3, - 0x94, 0xe7, 0xaf, 0x1c, 0x0c, 0x63, 0x5e, 0x3f, 0x39, 0x95, 0x00, 0x38, 0x8c, 0x0f, 0xca, 0x00, - 0xb2, 0x3d, 0x2c, 0x4d, 0xa7, 0x3f, 0xb4, 0xd0, 0x67, 0xe6, 0x68, 0x98, 0x4d, 0xaa, 0xc7, 0x07, - 0x15, 0x2a, 0x68, 0xf2, 0xfa, 0x4b, 0x87, 0x0a, 0x95, 0x05, 0x4d, 0x5f, 0x4d, 0x34, 0x9d, 0xc6, - 0xc7, 0x64, 0x4d, 0xe3, 0xa4, 0x7c, 0x43, 0x4f, 0x7f, 0xcf, 0x42, 0xe3, 0x6c, 0x23, 0x50, 0x73, - 0x8b, 0xf0, 0x94, 0x72, 0xb9, 0x1b, 0xe9, 0x4e, 0xa5, 0xe9, 0xae, 0xea, 0x00, 0x90, 0x99, 0x04, - 0xc8, 0x49, 0x7c, 0x3c, 0xbb, 0x5f, 0xf0, 0xac, 0xa2, 0xa6, 0x17, 0x98, 0xb0, 0x7c, 0xd9, 0x42, - 0x9b, 0xd9, 0x4e, 0x22, 0x28, 0xc1, 0xf8, 0x79, 0xe5, 0x6e, 0x91, 0xe1, 0x12, 0x97, 0xf6, 0xe5, - 0x94, 0x02, 0x0d, 0x5f, 0x48, 0x34, 0x1c, 0xc7, 0x63, 0xd9, 0x15, 0x1a, 0x1d, 0xcc, 0x2c, 0xca, - 0x1a, 0x4d, 0xde, 0x1d, 0x73, 0x34, 0x54, 0x90, 0x5f, 0xf1, 0x11, 0x85, 0x24, 0x3d, 0x0b, 0xb7, - 0x34, 0x59, 0xb4, 0x38, 0x68, 0x78, 0x36, 0xd1, 0x70, 0x0a, 0x1f, 0x2d, 0xab, 0xfe, 0x92, 0x06, - 0xd7, 0xb1, 0xfc, 0x24, 0xde, 0x30, 0x52, 0x93, 0xf7, 0xcf, 0xf9, 0x5c, 0xd0, 0x51, 0x77, 0x95, - 0x73, 0x21, 0x87, 0x48, 0xac, 0x9c, 0x0b, 0x79, 0xdc, 0x60, 0x72, 0x22, 0xc1, 0x71, 0x10, 0x1f, - 0x50, 0xe2, 0x08, 0x38, 0x10, 0x69, 0xf1, 0xfd, 0xab, 0x85, 0x76, 0xcf, 0xd1, 0xd0, 0xc8, 0xd6, - 0xc5, 0xa7, 0x14, 0x0a, 0x15, 0x21, 0x14, 0x97, 0x4e, 0x77, 0x5f, 0x11, 0xe0, 0x5c, 0x4a, 0xe0, - 0xbc, 0x86, 0xcf, 0x1a, 0x86, 0xa5, 0x16, 0xd0, 0xe6, 0x7c, 0xf9, 0x49, 0x86, 0xa6, 0x2a, 0x8d, - 0xd1, 0x4f, 0x39, 0x46, 0x23, 0x45, 0x57, 0x89, 0xb1, 0x08, 0x8b, 0x58, 0x89, 0xb1, 0x10, 0x1b, - 0x98, 0x5c, 0x49, 0x30, 0x9e, 0xc3, 0x33, 0x6a, 0x8c, 0x70, 0x25, 0x42, 0xc5, 0x1c, 0x34, 0xe1, - 0xfc, 0x42, 0x1f, 0xda, 0x97, 0x1e, 0x4b, 0x2d, 0xcf, 0x16, 0xbf, 0x62, 0x1a, 0x97, 0x3c, 0x0a, - 0x71, 0xe9, 0x6c, 0x8f, 0xb5, 0x01, 0xf6, 0xbd, 0x04, 0xf6, 0x55, 0xfc, 0x96, 0x0c, 0x3b, 0x0b, - 0xb7, 0x83, 0x8c, 0xbb, 0x62, 0xee, 0x82, 0x0f, 0x2d, 0xb4, 0xd3, 0xd4, 0x05, 0x78, 0xba, 0x1b, - 0xdd, 0x05, 0xe0, 0xe3, 0xdd, 0x55, 0x02, 0x9c, 0x17, 0x13, 0x9c, 0x67, 0xf1, 0xcb, 0xdd, 0xe3, - 0x4c, 0x50, 0x7d, 0x55, 0x6c, 0xd2, 0x82, 0x9d, 0xab, 0xd9, 0xa4, 0x33, 0x8c, 0x5f, 0xcd, 0x26, - 0x9d, 0xa5, 0xf8, 0x92, 0x43, 0x89, 0xa2, 0xbb, 0xf1, 0x44, 0xb9, 0xf3, 0xcf, 0x02, 0xa5, 0x75, - 0xf9, 0xcb, 0x54, 0x0f, 0xab, 0x12, 0xa3, 0xf4, 0x3d, 0x6c, 0x48, 0xcd, 0xd2, 0xf7, 0xb0, 0x29, - 0xf7, 0x8a, 0x9c, 0x4e, 0x14, 0x3f, 0x82, 0x0f, 0x29, 0x14, 0x17, 0xf7, 0x7f, 0x41, 0xf6, 0xd8, - 0xfb, 0x89, 0x85, 0x9e, 0xcf, 0x6e, 0x09, 0x4a, 0x34, 0x2f, 0xe7, 0xad, 0x6e, 0x13, 0xaa, 0x57, - 0x7a, 0xab, 0x5c, 0xe0, 0x74, 0x97, 0xe7, 0x8f, 0x16, 0xe6, 0x77, 0xb8, 0x69, 0x95, 0xbd, 0xdb, - 0x54, 0x9a, 0x56, 0x9a, 0x24, 0x2e, 0xa5, 0x69, 0xa5, 0xcb, 0xba, 0x32, 0x9e, 0xa6, 0x92, 0xaa, - 0x92, 0x49, 0x02, 0x2b, 0x7a, 0x05, 0xff, 0x88, 0x9f, 0xa6, 0xba, 0x3b, 0x59, 0xe5, 0x69, 0x9a, - 0x93, 0x84, 0xa6, 0x3c, 0x4d, 0xf3, 0xb2, 0xc7, 0x48, 0x35, 0xc1, 0x31, 0x87, 0xdf, 0x28, 0xd2, - 0xf7, 0x12, 0xa0, 0x78, 0x39, 0xa7, 0xc1, 0x7d, 0xcd, 0x42, 0xdb, 0x62, 0xb7, 0x49, 0xb0, 0x04, - 0xf1, 0x01, 0xad, 0xd7, 0x93, 0xe1, 0x24, 0x96, 0x5e, 0x2c, 0x50, 0xb2, 0xc0, 0x8a, 0xe6, 0xde, - 0x4f, 0x62, 0xcd, 0xe0, 0xaf, 0x5b, 0x08, 0x27, 0xb6, 0x57, 0xac, 0xd8, 0x8b, 0x7a, 0x43, 0x2a, - 0xab, 0xd9, 0xc1, 0x22, 0x45, 0x0b, 0xb8, 0x9a, 0xd0, 0x55, 0x29, 0xdd, 0xfe, 0xc1, 0x42, 0xe3, - 0x86, 0x5c, 0x60, 0x7c, 0x42, 0xe5, 0x63, 0xe5, 0xe6, 0x26, 0x97, 0x4e, 0x76, 0x5b, 0xad, 0xc0, - 0x92, 0x04, 0xaf, 0x32, 0x49, 0xee, 0x95, 0x66, 0x44, 0x8c, 0x28, 0x3a, 0xa1, 0x4c, 0xb9, 0xc2, - 0x58, 0xad, 0x5b, 0x6e, 0xf6, 0x72, 0xe9, 0x54, 0xd7, 0xf5, 0x00, 0xd4, 0x6c, 0x02, 0xea, 0x14, - 0x3e, 0xa1, 0x36, 0x43, 0xf2, 0x50, 0xfd, 0x87, 0xe4, 0x12, 0x75, 0x3a, 0xce, 0x06, 0x97, 0x48, - 0xeb, 0x3f, 0x4f, 0x77, 0x55, 0x07, 0xc0, 0xd0, 0x04, 0xcc, 0x3d, 0x7c, 0x57, 0xed, 0x12, 0xa9, - 0xdd, 0x69, 0x99, 0x19, 0x2b, 0xef, 0xa4, 0x19, 0xda, 0x2c, 0x3b, 0x05, 0xc7, 0x62, 0x67, 0x3b, - 0xab, 0x14, 0x3e, 0xa6, 0x75, 0x9e, 0x75, 0xb4, 0xd6, 0xd2, 0x54, 0x37, 0x55, 0x0a, 0x84, 0x0c, - 0xc0, 0xe3, 0x36, 0x42, 0xc6, 0x3f, 0xb7, 0x10, 0x89, 0x51, 0x68, 0xc9, 0x2a, 0xf8, 0x8c, 0x56, - 0xb7, 0x5c, 0xba, 0x6e, 0xe9, 0xe5, 0x9e, 0xea, 0x02, 0xc0, 0x4a, 0x02, 0xf0, 0x55, 0xfc, 0x8a, - 0x12, 0xa0, 0x2d, 0x5a, 0xc9, 0x81, 0xfa, 0x91, 0x85, 0x46, 0x75, 0x8c, 0x5d, 0xe5, 0xec, 0xcc, - 0x21, 0x11, 0x2b, 0x67, 0x67, 0x1e, 0x25, 0x98, 0x5c, 0x4b, 0x00, 0xbd, 0x81, 0xcf, 0x65, 0x82, - 0x3c, 0x7a, 0xae, 0xb0, 0xc1, 0x7f, 0xff, 0x27, 0x0b, 0x8d, 0x69, 0x39, 0x82, 0x78, 0xda, 0xb4, - 0x27, 0xe8, 0x90, 0x1d, 0xef, 0xae, 0x12, 0x40, 0xbb, 0x9e, 0x40, 0xbb, 0x80, 0xcf, 0x77, 0x40, - 0xd3, 0xf2, 0x13, 0x0d, 0xd8, 0xfe, 0xca, 0x42, 0xa5, 0x39, 0x1a, 0x6a, 0x68, 0xc1, 0xca, 0x55, - 0x66, 0x26, 0x21, 0x2b, 0x57, 0x59, 0x0e, 0xeb, 0xd8, 0xb8, 0xca, 0x52, 0x38, 0xa4, 0xc1, 0x93, - 0xa6, 0xde, 0x07, 0x7c, 0x6f, 0xd4, 0x91, 0xb0, 0x71, 0x8e, 0x52, 0x2a, 0xd2, 0xb7, 0x72, 0xf6, - 0xe5, 0xb1, 0xbc, 0xc9, 0xeb, 0x09, 0x92, 0x13, 0x78, 0x5a, 0x8f, 0x44, 0x1a, 0xab, 0x20, 0x63, - 0xfc, 0x3f, 0x1b, 0x07, 0x46, 0x65, 0x62, 0x2d, 0x9e, 0xd4, 0x86, 0x3b, 0x95, 0x14, 0xe0, 0x52, - 0xb9, 0x70, 0x79, 0x50, 0x7f, 0x2e, 0x51, 0xff, 0x15, 0x7c, 0x46, 0x15, 0x21, 0xf5, 0xe3, 0x4d, - 0x80, 0x93, 0x75, 0xe5, 0xb3, 0x0a, 0xd8, 0xdc, 0x2b, 0xf8, 0xef, 0xf8, 0xbc, 0xd2, 0x30, 0x84, - 0x95, 0xf3, 0xca, 0x4c, 0x67, 0x56, 0xce, 0xab, 0x1c, 0x02, 0xb2, 0xd1, 0x3d, 0x4c, 0x71, 0xef, - 0x0c, 0x88, 0xf8, 0x8c, 0x5b, 0xc1, 0xff, 0x6d, 0xa1, 0x5d, 0x73, 0x34, 0x34, 0xd1, 0x9e, 0x95, - 0x56, 0x45, 0x01, 0xa2, 0xb6, 0xd2, 0xaa, 0x28, 0xc2, 0xaf, 0x26, 0x9f, 0x4b, 0xe0, 0x55, 0xf1, - 0x35, 0x19, 0x9e, 0xe7, 0xd2, 0x9a, 0xe3, 0xd6, 0x8a, 0xa1, 0x4c, 0x4a, 0xad, 0x94, 0x9f, 0xc0, - 0x38, 0xaf, 0xe0, 0x6f, 0x58, 0x68, 0x24, 0x4b, 0x73, 0x52, 0xba, 0x35, 0x1a, 0x16, 0x95, 0xd2, - 0xad, 0xd1, 0xf1, 0xa6, 0x48, 0x99, 0xe1, 0x78, 0x11, 0xef, 0xcf, 0x98, 0x7c, 0xa2, 0x34, 0xa7, - 0x54, 0xa5, 0xec, 0xa1, 0xbf, 0xe7, 0x5e, 0xb2, 0x96, 0xf6, 0xa1, 0xdc, 0x99, 0xf3, 0x88, 0x26, - 0xca, 0x9d, 0x39, 0x97, 0x59, 0x42, 0xce, 0x25, 0x23, 0x71, 0x1a, 0x9f, 0x54, 0xdc, 0x92, 0x70, - 0xeb, 0x06, 0xf6, 0x2f, 0xce, 0xe4, 0x60, 0x09, 0xb3, 0xe9, 0x95, 0xff, 0x03, 0x0b, 0x3d, 0x97, - 0x06, 0xd4, 0x41, 0x09, 0xc1, 0x46, 0xe5, 0x74, 0x34, 0x94, 0xd2, 0x89, 0x2e, 0x6b, 0x01, 0xa6, - 0xf3, 0x09, 0xa6, 0x97, 0xf0, 0x29, 0x2d, 0x26, 0xb1, 0x93, 0x69, 0x40, 0x7d, 0x9b, 0xbb, 0xc7, - 0x59, 0xee, 0x88, 0x72, 0x1e, 0x69, 0xb8, 0x29, 0xca, 0x79, 0xa4, 0x23, 0xa3, 0x18, 0x03, 0x16, - 0x5c, 0x2d, 0x48, 0x2a, 0x60, 0x5b, 0x6f, 0x5a, 0xd5, 0x7f, 0xe4, 0x13, 0x4a, 0x4b, 0x24, 0x51, - 0x4e, 0xa8, 0x3c, 0x76, 0x8b, 0x72, 0x42, 0xe5, 0x72, 0x55, 0x8c, 0x66, 0x99, 0xe8, 0xf1, 0x34, - 0x99, 0xc5, 0x70, 0xc4, 0xff, 0x35, 0xbf, 0xb4, 0x52, 0xb2, 0x4a, 0x94, 0x97, 0x56, 0x26, 0x66, - 0x8b, 0xf2, 0xd2, 0xca, 0x48, 0x58, 0x31, 0x9e, 0x29, 0xc2, 0xbd, 0x87, 0x68, 0xa3, 0xa8, 0xab, - 0x8e, 0x5c, 0x7c, 0xc4, 0x1d, 0x02, 0x35, 0x63, 0x04, 0x1f, 0xcd, 0x8b, 0x41, 0x64, 0x39, 0x2d, - 0xa5, 0x63, 0x5d, 0xd4, 0x00, 0x2c, 0x37, 0x12, 0x2c, 0x17, 0xf1, 0x05, 0x63, 0xcc, 0xa2, 0x25, - 0x2a, 0x6b, 0xa3, 0x16, 0x9c, 0x43, 0xc2, 0xd6, 0x7d, 0x47, 0x44, 0x26, 0xc5, 0x21, 0xc9, 0x8f, - 0xc8, 0x74, 0x72, 0x59, 0xf2, 0x23, 0x32, 0x0a, 0x92, 0x8a, 0xf1, 0x42, 0x20, 0x83, 0xae, 0xdd, - 0xf2, 0xdc, 0x5a, 0x1c, 0x4b, 0x48, 0x01, 0x14, 0xa0, 0xfe, 0x46, 0x1e, 0x2c, 0x99, 0x4b, 0x62, - 0x1c, 0x2c, 0x25, 0xa5, 0xc5, 0x38, 0x58, 0x6a, 0xa2, 0x8a, 0x71, 0x0d, 0xc5, 0x70, 0xb2, 0x54, - 0x16, 0xf5, 0xd4, 0xfb, 0xb1, 0x85, 0xf6, 0x66, 0x82, 0x7c, 0x2a, 0xaa, 0x88, 0xd2, 0x8d, 0x2b, - 0x48, 0x62, 0x51, 0xba, 0x71, 0x45, 0xb9, 0x29, 0xdd, 0x04, 0x05, 0x05, 0xa8, 0xf4, 0xd6, 0xf7, - 0x63, 0x6e, 0x74, 0xaa, 0x62, 0x76, 0x4a, 0xa3, 0xd3, 0xc0, 0x59, 0x51, 0x1a, 0x9d, 0x26, 0x26, - 0x09, 0xb1, 0x13, 0xdd, 0x6f, 0xe3, 0x9b, 0xc5, 0x02, 0x81, 0xd2, 0x16, 0x97, 0x1f, 0x17, 0xfc, - 0x2e, 0xbf, 0xfb, 0x54, 0xd0, 0x42, 0x94, 0x77, 0x9f, 0x7a, 0xf6, 0x89, 0xf2, 0xee, 0xd3, 0xc0, - 0x36, 0x21, 0x2f, 0x27, 0xe0, 0x8e, 0xe2, 0xc9, 0x4c, 0xd2, 0x0b, 0xd4, 0x83, 0x9c, 0x13, 0x4e, - 0x27, 0x49, 0x0f, 0xcb, 0xfb, 0x16, 0x1a, 0x4e, 0x51, 0x40, 0xb0, 0xf6, 0xb2, 0x41, 0x22, 0x96, - 0x28, 0x73, 0x61, 0x14, 0x4c, 0x12, 0x32, 0x95, 0xe8, 0xb6, 0x1f, 0xef, 0x53, 0x1d, 0x95, 0x9c, - 0x5a, 0x92, 0x56, 0xe9, 0xeb, 0x16, 0xda, 0x2c, 0x31, 0x45, 0xf0, 0x7e, 0xa5, 0x95, 0xd7, 0xc9, - 0x41, 0x29, 0x1d, 0xc8, 0x2f, 0x58, 0xe0, 0xa2, 0xd5, 0x11, 0xdd, 0xc5, 0x39, 0x29, 0x69, 0xdd, - 0x7e, 0x8f, 0x47, 0x59, 0x33, 0x9c, 0x12, 0x65, 0x94, 0x55, 0xcd, 0x58, 0x29, 0x1d, 0x2c, 0x52, - 0xb4, 0x40, 0x32, 0x06, 0xd7, 0x29, 0xc5, 0x60, 0x49, 0xab, 0xf9, 0x0d, 0x6e, 0x12, 0x65, 0x79, - 0x26, 0x58, 0x1d, 0xe2, 0x55, 0x92, 0x55, 0x94, 0x26, 0x91, 0x8e, 0xb8, 0x92, 0x13, 0x0f, 0x96, - 0x19, 0x2d, 0x01, 0xfe, 0x33, 0x0b, 0x3d, 0x13, 0x47, 0xac, 0xd2, 0xe4, 0x12, 0x7c, 0x58, 0x1b, - 0x68, 0x52, 0x50, 0x5b, 0x4a, 0x47, 0x0a, 0x96, 0x2e, 0x60, 0x6e, 0x4a, 0xb9, 0x2d, 0x7e, 0x8d, - 0x65, 0x6a, 0x4b, 0x8b, 0x3e, 0xf6, 0x59, 0xbe, 0x97, 0xce, 0xd0, 0xc9, 0x70, 0x4d, 0x0c, 0x19, - 0x3a, 0x6a, 0xd6, 0x8b, 0x21, 0x43, 0x47, 0x43, 0x63, 0x31, 0x1e, 0xa1, 0x80, 0x22, 0xe5, 0x92, - 0x75, 0x02, 0x49, 0x79, 0x62, 0xf2, 0x40, 0xa4, 0xf9, 0x28, 0x86, 0x81, 0x50, 0xb0, 0x61, 0x0c, - 0x03, 0xa1, 0x22, 0xb9, 0x14, 0x19, 0x88, 0x38, 0x3b, 0xa0, 0x43, 0xff, 0x78, 0xc7, 0xfd, 0x67, - 0x6e, 0x4c, 0x6b, 0x79, 0x29, 0xea, 0xb8, 0x59, 0x0e, 0x59, 0x46, 0x1d, 0x37, 0xcb, 0xa3, 0xbe, - 0x98, 0xe3, 0x66, 0xf1, 0x1f, 0xb3, 0xe1, 0xf9, 0xff, 0xb5, 0x76, 0x54, 0x9f, 0xff, 0xa1, 0x1a, - 0x83, 0x51, 0xfd, 0x6f, 0x3c, 0x1e, 0x60, 0x62, 0xad, 0x28, 0xe3, 0x01, 0x05, 0x08, 0x35, 0xca, - 0x78, 0x40, 0x11, 0x7a, 0x0c, 0xb9, 0x95, 0xe0, 0xbc, 0x84, 0x2f, 0x2a, 0xaf, 0x4e, 0x3a, 0xe0, - 0xda, 0x61, 0x2e, 0xd6, 0x1f, 0x72, 0xfb, 0x54, 0x47, 0x70, 0xc1, 0xa6, 0xc8, 0x8c, 0x6e, 0x20, - 0xa7, 0xbb, 0xaa, 0x53, 0x20, 0xb4, 0x2b, 0x16, 0x4e, 0x77, 0xc3, 0xf8, 0x53, 0x0b, 0x4d, 0xc4, - 0xc3, 0xa8, 0x24, 0xbf, 0x28, 0xaf, 0xbf, 0xf2, 0x59, 0x39, 0xa5, 0x93, 0xdd, 0x56, 0x03, 0x8c, - 0x37, 0x13, 0x8c, 0x15, 0x3c, 0xa7, 0x1c, 0xc3, 0x2c, 0xd4, 0x02, 0x43, 0xf8, 0xb7, 0x7c, 0x5b, - 0x54, 0xf2, 0x64, 0x94, 0xdb, 0xa2, 0x89, 0xb4, 0xa3, 0xdc, 0x16, 0x8d, 0x14, 0x1c, 0xf2, 0x56, - 0x82, 0x6a, 0x16, 0xbf, 0xae, 0xcb, 0x9c, 0x2a, 0x0c, 0xe7, 0x2f, 0xb8, 0xb9, 0xaa, 0xa2, 0xbf, - 0x28, 0xcd, 0x55, 0x03, 0x97, 0x47, 0x69, 0xae, 0x9a, 0x28, 0x3a, 0xe4, 0x8d, 0x04, 0xcb, 0x19, - 0x7c, 0x3a, 0xb3, 0x3f, 0xaa, 0xb8, 0x3b, 0xea, 0x0d, 0xf2, 0x67, 0x3c, 0x63, 0xca, 0x48, 0x96, - 0x51, 0x66, 0x4c, 0x15, 0x61, 0xf0, 0x28, 0x33, 0xa6, 0x0a, 0xf1, 0x72, 0x8c, 0x8b, 0x2c, 0x36, - 0x58, 0x93, 0x3b, 0x4b, 0x89, 0x9f, 0xa1, 0x46, 0xfa, 0x9f, 0xfc, 0x0a, 0x2c, 0x87, 0x06, 0x83, - 0x5f, 0x32, 0xa8, 0x6c, 0x66, 0xe7, 0x94, 0xce, 0xf4, 0x52, 0xb5, 0xc0, 0xe1, 0x10, 0xe3, 0x4d, - 0xb6, 0x4d, 0x13, 0x62, 0x11, 0x2c, 0xfe, 0x77, 0x9e, 0xbc, 0x6d, 0xa6, 0xb9, 0x60, 0xd3, 0x10, - 0x19, 0xb9, 0x37, 0xa5, 0x97, 0x7a, 0xa8, 0xd9, 0xcd, 0xe8, 0xc6, 0x1b, 0x4c, 0x11, 0xb0, 0x5f, - 0xe8, 0x43, 0x87, 0x52, 0x60, 0xf3, 0xc8, 0x2e, 0x78, 0xd6, 0xa0, 0x7c, 0x41, 0x8a, 0x4d, 0xe9, - 0xdc, 0xaa, 0xda, 0x28, 0x70, 0x39, 0x10, 0x77, 0x45, 0x07, 0x1f, 0xa7, 0x16, 0x7a, 0xdc, 0x17, - 0x8d, 0xef, 0x70, 0x98, 0xc5, 0x5c, 0x12, 0x09, 0xbe, 0x9d, 0x44, 0x19, 0xe5, 0x65, 0x87, 0x99, - 0x7c, 0xa3, 0xbc, 0xec, 0xc8, 0xe1, 0xe1, 0x18, 0x9d, 0xa6, 0x34, 0x41, 0x27, 0x42, 0xd0, 0x48, - 0xb4, 0x83, 0x64, 0x33, 0xed, 0xcf, 0xb4, 0x29, 0x0d, 0xb5, 0xbc, 0x9f, 0x8c, 0x53, 0x1a, 0x6a, - 0xb9, 0xbf, 0x04, 0x67, 0x8c, 0xdd, 0xba, 0x36, 0xfb, 0x79, 0x04, 0xf5, 0x2d, 0x94, 0x48, 0x36, - 0xcb, 0xfd, 0xed, 0x35, 0x65, 0xb2, 0x59, 0xd1, 0xdf, 0x8f, 0x53, 0x26, 0x9b, 0x15, 0xfe, 0xb9, - 0x37, 0x63, 0x66, 0x4b, 0xe6, 0xf7, 0xd7, 0x74, 0x30, 0xff, 0xcb, 0x42, 0xfb, 0xb3, 0x30, 0x75, - 0xd7, 0x51, 0xaf, 0xe6, 0x29, 0x9b, 0x73, 0x2d, 0xf5, 0x5a, 0xcf, 0xf5, 0x0b, 0x38, 0x12, 0x59, - 0xbc, 0xda, 0x7b, 0x2a, 0x19, 0xb2, 0xf9, 0xe7, 0xd4, 0x0c, 0x90, 0x0b, 0xfd, 0x3c, 0x9c, 0x01, - 0x72, 0xb1, 0xdf, 0x71, 0x2b, 0x04, 0x39, 0x05, 0x55, 0x33, 0xca, 0xff, 0x63, 0xa1, 0x83, 0x0a, - 0xc8, 0xba, 0x81, 0x9e, 0x29, 0xa0, 0x75, 0xce, 0x58, 0xcf, 0xae, 0xa6, 0x89, 0x02, 0x71, 0x7e, - 0x05, 0x76, 0xfd, 0x88, 0xff, 0x29, 0x0f, 0xd6, 0x29, 0xc8, 0x7a, 0xca, 0x60, 0x9d, 0x9e, 0x1b, - 0xa8, 0x0c, 0xd6, 0x19, 0x38, 0x80, 0xc6, 0xdb, 0x7b, 0x1e, 0x6e, 0x82, 0x20, 0x49, 0xca, 0x48, - 0x95, 0x2d, 0xd3, 0x0f, 0xf9, 0x1d, 0x9e, 0x9e, 0x84, 0xa7, 0xbc, 0xc3, 0xcb, 0x25, 0xfe, 0x29, - 0xef, 0xf0, 0xf2, 0x99, 0x7e, 0x46, 0x5b, 0x95, 0xb1, 0xdd, 0xea, 0x50, 0x1f, 0xfe, 0x32, 0xeb, - 0xfd, 0xc7, 0x31, 0xff, 0x2d, 0x75, 0xd8, 0xcf, 0x56, 0x3f, 0xf8, 0x64, 0xc2, 0xfa, 0xfe, 0x27, - 0x13, 0xd6, 0xbf, 0x7c, 0x32, 0x61, 0xbd, 0xff, 0xe9, 0xc4, 0x53, 0xdf, 0xff, 0x74, 0xe2, 0xa9, - 0x1f, 0x7e, 0x3a, 0xf1, 0xd4, 0xbd, 0xd3, 0x05, 0xe9, 0x9d, 0x8f, 0x52, 0xb2, 0xd9, 0x4f, 0x9a, - 0xde, 0x1f, 0x60, 0x3f, 0x42, 0x3a, 0xfd, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf5, 0x0e, 0x0b, - 0x74, 0x38, 0x76, 0x00, 0x00, + // 5489 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5d, 0x7b, 0x6c, 0x1c, 0xc7, + 0x79, 0xf7, 0x92, 0x12, 0x45, 0x0e, 0xf5, 0xa0, 0xc6, 0xb2, 0x4c, 0x1e, 0x65, 0x4a, 0x5a, 0x59, + 0x6f, 0x89, 0x27, 0x91, 0x7a, 0x5b, 0x92, 0x4d, 0xea, 0x41, 0x9d, 0x2c, 0xeb, 0x71, 0x7a, 0x5a, + 0x4d, 0x7c, 0x5e, 0xdd, 0xcd, 0x91, 0x0b, 0xdd, 0xed, 0x9e, 0x77, 0xf7, 0x28, 0x09, 0x0a, 0xd1, + 0x24, 0x08, 0x8a, 0x04, 0xe8, 0x1f, 0x06, 0x8a, 0x14, 0x0d, 0x90, 0x14, 0x29, 0xd0, 0x3f, 0x02, + 0xb4, 0x29, 0x8a, 0x22, 0x28, 0xd0, 0x02, 0xfd, 0xa3, 0x48, 0x51, 0xb8, 0xe8, 0x2b, 0x88, 0x6b, + 0x20, 0x0d, 0x1a, 0xa3, 0xb5, 0x13, 0x24, 0x2d, 0xd0, 0xa2, 0xfd, 0xb3, 0x40, 0xff, 0x28, 0x76, + 0xe6, 0x9b, 0xdd, 0x9d, 0xbd, 0x99, 0xd9, 0xbd, 0x23, 0x89, 0xa6, 0x80, 0xff, 0x11, 0xb4, 0xbb, + 0x33, 0xf3, 0x7d, 0xbf, 0x79, 0x7e, 0xdf, 0x37, 0xdf, 0x8f, 0x87, 0x46, 0x49, 0xd3, 0xf6, 0x7d, + 0xdb, 0x75, 0xfc, 0xe2, 0xe2, 0x74, 0xf1, 0xbd, 0x36, 0xf1, 0x9e, 0x4d, 0xb6, 0x3c, 0x37, 0x70, + 0xf1, 0xfa, 0xe8, 0xcb, 0xe4, 0xe2, 0x74, 0x61, 0xb3, 0xd5, 0xb4, 0x1d, 0xb7, 0x48, 0xff, 0x65, + 0x05, 0x0a, 0xe3, 0x55, 0xd7, 0x6f, 0xba, 0x3e, 0xab, 0x54, 0x5c, 0x3c, 0x9a, 0xac, 0x5d, 0x18, + 0x63, 0x1f, 0x2b, 0xf4, 0xa9, 0xc8, 0x1e, 0xe0, 0xd3, 0x36, 0x41, 0xa4, 0xed, 0xd4, 0x89, 0x47, + 0x9c, 0x2a, 0x81, 0xaf, 0x2f, 0x0b, 0x5f, 0x1d, 0xb7, 0xc6, 0x3f, 0x8c, 0xa6, 0x3e, 0xc4, 0x55, + 0xc6, 0x84, 0x2f, 0x2d, 0xcb, 0xb3, 0x9a, 0x5c, 0x56, 0x41, 0xf8, 0xe4, 0x91, 0x56, 0x3b, 0x20, + 0x9e, 0xb4, 0x41, 0xbf, 0xea, 0x7a, 0x72, 0x51, 0x7e, 0x60, 0x3d, 0x96, 0x7f, 0x09, 0xdc, 0x96, + 0x5d, 0x95, 0x7f, 0x79, 0xd6, 0x22, 0xbe, 0x54, 0xbd, 0x27, 0xae, 0xf7, 0x38, 0x52, 0x61, 0xcb, + 0xbc, 0x3b, 0xef, 0xb2, 0x2e, 0x0a, 0xff, 0xc7, 0x3b, 0x68, 0xde, 0x75, 0xe7, 0x1b, 0xa4, 0x68, + 0xb5, 0xec, 0xa2, 0xe5, 0x38, 0x6e, 0x60, 0x05, 0x74, 0x18, 0xe8, 0x57, 0xf3, 0x73, 0x68, 0xf7, + 0xad, 0xb0, 0xa3, 0xaf, 0x5b, 0xf6, 0x22, 0x29, 0xd1, 0xde, 0xf3, 0xae, 0x93, 0x20, 0x6c, 0xb7, + 0x4c, 0xe6, 0x3d, 0x12, 0x94, 0xc9, 0x7b, 0x6d, 0xe2, 0x07, 0x78, 0x0c, 0x0d, 0x52, 0x05, 0x2b, + 0x76, 0x6d, 0xd4, 0xd8, 0x61, 0xec, 0x5b, 0x53, 0x5e, 0x47, 0x9f, 0x4b, 0x35, 0x3c, 0x8a, 0xd6, + 0xb1, 0x7e, 0xf7, 0x46, 0xfb, 0x76, 0x18, 0xfb, 0x86, 0xca, 0xfc, 0xd1, 0x7c, 0x17, 0xed, 0xc9, + 0x6a, 0xdd, 0x6f, 0xb9, 0x8e, 0x4f, 0xf0, 0x09, 0x34, 0xe0, 0xd1, 0x37, 0xb4, 0xf1, 0xe1, 0xa9, + 0x89, 0xc9, 0xe4, 0x84, 0x99, 0xbc, 0x63, 0x37, 0x89, 0x1f, 0x58, 0xcd, 0x16, 0xa9, 0xdd, 0xb3, + 0x1a, 0x6d, 0x52, 0x86, 0xd2, 0xe6, 0xaf, 0x1b, 0xe8, 0x30, 0x15, 0x71, 0xc3, 0x21, 0x37, 0xda, + 0x01, 0xc8, 0xe8, 0x11, 0xc8, 0x1e, 0xb4, 0xc9, 0x75, 0x48, 0xc5, 0x6d, 0x07, 0x15, 0x11, 0xd0, + 0x06, 0x37, 0xd9, 0x7a, 0x12, 0x70, 0xbf, 0x08, 0x78, 0x01, 0x4d, 0xe6, 0xd5, 0x66, 0x99, 0xc0, + 0xbf, 0x6e, 0xa0, 0x23, 0x9d, 0xa2, 0x2e, 0xbb, 0x1e, 0xa9, 0x5a, 0x7e, 0xb0, 0x7a, 0xd8, 0x27, + 0x10, 0xaa, 0x47, 0x42, 0x00, 0x7e, 0xe2, 0x8d, 0xf9, 0x18, 0x1d, 0xed, 0x42, 0xad, 0x95, 0xed, + 0x84, 0x58, 0x4c, 0x8f, 0x13, 0xe0, 0x10, 0xc2, 0xbc, 0x13, 0x12, 0x20, 0x59, 0x3f, 0x8c, 0xb8, + 0x29, 0x19, 0x9a, 0x69, 0x20, 0x76, 0x42, 0x96, 0x5a, 0xcb, 0xec, 0x84, 0xdf, 0x36, 0xd0, 0xb4, + 0x54, 0x5a, 0xef, 0x93, 0xa1, 0xbb, 0x7e, 0xc8, 0x9a, 0x12, 0x0e, 0x3a, 0xd6, 0x9d, 0x7e, 0xcb, + 0xec, 0x90, 0x2d, 0x08, 0x53, 0x79, 0x37, 0xe9, 0xde, 0x0d, 0x70, 0xcd, 0xeb, 0xe8, 0x45, 0xe1, + 0x2d, 0x08, 0x39, 0x89, 0x06, 0xd8, 0x1e, 0x0f, 0x42, 0xb6, 0x88, 0x42, 0x58, 0xe9, 0xd9, 0xa1, + 0x0f, 0x3e, 0xde, 0xfe, 0xc2, 0x77, 0x7e, 0xfe, 0x87, 0x07, 0x8c, 0x32, 0x14, 0x37, 0x47, 0xd1, + 0x56, 0xda, 0xde, 0x1d, 0x37, 0xb0, 0x1a, 0xb7, 0xc3, 0x5d, 0x9d, 0x4b, 0xb2, 0xd1, 0xcb, 0x1d, + 0x5f, 0x40, 0xda, 0x15, 0x34, 0x60, 0x35, 0xdd, 0xb6, 0xc3, 0x20, 0x0d, 0xcd, 0x1e, 0x09, 0xdb, + 0xfd, 0xf1, 0xc7, 0xdb, 0x5f, 0x62, 0x67, 0x9a, 0x5f, 0x7b, 0x3c, 0x69, 0xbb, 0xc5, 0xa6, 0x15, + 0x2c, 0x4c, 0x96, 0x9c, 0xe0, 0x87, 0xdf, 0x3b, 0x8c, 0xe0, 0xb0, 0x2b, 0x39, 0x01, 0x88, 0x67, + 0xf5, 0xcf, 0xac, 0xf9, 0xc5, 0xb7, 0xb7, 0x1b, 0xe6, 0x3d, 0xb4, 0x9d, 0x8a, 0x2a, 0xb3, 0xb3, + 0x88, 0x0a, 0x2b, 0x39, 0x77, 0xc2, 0x61, 0xe4, 0xc3, 0x3c, 0x8a, 0xd6, 0x59, 0xb5, 0x9a, 0x47, + 0x7c, 0x86, 0x70, 0xa8, 0xcc, 0x1f, 0x85, 0x09, 0xd0, 0x27, 0x4c, 0x00, 0xd3, 0x43, 0x3b, 0xd4, + 0xed, 0xae, 0x12, 0x96, 0x0a, 0x7a, 0x95, 0xca, 0x7c, 0xab, 0xdd, 0x08, 0x6c, 0x0d, 0xa0, 0x6d, + 0x68, 0x08, 0x10, 0x90, 0x10, 0x52, 0xff, 0xbe, 0xa1, 0x72, 0xfc, 0x42, 0x07, 0xea, 0x21, 0x9c, + 0x75, 0x6a, 0x01, 0x80, 0xec, 0x28, 0x5a, 0xc7, 0x34, 0x63, 0xed, 0x0f, 0x4f, 0xbd, 0x2c, 0x4e, + 0x0a, 0xa8, 0x54, 0x77, 0xcb, 0xbc, 0x9c, 0xe9, 0xa2, 0xfd, 0xb4, 0x6d, 0xfa, 0xe9, 0xb2, 0xe7, + 0x36, 0xa1, 0x7d, 0x68, 0xba, 0xe4, 0xdc, 0x26, 0x8d, 0x3a, 0x47, 0xb0, 0x17, 0x6d, 0x02, 0xe3, + 0xa1, 0x22, 0x0e, 0xcd, 0x46, 0x78, 0x3d, 0x93, 0x3d, 0x42, 0x5f, 0x40, 0x07, 0xf2, 0x08, 0x5c, + 0xa5, 0xb1, 0xe2, 0x70, 0x2f, 0x92, 0x06, 0x99, 0xb7, 0x02, 0x92, 0xec, 0xc6, 0x92, 0x03, 0xaa, + 0xac, 0x06, 0xdc, 0x0c, 0x81, 0xab, 0x04, 0xf7, 0x77, 0x0c, 0x38, 0xd7, 0xa3, 0xde, 0x06, 0x3d, + 0x5c, 0x4f, 0x05, 0xfa, 0x20, 0xda, 0x5c, 0xe3, 0x65, 0x52, 0xb0, 0x47, 0xa2, 0x0f, 0x1c, 0xb8, + 0xa4, 0x87, 0xfa, 0x32, 0x7b, 0xa8, 0x5f, 0xec, 0xa1, 0x2f, 0x19, 0xa8, 0x98, 0x5b, 0xc7, 0x55, + 0x9b, 0x16, 0xbb, 0xf5, 0x2a, 0xf4, 0xd4, 0x3b, 0x9a, 0x69, 0xf1, 0x14, 0x0c, 0x4c, 0x8d, 0xc0, + 0x55, 0x82, 0x3a, 0x1d, 0x6d, 0xff, 0x2d, 0xbb, 0x9a, 0xdc, 0xfe, 0x35, 0xe7, 0x6a, 0xe2, 0x64, + 0x88, 0x2b, 0xad, 0x92, 0x7e, 0x35, 0xd8, 0x4d, 0xe1, 0x68, 0xbd, 0xe6, 0xfa, 0xfe, 0x6c, 0xdb, + 0xa9, 0x35, 0xc8, 0x4c, 0x30, 0xdb, 0x70, 0xab, 0x8f, 0x73, 0x58, 0x01, 0x3b, 0xd1, 0xfa, 0x47, + 0x61, 0xd1, 0xca, 0x02, 0xb1, 0xe7, 0x17, 0x02, 0xda, 0xf7, 0xfd, 0xe5, 0x61, 0xfa, 0xee, 0x0a, + 0x7d, 0x65, 0x56, 0xb9, 0xfb, 0xa0, 0x94, 0x02, 0xf0, 0xce, 0xa0, 0xe1, 0x86, 0xeb, 0xfb, 0x95, + 0x47, 0xf4, 0x2b, 0x9c, 0xb5, 0x63, 0xe2, 0xb6, 0x4a, 0x4f, 0x71, 0x56, 0xbd, 0x8c, 0x1a, 0x51, + 0x53, 0xe6, 0x18, 0xf4, 0xda, 0x75, 0xf2, 0x34, 0x60, 0x13, 0xb9, 0xc6, 0x8f, 0xda, 0xf3, 0x68, + 0xb4, 0xf3, 0x13, 0x88, 0x34, 0xd1, 0x06, 0x87, 0x3c, 0x0d, 0x2a, 0x29, 0x78, 0xc3, 0x4e, 0x5c, + 0xd6, 0x9c, 0x44, 0x9b, 0xe3, 0x01, 0xc9, 0x31, 0x80, 0x5f, 0x31, 0xc0, 0xb6, 0x10, 0x27, 0xd7, + 0x7e, 0xb4, 0x96, 0x96, 0x00, 0x5c, 0x2f, 0xa6, 0x0c, 0x15, 0x5a, 0x96, 0x95, 0xc0, 0x5b, 0xd1, + 0xc0, 0x93, 0xb8, 0x3b, 0x87, 0xca, 0xf0, 0x14, 0xae, 0x08, 0x52, 0xaf, 0x93, 0x6a, 0x60, 0x2f, + 0x92, 0x8a, 0x47, 0x16, 0x89, 0xd3, 0x26, 0x60, 0x4b, 0x8d, 0x44, 0x1f, 0xca, 0xec, 0xbd, 0x39, + 0x0f, 0xb0, 0x67, 0xe8, 0x5b, 0xda, 0x3e, 0xb7, 0x73, 0xf0, 0x9b, 0x08, 0xb5, 0xac, 0x79, 0xdb, + 0xa1, 0x6e, 0x1e, 0x28, 0x74, 0x30, 0x75, 0x7e, 0xd9, 0xcd, 0x56, 0x83, 0x5c, 0x68, 0x7b, 0xbe, + 0xeb, 0xdd, 0x8c, 0xca, 0x42, 0x03, 0xe5, 0x44, 0x75, 0xf3, 0x37, 0x0d, 0x34, 0x26, 0x91, 0x04, + 0xb0, 0x0f, 0xa2, 0x01, 0x0a, 0x8a, 0x1f, 0x93, 0x52, 0xdc, 0x50, 0x04, 0x5f, 0x13, 0xf4, 0xea, + 0xa3, 0x7a, 0x1d, 0xca, 0xa7, 0x17, 0x13, 0x27, 0x28, 0xf6, 0x79, 0xf4, 0x0a, 0xd5, 0xab, 0xc4, + 0x1d, 0x7e, 0x7f, 0x45, 0xe7, 0xf5, 0x43, 0x34, 0xa1, 0x6a, 0x1e, 0xb0, 0x9f, 0x42, 0x28, 0x0a, + 0x36, 0x70, 0xdb, 0x71, 0x54, 0x84, 0x13, 0x57, 0x2e, 0x27, 0xca, 0x9a, 0xe7, 0xd1, 0x4e, 0xda, + 0xf6, 0x35, 0x2b, 0x20, 0x3e, 0xcc, 0xc4, 0xb8, 0x64, 0xf6, 0x1c, 0xfc, 0x92, 0x81, 0x4c, 0x5d, + 0x03, 0xcb, 0x55, 0x30, 0x4f, 0xff, 0x7c, 0x0e, 0x6d, 0xa3, 0x2a, 0x70, 0x13, 0x7e, 0x65, 0x7b, + 0xff, 0x1e, 0x0c, 0x6e, 0x67, 0xeb, 0x80, 0xed, 0x38, 0x1a, 0xe2, 0xfe, 0x05, 0x87, 0x96, 0x32, + 0xd1, 0xa2, 0xaa, 0xe5, 0xb8, 0xa4, 0x49, 0xa0, 0xe7, 0xef, 0xd3, 0xa8, 0x09, 0xeb, 0xbe, 0xa8, + 0x0f, 0x72, 0xa8, 0xbe, 0x1b, 0x6d, 0x64, 0x01, 0x97, 0xd4, 0x29, 0xbd, 0x81, 0xbd, 0x85, 0xf3, + 0xca, 0x5c, 0x80, 0xf1, 0x51, 0x88, 0x01, 0x0c, 0xb3, 0x68, 0xa4, 0x41, 0x3f, 0x55, 0xa2, 0xae, + 0x97, 0x43, 0x89, 0xab, 0x6e, 0x6a, 0x88, 0x6d, 0x99, 0x57, 0x50, 0x21, 0x21, 0xe9, 0xba, 0x5b, + 0x63, 0x56, 0x69, 0xa7, 0xe5, 0xdf, 0x27, 0x58, 0xfe, 0x57, 0xd7, 0x0c, 0x1a, 0x23, 0x7d, 0x65, + 0xd4, 0xb0, 0x1f, 0xb5, 0xa6, 0x5a, 0x95, 0xc7, 0xe4, 0x99, 0x79, 0x0f, 0x8d, 0x4b, 0x5b, 0x8a, + 0xbc, 0xa4, 0x21, 0xc7, 0xad, 0x91, 0x50, 0x55, 0x17, 0xb4, 0x2c, 0x88, 0x5a, 0xde, 0xa8, 0xd7, + 0xab, 0x0b, 0x96, 0xed, 0x84, 0x55, 0xcb, 0x83, 0x0e, 0x34, 0x60, 0x96, 0xa0, 0x5d, 0xb0, 0x3c, + 0x96, 0xa3, 0xe2, 0x7d, 0x98, 0x73, 0x1d, 0x4d, 0x2d, 0x57, 0xc7, 0x6f, 0x1b, 0xe2, 0x59, 0xd9, + 0xcb, 0x9e, 0x72, 0x0e, 0x8d, 0x27, 0x67, 0x75, 0xa5, 0x61, 0x09, 0x03, 0xcb, 0x26, 0xf9, 0x68, + 0x62, 0x92, 0x5f, 0xb3, 0x12, 0x03, 0x79, 0x75, 0xcd, 0x60, 0xff, 0xc8, 0x1a, 0xf8, 0x2e, 0x34, + 0xe1, 0x91, 0x27, 0x96, 0x57, 0x33, 0xdf, 0x40, 0xbb, 0x12, 0x4b, 0xbe, 0x43, 0xcf, 0x1c, 0xbb, + 0x46, 0x09, 0x1d, 0x4a, 0xb4, 0x30, 0xb3, 0x68, 0xd9, 0x0d, 0xeb, 0x51, 0x83, 0xf4, 0xd2, 0x14, + 0x37, 0x2d, 0x4a, 0x3e, 0x9f, 0x2d, 0x4e, 0x95, 0xdc, 0x75, 0xea, 0xed, 0x46, 0xdd, 0x6e, 0x34, + 0x48, 0x6d, 0x65, 0x36, 0x81, 0x3a, 0x98, 0x16, 0x6a, 0x29, 0x30, 0xee, 0xe7, 0xd0, 0xb8, 0xed, + 0x57, 0x60, 0x61, 0xd2, 0x48, 0x6e, 0xa5, 0x1d, 0x17, 0xa3, 0x92, 0x07, 0xcb, 0xa3, 0xb6, 0xa2, + 0x19, 0x73, 0x06, 0xd0, 0x08, 0x4d, 0xc3, 0x0c, 0xcb, 0xd9, 0x21, 0xdc, 0x0a, 0x52, 0x37, 0x11, + 0x59, 0x41, 0x03, 0x54, 0x41, 0xbe, 0x69, 0x99, 0xe2, 0xfc, 0x14, 0x5d, 0x08, 0xa8, 0x0b, 0x35, + 0xa2, 0x29, 0x90, 0x10, 0x92, 0x40, 0x94, 0x47, 0xcd, 0x3b, 0x9d, 0x48, 0xc5, 0x16, 0x40, 0xcb, + 0x43, 0x29, 0x2d, 0x53, 0x21, 0x91, 0x94, 0x5e, 0x0f, 0x20, 0x54, 0xd0, 0x63, 0xc8, 0x6d, 0x0c, + 0x0d, 0x5a, 0xd5, 0xd0, 0x0b, 0x00, 0xe3, 0x3e, 0xdc, 0x02, 0xc2, 0xe7, 0x52, 0xcd, 0xfc, 0x15, + 0xd8, 0xae, 0x57, 0x25, 0x6a, 0xf6, 0x00, 0xba, 0xb3, 0xf7, 0x20, 0x59, 0x68, 0xc9, 0xd1, 0xee, + 0x8b, 0x2c, 0x39, 0xfa, 0x64, 0xbe, 0x03, 0xdd, 0xbc, 0x5a, 0xe1, 0xad, 0x5f, 0x45, 0xfb, 0x78, + 0x38, 0xad, 0xe4, 0xf4, 0xae, 0xbe, 0x18, 0xb5, 0xeb, 0x4b, 0x47, 0xed, 0x34, 0xd1, 0xcd, 0x2a, + 0x38, 0xff, 0x7a, 0x05, 0x96, 0x89, 0x92, 0x44, 0xcb, 0x3f, 0xb9, 0x94, 0x56, 0x7c, 0x97, 0xb1, + 0xc1, 0x81, 0xd4, 0x88, 0x01, 0x20, 0xaf, 0xa3, 0x6d, 0xb6, 0x5f, 0xe1, 0x6e, 0xba, 0x6a, 0x9f, + 0x19, 0xb3, 0x55, 0x0d, 0x99, 0xef, 0x89, 0xbe, 0x92, 0xda, 0xb4, 0xbc, 0x82, 0xb0, 0xc3, 0xca, + 0x54, 0x3a, 0x2c, 0x38, 0x8d, 0xcb, 0xb4, 0xd9, 0x49, 0x37, 0x6c, 0x7e, 0xb4, 0x16, 0xe6, 0xa2, + 0xf2, 0xdc, 0x58, 0x69, 0x91, 0xf8, 0x4d, 0xb4, 0x09, 0xe6, 0x49, 0x85, 0x79, 0x36, 0xe1, 0xc9, + 0xde, 0x2f, 0xdb, 0xeb, 0xc2, 0x61, 0x0e, 0xcf, 0x5f, 0xaf, 0x49, 0x6a, 0xf7, 0x69, 0xd1, 0xf2, + 0x46, 0xa8, 0xca, 0x1e, 0x7d, 0x7c, 0x0b, 0xe1, 0x78, 0x46, 0x46, 0xed, 0xf5, 0xe7, 0x6e, 0x6f, + 0x73, 0x5c, 0x9b, 0x37, 0x69, 0xa1, 0x31, 0xfe, 0xb2, 0xd4, 0x6c, 0x35, 0x6c, 0x52, 0x8b, 0x95, + 0x1f, 0x5d, 0x43, 0x5b, 0xde, 0x25, 0xb6, 0xcc, 0xf6, 0xc8, 0x99, 0x20, 0xf0, 0xec, 0x47, 0xed, + 0x80, 0xcf, 0x53, 0x75, 0x2b, 0xf8, 0x18, 0xda, 0x1a, 0x75, 0x62, 0x45, 0x98, 0x80, 0x6b, 0xe9, + 0x04, 0xdc, 0x12, 0x7d, 0x9d, 0x8d, 0x67, 0x22, 0x3e, 0x80, 0x36, 0x33, 0x0f, 0x39, 0x59, 0x61, + 0x80, 0x56, 0xd8, 0x44, 0x9d, 0xe1, 0x44, 0xd9, 0x5f, 0x33, 0xd0, 0xae, 0xaa, 0xeb, 0xd4, 0xed, + 0x1a, 0x95, 0x61, 0x3b, 0x01, 0xf1, 0x16, 0xad, 0x46, 0xc5, 0xb3, 0x9e, 0x54, 0x5a, 0xc4, 0xab, + 0x12, 0x27, 0xb0, 0x1b, 0xc4, 0x1f, 0x5d, 0xb7, 0xa3, 0x7f, 0xdf, 0xd0, 0xec, 0x49, 0x08, 0x25, + 0x14, 0xe7, 0xed, 0x60, 0xa1, 0xfd, 0x68, 0xb2, 0xea, 0x36, 0x8b, 0x56, 0xa3, 0xe1, 0x7a, 0xd6, + 0x61, 0x18, 0x3f, 0xfe, 0x48, 0xad, 0x23, 0x16, 0x64, 0xb8, 0x48, 0xaa, 0xe5, 0x1d, 0xb1, 0x8c, + 0x12, 0x88, 0x28, 0x5b, 0x4f, 0x6e, 0xc6, 0x02, 0x70, 0x1b, 0x15, 0x64, 0x7a, 0x2c, 0x86, 0x5d, + 0xe4, 0x8f, 0x0e, 0x2e, 0x4f, 0xfc, 0x68, 0xa7, 0x78, 0xda, 0xf7, 0xbe, 0xf9, 0xf1, 0x5a, 0xb8, + 0xf5, 0xcb, 0xb6, 0x66, 0x3e, 0x9b, 0xe0, 0x9f, 0x4d, 0xf0, 0xff, 0x7f, 0x13, 0xfc, 0x1d, 0xb4, + 0x57, 0x30, 0x7e, 0xcb, 0x64, 0xde, 0x0e, 0x07, 0x39, 0x1c, 0x06, 0x31, 0x04, 0x96, 0x71, 0x31, + 0x2f, 0xf7, 0xae, 0xcc, 0x1b, 0x60, 0x43, 0x68, 0xdb, 0x87, 0xa5, 0xb3, 0x0b, 0x6d, 0xa0, 0x07, + 0x1f, 0x2f, 0x01, 0x27, 0xdd, 0xfa, 0xf0, 0xa4, 0xe3, 0xef, 0xcc, 0x4a, 0xd4, 0x60, 0x64, 0xc4, + 0xae, 0xac, 0xc6, 0x37, 0xc1, 0xe8, 0xd0, 0x0b, 0xe8, 0x46, 0xe5, 0x53, 0xe0, 0x4f, 0x96, 0xfc, + 0xfb, 0x0b, 0x76, 0x40, 0x1a, 0xb6, 0x1f, 0xcc, 0xd4, 0x9a, 0xb6, 0x93, 0x79, 0x71, 0x66, 0x9e, + 0xe1, 0xc1, 0xa7, 0x8e, 0x9a, 0x20, 0x7f, 0x0c, 0x0d, 0xda, 0x7e, 0xc5, 0x0a, 0xdf, 0x81, 0xe8, + 0x75, 0xb6, 0x4f, 0x8b, 0x98, 0x57, 0x93, 0x21, 0xf2, 0x32, 0x69, 0xba, 0x8b, 0x56, 0xc3, 0xbf, + 0xdb, 0xba, 0x1b, 0xce, 0x37, 0xc1, 0xd9, 0x4c, 0x1b, 0x2f, 0x46, 0xa7, 0xf1, 0x52, 0x4b, 0x46, + 0xbf, 0xe5, 0x6d, 0x45, 0x8e, 0xc7, 0xa0, 0x07, 0xdf, 0x21, 0x56, 0x37, 0x21, 0xb9, 0xd2, 0x82, + 0x26, 0xa8, 0x57, 0x1d, 0x95, 0x37, 0xcb, 0xb0, 0xd7, 0x0a, 0x57, 0x2f, 0xcb, 0xd4, 0x3c, 0x80, + 0xfb, 0x94, 0x1c, 0x6d, 0x46, 0xe1, 0x92, 0x34, 0x82, 0x3d, 0x22, 0x02, 0x59, 0x53, 0x29, 0x24, + 0xb7, 0x61, 0xc4, 0x3b, 0x8a, 0xe4, 0x9a, 0x98, 0x60, 0xfa, 0xf1, 0x89, 0x09, 0x8f, 0xe6, 0xdb, + 0x30, 0x19, 0x3a, 0x1b, 0x8d, 0x02, 0x71, 0xeb, 0x40, 0x03, 0xb9, 0x09, 0xdc, 0x51, 0x91, 0x17, + 0x37, 0x9f, 0x81, 0xf5, 0xa6, 0x84, 0x96, 0xad, 0xf7, 0x36, 0x34, 0x14, 0xdd, 0xa7, 0x80, 0xe6, + 0xf1, 0x8b, 0x24, 0xaa, 0x7e, 0x11, 0x95, 0x0d, 0xd3, 0x54, 0x2d, 0x1a, 0xd0, 0xbd, 0x91, 0x46, + 0x97, 0x77, 0x58, 0x22, 0x94, 0xb3, 0x20, 0x8a, 0x2e, 0xe2, 0x6b, 0x96, 0x1f, 0xb0, 0x2d, 0xe9, + 0x82, 0xdb, 0x6c, 0xda, 0x41, 0x3e, 0x98, 0xa6, 0x03, 0x2b, 0x41, 0xd3, 0x06, 0xe8, 0x7b, 0x11, + 0x0d, 0xd3, 0xc0, 0x4a, 0x95, 0x7e, 0x02, 0x9d, 0x77, 0x29, 0x9d, 0x92, 0x99, 0xd0, 0x17, 0xa5, + 0xa6, 0x7c, 0x19, 0x85, 0xf5, 0x58, 0x8b, 0xe6, 0x85, 0xb4, 0x3c, 0xd8, 0x94, 0xba, 0x52, 0xda, + 0x85, 0x4d, 0x5e, 0xd7, 0xc8, 0x8a, 0x6a, 0x7d, 0x1a, 0xe6, 0x3f, 0x5c, 0x5e, 0x3c, 0xb1, 0xbc, + 0x1a, 0x2b, 0x94, 0xad, 0xeb, 0x71, 0x98, 0xe5, 0x9d, 0x55, 0x41, 0xc3, 0x2d, 0x68, 0x2d, 0xf5, + 0x89, 0x60, 0xb5, 0xb3, 0x87, 0xc8, 0x8b, 0x03, 0x64, 0xf1, 0xfd, 0xd0, 0xca, 0x06, 0x8c, 0xf9, + 0xf0, 0x6b, 0xc4, 0x44, 0x1d, 0xb9, 0x3e, 0x71, 0x0f, 0xc5, 0x2d, 0xc0, 0x9d, 0xd2, 0x38, 0x4c, + 0xc2, 0x10, 0xf4, 0xcb, 0xc3, 0xf1, 0x85, 0x94, 0x6f, 0x3e, 0x80, 0xc8, 0x04, 0x4c, 0x6a, 0x76, + 0x45, 0xdb, 0x0e, 0x16, 0x5c, 0xcf, 0x0e, 0x9e, 0x2d, 0x6b, 0x37, 0x09, 0x20, 0x76, 0xac, 0x68, + 0x19, 0x50, 0x5c, 0x47, 0x43, 0x16, 0x7f, 0xd9, 0xf3, 0x7d, 0x61, 0xdc, 0x84, 0xd9, 0x06, 0xa9, + 0xc2, 0x62, 0xbd, 0xd9, 0xb0, 0xaa, 0xa4, 0x49, 0x9c, 0x60, 0xd9, 0xdb, 0xcc, 0x56, 0x34, 0x10, + 0x58, 0xde, 0x3c, 0x09, 0x60, 0x97, 0x81, 0x27, 0xd3, 0x86, 0x18, 0x8c, 0x4a, 0x6c, 0xb4, 0xf5, + 0x6f, 0x8c, 0x2f, 0x8b, 0x13, 0xd1, 0xdd, 0x71, 0xe9, 0x4e, 0xe3, 0x7a, 0x74, 0xe5, 0x6c, 0xa8, + 0x25, 0x1f, 0xcd, 0xb7, 0x65, 0x5b, 0xe9, 0xdd, 0x96, 0x9b, 0xbe, 0xb6, 0xd7, 0xc7, 0x7b, 0x00, + 0x45, 0x9f, 0x80, 0xc2, 0x95, 0x6d, 0x95, 0x42, 0xd3, 0x80, 0xe3, 0x32, 0x5a, 0x4b, 0xb3, 0x3f, + 0x7b, 0x1e, 0x31, 0x56, 0xdd, 0x7c, 0x3b, 0x35, 0x5a, 0x6c, 0x39, 0xde, 0x24, 0xde, 0xed, 0x05, + 0xcb, 0x23, 0xcb, 0x9a, 0x7e, 0x5f, 0x35, 0x52, 0x43, 0x92, 0x6e, 0x1b, 0xa0, 0x58, 0x68, 0x84, + 0x45, 0xa6, 0x43, 0x6b, 0xbc, 0xe2, 0x87, 0xdf, 0x00, 0x55, 0xcf, 0xc6, 0xf0, 0x46, 0x4f, 0x10, + 0x65, 0x56, 0x21, 0x60, 0x9d, 0x3c, 0x38, 0x2e, 0xbb, 0x1e, 0x5f, 0x13, 0x4e, 0x2d, 0x65, 0x55, + 0x26, 0x40, 0x19, 0x02, 0x28, 0x5d, 0xfe, 0xc0, 0x12, 0xd8, 0x36, 0xd9, 0x42, 0x00, 0xf8, 0x35, + 0x84, 0xe9, 0x20, 0x54, 0xe0, 0xf4, 0x4a, 0xce, 0xc7, 0xac, 0x73, 0x7d, 0xc4, 0x4f, 0xbd, 0x31, + 0x7f, 0xcb, 0x80, 0xe0, 0xa9, 0xec, 0x94, 0xcc, 0x6f, 0x4e, 0x69, 0x10, 0x8a, 0x2b, 0xb3, 0x5f, + 0x63, 0x00, 0xac, 0x11, 0x67, 0xc2, 0x33, 0xd8, 0xe2, 0xe4, 0x9a, 0x41, 0x6f, 0xdc, 0xd1, 0xf4, + 0x46, 0x5e, 0x3b, 0xa0, 0xb3, 0x57, 0xce, 0x42, 0x52, 0xdb, 0x4d, 0x8f, 0x2c, 0xda, 0x6e, 0xdb, + 0xa7, 0x63, 0x00, 0x0e, 0x6f, 0xf6, 0x49, 0xf5, 0x3e, 0xef, 0x53, 0x69, 0x75, 0x50, 0xfc, 0x46, + 0x74, 0x0b, 0xbf, 0xcc, 0x59, 0xcb, 0xaf, 0xef, 0xc7, 0xd1, 0x90, 0xe3, 0x06, 0x95, 0xba, 0xdb, + 0x76, 0xd8, 0x10, 0x0c, 0x96, 0x07, 0x1d, 0x37, 0xb8, 0x1c, 0x3e, 0x9b, 0xc7, 0x92, 0x69, 0x1f, + 0x97, 0x9e, 0xda, 0x7e, 0x90, 0x27, 0x5c, 0x3f, 0x05, 0x97, 0xfc, 0x42, 0x2d, 0xd0, 0x7f, 0x2b, + 0x1a, 0x20, 0xf4, 0x0d, 0xb8, 0x17, 0xf0, 0x64, 0x9e, 0x80, 0xeb, 0xfa, 0x12, 0x43, 0x3d, 0x03, + 0x59, 0x03, 0x99, 0xb2, 0x4e, 0xc3, 0x45, 0x62, 0xaa, 0x1e, 0x48, 0x1b, 0x47, 0x43, 0xa1, 0x3b, + 0x43, 0x5f, 0x82, 0xc0, 0x41, 0xdb, 0x67, 0x85, 0xcc, 0x53, 0x70, 0xc3, 0x47, 0x2b, 0x5e, 0x26, + 0x3c, 0x47, 0x21, 0x87, 0xd0, 0xf7, 0x92, 0xe6, 0x48, 0xb2, 0x26, 0x88, 0xbd, 0x85, 0x86, 0xeb, + 0x24, 0x4e, 0x86, 0xe8, 0x75, 0xd7, 0x44, 0xf5, 0xa8, 0x69, 0x73, 0x22, 0xba, 0x43, 0x0c, 0xf7, + 0x1a, 0xeb, 0x51, 0x43, 0x4c, 0x9e, 0x30, 0x6f, 0x81, 0x99, 0xd3, 0xf9, 0x1d, 0x74, 0x3a, 0x82, + 0xb6, 0x78, 0xd1, 0xb7, 0x28, 0xb5, 0x84, 0xb9, 0x24, 0x6b, 0xca, 0xd8, 0x13, 0xeb, 0x95, 0x6a, + 0xbe, 0x79, 0x17, 0x52, 0x09, 0xe6, 0x08, 0xcf, 0x86, 0xbe, 0x5d, 0x75, 0x3d, 0x72, 0xa9, 0x69, + 0x2d, 0x2b, 0xb5, 0xfe, 0x1a, 0x2c, 0x12, 0x59, 0xb3, 0x71, 0x56, 0x0a, 0xe5, 0x21, 0xc8, 0xb3, + 0x52, 0x68, 0xf1, 0x32, 0x2b, 0x61, 0xbe, 0x03, 0xab, 0x7d, 0x8e, 0x24, 0xf2, 0x73, 0xbb, 0xd0, + 0x33, 0xe3, 0x32, 0xc1, 0xbc, 0x01, 0x47, 0x96, 0xa2, 0xfd, 0xee, 0x15, 0x4e, 0xf4, 0x2a, 0xcf, + 0xe4, 0xec, 0xaa, 0x57, 0x15, 0xe7, 0x5f, 0xa2, 0x57, 0x3b, 0x9a, 0xed, 0x5e, 0xc9, 0xe8, 0x0e, + 0x83, 0x87, 0xc3, 0xe8, 0x57, 0xbf, 0xd3, 0x63, 0x5e, 0x9e, 0xf5, 0x7b, 0x97, 0xdf, 0x61, 0xa8, + 0xc5, 0xc4, 0x09, 0x3b, 0x54, 0x33, 0x45, 0xc2, 0x0e, 0x53, 0x1e, 0x8a, 0x98, 0x0b, 0x10, 0xd2, + 0x61, 0xae, 0x54, 0xaa, 0xf1, 0x15, 0x35, 0xdf, 0xdf, 0x86, 0xd8, 0x8e, 0x5e, 0x52, 0x7c, 0x3b, + 0x19, 0x61, 0x90, 0xdc, 0x4e, 0xb2, 0x4a, 0x11, 0x88, 0x5a, 0xea, 0x32, 0x6e, 0x75, 0x46, 0xe0, + 0x0e, 0x0c, 0xb4, 0x5a, 0x4a, 0x2f, 0x03, 0x30, 0x0f, 0xfe, 0x21, 0xeb, 0x16, 0xb1, 0xed, 0x15, + 0xed, 0xff, 0x07, 0xc2, 0x48, 0x2b, 0x04, 0xf5, 0xd4, 0xfd, 0x16, 0xec, 0x2b, 0xb0, 0x98, 0xfc, + 0x55, 0x50, 0xbe, 0x0c, 0x5b, 0x8b, 0x42, 0x44, 0x4f, 0x6a, 0xdf, 0x07, 0x13, 0xe2, 0x9a, 0xed, + 0x07, 0xc4, 0xb1, 0x9d, 0xf9, 0x0b, 0x2e, 0xa9, 0xd7, 0xed, 0xaa, 0x9d, 0xcf, 0x1b, 0x52, 0xef, + 0x2f, 0x5f, 0xe0, 0xb9, 0x5f, 0xd2, 0x86, 0x41, 0xd7, 0xfb, 0xe8, 0xa5, 0x06, 0xff, 0x5e, 0xa9, + 0xc6, 0x05, 0xe4, 0x49, 0x03, 0xd2, 0xa6, 0xb6, 0x34, 0x24, 0x6f, 0xcd, 0x77, 0x61, 0x9d, 0x71, + 0xcb, 0x28, 0x72, 0x50, 0xc2, 0x43, 0xeb, 0xb2, 0x17, 0x1e, 0xf0, 0x51, 0x1a, 0x60, 0x6f, 0xf8, + 0x7e, 0xcf, 0x80, 0x3c, 0xed, 0x0c, 0x11, 0x80, 0xf4, 0x5d, 0xb4, 0x09, 0xdc, 0x88, 0x3a, 0x7c, + 0x5a, 0x21, 0x2f, 0x82, 0x4b, 0xd2, 0xdb, 0x65, 0xef, 0xa2, 0x83, 0x82, 0xb2, 0x89, 0x24, 0xad, + 0x2e, 0x7b, 0x44, 0x95, 0x0b, 0xf0, 0x5d, 0x03, 0xbc, 0x98, 0x4c, 0x11, 0xbf, 0x1c, 0x3d, 0x52, + 0x49, 0x0d, 0x1f, 0xdf, 0x0b, 0x56, 0xac, 0x43, 0x7e, 0xdf, 0x48, 0xf5, 0xb9, 0x4a, 0xc2, 0x2f, + 0x47, 0x7f, 0x9c, 0x00, 0xea, 0x12, 0xd7, 0x16, 0xae, 0x86, 0xac, 0x79, 0x18, 0xbf, 0x3b, 0x2e, + 0xf5, 0x67, 0x78, 0xba, 0x4f, 0x64, 0x47, 0x7e, 0xcb, 0x40, 0xc7, 0xbb, 0xac, 0x08, 0x80, 0x6b, + 0x68, 0x73, 0x2b, 0x2a, 0x0b, 0xe9, 0x5f, 0xcb, 0x85, 0x3c, 0xd2, 0x4a, 0x49, 0x37, 0x77, 0x83, + 0x9b, 0x4f, 0x29, 0x4a, 0x5c, 0xa3, 0x8b, 0xb6, 0x0f, 0x57, 0x80, 0x1c, 0xc6, 0x97, 0x79, 0x66, + 0x9c, 0xb2, 0x1c, 0x68, 0xfd, 0x10, 0xad, 0x0f, 0xc2, 0x22, 0x2b, 0xa4, 0xf0, 0x70, 0x10, 0xcb, + 0x33, 0x2f, 0x82, 0x4d, 0x96, 0x4c, 0x41, 0x4e, 0x9d, 0x20, 0x39, 0x6e, 0x1c, 0xbe, 0xc5, 0xdd, + 0x42, 0x69, 0x33, 0xff, 0xf7, 0x09, 0xcd, 0x3c, 0xa2, 0x7c, 0x9d, 0x3c, 0x0d, 0x2e, 0x2c, 0xb4, + 0xbd, 0x70, 0xef, 0xa6, 0xca, 0xcd, 0x3e, 0xcb, 0x7d, 0x7d, 0x66, 0x5e, 0x03, 0x8b, 0x41, 0xd7, + 0x08, 0x40, 0xcd, 0xee, 0xb2, 0xa9, 0xff, 0x76, 0xd1, 0x5a, 0xda, 0x1c, 0x7e, 0x8c, 0x06, 0x18, + 0x11, 0x0e, 0xef, 0x10, 0x01, 0x76, 0xf2, 0xec, 0x0a, 0x3b, 0x35, 0x25, 0x98, 0x6c, 0x73, 0xdb, + 0x97, 0x3f, 0xfc, 0xe9, 0x6f, 0xf4, 0x6d, 0xc5, 0x5b, 0x8a, 0x12, 0xae, 0x35, 0xfe, 0x9a, 0x81, + 0x36, 0xce, 0x91, 0x20, 0x91, 0xd2, 0x8f, 0x77, 0x4b, 0xda, 0xec, 0x64, 0x03, 0x14, 0xf6, 0x64, + 0x15, 0x03, 0xf9, 0xfb, 0xbe, 0x1a, 0x3a, 0x86, 0x54, 0x89, 0x57, 0xf0, 0xb8, 0xa8, 0x84, 0x40, + 0x19, 0xc0, 0xcf, 0xd1, 0xe0, 0x1c, 0x61, 0xf5, 0xf1, 0x76, 0x49, 0xeb, 0x49, 0xde, 0x40, 0x61, + 0x87, 0xba, 0x00, 0x08, 0x3e, 0x14, 0x0b, 0xde, 0x89, 0xb7, 0x17, 0x3b, 0xe9, 0xdf, 0x7e, 0xf1, + 0x39, 0x97, 0xbd, 0x84, 0x3f, 0x36, 0xd0, 0xce, 0x39, 0x12, 0x48, 0xd3, 0x88, 0xa3, 0x01, 0xc5, + 0x45, 0x89, 0x54, 0x5d, 0x82, 0x73, 0xe1, 0x48, 0xfe, 0x0a, 0xa0, 0xf6, 0xbd, 0x58, 0xed, 0x37, + 0x71, 0x29, 0x43, 0x6d, 0xe0, 0xa4, 0xfb, 0xc5, 0xe7, 0x62, 0xae, 0xf4, 0x52, 0x31, 0x9d, 0xee, + 0x8c, 0xff, 0xc8, 0x40, 0x5b, 0x22, 0xff, 0x35, 0x91, 0x09, 0x85, 0x0f, 0x4a, 0x54, 0x54, 0x65, + 0xe5, 0x16, 0x0e, 0xe5, 0x2b, 0x0c, 0x58, 0x5e, 0x8f, 0xb1, 0x1c, 0xc3, 0x53, 0x45, 0xf9, 0x5f, + 0x0f, 0x10, 0xf0, 0x3c, 0x4f, 0xae, 0x93, 0x25, 0xfc, 0xc7, 0x06, 0x1a, 0x9d, 0x23, 0x81, 0x34, + 0xf9, 0x5e, 0x3a, 0x18, 0xba, 0x3c, 0x7f, 0xe9, 0x60, 0x68, 0xf3, 0xfa, 0xcd, 0x93, 0x31, 0x80, + 0x43, 0xf8, 0x80, 0x08, 0x20, 0xdd, 0xc3, 0xc2, 0x74, 0xfa, 0x03, 0x03, 0xbd, 0x98, 0xf0, 0xbf, + 0xa3, 0xce, 0x3e, 0x20, 0x51, 0x41, 0x91, 0xd7, 0x5f, 0x38, 0x98, 0xab, 0x2c, 0x68, 0x7a, 0x3e, + 0xd6, 0x74, 0x1a, 0x1f, 0x15, 0x35, 0x8d, 0x92, 0xf2, 0x35, 0x3d, 0xfd, 0x57, 0x06, 0x1a, 0xa7, + 0x1b, 0x81, 0x9c, 0x5b, 0x84, 0xa7, 0xa4, 0xcb, 0x5d, 0x4b, 0x77, 0x2a, 0x4c, 0x77, 0x55, 0x07, + 0x80, 0xcc, 0xc4, 0x40, 0x4e, 0xe0, 0x63, 0xe9, 0xfd, 0x82, 0x65, 0x15, 0x35, 0x5c, 0x5f, 0x87, + 0xe5, 0x2b, 0x06, 0xda, 0x40, 0x77, 0x12, 0x4e, 0x09, 0xc6, 0xaf, 0x4a, 0x77, 0x8b, 0x14, 0x97, + 0xb8, 0xb0, 0x3b, 0xa3, 0x14, 0x68, 0xb8, 0x27, 0xd6, 0x70, 0x1c, 0x8f, 0xa5, 0x57, 0x68, 0x78, + 0x30, 0xd3, 0x28, 0x6b, 0x38, 0x79, 0xb7, 0x26, 0x62, 0x1b, 0x09, 0x12, 0x25, 0x3e, 0x2c, 0x91, + 0xa4, 0x66, 0xe1, 0x16, 0x26, 0xf3, 0x16, 0x07, 0x0d, 0xcf, 0xc5, 0x1a, 0x4e, 0xe1, 0x23, 0x45, + 0xd9, 0x5f, 0xd2, 0x60, 0x3a, 0x16, 0x9f, 0x47, 0x1b, 0x46, 0x62, 0xf2, 0xfe, 0x19, 0x9b, 0x0b, + 0x2a, 0xea, 0xae, 0x74, 0x2e, 0x64, 0x10, 0x89, 0xa5, 0x73, 0x21, 0x8b, 0x1b, 0x6c, 0x1e, 0x8f, + 0x71, 0x1c, 0xc0, 0xfb, 0xa4, 0x38, 0x7c, 0x06, 0x44, 0x58, 0x7c, 0xff, 0x62, 0xa0, 0x1d, 0x73, + 0x24, 0xd0, 0xb2, 0x75, 0xf1, 0x49, 0x89, 0x42, 0x79, 0x08, 0xc5, 0x85, 0x53, 0xdd, 0x57, 0x04, + 0x38, 0x57, 0x63, 0x38, 0xaf, 0xe3, 0x73, 0x9a, 0x61, 0xa9, 0xf8, 0xa4, 0x51, 0x2f, 0x3e, 0x4f, + 0xd1, 0x54, 0x85, 0x31, 0xfa, 0x19, 0xc3, 0xa8, 0xa5, 0xe8, 0x4a, 0x31, 0xe6, 0x61, 0x11, 0x4b, + 0x31, 0xe6, 0x62, 0x03, 0x9b, 0xd7, 0x63, 0x8c, 0x17, 0xf0, 0x8c, 0x1c, 0x23, 0x5c, 0x89, 0x10, + 0x3e, 0x07, 0x75, 0x38, 0xbf, 0xd8, 0x87, 0x76, 0x27, 0xc7, 0x52, 0xc9, 0xb3, 0xc5, 0x67, 0x75, + 0xe3, 0x92, 0x45, 0x21, 0x2e, 0x9c, 0xeb, 0xb1, 0x36, 0xc0, 0x7e, 0x18, 0xc3, 0xbe, 0x81, 0xdf, + 0x12, 0x61, 0xa7, 0xe1, 0x76, 0x90, 0x71, 0x97, 0xf4, 0x5d, 0xf0, 0xa1, 0x81, 0xb6, 0xe9, 0xba, + 0x00, 0x4f, 0x77, 0xa3, 0x3b, 0x07, 0x7c, 0xac, 0xbb, 0x4a, 0x80, 0xf3, 0x4a, 0x8c, 0xf3, 0x1c, + 0x7e, 0xad, 0x7b, 0x9c, 0x31, 0xaa, 0xaf, 0xf1, 0x4d, 0x9a, 0xb3, 0x73, 0x15, 0x9b, 0x74, 0x8a, + 0xf1, 0xab, 0xd8, 0xa4, 0xd3, 0x14, 0x5f, 0xf3, 0x60, 0xac, 0xe8, 0x0e, 0x3c, 0x51, 0xec, 0xfc, + 0xb3, 0x40, 0x49, 0x5d, 0xbe, 0x9f, 0xe8, 0x61, 0x59, 0x62, 0x94, 0xba, 0x87, 0x35, 0xa9, 0x59, + 0xea, 0x1e, 0xd6, 0xe5, 0x5e, 0x99, 0xa7, 0x62, 0xc5, 0x0f, 0xe3, 0x83, 0x12, 0xc5, 0xf9, 0xfd, + 0x9f, 0x9f, 0x3e, 0xf6, 0x7e, 0x6a, 0xa0, 0x57, 0xd3, 0x5b, 0x82, 0x14, 0xcd, 0x6b, 0x59, 0xab, + 0x5b, 0x87, 0xea, 0x6c, 0x6f, 0x95, 0x73, 0x9c, 0xee, 0xe2, 0xfc, 0x51, 0xc2, 0xfc, 0x2e, 0x33, + 0xad, 0xd2, 0x77, 0x9b, 0x52, 0xd3, 0x4a, 0x91, 0xc4, 0x25, 0x35, 0xad, 0x54, 0x59, 0x57, 0xda, + 0xd3, 0x54, 0x50, 0x55, 0x30, 0x49, 0x60, 0x45, 0x2f, 0xe1, 0x1f, 0xb3, 0xd3, 0x54, 0x75, 0x27, + 0x2b, 0x3d, 0x4d, 0x33, 0x92, 0xd0, 0xa4, 0xa7, 0x69, 0x56, 0xf6, 0x98, 0x59, 0x8e, 0x71, 0xcc, + 0xe1, 0x4b, 0x79, 0xfa, 0x5e, 0x00, 0x14, 0x2d, 0xe7, 0x24, 0xb8, 0xaf, 0x1b, 0x68, 0x73, 0xe4, + 0x36, 0x71, 0x96, 0x20, 0xde, 0xa7, 0xf4, 0x7a, 0x52, 0x9c, 0xc4, 0xc2, 0xfe, 0x1c, 0x25, 0x73, + 0xac, 0x68, 0xe6, 0xfd, 0xc4, 0xd6, 0x0c, 0xfe, 0x86, 0x81, 0x70, 0x6c, 0x7b, 0x45, 0x8a, 0xed, + 0x57, 0x1b, 0x52, 0x69, 0xcd, 0x0e, 0xe4, 0x29, 0x9a, 0xc3, 0xd5, 0x84, 0xae, 0x4a, 0xe8, 0xf6, + 0xf7, 0x06, 0x1a, 0xd7, 0xe4, 0x02, 0xe3, 0xe3, 0x32, 0x1f, 0x2b, 0x33, 0x37, 0xb9, 0x70, 0xa2, + 0xdb, 0x6a, 0x39, 0x96, 0x24, 0x78, 0x95, 0x71, 0x72, 0xaf, 0x30, 0x23, 0x22, 0x44, 0xe1, 0x09, + 0xa5, 0xcb, 0x15, 0xc6, 0x72, 0xdd, 0x32, 0xb3, 0x97, 0x0b, 0x27, 0xbb, 0xae, 0x07, 0xa0, 0x66, + 0x63, 0x50, 0x27, 0xf1, 0x71, 0xb9, 0x19, 0x92, 0x85, 0xea, 0xdf, 0x05, 0x97, 0xa8, 0xd3, 0x71, + 0xd6, 0xb8, 0x44, 0x4a, 0xff, 0x79, 0xba, 0xab, 0x3a, 0x00, 0x86, 0xc4, 0x60, 0x1e, 0xe2, 0x07, + 0x72, 0x97, 0x48, 0xee, 0x4e, 0x8b, 0xcc, 0x58, 0x71, 0x27, 0x4d, 0xd1, 0x66, 0xe9, 0x29, 0x38, + 0x16, 0x39, 0xdb, 0x69, 0xa5, 0xf0, 0x51, 0xa5, 0xf3, 0xac, 0xa2, 0xb5, 0x16, 0xa6, 0xba, 0xa9, + 0x92, 0x23, 0x64, 0x00, 0x1e, 0xb7, 0x16, 0x32, 0xfe, 0x85, 0x81, 0xcc, 0x08, 0x85, 0x92, 0xac, + 0x82, 0xcf, 0x28, 0x75, 0xcb, 0xa4, 0xeb, 0x16, 0x5e, 0xeb, 0xa9, 0x2e, 0x00, 0x2c, 0xc5, 0x00, + 0xcf, 0xe3, 0xb3, 0x52, 0x80, 0x16, 0x6f, 0x25, 0x03, 0xea, 0x47, 0x06, 0x1a, 0x55, 0x31, 0x76, + 0xa5, 0xb3, 0x33, 0x83, 0x44, 0x2c, 0x9d, 0x9d, 0x59, 0x94, 0x60, 0xf3, 0x66, 0x0c, 0xe8, 0x12, + 0xbe, 0x90, 0x0a, 0xf2, 0xa8, 0xb9, 0xc2, 0x1a, 0xff, 0xfd, 0x1f, 0x0d, 0x34, 0xa6, 0xe4, 0x08, + 0xe2, 0x69, 0xdd, 0x9e, 0xa0, 0x42, 0x76, 0xac, 0xbb, 0x4a, 0x00, 0xed, 0x56, 0x0c, 0xed, 0x32, + 0xbe, 0xd8, 0x01, 0x4d, 0xc9, 0x4f, 0xd4, 0x60, 0xfb, 0x0b, 0x03, 0x15, 0xe6, 0x48, 0xa0, 0xa0, + 0x05, 0x4b, 0x57, 0x99, 0x9e, 0x84, 0x2c, 0x5d, 0x65, 0x19, 0xac, 0x63, 0xed, 0x2a, 0x4b, 0xe0, + 0x10, 0x06, 0x4f, 0x98, 0x7a, 0x1f, 0xb0, 0xbd, 0x51, 0x45, 0xc2, 0xc6, 0x19, 0x4a, 0xc9, 0x48, + 0xdf, 0xd2, 0xd9, 0x97, 0xc5, 0xf2, 0x36, 0xdf, 0x88, 0x91, 0x1c, 0xc7, 0xd3, 0x6a, 0x24, 0xc2, + 0x58, 0xf9, 0x29, 0xe3, 0xff, 0xe5, 0x38, 0xb1, 0x47, 0x20, 0xd6, 0xe2, 0x49, 0x65, 0xb8, 0x53, + 0x4a, 0x01, 0x2e, 0x14, 0x73, 0x97, 0x07, 0xf5, 0xe7, 0x62, 0xf5, 0xcf, 0xe2, 0x33, 0xb2, 0x08, + 0xa9, 0x17, 0x6d, 0x02, 0x8c, 0xac, 0x2b, 0x9e, 0x55, 0xc0, 0xe6, 0x5e, 0xc2, 0x7f, 0xcb, 0xe6, + 0x95, 0x82, 0x21, 0x2c, 0x9d, 0x57, 0x7a, 0x3a, 0xb3, 0x74, 0x5e, 0x65, 0x10, 0x90, 0xb5, 0xee, + 0x61, 0x82, 0x7b, 0xa7, 0x41, 0xc4, 0x66, 0xdc, 0x12, 0xfe, 0x2f, 0x03, 0x6d, 0x9f, 0x23, 0x81, + 0x8e, 0xf6, 0x2c, 0xb5, 0x2a, 0x72, 0x10, 0xb5, 0xa5, 0x56, 0x45, 0x1e, 0x7e, 0xb5, 0xf9, 0xf9, + 0x18, 0x5e, 0x19, 0xdf, 0x14, 0xe1, 0xb9, 0x0e, 0xa9, 0xd8, 0x4e, 0x25, 0x1f, 0xca, 0xb8, 0xd4, + 0x52, 0xf1, 0x39, 0x8c, 0xf3, 0x12, 0xfe, 0xa6, 0x81, 0x46, 0xd2, 0x34, 0x27, 0xa9, 0x5b, 0xa3, + 0x60, 0x51, 0x49, 0xdd, 0x1a, 0x15, 0x6f, 0xca, 0x2c, 0x52, 0x1c, 0xfb, 0xf1, 0xde, 0x94, 0xc9, + 0xc7, 0x4b, 0x33, 0x4a, 0x55, 0xc2, 0x1e, 0xfa, 0x3b, 0xe6, 0x25, 0x2b, 0x69, 0x1f, 0xd2, 0x9d, + 0x39, 0x8b, 0x68, 0x22, 0xdd, 0x99, 0x33, 0x99, 0x25, 0xe6, 0x85, 0x78, 0x24, 0x4e, 0xe1, 0x13, + 0x92, 0x5b, 0x12, 0x66, 0xdd, 0xc0, 0xfe, 0xc5, 0x98, 0x1c, 0x34, 0x61, 0x36, 0xb9, 0xf2, 0x7f, + 0x68, 0xa0, 0x57, 0x92, 0x80, 0x3a, 0x28, 0x21, 0x58, 0xab, 0x9c, 0x8a, 0x86, 0x52, 0x38, 0xde, + 0x65, 0x2d, 0xc0, 0x74, 0x31, 0xc6, 0x74, 0x1a, 0x9f, 0x54, 0x62, 0xe2, 0x3b, 0x99, 0x02, 0xd4, + 0x77, 0x98, 0x7b, 0x9c, 0xe6, 0x8e, 0x48, 0xe7, 0x91, 0x82, 0x9b, 0x22, 0x9d, 0x47, 0x2a, 0x32, + 0x8a, 0x36, 0x60, 0xc1, 0xd4, 0x82, 0xa4, 0x02, 0xba, 0xf5, 0x26, 0x55, 0xfd, 0x07, 0x36, 0xa1, + 0x94, 0x44, 0x12, 0xe9, 0x84, 0xca, 0x62, 0xb7, 0x48, 0x27, 0x54, 0x26, 0x57, 0x45, 0x6b, 0x96, + 0xf1, 0x1e, 0x4f, 0x92, 0x59, 0x34, 0x47, 0xfc, 0x5f, 0xb2, 0x4b, 0x2b, 0x29, 0xab, 0x44, 0x7a, + 0x69, 0xa5, 0x63, 0xb6, 0x48, 0x2f, 0xad, 0xb4, 0x84, 0x15, 0xed, 0x99, 0xc2, 0xdd, 0x7b, 0x88, + 0x36, 0xf2, 0xba, 0xf2, 0xc8, 0xc5, 0x47, 0xcc, 0x21, 0x90, 0x33, 0x46, 0xf0, 0x91, 0xac, 0x18, + 0x44, 0x9a, 0xd3, 0x52, 0x38, 0xda, 0x45, 0x0d, 0xc0, 0x72, 0x3b, 0xc6, 0x72, 0x05, 0x5f, 0xd6, + 0xc6, 0x2c, 0x5a, 0xbc, 0xb2, 0x32, 0x6a, 0xc1, 0x38, 0x24, 0x74, 0xdd, 0x77, 0x44, 0x64, 0x12, + 0x1c, 0x92, 0xec, 0x88, 0x4c, 0x27, 0x97, 0x25, 0x3b, 0x22, 0x23, 0x21, 0xa9, 0x68, 0x2f, 0x04, + 0x52, 0xe8, 0xda, 0x2d, 0xd7, 0xa9, 0x44, 0xb1, 0x84, 0x04, 0x40, 0x0e, 0xea, 0xaf, 0xc5, 0xc1, + 0x12, 0xb9, 0x24, 0xda, 0xc1, 0x92, 0x52, 0x5a, 0xb4, 0x83, 0x25, 0x27, 0xaa, 0x68, 0xd7, 0x50, + 0x04, 0x27, 0x4d, 0x65, 0x91, 0x4f, 0xbd, 0x9f, 0x18, 0x68, 0x57, 0x2a, 0xc8, 0x27, 0xa3, 0x8a, + 0x48, 0xdd, 0xb8, 0x9c, 0x24, 0x16, 0xa9, 0x1b, 0x97, 0x97, 0x9b, 0xd2, 0x4d, 0x50, 0x90, 0x83, + 0x4a, 0x6e, 0x7d, 0x3f, 0x61, 0x46, 0xa7, 0x2c, 0x66, 0x27, 0x35, 0x3a, 0x35, 0x9c, 0x15, 0xa9, + 0xd1, 0xa9, 0x63, 0x92, 0x98, 0x56, 0xac, 0xfb, 0x3d, 0x7c, 0x27, 0x5f, 0x20, 0x50, 0xd8, 0xe2, + 0xb2, 0xe3, 0x82, 0xdf, 0x63, 0x77, 0x9f, 0x12, 0x5a, 0x88, 0xf4, 0xee, 0x53, 0xcd, 0x3e, 0x91, + 0xde, 0x7d, 0x6a, 0xd8, 0x26, 0xe6, 0x6b, 0x31, 0xb8, 0x23, 0x78, 0x32, 0x95, 0xf4, 0x02, 0xf5, + 0x20, 0xe7, 0x84, 0xd1, 0x49, 0x92, 0xc3, 0xf2, 0xbe, 0x81, 0x86, 0x13, 0x14, 0x10, 0xac, 0xbc, + 0x6c, 0x10, 0x88, 0x25, 0xd2, 0x5c, 0x18, 0x09, 0x93, 0xc4, 0x9c, 0x8a, 0x75, 0xdb, 0x8b, 0x77, + 0xcb, 0x8e, 0x4a, 0x46, 0x2d, 0x49, 0xaa, 0xf4, 0x0d, 0x03, 0x6d, 0x10, 0x98, 0x22, 0x78, 0xaf, + 0xd4, 0xca, 0xeb, 0xe4, 0xa0, 0x14, 0xf6, 0x65, 0x17, 0xcc, 0x71, 0xd1, 0x6a, 0xf3, 0xee, 0x62, + 0x9c, 0x94, 0xa4, 0x6e, 0xbf, 0xcb, 0xa2, 0xac, 0x29, 0x4e, 0x89, 0x34, 0xca, 0x2a, 0x67, 0xac, + 0x14, 0x0e, 0xe4, 0x29, 0x9a, 0x23, 0x19, 0x83, 0xe9, 0x94, 0x60, 0xb0, 0x24, 0xd5, 0xfc, 0x26, + 0x33, 0x89, 0xd2, 0x3c, 0x13, 0x2c, 0x0f, 0xf1, 0x4a, 0xc9, 0x2a, 0x52, 0x93, 0x48, 0x45, 0x5c, + 0xc9, 0x88, 0x07, 0x8b, 0x8c, 0x16, 0x3f, 0x5c, 0x2b, 0xb8, 0x93, 0x59, 0x82, 0x65, 0xa9, 0x36, + 0x4a, 0x5e, 0x4b, 0xe1, 0x70, 0xce, 0xd2, 0x39, 0x82, 0xbe, 0xdc, 0xef, 0xa4, 0xf9, 0xd9, 0x15, + 0xd2, 0xb4, 0x84, 0xe5, 0x1e, 0x79, 0x2b, 0xdf, 0x37, 0xd0, 0x4b, 0x52, 0x8a, 0x89, 0xd4, 0xc6, + 0xd1, 0x91, 0x5d, 0xa4, 0x36, 0x8e, 0x96, 0xbd, 0xa2, 0xb5, 0x71, 0x12, 0x2e, 0x98, 0x1c, 0x42, + 0xc2, 0xfb, 0xe2, 0x9d, 0x9f, 0x22, 0xa0, 0xa8, 0x3a, 0x5f, 0x4e, 0x7f, 0x51, 0x75, 0xbe, 0x82, + 0xd5, 0xa2, 0xed, 0xfc, 0x28, 0x0f, 0x40, 0xaa, 0x79, 0xb4, 0xbf, 0xfe, 0x13, 0x33, 0x9d, 0x95, + 0x2c, 0x14, 0x79, 0x94, 0x2c, 0x83, 0x1a, 0x23, 0x8f, 0x92, 0x65, 0x11, 0x5d, 0xf4, 0x51, 0xb2, + 0xe8, 0x4f, 0xd7, 0xb0, 0x6c, 0xff, 0x4a, 0x3b, 0xac, 0xcf, 0xfe, 0x2c, 0x8d, 0xc6, 0x84, 0xfe, + 0x57, 0xe6, 0xfd, 0xeb, 0x38, 0x2a, 0x52, 0xef, 0x3f, 0x07, 0x7d, 0x46, 0xea, 0xfd, 0xe7, 0x21, + 0xc3, 0x98, 0x77, 0x63, 0x9c, 0x57, 0xf1, 0x15, 0xe9, 0x45, 0x49, 0x07, 0x5c, 0x2b, 0xc8, 0xc4, + 0xfa, 0x23, 0x66, 0x8d, 0xaa, 0xe8, 0x2c, 0x58, 0x17, 0x87, 0x51, 0x0d, 0xe4, 0x74, 0x57, 0x75, + 0x72, 0x04, 0x72, 0xf9, 0x92, 0xe9, 0x6e, 0x18, 0x7f, 0x66, 0xa0, 0x89, 0x68, 0x18, 0xa5, 0x54, + 0x17, 0xe9, 0x65, 0x57, 0x36, 0x07, 0xa7, 0x70, 0xa2, 0xdb, 0x6a, 0x80, 0xf1, 0x4e, 0x8c, 0xb1, + 0x84, 0xe7, 0xa4, 0x63, 0x98, 0x86, 0x9a, 0x63, 0x08, 0xff, 0x86, 0x79, 0x7c, 0x52, 0x56, 0x8c, + 0x74, 0x37, 0xd4, 0x51, 0x74, 0xa4, 0xbb, 0xa1, 0x96, 0x70, 0x63, 0xbe, 0x15, 0xa3, 0x9a, 0xc5, + 0x6f, 0xa8, 0xf2, 0xa4, 0x72, 0xc3, 0xf9, 0x73, 0x66, 0x9c, 0xca, 0xc8, 0x2e, 0x52, 0xe3, 0x54, + 0xc3, 0xdc, 0x91, 0x1a, 0xa7, 0x3a, 0x42, 0x8e, 0x79, 0x29, 0xc6, 0x72, 0x06, 0x9f, 0x4a, 0xdd, + 0x8f, 0xc8, 0x98, 0x3a, 0xf2, 0x0d, 0xf2, 0xe7, 0x2c, 0x3f, 0x4a, 0x4b, 0x8d, 0x91, 0xe6, 0x47, + 0xe5, 0xe1, 0xeb, 0x48, 0xf3, 0xa3, 0x72, 0xb1, 0x70, 0xb4, 0x8b, 0x2c, 0x32, 0x4f, 0xe3, 0x1b, + 0x4a, 0x81, 0x8d, 0x21, 0x47, 0xfa, 0x1f, 0xec, 0xc2, 0x2b, 0x83, 0xf4, 0x82, 0x4f, 0x6b, 0x54, + 0xd6, 0x73, 0x71, 0x0a, 0x67, 0x7a, 0xa9, 0x9a, 0xe3, 0x70, 0x88, 0xf0, 0xc6, 0xdb, 0xa6, 0x0e, + 0x31, 0x0f, 0x0d, 0xff, 0x1b, 0x4b, 0xd5, 0xd6, 0x93, 0x5a, 0xb0, 0x6e, 0x88, 0xb4, 0x4c, 0x9b, + 0xc2, 0xe9, 0x1e, 0x6a, 0x76, 0x33, 0xba, 0xd1, 0x06, 0x93, 0x07, 0xec, 0x17, 0xfb, 0xd0, 0xc1, + 0x04, 0xd8, 0x2c, 0x6a, 0x0b, 0x9e, 0xd5, 0x28, 0x9f, 0x93, 0x50, 0x53, 0xb8, 0xb0, 0xac, 0x36, + 0x72, 0x5c, 0x05, 0x44, 0x5d, 0xd1, 0xc1, 0xbe, 0xa9, 0x04, 0x2e, 0xf3, 0x3c, 0xa3, 0x1b, 0x1b, + 0x1f, 0xff, 0x29, 0xbb, 0xda, 0x50, 0xd0, 0x62, 0xa4, 0x57, 0x1b, 0x7a, 0xaa, 0x8d, 0xf4, 0x6a, + 0x23, 0x83, 0x75, 0xa3, 0x75, 0x91, 0x92, 0x74, 0x9c, 0x10, 0x41, 0x2d, 0xd6, 0x0e, 0x52, 0xcb, + 0x94, 0x3f, 0xca, 0x26, 0x35, 0xd4, 0xb2, 0x7e, 0x20, 0x4e, 0x6a, 0xa8, 0x65, 0xfe, 0xee, 0x9b, + 0x36, 0x52, 0xeb, 0x58, 0xf4, 0xc7, 0x10, 0xe4, 0x77, 0x4e, 0x3c, 0xb5, 0x2c, 0xf3, 0x97, 0xd6, + 0xa4, 0xa9, 0x65, 0x79, 0x7f, 0x2d, 0x4e, 0x9a, 0x5a, 0x96, 0xfb, 0xc7, 0xdd, 0xb4, 0x56, 0x75, + 0xea, 0xd7, 0xd6, 0x54, 0x30, 0xff, 0xd3, 0x40, 0x7b, 0xd3, 0x30, 0x55, 0x97, 0x4f, 0xe7, 0xb3, + 0x94, 0xcd, 0xb8, 0x84, 0x7a, 0xbd, 0xe7, 0xfa, 0x39, 0xae, 0x0b, 0xd2, 0x78, 0x95, 0xb7, 0x52, + 0x22, 0x64, 0xfd, 0x8f, 0xa7, 0x69, 0x20, 0xe7, 0xfa, 0x31, 0x38, 0x0d, 0xe4, 0x7c, 0xbf, 0xda, + 0x96, 0x0b, 0x72, 0x02, 0xaa, 0x62, 0x94, 0xff, 0xc7, 0x40, 0x07, 0x24, 0x90, 0x55, 0x03, 0x3d, + 0x93, 0x43, 0xeb, 0x8c, 0xb1, 0x9e, 0x5d, 0x4e, 0x13, 0x39, 0x3c, 0x5e, 0x09, 0x76, 0xf5, 0x88, + 0xff, 0x09, 0x0b, 0xcd, 0x49, 0xa8, 0x79, 0xd2, 0xd0, 0x9c, 0x9a, 0x09, 0x28, 0x0d, 0xcd, 0x69, + 0x18, 0x7f, 0xda, 0xbb, 0x7a, 0x16, 0x5c, 0x82, 0x90, 0x48, 0xc2, 0x48, 0x15, 0x2d, 0xd3, 0x0f, + 0xd9, 0x8d, 0x9d, 0x9a, 0x72, 0x27, 0xbd, 0xb1, 0xcb, 0xa4, 0xf9, 0x49, 0x6f, 0xec, 0xb2, 0x79, + 0x7d, 0x5a, 0x5b, 0x95, 0x72, 0xdb, 0xaa, 0x50, 0x1f, 0xfe, 0x0e, 0xeb, 0xa3, 0x67, 0x11, 0xdb, + 0x2d, 0x71, 0xd8, 0xcf, 0x96, 0x3f, 0xf8, 0x64, 0xc2, 0xf8, 0xc1, 0x27, 0x13, 0xc6, 0x3f, 0x7f, + 0x32, 0x61, 0xbc, 0xff, 0xe9, 0xc4, 0x0b, 0x3f, 0xf8, 0x74, 0xe2, 0x85, 0x1f, 0x7d, 0x3a, 0xf1, + 0xc2, 0xc3, 0x53, 0x39, 0xc9, 0x9c, 0x4f, 0x13, 0xb2, 0xe9, 0x0f, 0x98, 0x3e, 0x1a, 0xa0, 0x3f, + 0x39, 0x3a, 0xfd, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa6, 0xf2, 0x60, 0x0b, 0x26, 0x76, 0x00, + 0x00, } func (this *QueryTotalStakeResponse) Equal(that interface{}) bool { @@ -7698,9 +7698,9 @@ type QueryClient interface { IsTopicActive(ctx context.Context, in *QueryIsTopicActiveRequest, opts ...grpc.CallOption) (*QueryIsTopicActiveResponse, error) GetTopicFeeRevenue(ctx context.Context, in *QueryTopicFeeRevenueRequest, opts ...grpc.CallOption) (*QueryTopicFeeRevenueResponse, error) GetRewardableTopics(ctx context.Context, in *QueryRewardableTopicsRequest, opts ...grpc.CallOption) (*QueryRewardableTopicsResponse, error) - GetLatestInfererScore(ctx context.Context, in *QueryLatestInfererScoreRequest, opts ...grpc.CallOption) (*QueryLatestInfererScoreResponse, error) - GetLatestForecasterScore(ctx context.Context, in *QueryLatestForecasterScoreRequest, opts ...grpc.CallOption) (*QueryLatestForecasterScoreResponse, error) - GetLatestReputerScore(ctx context.Context, in *QueryLatestReputerScoreRequest, opts ...grpc.CallOption) (*QueryLatestReputerScoreResponse, error) + GetInfererScoreEma(ctx context.Context, in *QueryGetInfererScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetInfererScoreEmaResponse, error) + GetForecasterScoreEma(ctx context.Context, in *QueryGetForecasterScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetForecasterScoreEmaResponse, error) + GetReputerScoreEma(ctx context.Context, in *QueryGetReputerScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetReputerScoreEmaResponse, error) GetInferenceScoresUntilBlock(ctx context.Context, in *QueryInferenceScoresUntilBlockRequest, opts ...grpc.CallOption) (*QueryInferenceScoresUntilBlockResponse, error) GetWorkerInferenceScoresAtBlock(ctx context.Context, in *QueryWorkerInferenceScoresAtBlockRequest, opts ...grpc.CallOption) (*QueryWorkerInferenceScoresAtBlockResponse, error) GetForecastScoresUntilBlock(ctx context.Context, in *QueryForecastScoresUntilBlockRequest, opts ...grpc.CallOption) (*QueryForecastScoresUntilBlockResponse, error) @@ -8179,27 +8179,27 @@ func (c *queryClient) GetRewardableTopics(ctx context.Context, in *QueryRewardab return out, nil } -func (c *queryClient) GetLatestInfererScore(ctx context.Context, in *QueryLatestInfererScoreRequest, opts ...grpc.CallOption) (*QueryLatestInfererScoreResponse, error) { - out := new(QueryLatestInfererScoreResponse) - err := c.cc.Invoke(ctx, "/emissions.v3.Query/GetLatestInfererScore", in, out, opts...) +func (c *queryClient) GetInfererScoreEma(ctx context.Context, in *QueryGetInfererScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetInfererScoreEmaResponse, error) { + out := new(QueryGetInfererScoreEmaResponse) + err := c.cc.Invoke(ctx, "/emissions.v3.Query/GetInfererScoreEma", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *queryClient) GetLatestForecasterScore(ctx context.Context, in *QueryLatestForecasterScoreRequest, opts ...grpc.CallOption) (*QueryLatestForecasterScoreResponse, error) { - out := new(QueryLatestForecasterScoreResponse) - err := c.cc.Invoke(ctx, "/emissions.v3.Query/GetLatestForecasterScore", in, out, opts...) +func (c *queryClient) GetForecasterScoreEma(ctx context.Context, in *QueryGetForecasterScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetForecasterScoreEmaResponse, error) { + out := new(QueryGetForecasterScoreEmaResponse) + err := c.cc.Invoke(ctx, "/emissions.v3.Query/GetForecasterScoreEma", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *queryClient) GetLatestReputerScore(ctx context.Context, in *QueryLatestReputerScoreRequest, opts ...grpc.CallOption) (*QueryLatestReputerScoreResponse, error) { - out := new(QueryLatestReputerScoreResponse) - err := c.cc.Invoke(ctx, "/emissions.v3.Query/GetLatestReputerScore", in, out, opts...) +func (c *queryClient) GetReputerScoreEma(ctx context.Context, in *QueryGetReputerScoreEmaRequest, opts ...grpc.CallOption) (*QueryGetReputerScoreEmaResponse, error) { + out := new(QueryGetReputerScoreEmaResponse) + err := c.cc.Invoke(ctx, "/emissions.v3.Query/GetReputerScoreEma", in, out, opts...) if err != nil { return nil, err } @@ -8421,9 +8421,9 @@ type QueryServer interface { IsTopicActive(context.Context, *QueryIsTopicActiveRequest) (*QueryIsTopicActiveResponse, error) GetTopicFeeRevenue(context.Context, *QueryTopicFeeRevenueRequest) (*QueryTopicFeeRevenueResponse, error) GetRewardableTopics(context.Context, *QueryRewardableTopicsRequest) (*QueryRewardableTopicsResponse, error) - GetLatestInfererScore(context.Context, *QueryLatestInfererScoreRequest) (*QueryLatestInfererScoreResponse, error) - GetLatestForecasterScore(context.Context, *QueryLatestForecasterScoreRequest) (*QueryLatestForecasterScoreResponse, error) - GetLatestReputerScore(context.Context, *QueryLatestReputerScoreRequest) (*QueryLatestReputerScoreResponse, error) + GetInfererScoreEma(context.Context, *QueryGetInfererScoreEmaRequest) (*QueryGetInfererScoreEmaResponse, error) + GetForecasterScoreEma(context.Context, *QueryGetForecasterScoreEmaRequest) (*QueryGetForecasterScoreEmaResponse, error) + GetReputerScoreEma(context.Context, *QueryGetReputerScoreEmaRequest) (*QueryGetReputerScoreEmaResponse, error) GetInferenceScoresUntilBlock(context.Context, *QueryInferenceScoresUntilBlockRequest) (*QueryInferenceScoresUntilBlockResponse, error) GetWorkerInferenceScoresAtBlock(context.Context, *QueryWorkerInferenceScoresAtBlockRequest) (*QueryWorkerInferenceScoresAtBlockResponse, error) GetForecastScoresUntilBlock(context.Context, *QueryForecastScoresUntilBlockRequest) (*QueryForecastScoresUntilBlockResponse, error) @@ -8598,14 +8598,14 @@ func (*UnimplementedQueryServer) GetTopicFeeRevenue(ctx context.Context, req *Qu func (*UnimplementedQueryServer) GetRewardableTopics(ctx context.Context, req *QueryRewardableTopicsRequest) (*QueryRewardableTopicsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetRewardableTopics not implemented") } -func (*UnimplementedQueryServer) GetLatestInfererScore(ctx context.Context, req *QueryLatestInfererScoreRequest) (*QueryLatestInfererScoreResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetLatestInfererScore not implemented") +func (*UnimplementedQueryServer) GetInfererScoreEma(ctx context.Context, req *QueryGetInfererScoreEmaRequest) (*QueryGetInfererScoreEmaResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInfererScoreEma not implemented") } -func (*UnimplementedQueryServer) GetLatestForecasterScore(ctx context.Context, req *QueryLatestForecasterScoreRequest) (*QueryLatestForecasterScoreResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetLatestForecasterScore not implemented") +func (*UnimplementedQueryServer) GetForecasterScoreEma(ctx context.Context, req *QueryGetForecasterScoreEmaRequest) (*QueryGetForecasterScoreEmaResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetForecasterScoreEma not implemented") } -func (*UnimplementedQueryServer) GetLatestReputerScore(ctx context.Context, req *QueryLatestReputerScoreRequest) (*QueryLatestReputerScoreResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetLatestReputerScore not implemented") +func (*UnimplementedQueryServer) GetReputerScoreEma(ctx context.Context, req *QueryGetReputerScoreEmaRequest) (*QueryGetReputerScoreEmaResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetReputerScoreEma not implemented") } func (*UnimplementedQueryServer) GetInferenceScoresUntilBlock(ctx context.Context, req *QueryInferenceScoresUntilBlockRequest) (*QueryInferenceScoresUntilBlockResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetInferenceScoresUntilBlock not implemented") @@ -9566,56 +9566,56 @@ func _Query_GetRewardableTopics_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } -func _Query_GetLatestInfererScore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryLatestInfererScoreRequest) +func _Query_GetInfererScoreEma_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGetInfererScoreEmaRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).GetLatestInfererScore(ctx, in) + return srv.(QueryServer).GetInfererScoreEma(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/emissions.v3.Query/GetLatestInfererScore", + FullMethod: "/emissions.v3.Query/GetInfererScoreEma", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).GetLatestInfererScore(ctx, req.(*QueryLatestInfererScoreRequest)) + return srv.(QueryServer).GetInfererScoreEma(ctx, req.(*QueryGetInfererScoreEmaRequest)) } return interceptor(ctx, in, info, handler) } -func _Query_GetLatestForecasterScore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryLatestForecasterScoreRequest) +func _Query_GetForecasterScoreEma_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGetForecasterScoreEmaRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).GetLatestForecasterScore(ctx, in) + return srv.(QueryServer).GetForecasterScoreEma(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/emissions.v3.Query/GetLatestForecasterScore", + FullMethod: "/emissions.v3.Query/GetForecasterScoreEma", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).GetLatestForecasterScore(ctx, req.(*QueryLatestForecasterScoreRequest)) + return srv.(QueryServer).GetForecasterScoreEma(ctx, req.(*QueryGetForecasterScoreEmaRequest)) } return interceptor(ctx, in, info, handler) } -func _Query_GetLatestReputerScore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryLatestReputerScoreRequest) +func _Query_GetReputerScoreEma_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryGetReputerScoreEmaRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).GetLatestReputerScore(ctx, in) + return srv.(QueryServer).GetReputerScoreEma(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/emissions.v3.Query/GetLatestReputerScore", + FullMethod: "/emissions.v3.Query/GetReputerScoreEma", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).GetLatestReputerScore(ctx, req.(*QueryLatestReputerScoreRequest)) + return srv.(QueryServer).GetReputerScoreEma(ctx, req.(*QueryGetReputerScoreEmaRequest)) } return interceptor(ctx, in, info, handler) } @@ -10149,16 +10149,16 @@ var _Query_serviceDesc = grpc.ServiceDesc{ Handler: _Query_GetRewardableTopics_Handler, }, { - MethodName: "GetLatestInfererScore", - Handler: _Query_GetLatestInfererScore_Handler, + MethodName: "GetInfererScoreEma", + Handler: _Query_GetInfererScoreEma_Handler, }, { - MethodName: "GetLatestForecasterScore", - Handler: _Query_GetLatestForecasterScore_Handler, + MethodName: "GetForecasterScoreEma", + Handler: _Query_GetForecasterScoreEma_Handler, }, { - MethodName: "GetLatestReputerScore", - Handler: _Query_GetLatestReputerScore_Handler, + MethodName: "GetReputerScoreEma", + Handler: _Query_GetReputerScoreEma_Handler, }, { MethodName: "GetInferenceScoresUntilBlock", @@ -14199,7 +14199,7 @@ func (m *QueryRewardableTopicsResponse) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *QueryLatestInfererScoreRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryGetInfererScoreEmaRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14209,12 +14209,12 @@ func (m *QueryLatestInfererScoreRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryLatestInfererScoreRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryGetInfererScoreEmaRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryLatestInfererScoreRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryGetInfererScoreEmaRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -14234,7 +14234,7 @@ func (m *QueryLatestInfererScoreRequest) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *QueryLatestInfererScoreResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryGetInfererScoreEmaResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14244,12 +14244,12 @@ func (m *QueryLatestInfererScoreResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryLatestInfererScoreResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryGetInfererScoreEmaResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryLatestInfererScoreResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryGetInfererScoreEmaResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -14269,7 +14269,7 @@ func (m *QueryLatestInfererScoreResponse) MarshalToSizedBuffer(dAtA []byte) (int return len(dAtA) - i, nil } -func (m *QueryLatestForecasterScoreRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryGetForecasterScoreEmaRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14279,12 +14279,12 @@ func (m *QueryLatestForecasterScoreRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryLatestForecasterScoreRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryGetForecasterScoreEmaRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryLatestForecasterScoreRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryGetForecasterScoreEmaRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -14304,7 +14304,7 @@ func (m *QueryLatestForecasterScoreRequest) MarshalToSizedBuffer(dAtA []byte) (i return len(dAtA) - i, nil } -func (m *QueryLatestForecasterScoreResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryGetForecasterScoreEmaResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14314,12 +14314,12 @@ func (m *QueryLatestForecasterScoreResponse) Marshal() (dAtA []byte, err error) return dAtA[:n], nil } -func (m *QueryLatestForecasterScoreResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryGetForecasterScoreEmaResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryLatestForecasterScoreResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryGetForecasterScoreEmaResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -14339,7 +14339,7 @@ func (m *QueryLatestForecasterScoreResponse) MarshalToSizedBuffer(dAtA []byte) ( return len(dAtA) - i, nil } -func (m *QueryLatestReputerScoreRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryGetReputerScoreEmaRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14349,12 +14349,12 @@ func (m *QueryLatestReputerScoreRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryLatestReputerScoreRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryGetReputerScoreEmaRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryLatestReputerScoreRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryGetReputerScoreEmaRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -14374,7 +14374,7 @@ func (m *QueryLatestReputerScoreRequest) MarshalToSizedBuffer(dAtA []byte) (int, return len(dAtA) - i, nil } -func (m *QueryLatestReputerScoreResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryGetReputerScoreEmaResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -14384,12 +14384,12 @@ func (m *QueryLatestReputerScoreResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryLatestReputerScoreResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryGetReputerScoreEmaResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryLatestReputerScoreResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryGetReputerScoreEmaResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -16933,7 +16933,7 @@ func (m *QueryRewardableTopicsResponse) Size() (n int) { return n } -func (m *QueryLatestInfererScoreRequest) Size() (n int) { +func (m *QueryGetInfererScoreEmaRequest) Size() (n int) { if m == nil { return 0 } @@ -16949,7 +16949,7 @@ func (m *QueryLatestInfererScoreRequest) Size() (n int) { return n } -func (m *QueryLatestInfererScoreResponse) Size() (n int) { +func (m *QueryGetInfererScoreEmaResponse) Size() (n int) { if m == nil { return 0 } @@ -16962,7 +16962,7 @@ func (m *QueryLatestInfererScoreResponse) Size() (n int) { return n } -func (m *QueryLatestForecasterScoreRequest) Size() (n int) { +func (m *QueryGetForecasterScoreEmaRequest) Size() (n int) { if m == nil { return 0 } @@ -16978,7 +16978,7 @@ func (m *QueryLatestForecasterScoreRequest) Size() (n int) { return n } -func (m *QueryLatestForecasterScoreResponse) Size() (n int) { +func (m *QueryGetForecasterScoreEmaResponse) Size() (n int) { if m == nil { return 0 } @@ -16991,7 +16991,7 @@ func (m *QueryLatestForecasterScoreResponse) Size() (n int) { return n } -func (m *QueryLatestReputerScoreRequest) Size() (n int) { +func (m *QueryGetReputerScoreEmaRequest) Size() (n int) { if m == nil { return 0 } @@ -17007,7 +17007,7 @@ func (m *QueryLatestReputerScoreRequest) Size() (n int) { return n } -func (m *QueryLatestReputerScoreResponse) Size() (n int) { +func (m *QueryGetReputerScoreEmaResponse) Size() (n int) { if m == nil { return 0 } @@ -27706,7 +27706,7 @@ func (m *QueryRewardableTopicsResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryLatestInfererScoreRequest) Unmarshal(dAtA []byte) error { +func (m *QueryGetInfererScoreEmaRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27729,10 +27729,10 @@ func (m *QueryLatestInfererScoreRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLatestInfererScoreRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryGetInfererScoreEmaRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLatestInfererScoreRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGetInfererScoreEmaRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -27807,7 +27807,7 @@ func (m *QueryLatestInfererScoreRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryLatestInfererScoreResponse) Unmarshal(dAtA []byte) error { +func (m *QueryGetInfererScoreEmaResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27830,10 +27830,10 @@ func (m *QueryLatestInfererScoreResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLatestInfererScoreResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryGetInfererScoreEmaResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLatestInfererScoreResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGetInfererScoreEmaResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -27893,7 +27893,7 @@ func (m *QueryLatestInfererScoreResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryLatestForecasterScoreRequest) Unmarshal(dAtA []byte) error { +func (m *QueryGetForecasterScoreEmaRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -27916,10 +27916,10 @@ func (m *QueryLatestForecasterScoreRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLatestForecasterScoreRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryGetForecasterScoreEmaRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLatestForecasterScoreRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGetForecasterScoreEmaRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -27994,7 +27994,7 @@ func (m *QueryLatestForecasterScoreRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryLatestForecasterScoreResponse) Unmarshal(dAtA []byte) error { +func (m *QueryGetForecasterScoreEmaResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28017,10 +28017,10 @@ func (m *QueryLatestForecasterScoreResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLatestForecasterScoreResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryGetForecasterScoreEmaResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLatestForecasterScoreResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGetForecasterScoreEmaResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -28080,7 +28080,7 @@ func (m *QueryLatestForecasterScoreResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryLatestReputerScoreRequest) Unmarshal(dAtA []byte) error { +func (m *QueryGetReputerScoreEmaRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28103,10 +28103,10 @@ func (m *QueryLatestReputerScoreRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLatestReputerScoreRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryGetReputerScoreEmaRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLatestReputerScoreRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGetReputerScoreEmaRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -28181,7 +28181,7 @@ func (m *QueryLatestReputerScoreRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryLatestReputerScoreResponse) Unmarshal(dAtA []byte) error { +func (m *QueryGetReputerScoreEmaResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -28204,10 +28204,10 @@ func (m *QueryLatestReputerScoreResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryLatestReputerScoreResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryGetReputerScoreEmaResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryLatestReputerScoreResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryGetReputerScoreEmaResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: diff --git a/x/emissions/types/query.pb.gw.go b/x/emissions/types/query.pb.gw.go index 0bcee7910..72396c249 100644 --- a/x/emissions/types/query.pb.gw.go +++ b/x/emissions/types/query.pb.gw.go @@ -3311,8 +3311,8 @@ func local_request_Query_GetRewardableTopics_0(ctx context.Context, marshaler ru } -func request_Query_GetLatestInfererScore_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLatestInfererScoreRequest +func request_Query_GetInfererScoreEma_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetInfererScoreEmaRequest var metadata runtime.ServerMetadata var ( @@ -3344,13 +3344,13 @@ func request_Query_GetLatestInfererScore_0(ctx context.Context, marshaler runtim return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "inferer", err) } - msg, err := client.GetLatestInfererScore(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetInfererScoreEma(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_Query_GetLatestInfererScore_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLatestInfererScoreRequest +func local_request_Query_GetInfererScoreEma_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetInfererScoreEmaRequest var metadata runtime.ServerMetadata var ( @@ -3382,13 +3382,13 @@ func local_request_Query_GetLatestInfererScore_0(ctx context.Context, marshaler return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "inferer", err) } - msg, err := server.GetLatestInfererScore(ctx, &protoReq) + msg, err := server.GetInfererScoreEma(ctx, &protoReq) return msg, metadata, err } -func request_Query_GetLatestForecasterScore_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLatestForecasterScoreRequest +func request_Query_GetForecasterScoreEma_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetForecasterScoreEmaRequest var metadata runtime.ServerMetadata var ( @@ -3420,13 +3420,13 @@ func request_Query_GetLatestForecasterScore_0(ctx context.Context, marshaler run return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "forecaster", err) } - msg, err := client.GetLatestForecasterScore(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetForecasterScoreEma(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_Query_GetLatestForecasterScore_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLatestForecasterScoreRequest +func local_request_Query_GetForecasterScoreEma_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetForecasterScoreEmaRequest var metadata runtime.ServerMetadata var ( @@ -3458,13 +3458,13 @@ func local_request_Query_GetLatestForecasterScore_0(ctx context.Context, marshal return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "forecaster", err) } - msg, err := server.GetLatestForecasterScore(ctx, &protoReq) + msg, err := server.GetForecasterScoreEma(ctx, &protoReq) return msg, metadata, err } -func request_Query_GetLatestReputerScore_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLatestReputerScoreRequest +func request_Query_GetReputerScoreEma_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetReputerScoreEmaRequest var metadata runtime.ServerMetadata var ( @@ -3496,13 +3496,13 @@ func request_Query_GetLatestReputerScore_0(ctx context.Context, marshaler runtim return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "reputer", err) } - msg, err := client.GetLatestReputerScore(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetReputerScoreEma(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_Query_GetLatestReputerScore_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryLatestReputerScoreRequest +func local_request_Query_GetReputerScoreEma_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryGetReputerScoreEmaRequest var metadata runtime.ServerMetadata var ( @@ -3534,7 +3534,7 @@ func local_request_Query_GetLatestReputerScore_0(ctx context.Context, marshaler return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "reputer", err) } - msg, err := server.GetLatestReputerScore(ctx, &protoReq) + msg, err := server.GetReputerScoreEma(ctx, &protoReq) return msg, metadata, err } @@ -5703,7 +5703,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) - mux.Handle("GET", pattern_Query_GetLatestInfererScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_GetInfererScoreEma_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -5714,7 +5714,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_Query_GetLatestInfererScore_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_Query_GetInfererScoreEma_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -5722,11 +5722,11 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } - forward_Query_GetLatestInfererScore_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_GetInfererScoreEma_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_Query_GetLatestForecasterScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_GetForecasterScoreEma_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -5737,7 +5737,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_Query_GetLatestForecasterScore_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_Query_GetForecasterScoreEma_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -5745,11 +5745,11 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } - forward_Query_GetLatestForecasterScore_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_GetForecasterScoreEma_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_Query_GetLatestReputerScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_GetReputerScoreEma_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -5760,7 +5760,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_Query_GetLatestReputerScore_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_Query_GetReputerScoreEma_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -5768,7 +5768,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } - forward_Query_GetLatestReputerScore_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_GetReputerScoreEma_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -7227,7 +7227,7 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) - mux.Handle("GET", pattern_Query_GetLatestInfererScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_GetInfererScoreEma_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -7236,18 +7236,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_Query_GetLatestInfererScore_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_Query_GetInfererScoreEma_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_Query_GetLatestInfererScore_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_GetInfererScoreEma_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_Query_GetLatestForecasterScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_GetForecasterScoreEma_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -7256,18 +7256,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_Query_GetLatestForecasterScore_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_Query_GetForecasterScoreEma_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_Query_GetLatestForecasterScore_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_GetForecasterScoreEma_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_Query_GetLatestReputerScore_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_GetReputerScoreEma_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) @@ -7276,14 +7276,14 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_Query_GetLatestReputerScore_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_Query_GetReputerScoreEma_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_Query_GetLatestReputerScore_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_GetReputerScoreEma_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -7751,11 +7751,11 @@ var ( pattern_Query_GetRewardableTopics_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"emissions", "v3", "rewardable_topics"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_GetLatestInfererScore_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"emissions", "v3", "latest_inferer_score", "topic_id", "inferer"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_GetInfererScoreEma_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"emissions", "v3", "inferer_score_ema", "topic_id", "inferer"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_GetLatestForecasterScore_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"emissions", "v3", "latest_forecaster_score", "topic_id", "forecaster"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_GetForecasterScoreEma_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"emissions", "v3", "forecaster_score_ema", "topic_id", "forecaster"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_GetLatestReputerScore_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"emissions", "v3", "latest_reputer_score", "topic_id", "reputer"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_GetReputerScoreEma_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"emissions", "v3", "reputer_score_ema", "topic_id", "reputer"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_GetInferenceScoresUntilBlock_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3, 1, 0, 4, 1, 5, 4}, []string{"emissions", "v3", "inference_scores_until_block", "topic_id", "block_height"}, "", runtime.AssumeColonVerbOpt(false))) @@ -7895,11 +7895,11 @@ var ( forward_Query_GetRewardableTopics_0 = runtime.ForwardResponseMessage - forward_Query_GetLatestInfererScore_0 = runtime.ForwardResponseMessage + forward_Query_GetInfererScoreEma_0 = runtime.ForwardResponseMessage - forward_Query_GetLatestForecasterScore_0 = runtime.ForwardResponseMessage + forward_Query_GetForecasterScoreEma_0 = runtime.ForwardResponseMessage - forward_Query_GetLatestReputerScore_0 = runtime.ForwardResponseMessage + forward_Query_GetReputerScoreEma_0 = runtime.ForwardResponseMessage forward_Query_GetInferenceScoresUntilBlock_0 = runtime.ForwardResponseMessage diff --git a/x/emissions/types/topic.pb.go b/x/emissions/types/topic.pb.go index e7109ee74..4c19259af 100644 --- a/x/emissions/types/topic.pb.go +++ b/x/emissions/types/topic.pb.go @@ -38,6 +38,12 @@ type Topic struct { Epsilon github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,15,opt,name=epsilon,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon"` InitialRegret github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,16,opt,name=initial_regret,json=initialRegret,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"initial_regret"` WorkerSubmissionWindow int64 `protobuf:"varint,17,opt,name=worker_submission_window,json=workerSubmissionWindow,proto3" json:"worker_submission_window,omitempty"` + // alpha parameter to weight previous score EMA importance in + // filtering the active set of inferers, forecasters, and reputers + MeritSortitionAlpha github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,18,opt,name=merit_sortition_alpha,json=meritSortitionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"merit_sortition_alpha"` + ActiveInfererQuantile github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,19,opt,name=active_inferer_quantile,json=activeInfererQuantile,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"active_inferer_quantile"` + ActiveForecasterQuantile github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,20,opt,name=active_forecaster_quantile,json=activeForecasterQuantile,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"active_forecaster_quantile"` + ActiveReputerQuantile github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,21,opt,name=active_reputer_quantile,json=activeReputerQuantile,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"active_reputer_quantile"` } func (m *Topic) Reset() { *m = Topic{} } @@ -332,50 +338,56 @@ func init() { func init() { proto.RegisterFile("emissions/v3/topic.proto", fileDescriptor_6320c39e204beb2b) } var fileDescriptor_6320c39e204beb2b = []byte{ - // 675 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x4f, 0x6f, 0xd3, 0x30, - 0x18, 0xc6, 0x9b, 0x36, 0x6d, 0x53, 0xb7, 0xeb, 0x32, 0xf3, 0x47, 0x66, 0x48, 0x6d, 0xa9, 0x84, - 0x54, 0x84, 0xd6, 0x48, 0xec, 0xc0, 0xc4, 0x8d, 0x09, 0x24, 0xa8, 0x46, 0x01, 0x33, 0x69, 0xd2, - 0x0e, 0x44, 0x6e, 0xe2, 0x25, 0xd6, 0x12, 0x3b, 0xb2, 0xdd, 0x75, 0x9c, 0xf8, 0x0a, 0x7c, 0x04, - 0x3e, 0xce, 0x8e, 0x3b, 0x22, 0x0e, 0x13, 0xda, 0x2e, 0x7c, 0x05, 0x6e, 0x28, 0x4e, 0xba, 0x81, - 0xb8, 0x20, 0xf5, 0x66, 0xff, 0xde, 0xc7, 0xcf, 0xfb, 0x5a, 0x7e, 0x5f, 0x03, 0x44, 0x53, 0xa6, - 0x14, 0x13, 0x5c, 0x79, 0x27, 0xdb, 0x9e, 0x16, 0x19, 0x0b, 0xc6, 0x99, 0x14, 0x5a, 0xc0, 0xce, - 0x75, 0x64, 0x7c, 0xb2, 0xbd, 0xf9, 0xb7, 0x8e, 0x0b, 0x1e, 0xd0, 0x42, 0xb7, 0x79, 0x3b, 0x12, - 0x91, 0x30, 0x4b, 0x2f, 0x5f, 0x15, 0x74, 0xf8, 0xab, 0x0e, 0xea, 0xfb, 0xb9, 0x1b, 0xec, 0x82, - 0x2a, 0x0b, 0x91, 0x35, 0xb0, 0x46, 0x36, 0xae, 0xb2, 0x10, 0x22, 0xd0, 0x0c, 0x24, 0x25, 0x5a, - 0x48, 0x54, 0x1d, 0x58, 0xa3, 0x16, 0x5e, 0x6e, 0xe1, 0x26, 0x70, 0x52, 0xaa, 0x49, 0x48, 0x34, - 0x41, 0x35, 0x13, 0xba, 0xde, 0xc3, 0x3e, 0x68, 0x27, 0x42, 0x29, 0x3f, 0xa5, 0x3a, 0x16, 0x21, - 0xaa, 0x9b, 0x30, 0xc8, 0xd1, 0x1b, 0x43, 0xe0, 0x08, 0xb8, 0x34, 0x13, 0x41, 0xec, 0x27, 0x44, - 0x69, 0x9f, 0xf2, 0x90, 0x86, 0xc8, 0x19, 0x58, 0xa3, 0x1a, 0xee, 0x1a, 0xbe, 0x47, 0x94, 0x7e, - 0x99, 0x53, 0xf8, 0x00, 0x74, 0x4a, 0x25, 0xe5, 0x91, 0x8e, 0x51, 0xcb, 0xa8, 0xda, 0x85, 0xca, - 0xa0, 0xdc, 0x2c, 0x92, 0x62, 0xce, 0x43, 0x5f, 0xcb, 0xb9, 0xce, 0x3d, 0x23, 0x04, 0x0a, 0xb3, - 0x82, 0xef, 0xe7, 0x78, 0x8f, 0x44, 0x70, 0x0a, 0x1a, 0x99, 0xcf, 0x85, 0x4c, 0x51, 0x27, 0x2f, - 0x69, 0xf7, 0xe9, 0xd9, 0x45, 0xbf, 0xf2, 0xfd, 0xa2, 0xef, 0x45, 0x4c, 0xc7, 0xf3, 0xd9, 0x38, - 0x10, 0xa9, 0x47, 0x92, 0x44, 0x48, 0xb2, 0xc5, 0xa9, 0x5e, 0x08, 0x79, 0xbc, 0xdc, 0x06, 0x31, - 0x61, 0xdc, 0x4b, 0x89, 0x8e, 0xc7, 0x2f, 0x68, 0x80, 0xeb, 0xd9, 0x54, 0xc8, 0x14, 0x1e, 0x82, - 0x0e, 0x49, 0xb2, 0x98, 0xf8, 0x92, 0x46, 0x92, 0x6a, 0xb4, 0xb6, 0x9a, 0x6b, 0xdb, 0x98, 0x61, - 0xe3, 0x05, 0x1f, 0x82, 0x6e, 0xae, 0x5a, 0xf8, 0x9c, 0x46, 0x44, 0xb3, 0x13, 0x8a, 0xba, 0x03, - 0x6b, 0xe4, 0xe0, 0x35, 0x43, 0xa7, 0x25, 0x84, 0xef, 0x41, 0x93, 0x66, 0x8a, 0x25, 0x82, 0xa3, - 0xf5, 0xd5, 0xb2, 0x2f, 0x7d, 0xe0, 0x47, 0xd0, 0x65, 0x9c, 0x69, 0x46, 0x92, 0xe5, 0xbd, 0xdc, - 0xd5, 0x9c, 0xd7, 0x4a, 0xbb, 0xf2, 0x66, 0x3b, 0x00, 0xe5, 0x62, 0x2a, 0x7d, 0x35, 0x9f, 0x95, - 0x8d, 0xea, 0x2f, 0x18, 0x0f, 0xc5, 0x02, 0x6d, 0x98, 0x77, 0xbb, 0x5b, 0xc4, 0x3f, 0x5c, 0x87, - 0x0f, 0x4c, 0x74, 0x62, 0x3b, 0xb6, 0x5b, 0x9f, 0xd8, 0x4e, 0xc3, 0x6d, 0x4e, 0x6c, 0xa7, 0xe9, - 0x3a, 0x13, 0xdb, 0x69, 0xbb, 0x9d, 0xa2, 0xb5, 0xfc, 0x44, 0x44, 0x2c, 0xc0, 0xeb, 0x8c, 0x1f, - 0x51, 0x49, 0x79, 0x40, 0x4b, 0xe0, 0xde, 0x80, 0xa2, 0x1f, 0x71, 0x3b, 0xa4, 0x47, 0x64, 0x9e, - 0x68, 0x9f, 0xc8, 0x68, 0xb8, 0x03, 0x5a, 0xa6, 0xf5, 0xf7, 0x98, 0xd2, 0xf0, 0x31, 0x68, 0x98, - 0xa9, 0x52, 0xc8, 0x1a, 0xd4, 0x46, 0xed, 0x27, 0xb7, 0xc6, 0x7f, 0xce, 0xd5, 0xd8, 0x08, 0x71, - 0x29, 0x19, 0x9e, 0x82, 0x3b, 0xfb, 0x2c, 0xa5, 0x4a, 0x93, 0x34, 0xa3, 0xe1, 0xf3, 0x40, 0x0b, - 0x39, 0xcd, 0x47, 0x2d, 0xef, 0xd9, 0x59, 0x22, 0x82, 0x63, 0x3f, 0xa6, 0x2c, 0x8a, 0xb5, 0x19, - 0xa7, 0x1a, 0x6e, 0x1b, 0xf6, 0xca, 0x20, 0xf8, 0x08, 0xd4, 0xcd, 0x58, 0x9a, 0xd1, 0xf9, 0x27, - 0x8f, 0xb1, 0xc1, 0x85, 0xe2, 0x99, 0xfd, 0xf3, 0x6b, 0xdf, 0x9a, 0xd8, 0x4e, 0xd5, 0xad, 0xe1, - 0x3a, 0xc9, 0xb3, 0x0c, 0xb7, 0x80, 0x63, 0x4a, 0x79, 0x1d, 0x2a, 0x78, 0x1f, 0xb4, 0x4c, 0x3d, - 0x3e, 0x0b, 0x8b, 0xaa, 0x6d, 0xec, 0xe8, 0x32, 0x58, 0x9c, 0x1d, 0x7e, 0x06, 0x1b, 0xa5, 0xfc, - 0xc0, 0x64, 0x7f, 0x47, 0x98, 0x84, 0xf7, 0x80, 0xb3, 0x3c, 0x57, 0xce, 0x7b, 0xb3, 0x3c, 0x06, - 0xdf, 0x82, 0xc6, 0xa2, 0xa8, 0xbc, 0xba, 0xda, 0xc3, 0x97, 0x36, 0xbb, 0xf8, 0xec, 0xb2, 0x67, - 0x9d, 0x5f, 0xf6, 0xac, 0x1f, 0x97, 0x3d, 0xeb, 0xcb, 0x55, 0xaf, 0x72, 0x7e, 0xd5, 0xab, 0x7c, - 0xbb, 0xea, 0x55, 0x0e, 0x77, 0xfe, 0xd3, 0xf2, 0xd4, 0xbb, 0xf9, 0xd2, 0xf4, 0xa7, 0x8c, 0xaa, - 0x59, 0xc3, 0x7c, 0x5d, 0xdb, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x06, 0xf9, 0x2a, 0x36, 0x14, - 0x05, 0x00, 0x00, + // 777 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xc1, 0x8e, 0x1b, 0x35, + 0x18, 0xc7, 0x77, 0x92, 0x49, 0x32, 0x71, 0xb2, 0xe9, 0xd4, 0xdb, 0x80, 0x09, 0x52, 0x12, 0x22, + 0x21, 0x05, 0xa1, 0x26, 0x12, 0x7b, 0x60, 0xc5, 0xad, 0x15, 0x20, 0x1a, 0x2d, 0x81, 0x4e, 0x57, + 0xaa, 0xd4, 0x03, 0x96, 0x33, 0xe3, 0x9d, 0xb1, 0x76, 0xc6, 0x1e, 0x6c, 0xcf, 0xa6, 0x9c, 0x78, + 0x05, 0x1e, 0x81, 0x37, 0xe1, 0xda, 0x63, 0x8f, 0x88, 0x43, 0x85, 0x76, 0x2f, 0x3c, 0x06, 0xb2, + 0x3d, 0xc9, 0xb6, 0xe2, 0x82, 0x94, 0xde, 0xc6, 0xff, 0xef, 0xf3, 0xef, 0xff, 0xd9, 0x33, 0xfa, + 0x0f, 0x40, 0xb4, 0x60, 0x4a, 0x31, 0xc1, 0xd5, 0xf2, 0xfa, 0x74, 0xa9, 0x45, 0xc9, 0xe2, 0x45, + 0x29, 0x85, 0x16, 0xb0, 0xbf, 0xaf, 0x2c, 0xae, 0x4f, 0x47, 0xef, 0xf6, 0x71, 0xc1, 0x63, 0xea, + 0xfa, 0x46, 0x0f, 0x52, 0x91, 0x0a, 0xfb, 0xb8, 0x34, 0x4f, 0x4e, 0x9d, 0xfd, 0xd1, 0x05, 0xad, + 0x0b, 0x43, 0x83, 0x03, 0xd0, 0x60, 0x09, 0xf2, 0xa6, 0xde, 0xdc, 0x8f, 0x1a, 0x2c, 0x81, 0x08, + 0x74, 0x62, 0x49, 0x89, 0x16, 0x12, 0x35, 0xa6, 0xde, 0xbc, 0x1b, 0xed, 0x96, 0x70, 0x04, 0x82, + 0x82, 0x6a, 0x92, 0x10, 0x4d, 0x50, 0xd3, 0x96, 0xf6, 0x6b, 0x38, 0x01, 0xbd, 0x5c, 0x28, 0x85, + 0x0b, 0xaa, 0x33, 0x91, 0xa0, 0x96, 0x2d, 0x03, 0x23, 0x7d, 0x6f, 0x15, 0x38, 0x07, 0x21, 0x2d, + 0x45, 0x9c, 0xe1, 0x9c, 0x28, 0x8d, 0x29, 0x4f, 0x68, 0x82, 0x82, 0xa9, 0x37, 0x6f, 0x46, 0x03, + 0xab, 0x9f, 0x13, 0xa5, 0xbf, 0x31, 0x2a, 0xfc, 0x04, 0xf4, 0xeb, 0x4e, 0xca, 0x53, 0x9d, 0xa1, + 0xae, 0xed, 0xea, 0xb9, 0x2e, 0x2b, 0x19, 0x58, 0x2a, 0x45, 0xc5, 0x13, 0xac, 0x65, 0xa5, 0x0d, + 0x33, 0x45, 0xc0, 0xc1, 0x9c, 0x7e, 0x61, 0xe4, 0x73, 0x92, 0xc2, 0x35, 0x68, 0x97, 0x98, 0x0b, + 0x59, 0xa0, 0xbe, 0x19, 0xe9, 0xf1, 0x97, 0xaf, 0xde, 0x4c, 0x8e, 0xfe, 0x7a, 0x33, 0x59, 0xa6, + 0x4c, 0x67, 0xd5, 0x66, 0x11, 0x8b, 0x62, 0x49, 0xf2, 0x5c, 0x48, 0xf2, 0x90, 0x53, 0xbd, 0x15, + 0xf2, 0x6a, 0xb7, 0x8c, 0x33, 0xc2, 0xf8, 0xb2, 0x20, 0x3a, 0x5b, 0x7c, 0x4d, 0xe3, 0xa8, 0x55, + 0xae, 0x85, 0x2c, 0xe0, 0x0b, 0xd0, 0x27, 0x79, 0x99, 0x11, 0x2c, 0x69, 0x2a, 0xa9, 0x46, 0xc7, + 0x87, 0x51, 0x7b, 0x16, 0x16, 0x59, 0x16, 0xfc, 0x14, 0x0c, 0x4c, 0xd7, 0x16, 0x73, 0x9a, 0x12, + 0xcd, 0xae, 0x29, 0x1a, 0x4c, 0xbd, 0x79, 0x10, 0x1d, 0x5b, 0x75, 0x5d, 0x8b, 0xf0, 0x29, 0xe8, + 0xd0, 0x52, 0xb1, 0x5c, 0x70, 0x74, 0xef, 0x30, 0xf7, 0x1d, 0x07, 0xfe, 0x04, 0x06, 0x8c, 0x33, + 0xcd, 0x48, 0xbe, 0x3b, 0x57, 0x78, 0x18, 0xf9, 0xb8, 0xc6, 0xd5, 0x27, 0x3b, 0x03, 0xc8, 0x34, + 0x53, 0x89, 0x55, 0xb5, 0xa9, 0x3f, 0x54, 0xbc, 0x65, 0x3c, 0x11, 0x5b, 0x74, 0xdf, 0xbe, 0xb7, + 0x0f, 0x5c, 0xfd, 0xd9, 0xbe, 0xfc, 0xdc, 0x56, 0xe1, 0x15, 0x18, 0x16, 0x54, 0x32, 0x8d, 0x95, + 0x90, 0x9a, 0x69, 0xb3, 0xcf, 0x5e, 0x19, 0x82, 0x87, 0x0d, 0x78, 0x62, 0xa9, 0xcf, 0x76, 0xd0, + 0x47, 0x86, 0x09, 0x05, 0xf8, 0x90, 0xc4, 0xe6, 0x8e, 0x31, 0xe3, 0x97, 0x54, 0x52, 0x89, 0x7f, + 0xae, 0x08, 0xd7, 0x2c, 0xa7, 0xe8, 0xe4, 0x30, 0xbb, 0xa1, 0xe3, 0x3e, 0x71, 0xd8, 0xa7, 0x35, + 0x15, 0x56, 0x60, 0x54, 0x1b, 0x5e, 0x0a, 0x49, 0x63, 0xa2, 0xf4, 0xdb, 0x9e, 0x0f, 0x0e, 0xf3, + 0x44, 0x0e, 0xfd, 0xed, 0x9e, 0xbc, 0xb7, 0xbd, 0x3b, 0xa7, 0xa4, 0x65, 0xf5, 0x8e, 0xe7, 0xf0, + 0xbd, 0x9c, 0x33, 0x72, 0xd8, 0x9d, 0xe1, 0xca, 0x0f, 0xfc, 0xb0, 0xb5, 0xf2, 0x83, 0x76, 0xd8, + 0x59, 0xf9, 0x41, 0x27, 0x0c, 0x56, 0x7e, 0xd0, 0x0b, 0xfb, 0x2e, 0x20, 0x70, 0x2e, 0x52, 0x16, + 0x47, 0xf7, 0xdc, 0x9d, 0xf3, 0x98, 0xd6, 0x42, 0x78, 0x27, 0xb8, 0x54, 0x89, 0x7a, 0x09, 0xbd, + 0x24, 0x55, 0xae, 0x31, 0x91, 0xe9, 0xec, 0x0c, 0x74, 0x6d, 0x80, 0x9d, 0x33, 0xa5, 0xe1, 0xe7, + 0xa0, 0x6d, 0xb3, 0x51, 0x21, 0x6f, 0xda, 0x9c, 0xf7, 0xbe, 0x38, 0x59, 0xbc, 0x9d, 0x8e, 0x0b, + 0xdb, 0x18, 0xd5, 0x2d, 0xb3, 0x97, 0x60, 0x78, 0xc1, 0x0a, 0xaa, 0x34, 0x29, 0x4a, 0x9a, 0x3c, + 0x8a, 0xb5, 0x90, 0x6b, 0x13, 0x98, 0x26, 0x79, 0x36, 0xb9, 0x88, 0xaf, 0x70, 0x46, 0x59, 0x9a, + 0x69, 0x1b, 0x8a, 0xcd, 0xa8, 0x67, 0xb5, 0xef, 0xac, 0x04, 0x3f, 0x03, 0x2d, 0x1b, 0xae, 0x36, + 0x00, 0xff, 0xe3, 0x63, 0x31, 0x91, 0xeb, 0xf8, 0xca, 0xff, 0xe7, 0xf7, 0x89, 0xb7, 0xf2, 0x83, + 0x46, 0xd8, 0x8c, 0x5a, 0xc4, 0xb8, 0xcc, 0x1e, 0x82, 0xc0, 0x8e, 0xf2, 0x24, 0x51, 0xf0, 0x63, + 0xd0, 0xb5, 0xf3, 0x60, 0x96, 0xb8, 0xa9, 0xfd, 0x28, 0xd0, 0x75, 0xd1, 0xed, 0x9d, 0xfd, 0x0a, + 0xee, 0xd7, 0xed, 0xcf, 0xad, 0xfb, 0x8f, 0x84, 0x49, 0xf8, 0x11, 0x08, 0x76, 0xfb, 0xea, 0xd4, + 0xee, 0xd4, 0xdb, 0xe0, 0x0f, 0xa0, 0xbd, 0x75, 0x93, 0x37, 0x0e, 0x7b, 0x8d, 0x35, 0xe6, 0x71, + 0xf4, 0xea, 0x66, 0xec, 0xbd, 0xbe, 0x19, 0x7b, 0x7f, 0xdf, 0x8c, 0xbd, 0xdf, 0x6e, 0xc7, 0x47, + 0xaf, 0x6f, 0xc7, 0x47, 0x7f, 0xde, 0x8e, 0x8f, 0x5e, 0x9c, 0xfd, 0x4f, 0xe4, 0xcb, 0xe5, 0xdd, + 0x8f, 0x49, 0xff, 0x52, 0x52, 0xb5, 0x69, 0xdb, 0x1f, 0xd0, 0xe9, 0xbf, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xe3, 0x0b, 0xb9, 0xfe, 0xda, 0x06, 0x00, 0x00, } func (this *TimestampedActorNonce) Equal(that interface{}) bool { @@ -454,6 +466,54 @@ func (m *Topic) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size := m.ActiveReputerQuantile.Size() + i -= size + if _, err := m.ActiveReputerQuantile.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTopic(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xaa + { + size := m.ActiveForecasterQuantile.Size() + i -= size + if _, err := m.ActiveForecasterQuantile.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTopic(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xa2 + { + size := m.ActiveInfererQuantile.Size() + i -= size + if _, err := m.ActiveInfererQuantile.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTopic(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x9a + { + size := m.MeritSortitionAlpha.Size() + i -= size + if _, err := m.MeritSortitionAlpha.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTopic(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 if m.WorkerSubmissionWindow != 0 { i = encodeVarintTopic(dAtA, i, uint64(m.WorkerSubmissionWindow)) i-- @@ -768,6 +828,14 @@ func (m *Topic) Size() (n int) { if m.WorkerSubmissionWindow != 0 { n += 2 + sovTopic(uint64(m.WorkerSubmissionWindow)) } + l = m.MeritSortitionAlpha.Size() + n += 2 + l + sovTopic(uint64(l)) + l = m.ActiveInfererQuantile.Size() + n += 2 + l + sovTopic(uint64(l)) + l = m.ActiveForecasterQuantile.Size() + n += 2 + l + sovTopic(uint64(l)) + l = m.ActiveReputerQuantile.Size() + n += 2 + l + sovTopic(uint64(l)) return n } @@ -1214,6 +1282,142 @@ func (m *Topic) Unmarshal(dAtA []byte) error { break } } + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MeritSortitionAlpha", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTopic + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTopic + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTopic + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MeritSortitionAlpha.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 19: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveInfererQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTopic + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTopic + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTopic + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ActiveInfererQuantile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 20: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveForecasterQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTopic + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTopic + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTopic + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ActiveForecasterQuantile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 21: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveReputerQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTopic + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTopic + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTopic + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ActiveReputerQuantile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTopic(dAtA[iNdEx:]) diff --git a/x/emissions/types/tx.pb.go b/x/emissions/types/tx.pb.go index f15a208ef..83a37794f 100644 --- a/x/emissions/types/tx.pb.go +++ b/x/emissions/types/tx.pb.go @@ -331,16 +331,20 @@ var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo type MsgCreateNewTopic struct { // creator is the message sender. - Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` - Metadata string `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` - LossMethod string `protobuf:"bytes,4,opt,name=loss_method,json=lossMethod,proto3" json:"loss_method,omitempty"` - EpochLength int64 `protobuf:"varint,7,opt,name=epoch_length,json=epochLength,proto3" json:"epoch_length,omitempty"` - GroundTruthLag int64 `protobuf:"varint,8,opt,name=ground_truth_lag,json=groundTruthLag,proto3" json:"ground_truth_lag,omitempty"` - PNorm github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,10,opt,name=p_norm,json=pNorm,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_norm"` - AlphaRegret github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,11,opt,name=alpha_regret,json=alphaRegret,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"alpha_regret"` - AllowNegative bool `protobuf:"varint,12,opt,name=allow_negative,json=allowNegative,proto3" json:"allow_negative,omitempty"` - Epsilon github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,13,opt,name=epsilon,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon"` - WorkerSubmissionWindow int64 `protobuf:"varint,14,opt,name=worker_submission_window,json=workerSubmissionWindow,proto3" json:"worker_submission_window,omitempty"` + Creator string `protobuf:"bytes,1,opt,name=creator,proto3" json:"creator,omitempty"` + Metadata string `protobuf:"bytes,2,opt,name=metadata,proto3" json:"metadata,omitempty"` + LossMethod string `protobuf:"bytes,4,opt,name=loss_method,json=lossMethod,proto3" json:"loss_method,omitempty"` + EpochLength int64 `protobuf:"varint,7,opt,name=epoch_length,json=epochLength,proto3" json:"epoch_length,omitempty"` + GroundTruthLag int64 `protobuf:"varint,8,opt,name=ground_truth_lag,json=groundTruthLag,proto3" json:"ground_truth_lag,omitempty"` + PNorm github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,10,opt,name=p_norm,json=pNorm,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_norm"` + AlphaRegret github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,11,opt,name=alpha_regret,json=alphaRegret,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"alpha_regret"` + AllowNegative bool `protobuf:"varint,12,opt,name=allow_negative,json=allowNegative,proto3" json:"allow_negative,omitempty"` + Epsilon github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,13,opt,name=epsilon,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"epsilon"` + WorkerSubmissionWindow int64 `protobuf:"varint,14,opt,name=worker_submission_window,json=workerSubmissionWindow,proto3" json:"worker_submission_window,omitempty"` + MeritSortitionAlpha github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,15,opt,name=merit_sortition_alpha,json=meritSortitionAlpha,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"merit_sortition_alpha"` + ActiveInfererQuantile github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,16,opt,name=active_inferer_quantile,json=activeInfererQuantile,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"active_inferer_quantile"` + ActiveForecasterQuantile github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,17,opt,name=active_forecaster_quantile,json=activeForecasterQuantile,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"active_forecaster_quantile"` + ActiveReputerQuantile github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,18,opt,name=active_reputer_quantile,json=activeReputerQuantile,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"active_reputer_quantile"` } func (m *MsgCreateNewTopic) Reset() { *m = MsgCreateNewTopic{} } @@ -1843,162 +1847,167 @@ func init() { func init() { proto.RegisterFile("emissions/v3/tx.proto", fileDescriptor_fedd7926bf8d7af0) } var fileDescriptor_fedd7926bf8d7af0 = []byte{ - // 2465 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcd, 0x73, 0x1c, 0x47, - 0x15, 0xf7, 0x5a, 0x2b, 0x69, 0xd5, 0xab, 0x8f, 0xf5, 0x44, 0x96, 0x47, 0xab, 0x4f, 0xaf, 0xe4, - 0x64, 0xe3, 0xc4, 0x12, 0x71, 0x28, 0x08, 0x81, 0x03, 0x32, 0xb2, 0x12, 0x09, 0xaf, 0x51, 0x46, - 0x8a, 0x55, 0x65, 0x52, 0x35, 0xb4, 0x66, 0xde, 0xce, 0x4e, 0x69, 0x66, 0x7a, 0xe8, 0xee, 0x5d, - 0x49, 0xe1, 0x42, 0x51, 0xc5, 0x89, 0x0b, 0xc5, 0x01, 0x28, 0xfe, 0x02, 0xe0, 0x94, 0xa2, 0x28, - 0x4e, 0xfc, 0x01, 0x39, 0xa6, 0x38, 0x51, 0x1c, 0x52, 0x54, 0x7c, 0xc8, 0xdf, 0xc0, 0x8d, 0xea, - 0x8f, 0x19, 0xcd, 0xec, 0x87, 0xac, 0xd2, 0xfa, 0x90, 0x8b, 0xad, 0xe9, 0xf7, 0xfa, 0xf7, 0x7e, - 0xfd, 0xeb, 0xd7, 0xef, 0x75, 0xab, 0x84, 0x6e, 0x43, 0xe8, 0x33, 0xe6, 0x93, 0x88, 0x6d, 0x76, - 0xde, 0xdd, 0xe4, 0x67, 0x1b, 0x31, 0x25, 0x9c, 0x18, 0x93, 0xe9, 0xf0, 0x46, 0xe7, 0xdd, 0xea, - 0x2d, 0x1c, 0xfa, 0x11, 0xd9, 0x94, 0xff, 0x2a, 0x87, 0xea, 0x1d, 0x87, 0xb0, 0x90, 0xb0, 0xcd, - 0x90, 0x79, 0x9b, 0x9d, 0x77, 0xc4, 0x7f, 0xda, 0x30, 0xaf, 0x0c, 0xb6, 0xfc, 0xda, 0x54, 0x1f, - 0xda, 0x54, 0xcd, 0xc5, 0xa2, 0x10, 0xb7, 0x39, 0xd0, 0x64, 0x5a, 0xce, 0x76, 0x4a, 0xe8, 0x49, - 0x6a, 0x9a, 0xf5, 0x88, 0x47, 0x14, 0x9c, 0xf8, 0x49, 0x8d, 0xd6, 0xfe, 0xb6, 0x80, 0xa6, 0x7f, - 0x12, 0x73, 0x9f, 0x44, 0x38, 0xd8, 0xc7, 0x14, 0x87, 0xcc, 0x30, 0xd1, 0x78, 0x07, 0xa8, 0x00, - 0x31, 0x0b, 0xab, 0x23, 0xf5, 0x09, 0x2b, 0xf9, 0x34, 0xbe, 0x87, 0xe6, 0x43, 0x7c, 0x66, 0x33, - 0xa0, 0x3e, 0x0e, 0xfc, 0x4f, 0xc1, 0xb5, 0x43, 0xe6, 0xd9, 0x01, 0x44, 0x1e, 0x6f, 0x99, 0x37, - 0x57, 0x47, 0xea, 0x23, 0xd6, 0x5c, 0x88, 0xcf, 0x0e, 0x52, 0x7b, 0x83, 0x79, 0x4f, 0xa4, 0xd5, - 0xc0, 0xa8, 0x12, 0xfa, 0x91, 0xcd, 0x49, 0xec, 0x3b, 0xf6, 0x29, 0xf8, 0x5e, 0x8b, 0x9b, 0x23, - 0x02, 0xfd, 0xd1, 0x77, 0x3f, 0xff, 0x72, 0xe5, 0xc6, 0x7f, 0xbe, 0x5c, 0xd9, 0xf4, 0x7c, 0xde, - 0x6a, 0x1f, 0x6f, 0x38, 0x24, 0xdc, 0xc4, 0x41, 0x40, 0x28, 0x7e, 0x10, 0x01, 0x17, 0x4b, 0x48, - 0x3e, 0x9d, 0x16, 0xf6, 0xa3, 0xcd, 0x10, 0xf3, 0xd6, 0xc6, 0x36, 0x38, 0xd6, 0x74, 0xe8, 0x47, - 0x87, 0x02, 0xef, 0x48, 0xc2, 0x19, 0x4d, 0x34, 0x47, 0xe1, 0xe7, 0x6d, 0x9f, 0x0a, 0x5e, 0x7e, - 0xe4, 0x87, 0xed, 0xd0, 0x66, 0x1c, 0x9f, 0x80, 0x39, 0x2a, 0x03, 0x7d, 0x4b, 0x07, 0xba, 0xad, - 0xd4, 0x64, 0xee, 0xc9, 0x86, 0x4f, 0x14, 0xdc, 0x6e, 0xc4, 0xff, 0xf5, 0xf7, 0x07, 0x48, 0xcb, - 0xbc, 0x1b, 0xf1, 0x3f, 0x7f, 0xfd, 0xd9, 0xfd, 0x82, 0x35, 0x9b, 0xe0, 0x35, 0x14, 0xdc, 0x81, - 0x40, 0x13, 0x2a, 0x50, 0x08, 0x49, 0x07, 0x14, 0xba, 0xed, 0x42, 0x80, 0xcf, 0xed, 0x53, 0x3f, - 0x72, 0xc9, 0xa9, 0x39, 0xa6, 0x54, 0x50, 0x0e, 0xd2, 0x7f, 0x5b, 0x98, 0x8f, 0xa4, 0xd5, 0xa8, - 0x2b, 0x15, 0x20, 0x26, 0x4e, 0x2b, 0xd1, 0x6d, 0x5c, 0xce, 0x10, 0x8b, 0x79, 0x2c, 0x86, 0xb5, - 0x5e, 0xcf, 0xd1, 0xe4, 0x31, 0x70, 0x6c, 0x43, 0xc4, 0x29, 0x89, 0xcf, 0xcd, 0xd2, 0x70, 0x5a, - 0x95, 0x05, 0xd8, 0x63, 0x85, 0x65, 0x7c, 0x82, 0xa6, 0x02, 0xc0, 0x34, 0xf2, 0x23, 0xcf, 0xa6, - 0x98, 0x83, 0x39, 0x31, 0x1c, 0xf8, 0x64, 0x82, 0x66, 0x61, 0x0e, 0x46, 0x88, 0x44, 0x0e, 0xd8, - 0x1e, 0xc5, 0xae, 0x0f, 0x11, 0xb7, 0x79, 0x8b, 0x02, 0x6b, 0x91, 0xc0, 0x35, 0xd1, 0x70, 0x61, - 0x66, 0x43, 0x7c, 0xf6, 0x81, 0x46, 0x3d, 0x4c, 0x40, 0x0d, 0x40, 0x86, 0x90, 0x54, 0x6d, 0x45, - 0x93, 0x62, 0x47, 0xe4, 0xb2, 0x59, 0x1e, 0x2e, 0x94, 0xd8, 0x25, 0xb9, 0x79, 0x3b, 0x1a, 0xd0, - 0x78, 0x8c, 0x56, 0xc4, 0xaa, 0xda, 0x51, 0xb3, 0x1d, 0x34, 0xfd, 0x20, 0x00, 0xd7, 0x56, 0xa7, - 0xcb, 0x16, 0x39, 0x02, 0x8c, 0x33, 0x73, 0x6a, 0x75, 0xa4, 0x5e, 0xb4, 0x16, 0x43, 0x7c, 0xf6, - 0xf1, 0x85, 0xd7, 0x91, 0x74, 0xb2, 0xb4, 0x8f, 0xf1, 0x01, 0x5a, 0xed, 0x86, 0xd1, 0x07, 0xf8, - 0x02, 0x67, 0x5a, 0xe2, 0x2c, 0xe5, 0x71, 0x2c, 0xe5, 0x95, 0x02, 0x7d, 0x8a, 0x96, 0xd4, 0x59, - 0xa2, 0x70, 0x8a, 0xa9, 0xab, 0xd7, 0xef, 0x87, 0x31, 0xa1, 0x1c, 0x47, 0x0e, 0x98, 0x33, 0xc3, - 0x29, 0x50, 0x95, 0xe8, 0x96, 0x04, 0x97, 0x4a, 0xec, 0xa6, 0xd0, 0xc6, 0xaf, 0x0b, 0x68, 0x2d, - 0x17, 0xbc, 0x09, 0x60, 0x53, 0xe8, 0x40, 0xd4, 0xce, 0x51, 0xa8, 0x0c, 0x47, 0x61, 0x25, 0x43, - 0x61, 0x07, 0xc0, 0x52, 0x01, 0x32, 0x3c, 0x00, 0x19, 0x39, 0x1a, 0x38, 0x88, 0x5b, 0xd8, 0xbc, - 0x35, 0xe4, 0xd6, 0x67, 0xa2, 0x6e, 0x09, 0x40, 0xc3, 0x41, 0xb7, 0x38, 0x66, 0x27, 0xf9, 0x28, - 0xc6, 0x70, 0x51, 0x66, 0x04, 0x62, 0x36, 0x88, 0xd0, 0xb4, 0x83, 0x03, 0xdf, 0xc5, 0x9c, 0x50, - 0x66, 0x77, 0x98, 0xad, 0x26, 0xda, 0x31, 0x50, 0x47, 0x1c, 0x23, 0x15, 0xdd, 0x7c, 0x6d, 0x48, - 0x4d, 0x2f, 0x62, 0x3c, 0x63, 0x5b, 0xd2, 0x65, 0x5f, 0x05, 0x50, 0x64, 0x8c, 0x1f, 0xa0, 0x05, - 0x59, 0xe2, 0x71, 0x18, 0x07, 0xc0, 0x6c, 0x4e, 0x6c, 0xe6, 0xe0, 0x00, 0x6c, 0xe6, 0x10, 0x0a, - 0xcc, 0x9c, 0x95, 0xb9, 0x79, 0x47, 0x14, 0x79, 0xe5, 0x71, 0x48, 0x0e, 0x84, 0xfd, 0x40, 0x9a, - 0x8d, 0xf7, 0x51, 0x55, 0xcc, 0xe6, 0x24, 0xb6, 0xfd, 0xa8, 0x09, 0x14, 0xa8, 0x84, 0xd0, 0xdc, - 0x6f, 0xcb, 0xc9, 0xa2, 0x3a, 0x1c, 0x92, 0x78, 0x57, 0xdb, 0x0f, 0x89, 0x8e, 0xfc, 0x43, 0xb4, - 0x94, 0xcc, 0x6d, 0x12, 0x0a, 0x0e, 0x66, 0x3c, 0x3f, 0x7d, 0x4e, 0x4e, 0x9f, 0x57, 0xd3, 0x77, - 0x2e, 0x5c, 0x52, 0x84, 0x4c, 0x74, 0x7d, 0xa8, 0xb2, 0xd3, 0xef, 0x64, 0xa3, 0xeb, 0xe3, 0x74, - 0x31, 0xf7, 0x39, 0xaa, 0x38, 0x14, 0x30, 0x07, 0xdd, 0xa2, 0x9a, 0x00, 0xa6, 0x79, 0xcd, 0xb6, - 0x31, 0xad, 0x90, 0x64, 0x6f, 0xda, 0x01, 0x30, 0xbe, 0x8f, 0xaa, 0x69, 0x35, 0x74, 0x81, 0xc9, - 0xed, 0x14, 0x44, 0x7d, 0xc1, 0xc0, 0x9c, 0x57, 0x92, 0x26, 0x1e, 0xdb, 0xca, 0xa1, 0x81, 0xcf, - 0x76, 0x85, 0xd9, 0xf8, 0x29, 0xaa, 0x50, 0xf0, 0x7c, 0xc6, 0x29, 0x16, 0x85, 0x48, 0x12, 0x5b, - 0xbc, 0x26, 0xb1, 0x99, 0x2c, 0x92, 0x60, 0xf6, 0x36, 0x32, 0x5c, 0x68, 0xe2, 0x76, 0xc0, 0xed, - 0x18, 0x7b, 0x60, 0x07, 0x7e, 0xe8, 0x73, 0x73, 0x49, 0x32, 0xaa, 0x68, 0xcb, 0x3e, 0xf6, 0xe0, - 0x89, 0x18, 0x37, 0xd6, 0xd1, 0xb4, 0xa0, 0x9d, 0xf1, 0x5c, 0x96, 0x9e, 0x93, 0x21, 0x3e, 0xbb, - 0xf0, 0x12, 0xfb, 0xd8, 0xd5, 0xe3, 0x6c, 0x0a, 0x0e, 0xa1, 0xae, 0x9e, 0xb4, 0x22, 0x1b, 0xde, - 0x7c, 0xbe, 0xe1, 0x59, 0xd2, 0x43, 0x21, 0xd4, 0x51, 0xe5, 0x38, 0x20, 0xce, 0x09, 0x13, 0xc9, - 0x6f, 0x87, 0x24, 0xe2, 0x2d, 0x73, 0x55, 0x46, 0x9a, 0x56, 0xe3, 0xfb, 0x40, 0x1b, 0x62, 0x54, - 0x54, 0x80, 0x38, 0x39, 0x97, 0x2a, 0xe1, 0x44, 0xdd, 0xb9, 0x3b, 0x64, 0x05, 0x88, 0x55, 0x4e, - 0xec, 0x26, 0x80, 0xa2, 0x02, 0xa4, 0x61, 0x92, 0xdc, 0x34, 0x6b, 0x43, 0x56, 0x00, 0x1d, 0x25, - 0x49, 0x64, 0x71, 0x43, 0x4a, 0x83, 0xe8, 0xf4, 0x35, 0xd7, 0x86, 0xbc, 0x21, 0xe9, 0x18, 0x3a, - 0xdb, 0x85, 0x5c, 0x4e, 0xaf, 0x5c, 0xeb, 0x43, 0xca, 0xe5, 0xf4, 0x91, 0xcb, 0xe9, 0x91, 0xeb, - 0xde, 0x90, 0x72, 0x39, 0x5d, 0x72, 0x3d, 0x45, 0x63, 0x8e, 0x1d, 0x11, 0x1a, 0x9a, 0xaf, 0x0f, - 0x87, 0x3c, 0xea, 0x3c, 0x25, 0x34, 0x34, 0x7e, 0x86, 0x66, 0x20, 0x66, 0x7e, 0x40, 0xa2, 0x54, - 0xfd, 0xfa, 0x90, 0xea, 0x6b, 0xbc, 0x44, 0xfd, 0x67, 0xe8, 0xcd, 0x16, 0x0e, 0x9a, 0xf2, 0xe8, - 0xc7, 0x94, 0x38, 0xc0, 0x98, 0x6e, 0xdb, 0xf2, 0xb6, 0x88, 0x03, 0x66, 0x43, 0xe4, 0xda, 0x32, - 0xc5, 0xcd, 0xfb, 0x32, 0xdf, 0xd7, 0xc4, 0x84, 0x06, 0x3e, 0xdb, 0x57, 0xee, 0xb2, 0x11, 0x5b, - 0xda, 0xf9, 0x71, 0xe4, 0x3e, 0x12, 0xae, 0xa2, 0x74, 0xb9, 0x98, 0x63, 0x9b, 0x41, 0xe4, 0x8a, - 0x2b, 0x9d, 0xa8, 0x10, 0x6f, 0x5d, 0xb7, 0x74, 0x09, 0xa4, 0x03, 0x05, 0x24, 0x0a, 0x04, 0x46, - 0x95, 0x44, 0x15, 0x86, 0x9b, 0x60, 0xbb, 0x7e, 0xc7, 0x7c, 0xfb, 0xd5, 0xc8, 0x72, 0x80, 0x9b, - 0xb0, 0xed, 0x77, 0x92, 0x47, 0x05, 0x04, 0x10, 0x42, 0xc4, 0xd5, 0x99, 0x4f, 0xb3, 0xe6, 0x41, - 0x5a, 0xb4, 0x1f, 0x6b, 0xfb, 0x3e, 0xd0, 0x34, 0x07, 0x74, 0xb3, 0x12, 0x57, 0xb4, 0x8e, 0x2e, - 0xdc, 0x6a, 0xbe, 0xd2, 0x70, 0x23, 0x6d, 0x56, 0x5b, 0xd2, 0x43, 0x16, 0x64, 0x01, 0x20, 0x75, - 0xdb, 0x2b, 0x96, 0x8a, 0x95, 0xd1, 0xbd, 0x62, 0xa9, 0x5a, 0x59, 0xd8, 0x2b, 0x96, 0x16, 0x2a, - 0x8b, 0x7b, 0xc5, 0xd2, 0x1b, 0x95, 0xfa, 0x5e, 0xb1, 0xf4, 0x66, 0xe5, 0xbe, 0xbc, 0x6d, 0xf6, - 0x40, 0x5a, 0x0b, 0xb2, 0xb4, 0x35, 0x9b, 0x90, 0x09, 0x99, 0x5c, 0x7d, 0xac, 0x35, 0x31, 0x85, - 0x02, 0xa7, 0xbe, 0xea, 0x9c, 0xea, 0xf2, 0x66, 0x47, 0x24, 0x72, 0x80, 0xe9, 0xeb, 0xa2, 0xb5, - 0x98, 0xf6, 0x97, 0xf4, 0xca, 0xe4, 0x82, 0x83, 0xcf, 0xe5, 0x4d, 0xdc, 0x5a, 0xbf, 0x14, 0x42, - 0x27, 0x66, 0x2d, 0x40, 0x33, 0x0d, 0xe6, 0x7d, 0x1c, 0xbb, 0x98, 0x83, 0x7e, 0xb4, 0xcd, 0xa1, - 0x31, 0xb1, 0xff, 0x40, 0xcd, 0xc2, 0x6a, 0xa1, 0x3e, 0x61, 0xe9, 0x2f, 0xe3, 0xdb, 0x68, 0x2c, - 0x96, 0x1e, 0xe6, 0xcd, 0xd5, 0x42, 0xbd, 0xfc, 0x70, 0x71, 0x23, 0xfb, 0x24, 0xdd, 0xc8, 0x3f, - 0xfd, 0x2c, 0xed, 0xfb, 0x7e, 0xf9, 0x57, 0x5f, 0x7f, 0x76, 0x5f, 0x43, 0xd4, 0xe6, 0xd1, 0x9d, - 0xae, 0x68, 0x16, 0xb0, 0x98, 0x44, 0x0c, 0x6a, 0xff, 0x2b, 0xa2, 0x5b, 0x0d, 0xe6, 0xfd, 0x48, - 0xf6, 0xbb, 0xa7, 0x70, 0x2a, 0x15, 0x16, 0x0f, 0x48, 0xd9, 0x01, 0x49, 0x42, 0x26, 0xf9, 0x34, - 0xaa, 0xa8, 0x14, 0x02, 0xc7, 0x22, 0xc9, 0x24, 0x9f, 0x09, 0x2b, 0xfd, 0x36, 0x56, 0x50, 0x39, - 0x20, 0x8c, 0xd9, 0x21, 0xf0, 0x16, 0x71, 0xcd, 0xa2, 0x34, 0x23, 0x31, 0xd4, 0x90, 0x23, 0xc6, - 0x5d, 0x34, 0xd9, 0xf5, 0x70, 0x2a, 0xd4, 0x47, 0xac, 0x32, 0x64, 0x5e, 0x4d, 0x75, 0x54, 0xf1, - 0x28, 0x69, 0x47, 0xae, 0xcd, 0x69, 0x9b, 0xb7, 0xec, 0x00, 0x7b, 0x66, 0x49, 0xba, 0x4d, 0xab, - 0xf1, 0x43, 0x31, 0xfc, 0x04, 0x7b, 0xa2, 0x7c, 0xc4, 0xaa, 0x7c, 0x20, 0x11, 0x68, 0x88, 0xf2, - 0x11, 0xcb, 0xf2, 0xf1, 0x1c, 0x4d, 0xca, 0x8b, 0xa1, 0x4d, 0xc1, 0xa3, 0xc0, 0xcd, 0xf2, 0x70, - 0xa8, 0x65, 0x09, 0x66, 0x49, 0x2c, 0xe3, 0x1e, 0x9a, 0x16, 0x5e, 0xa7, 0x76, 0x04, 0x1e, 0x16, - 0x79, 0x67, 0x4e, 0xae, 0x16, 0xea, 0x25, 0x6b, 0x4a, 0x8e, 0x3e, 0xd5, 0x83, 0xc6, 0x47, 0x68, - 0x5c, 0x1f, 0x2d, 0x73, 0x6a, 0xb8, 0xe8, 0x09, 0x8e, 0xf1, 0x1e, 0x32, 0xf5, 0x2b, 0x87, 0xb5, - 0x8f, 0x75, 0xde, 0x24, 0x2f, 0xdd, 0x69, 0xa9, 0xeb, 0x9c, 0xb2, 0x1f, 0xa4, 0x66, 0xf5, 0xd2, - 0x7d, 0x7f, 0x52, 0x64, 0x50, 0xb2, 0xef, 0x7b, 0xc5, 0xd2, 0x48, 0xa5, 0xb8, 0x57, 0x2c, 0x8d, - 0x56, 0xc6, 0xf6, 0x8a, 0xa5, 0xb1, 0xca, 0xf8, 0x5e, 0xb1, 0x34, 0x51, 0x41, 0x6a, 0x7b, 0xed, - 0x80, 0x78, 0xbe, 0x63, 0xcd, 0xa4, 0x1d, 0x49, 0x0f, 0x54, 0x2e, 0x06, 0x54, 0x4e, 0x58, 0xe5, - 0xe4, 0xb2, 0x82, 0xa9, 0x57, 0xfb, 0x0e, 0x9a, 0xef, 0x49, 0xbd, 0x24, 0x31, 0x8d, 0x79, 0x54, - 0x52, 0xe7, 0xcc, 0x77, 0x65, 0x0e, 0x16, 0xad, 0x71, 0xf9, 0xbd, 0xeb, 0xd6, 0x7e, 0x57, 0x90, - 0xf9, 0xbc, 0x1b, 0x31, 0xa0, 0x5c, 0xd7, 0xe6, 0x7d, 0x7c, 0x1e, 0x10, 0xec, 0x0e, 0x3c, 0x45, - 0x16, 0x9a, 0x4d, 0x9e, 0x69, 0x1d, 0x1c, 0xb4, 0xc1, 0x3e, 0x6e, 0x47, 0x6e, 0x00, 0xfa, 0x4c, - 0xad, 0xe6, 0xcf, 0x94, 0xc6, 0x7c, 0x26, 0x1c, 0x1f, 0x49, 0x3f, 0xcb, 0xa0, 0x3d, 0x63, 0xf9, - 0x33, 0x76, 0x17, 0xad, 0x0c, 0xe0, 0x94, 0x9e, 0xb5, 0xdf, 0x14, 0xd0, 0x5c, 0xea, 0xa3, 0x9e, - 0x95, 0x2f, 0xa3, 0xfd, 0x04, 0x19, 0x7a, 0xfb, 0x64, 0x83, 0xc8, 0x91, 0x5e, 0xce, 0x93, 0x56, - 0x80, 0xdb, 0x98, 0x63, 0x4d, 0xb9, 0x72, 0xda, 0x35, 0x92, 0x27, 0xbc, 0x8a, 0x96, 0xfb, 0x93, - 0x49, 0xf9, 0xfe, 0xb5, 0x80, 0xca, 0x0d, 0xe6, 0x59, 0xf2, 0xca, 0x09, 0x74, 0x20, 0xc9, 0xec, - 0x56, 0x15, 0x73, 0x5b, 0x65, 0xcc, 0xa2, 0x51, 0x72, 0x1a, 0x01, 0x35, 0x47, 0xe5, 0x0c, 0xf5, - 0x61, 0x2c, 0x21, 0xe4, 0xa7, 0xb5, 0xd0, 0x1c, 0x93, 0x47, 0x61, 0xc2, 0x67, 0x5a, 0xb6, 0x1c, - 0xcd, 0xbd, 0x62, 0xe9, 0x66, 0x65, 0x44, 0xa5, 0x9f, 0x55, 0x0e, 0xfc, 0x63, 0x3b, 0x7e, 0x18, - 0xdb, 0x27, 0x70, 0x6e, 0x4d, 0x85, 0xed, 0x80, 0xfb, 0x36, 0x76, 0x5d, 0x0a, 0x8c, 0xd5, 0x76, - 0xd1, 0x6b, 0x19, 0xae, 0x69, 0x1a, 0x99, 0x68, 0x9c, 0xb5, 0x1d, 0xd1, 0x7a, 0x25, 0xe9, 0x92, - 0x95, 0x7c, 0x0a, 0x4b, 0x08, 0x8c, 0x61, 0x0f, 0x74, 0x21, 0x4b, 0x3e, 0x6b, 0x1d, 0x74, 0x5b, - 0x42, 0x85, 0xa4, 0x03, 0x56, 0xe6, 0xbe, 0x7d, 0x25, 0x01, 0x6e, 0xe6, 0x05, 0xc8, 0x2f, 0x75, - 0xe4, 0xb2, 0xa5, 0xd6, 0x0e, 0xd0, 0x52, 0xdf, 0xb8, 0x43, 0x2d, 0xe6, 0x0f, 0x6a, 0x13, 0xb7, - 0x5c, 0xf5, 0x4b, 0x80, 0xeb, 0xac, 0xe1, 0x43, 0x34, 0x86, 0x43, 0xd2, 0x8e, 0xb8, 0xe4, 0x7f, - 0x9d, 0x4b, 0x89, 0x9e, 0x9f, 0x5f, 0xee, 0x6d, 0xb9, 0x63, 0x09, 0xb1, 0x34, 0xeb, 0xfe, 0x54, - 0x40, 0xd3, 0xa9, 0x0c, 0xdf, 0x34, 0xce, 0xa6, 0x3c, 0xc1, 0x19, 0x6e, 0x29, 0xed, 0x67, 0x68, - 0x56, 0x14, 0x33, 0x1c, 0x39, 0x10, 0x0c, 0xc7, 0x3d, 0x1f, 0x71, 0x19, 0x2d, 0xf6, 0xc3, 0x4d, - 0xe3, 0xfe, 0xa3, 0x80, 0x2a, 0x0d, 0xe6, 0x6d, 0x43, 0x20, 0xba, 0xc8, 0xf5, 0x05, 0x33, 0xd1, - 0x78, 0x36, 0x4b, 0x27, 0xac, 0xe4, 0x33, 0x23, 0x65, 0xf1, 0x55, 0x4a, 0x59, 0x45, 0x66, 0x37, - 0xef, 0x74, 0x51, 0xff, 0x2c, 0x64, 0x74, 0xbe, 0xda, 0xd2, 0x32, 0xfc, 0x6f, 0xe6, 0xf9, 0x67, - 0x17, 0x3d, 0x32, 0x28, 0x4b, 0x5e, 0xe9, 0xd2, 0x54, 0x69, 0xed, 0xc3, 0x3e, 0x5d, 0xe0, 0xef, - 0x0b, 0x3d, 0xdb, 0x3a, 0xf4, 0x0e, 0x2e, 0xa2, 0x09, 0x57, 0x61, 0x90, 0x64, 0x0f, 0x2f, 0x06, - 0xb2, 0xfa, 0x14, 0x73, 0xfa, 0xe4, 0xa9, 0xbf, 0x8e, 0xd6, 0x2f, 0xe3, 0x95, 0x2e, 0xe0, 0x8f, - 0x05, 0x34, 0xd9, 0x60, 0xde, 0x8e, 0xb8, 0x91, 0xc9, 0x2b, 0xe3, 0x37, 0xe7, 0x8c, 0xce, 0xc9, - 0x93, 0x98, 0x32, 0x4b, 0x29, 0x1f, 0xc9, 0x9c, 0xda, 0x72, 0xdd, 0x43, 0x72, 0xd4, 0xf2, 0x39, - 0x04, 0x3e, 0xe3, 0x5b, 0x6e, 0xe8, 0x47, 0x97, 0xe5, 0x94, 0x6e, 0x2f, 0x49, 0x4e, 0xe9, 0xcf, - 0x7e, 0xdb, 0xdd, 0x07, 0x38, 0x0d, 0xfd, 0x09, 0x5a, 0x48, 0x13, 0x62, 0x87, 0x92, 0xf0, 0xd5, - 0xc6, 0xbf, 0x87, 0xd6, 0x2e, 0x41, 0x4f, 0x49, 0x24, 0x59, 0x29, 0x1e, 0xe1, 0xfd, 0x37, 0x95, - 0xea, 0x53, 0xd7, 0xe3, 0xf1, 0x4a, 0x0b, 0x4a, 0x8e, 0xfc, 0xc3, 0xbf, 0x4c, 0xa2, 0x91, 0x06, - 0xf3, 0x8c, 0x43, 0x34, 0x99, 0x7b, 0x0e, 0x2d, 0xe5, 0x6f, 0x37, 0x5d, 0xef, 0x97, 0xea, 0xbd, - 0x4b, 0xcd, 0x69, 0xc7, 0x7c, 0x8e, 0xa6, 0xbb, 0x9e, 0x36, 0x2b, 0x3d, 0x13, 0xf3, 0x0e, 0xd5, - 0x37, 0x5e, 0xe2, 0x90, 0x62, 0x7f, 0x88, 0x4a, 0xe9, 0xd5, 0x68, 0xbe, 0x67, 0x52, 0x62, 0xaa, - 0xde, 0x1d, 0x68, 0x4a, 0x91, 0x9a, 0xc8, 0xe8, 0x73, 0xdb, 0x58, 0xeb, 0x33, 0xb1, 0xdb, 0xa9, - 0xfa, 0xd6, 0x15, 0x9c, 0xb2, 0x8c, 0xd3, 0x7b, 0x40, 0x2f, 0xe3, 0xc4, 0xd4, 0x87, 0x71, 0x77, - 0x93, 0x36, 0x3e, 0x42, 0xe5, 0x6c, 0x93, 0x5b, 0x1c, 0xc0, 0x42, 0xe1, 0xad, 0x5f, 0x66, 0x4d, - 0x21, 0x1d, 0x74, 0xab, 0xb7, 0x7b, 0xd6, 0x7a, 0x37, 0xa3, 0xdb, 0xa7, 0x7a, 0xff, 0xe5, 0x3e, - 0x69, 0x90, 0x23, 0x34, 0x95, 0x4f, 0xec, 0xe5, 0x9e, 0xc9, 0x39, 0x7b, 0xf5, 0xf5, 0xcb, 0xed, - 0x29, 0xb0, 0x8f, 0x5e, 0xeb, 0x77, 0x6e, 0xfa, 0x2d, 0xbd, 0xc7, 0xab, 0xfa, 0xf6, 0x55, 0xbc, - 0xf2, 0xa1, 0x7a, 0x3b, 0xc6, 0x20, 0x95, 0x5f, 0x1e, 0x6a, 0x60, 0x95, 0x37, 0x7e, 0x81, 0xe6, - 0x07, 0xb7, 0xa8, 0xcb, 0x75, 0xcf, 0x87, 0x7d, 0x78, 0x75, 0xdf, 0x34, 0xf8, 0x8f, 0xd1, 0xc4, - 0x45, 0x7b, 0xa9, 0xf6, 0x00, 0xa4, 0xb6, 0x6a, 0x6d, 0xb0, 0x2d, 0x2b, 0x5a, 0xbf, 0xca, 0xbf, - 0xde, 0x2f, 0xd5, 0xbb, 0xbd, 0xfa, 0x88, 0x76, 0x49, 0xb1, 0x37, 0xce, 0x90, 0x39, 0xb0, 0xd2, - 0xbf, 0x39, 0x40, 0xfe, 0x5e, 0xd7, 0xea, 0x3b, 0x57, 0x76, 0xcd, 0x2e, 0xb2, 0xdf, 0xe3, 0xb2, - 0x77, 0x91, 0x7d, 0xbc, 0xfa, 0x2c, 0xf2, 0x92, 0xb7, 0xa1, 0x11, 0xa0, 0xd9, 0xbe, 0xef, 0xef, - 0x7b, 0x03, 0x50, 0xf2, 0x6e, 0xd5, 0x07, 0x57, 0x72, 0x4b, 0xa2, 0x55, 0x47, 0x7f, 0x29, 0xda, - 0xfd, 0x23, 0xeb, 0xf3, 0xaf, 0x96, 0x0b, 0x5f, 0x7c, 0xb5, 0x5c, 0xf8, 0xef, 0x57, 0xcb, 0x85, - 0xdf, 0xbe, 0x58, 0xbe, 0xf1, 0xc5, 0x8b, 0xe5, 0x1b, 0xff, 0x7e, 0xb1, 0x7c, 0xe3, 0xf9, 0x7b, - 0x57, 0xfc, 0x05, 0xc9, 0xd9, 0xe6, 0xc5, 0x9f, 0x57, 0xf0, 0xf3, 0x18, 0xd8, 0xf1, 0x98, 0xfc, - 0x2b, 0x8a, 0x77, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x17, 0x60, 0x15, 0x19, 0x00, 0x22, 0x00, - 0x00, + // 2554 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xcf, 0x4f, 0x24, 0xc7, + 0xf5, 0xdf, 0x59, 0x06, 0x18, 0x6a, 0x58, 0x18, 0x7a, 0x81, 0x6d, 0x86, 0x9f, 0x3b, 0xb0, 0xf6, + 0x78, 0xed, 0x85, 0xaf, 0xd7, 0x5f, 0x25, 0x8e, 0x93, 0x43, 0xd8, 0xb0, 0xd8, 0x90, 0x9d, 0x0d, + 0x6e, 0xf0, 0x22, 0x6d, 0x2c, 0x75, 0x8a, 0xee, 0x9a, 0x9e, 0x16, 0xdd, 0x5d, 0xed, 0xaa, 0x9a, + 0x01, 0x9c, 0x4b, 0x14, 0x29, 0xa7, 0x5c, 0xa2, 0x1c, 0x92, 0x28, 0x7f, 0x41, 0x92, 0x93, 0x15, + 0x45, 0x39, 0x45, 0xca, 0xd5, 0x47, 0x2b, 0xa7, 0x28, 0x07, 0x2b, 0xb2, 0x0f, 0xfe, 0x37, 0xa2, + 0xfa, 0xd1, 0x35, 0xdd, 0xf3, 0x83, 0x45, 0x34, 0x07, 0x5f, 0xec, 0xed, 0x7a, 0xaf, 0x3e, 0xef, + 0xf3, 0x5e, 0xbd, 0x7a, 0xef, 0xd5, 0x08, 0x30, 0x87, 0x42, 0x9f, 0x52, 0x1f, 0x47, 0x74, 0xab, + 0xf3, 0xce, 0x16, 0x3b, 0xdf, 0x8c, 0x09, 0x66, 0xd8, 0x98, 0xd4, 0xcb, 0x9b, 0x9d, 0x77, 0xaa, + 0x33, 0x30, 0xf4, 0x23, 0xbc, 0x25, 0xfe, 0x2b, 0x15, 0xaa, 0xf7, 0x1c, 0x4c, 0x43, 0x4c, 0xb7, + 0x42, 0xea, 0x6d, 0x75, 0xde, 0xe6, 0xff, 0x53, 0x82, 0x05, 0x29, 0xb0, 0xc5, 0xd7, 0x96, 0xfc, + 0x50, 0xa2, 0x6a, 0xc6, 0x16, 0x41, 0x71, 0x9b, 0x21, 0x92, 0x6c, 0xcb, 0xc8, 0xce, 0x30, 0x39, + 0xd5, 0xa2, 0x59, 0x0f, 0x7b, 0x58, 0xc2, 0xf1, 0x7f, 0xc9, 0xd5, 0xda, 0x5f, 0x17, 0xc1, 0xd4, + 0x4f, 0x62, 0xe6, 0xe3, 0x08, 0x06, 0x07, 0x90, 0xc0, 0x90, 0x1a, 0x26, 0x18, 0xef, 0x20, 0xc2, + 0x41, 0xcc, 0xc2, 0xda, 0x48, 0x7d, 0xc2, 0x4a, 0x3e, 0x8d, 0xef, 0x81, 0x85, 0x10, 0x9e, 0xdb, + 0x14, 0x11, 0x1f, 0x06, 0xfe, 0xa7, 0xc8, 0xb5, 0x43, 0xea, 0xd9, 0x01, 0x8a, 0x3c, 0xd6, 0x32, + 0x6f, 0xaf, 0x8d, 0xd4, 0x47, 0xac, 0xf9, 0x10, 0x9e, 0x1f, 0x6a, 0x79, 0x83, 0x7a, 0xcf, 0x84, + 0xd4, 0x80, 0xa0, 0x12, 0xfa, 0x91, 0xcd, 0x70, 0xec, 0x3b, 0xf6, 0x19, 0xf2, 0xbd, 0x16, 0x33, + 0x47, 0x38, 0xfa, 0x93, 0xef, 0x7e, 0xfe, 0xe5, 0xea, 0xad, 0xff, 0x7c, 0xb9, 0xba, 0xe5, 0xf9, + 0xac, 0xd5, 0x3e, 0xd9, 0x74, 0x70, 0xb8, 0x05, 0x83, 0x00, 0x13, 0xf8, 0x28, 0x42, 0x8c, 0xbb, + 0x90, 0x7c, 0x3a, 0x2d, 0xe8, 0x47, 0x5b, 0x21, 0x64, 0xad, 0xcd, 0x1d, 0xe4, 0x58, 0x53, 0xa1, + 0x1f, 0x1d, 0x71, 0xbc, 0x63, 0x01, 0x67, 0x34, 0xc1, 0x3c, 0x41, 0x9f, 0xb4, 0x7d, 0xc2, 0x79, + 0xf9, 0x91, 0x1f, 0xb6, 0x43, 0x9b, 0x32, 0x78, 0x8a, 0xcc, 0x51, 0x61, 0xe8, 0xff, 0x94, 0xa1, + 0x39, 0x19, 0x4d, 0xea, 0x9e, 0x6e, 0xfa, 0x58, 0xc2, 0xed, 0x45, 0xec, 0x5f, 0x7f, 0x7b, 0x04, + 0x54, 0x98, 0xf7, 0x22, 0xf6, 0xa7, 0x6f, 0x3e, 0x7b, 0x58, 0xb0, 0x66, 0x13, 0xbc, 0x86, 0x84, + 0x3b, 0xe4, 0x68, 0x3c, 0x0a, 0x04, 0x85, 0xb8, 0x83, 0x24, 0xba, 0xed, 0xa2, 0x00, 0x5e, 0xd8, + 0x67, 0x7e, 0xe4, 0xe2, 0x33, 0x73, 0x4c, 0x46, 0x41, 0x2a, 0x08, 0xfd, 0x1d, 0x2e, 0x3e, 0x16, + 0x52, 0xa3, 0x2e, 0xa3, 0x80, 0x62, 0xec, 0xb4, 0x92, 0xb8, 0x8d, 0x8b, 0x1d, 0xdc, 0x99, 0xa7, + 0x7c, 0x59, 0xc5, 0xeb, 0x25, 0x98, 0x3c, 0x41, 0x0c, 0xda, 0x28, 0x62, 0x04, 0xc7, 0x17, 0x66, + 0x29, 0x5f, 0xac, 0xca, 0x1c, 0xec, 0xa9, 0xc4, 0x32, 0x3e, 0x06, 0x77, 0x02, 0x04, 0x49, 0xe4, + 0x47, 0x9e, 0x4d, 0x20, 0x43, 0xe6, 0x44, 0x3e, 0xf0, 0xc9, 0x04, 0xcd, 0x82, 0x0c, 0x19, 0x21, + 0xe0, 0x39, 0x60, 0x7b, 0x04, 0xba, 0x3e, 0x8a, 0x98, 0xcd, 0x5a, 0x04, 0xd1, 0x16, 0x0e, 0x5c, + 0x13, 0xe4, 0x33, 0x33, 0x1b, 0xc2, 0xf3, 0xf7, 0x15, 0xea, 0x51, 0x02, 0x6a, 0x20, 0x60, 0xf0, + 0x90, 0xca, 0xa3, 0x68, 0x12, 0xe8, 0xf0, 0x5c, 0x36, 0xcb, 0xf9, 0x4c, 0xf1, 0x53, 0x12, 0x87, + 0xb7, 0xab, 0x00, 0x8d, 0xa7, 0x60, 0x95, 0x7b, 0xd5, 0x8e, 0x9a, 0xed, 0xa0, 0xe9, 0x07, 0x01, + 0x72, 0x6d, 0x79, 0xbb, 0x6c, 0x9e, 0x23, 0x88, 0x32, 0x6a, 0xde, 0x59, 0x1b, 0xa9, 0x17, 0xad, + 0xa5, 0x10, 0x9e, 0x7f, 0xd4, 0xd5, 0x3a, 0x16, 0x4a, 0x96, 0xd2, 0x31, 0xde, 0x07, 0x6b, 0xbd, + 0x30, 0xea, 0x02, 0x77, 0x71, 0xa6, 0x04, 0xce, 0x72, 0x16, 0xc7, 0x92, 0x5a, 0x1a, 0xe8, 0x53, + 0xb0, 0x2c, 0xef, 0x12, 0x41, 0x67, 0x90, 0xb8, 0xca, 0x7f, 0x3f, 0x8c, 0x31, 0x61, 0x30, 0x72, + 0x90, 0x39, 0x9d, 0x2f, 0x02, 0x55, 0x81, 0x6e, 0x09, 0x70, 0x11, 0x89, 0x3d, 0x0d, 0x6d, 0xfc, + 0xaa, 0x00, 0xd6, 0x33, 0xc6, 0x9b, 0x08, 0xd9, 0x04, 0x75, 0x50, 0xd4, 0xce, 0x50, 0xa8, 0xe4, + 0xa3, 0xb0, 0x9a, 0xa2, 0xb0, 0x8b, 0x90, 0x25, 0x0d, 0xa4, 0x78, 0x20, 0x60, 0x64, 0x68, 0xc0, + 0x20, 0x6e, 0x41, 0x73, 0x26, 0xe7, 0xd1, 0xa7, 0xac, 0x6e, 0x73, 0x40, 0xc3, 0x01, 0x33, 0x0c, + 0xd2, 0xd3, 0xac, 0x15, 0x23, 0x9f, 0x95, 0x69, 0x8e, 0x98, 0x36, 0xc2, 0x63, 0xda, 0x81, 0x81, + 0xef, 0x42, 0x86, 0x09, 0xb5, 0x3b, 0xd4, 0x96, 0x1b, 0xed, 0x18, 0x11, 0x87, 0x5f, 0x23, 0x69, + 0xdd, 0xbc, 0x9b, 0x33, 0xa6, 0x5d, 0x1b, 0x2f, 0xe8, 0xb6, 0x50, 0x39, 0x90, 0x06, 0x24, 0x19, + 0xe3, 0x07, 0x60, 0x51, 0x94, 0x78, 0x18, 0xc6, 0x01, 0xa2, 0x36, 0xc3, 0x36, 0x75, 0x60, 0x80, + 0x6c, 0xea, 0x60, 0x82, 0xa8, 0x39, 0x2b, 0x72, 0xf3, 0x1e, 0x2f, 0xf2, 0x52, 0xe3, 0x08, 0x1f, + 0x72, 0xf9, 0xa1, 0x10, 0x1b, 0xef, 0x81, 0x2a, 0xdf, 0xcd, 0x70, 0x6c, 0xfb, 0x51, 0x13, 0x11, + 0x44, 0x04, 0x84, 0xe2, 0x3e, 0x27, 0x36, 0xf3, 0xea, 0x70, 0x84, 0xe3, 0x3d, 0x25, 0x3f, 0xc2, + 0xca, 0xf2, 0x0f, 0xc1, 0x72, 0xb2, 0xb7, 0x89, 0x09, 0x72, 0x20, 0x65, 0xd9, 0xed, 0xf3, 0x62, + 0xfb, 0x82, 0xdc, 0xbe, 0xdb, 0x55, 0xd1, 0x08, 0x29, 0xeb, 0xea, 0x52, 0xa5, 0xb7, 0xdf, 0x4b, + 0x5b, 0x57, 0xd7, 0xa9, 0xbb, 0xf7, 0x25, 0xa8, 0x38, 0x04, 0x41, 0x86, 0x54, 0x8b, 0x6a, 0x22, + 0x64, 0x9a, 0xd7, 0x6c, 0x1b, 0x53, 0x12, 0x49, 0xf4, 0xa6, 0x5d, 0x84, 0x8c, 0xef, 0x83, 0xaa, + 0xae, 0x86, 0x2e, 0xa2, 0xe2, 0x38, 0x39, 0x51, 0x9f, 0x33, 0x30, 0x17, 0x64, 0x48, 0x13, 0x8d, + 0x1d, 0xa9, 0xd0, 0x80, 0xe7, 0x7b, 0x5c, 0x6c, 0xfc, 0x14, 0x54, 0x08, 0xf2, 0x7c, 0xca, 0x08, + 0xe4, 0x85, 0x48, 0x10, 0x5b, 0xba, 0x26, 0xb1, 0xe9, 0x34, 0x12, 0x67, 0xf6, 0x16, 0x30, 0x5c, + 0xd4, 0x84, 0xed, 0x80, 0xd9, 0x31, 0xf4, 0x90, 0x1d, 0xf8, 0xa1, 0xcf, 0xcc, 0x65, 0xc1, 0xa8, + 0xa2, 0x24, 0x07, 0xd0, 0x43, 0xcf, 0xf8, 0xba, 0xb1, 0x01, 0xa6, 0x38, 0xed, 0x94, 0xe6, 0x8a, + 0xd0, 0x9c, 0x0c, 0xe1, 0x79, 0x57, 0x8b, 0x9f, 0x63, 0x4f, 0x8f, 0xb3, 0x09, 0x72, 0x30, 0x71, + 0xd5, 0xa6, 0x55, 0xd1, 0xf0, 0x16, 0xb2, 0x0d, 0xcf, 0x12, 0x1a, 0x12, 0xa1, 0x0e, 0x2a, 0x27, + 0x01, 0x76, 0x4e, 0x29, 0x4f, 0x7e, 0x3b, 0xc4, 0x11, 0x6b, 0x99, 0x6b, 0xc2, 0xd2, 0x94, 0x5c, + 0x3f, 0x40, 0xa4, 0xc1, 0x57, 0x79, 0x05, 0x88, 0x93, 0x7b, 0x29, 0x13, 0x8e, 0xd7, 0x9d, 0xfb, + 0x39, 0x2b, 0x40, 0x2c, 0x73, 0x62, 0x2f, 0x01, 0xe4, 0x15, 0x40, 0x9b, 0x49, 0x72, 0xd3, 0xac, + 0xe5, 0xac, 0x00, 0xca, 0x4a, 0x92, 0xc8, 0x7c, 0x42, 0xd2, 0x46, 0x54, 0xfa, 0x9a, 0xeb, 0x39, + 0x27, 0x24, 0x65, 0x43, 0x65, 0x3b, 0x0f, 0x97, 0xd3, 0x1f, 0xae, 0x8d, 0x9c, 0xe1, 0x72, 0x06, + 0x84, 0xcb, 0xe9, 0x0b, 0xd7, 0x83, 0x9c, 0xe1, 0x72, 0x7a, 0xc2, 0xf5, 0x1c, 0x8c, 0x39, 0x76, + 0x84, 0x49, 0x68, 0xbe, 0x96, 0x0f, 0x79, 0xd4, 0x79, 0x8e, 0x49, 0x68, 0xfc, 0x0c, 0x4c, 0xa3, + 0x98, 0xfa, 0x01, 0x8e, 0x74, 0xf4, 0xeb, 0x39, 0xa3, 0xaf, 0xf0, 0x92, 0xe8, 0xbf, 0x00, 0x6f, + 0xb4, 0x60, 0xd0, 0x14, 0x57, 0x3f, 0x26, 0xd8, 0x41, 0x94, 0xaa, 0xb6, 0x2d, 0xa6, 0x45, 0x18, + 0x50, 0x1b, 0x45, 0xae, 0x2d, 0x52, 0xdc, 0x7c, 0x28, 0xf2, 0x7d, 0x9d, 0x6f, 0x68, 0xc0, 0xf3, + 0x03, 0xa9, 0x2e, 0x1a, 0xb1, 0xa5, 0x94, 0x9f, 0x46, 0xee, 0x13, 0xae, 0xca, 0x4b, 0x97, 0x0b, + 0x19, 0xb4, 0x29, 0x8a, 0x5c, 0x3e, 0xd2, 0xf1, 0x0a, 0xf1, 0xe6, 0x75, 0x4b, 0x17, 0x47, 0x3a, + 0x94, 0x40, 0xbc, 0x40, 0x40, 0x50, 0x49, 0xa2, 0x42, 0x61, 0x13, 0xd9, 0xae, 0xdf, 0x31, 0xdf, + 0xba, 0x99, 0xb0, 0x1c, 0xc2, 0x26, 0xda, 0xf1, 0x3b, 0xc9, 0xa3, 0x02, 0x05, 0x28, 0x44, 0x11, + 0x93, 0x77, 0x5e, 0x67, 0xcd, 0x23, 0x5d, 0xb4, 0x9f, 0x2a, 0xf9, 0x01, 0x22, 0x3a, 0x07, 0x54, + 0xb3, 0xe2, 0x23, 0x5a, 0x47, 0x15, 0x6e, 0xb9, 0x5f, 0xc6, 0x70, 0x53, 0x37, 0xab, 0x6d, 0xa1, + 0x21, 0x0a, 0x32, 0x07, 0x10, 0x71, 0xdb, 0x2f, 0x96, 0x8a, 0x95, 0xd1, 0xfd, 0x62, 0xa9, 0x5a, + 0x59, 0xdc, 0x2f, 0x96, 0x16, 0x2b, 0x4b, 0xfb, 0xc5, 0xd2, 0xeb, 0x95, 0xfa, 0x7e, 0xb1, 0xf4, + 0x46, 0xe5, 0xa1, 0x98, 0x36, 0xfb, 0x20, 0xad, 0x45, 0x51, 0xda, 0x9a, 0x4d, 0x94, 0x32, 0x99, + 0x8c, 0x3e, 0xd6, 0x3a, 0xdf, 0x42, 0x10, 0x23, 0xbe, 0xec, 0x9c, 0x72, 0x78, 0xb3, 0x23, 0x1c, + 0x39, 0x88, 0xaa, 0x71, 0xd1, 0x5a, 0xd2, 0xfd, 0x45, 0x8f, 0x4c, 0x2e, 0x72, 0xe0, 0x85, 0x98, + 0xc4, 0xad, 0x8d, 0x4b, 0x21, 0x54, 0x62, 0xd6, 0x02, 0x30, 0xdd, 0xa0, 0xde, 0x47, 0xb1, 0x0b, + 0x19, 0x52, 0x8f, 0xb6, 0x79, 0x30, 0xc6, 0xcf, 0x1f, 0x11, 0xb3, 0xb0, 0x56, 0xa8, 0x4f, 0x58, + 0xea, 0xcb, 0xf8, 0x7f, 0x30, 0x16, 0x0b, 0x0d, 0xf3, 0xf6, 0x5a, 0xa1, 0x5e, 0x7e, 0xbc, 0xb4, + 0x99, 0x7e, 0x92, 0x6e, 0x66, 0x9f, 0x7e, 0x96, 0xd2, 0x7d, 0xaf, 0xfc, 0xcb, 0x6f, 0x3e, 0x7b, + 0xa8, 0x20, 0x6a, 0x0b, 0xe0, 0x5e, 0x8f, 0x35, 0x0b, 0xd1, 0x18, 0x47, 0x14, 0xd5, 0xfe, 0x59, + 0x02, 0x33, 0x0d, 0xea, 0xfd, 0x48, 0xf4, 0xbb, 0xe7, 0xe8, 0x4c, 0x44, 0x98, 0x3f, 0x20, 0x45, + 0x07, 0xc4, 0x09, 0x99, 0xe4, 0xd3, 0xa8, 0x82, 0x52, 0x88, 0x18, 0xe4, 0x49, 0x26, 0xf8, 0x4c, + 0x58, 0xfa, 0xdb, 0x58, 0x05, 0xe5, 0x00, 0x53, 0x6a, 0x87, 0x88, 0xb5, 0xb0, 0x6b, 0x16, 0x85, + 0x18, 0xf0, 0xa5, 0x86, 0x58, 0x31, 0xee, 0x83, 0xc9, 0x9e, 0x87, 0x53, 0xa1, 0x3e, 0x62, 0x95, + 0x51, 0xea, 0xd5, 0x54, 0x07, 0x15, 0x8f, 0xe0, 0x76, 0xe4, 0xda, 0x8c, 0xb4, 0x59, 0xcb, 0x0e, + 0xa0, 0x67, 0x96, 0x84, 0xda, 0x94, 0x5c, 0x3f, 0xe2, 0xcb, 0xcf, 0xa0, 0xc7, 0xcb, 0x47, 0x2c, + 0xcb, 0x07, 0xe0, 0x86, 0x72, 0x94, 0x8f, 0x58, 0x94, 0x8f, 0x97, 0x60, 0x52, 0x0c, 0x86, 0x36, + 0x41, 0x1e, 0x41, 0xcc, 0x2c, 0xe7, 0x43, 0x2d, 0x0b, 0x30, 0x4b, 0x60, 0x19, 0x0f, 0xc0, 0x14, + 0xd7, 0x3a, 0xb3, 0x23, 0xe4, 0x41, 0x9e, 0x77, 0xe6, 0xe4, 0x5a, 0xa1, 0x5e, 0xb2, 0xee, 0x88, + 0xd5, 0xe7, 0x6a, 0xd1, 0xf8, 0x10, 0x8c, 0xab, 0xab, 0x65, 0xde, 0xc9, 0x67, 0x3d, 0xc1, 0x31, + 0xde, 0x05, 0xa6, 0x7a, 0xe5, 0xd0, 0xf6, 0x89, 0xca, 0x9b, 0xe4, 0xa5, 0x3b, 0x25, 0xe2, 0x3a, + 0x2f, 0xe5, 0x87, 0x5a, 0xac, 0x5e, 0xba, 0xa7, 0x60, 0x2e, 0x44, 0xc4, 0x67, 0x36, 0xc5, 0x84, + 0xf9, 0x62, 0x72, 0x91, 0x83, 0xf3, 0x74, 0x3e, 0x6a, 0x77, 0x05, 0xea, 0x61, 0x02, 0x2a, 0x87, + 0x67, 0x0c, 0xee, 0xa9, 0x1a, 0xa0, 0xa6, 0x4e, 0xfb, 0x93, 0x36, 0x8c, 0x98, 0x1f, 0xf0, 0x37, + 0x48, 0x2e, 0x73, 0x73, 0x12, 0x57, 0x0d, 0xab, 0x1f, 0x2a, 0x54, 0xa3, 0x0d, 0xaa, 0xca, 0x60, + 0x77, 0x54, 0xed, 0xda, 0x9c, 0xc9, 0x67, 0xd3, 0x94, 0xd0, 0xdd, 0x09, 0x57, 0x9b, 0xed, 0xfa, + 0x99, 0x3c, 0x1a, 0xb5, 0x4d, 0xe3, 0x46, 0xfc, 0x54, 0xad, 0x2a, 0x31, 0xf8, 0xde, 0x24, 0xaf, + 0x03, 0xc9, 0xed, 0xdd, 0x2f, 0x96, 0x46, 0x2a, 0xc5, 0xfd, 0x62, 0x69, 0xb4, 0x32, 0xb6, 0x5f, + 0x2c, 0x8d, 0x55, 0xc6, 0xf7, 0x8b, 0xa5, 0x89, 0x0a, 0x90, 0x97, 0xd4, 0x0e, 0xb0, 0xe7, 0x3b, + 0xd6, 0xb4, 0x9e, 0x2b, 0xd4, 0x42, 0xa5, 0xbb, 0x20, 0x6f, 0xb6, 0x55, 0x4e, 0x46, 0x4e, 0x48, + 0xbc, 0xda, 0x77, 0xc0, 0x42, 0x5f, 0x01, 0x49, 0xca, 0x8b, 0xb1, 0x00, 0x4a, 0xb2, 0x5a, 0xfa, + 0xae, 0xa8, 0x24, 0x45, 0x6b, 0x5c, 0x7c, 0xef, 0xb9, 0xb5, 0xdf, 0x16, 0x44, 0x55, 0xda, 0x8b, + 0x28, 0x22, 0x4c, 0xd1, 0x3e, 0x80, 0x17, 0x01, 0x86, 0xee, 0xd0, 0x5a, 0x68, 0x81, 0xd9, 0x24, + 0x6e, 0x1d, 0x18, 0xb4, 0x91, 0x7d, 0xd2, 0x8e, 0xdc, 0x00, 0xa9, 0xca, 0xb8, 0x96, 0xad, 0x8c, + 0x0a, 0xf3, 0x05, 0x57, 0x7c, 0x22, 0xf4, 0x2c, 0x83, 0xf4, 0xad, 0x65, 0x2b, 0xe5, 0x7d, 0xb0, + 0x3a, 0x84, 0x93, 0xae, 0x98, 0xbf, 0x2e, 0x80, 0x79, 0xad, 0x23, 0x7f, 0x1c, 0x78, 0x15, 0xed, + 0x67, 0xc0, 0x50, 0x97, 0x50, 0xb4, 0xf9, 0x0c, 0xe9, 0x95, 0x2c, 0x69, 0x09, 0xb8, 0x03, 0x19, + 0x54, 0x94, 0x2b, 0x67, 0x3d, 0x2b, 0x59, 0xc2, 0x6b, 0x60, 0x65, 0x30, 0x19, 0xcd, 0xf7, 0x2f, + 0x05, 0x50, 0x6e, 0x50, 0xcf, 0x12, 0x0f, 0x07, 0x44, 0x86, 0x92, 0x4c, 0x1f, 0x55, 0x31, 0x73, + 0x54, 0xc6, 0x2c, 0x18, 0xc5, 0x67, 0x11, 0x22, 0xe6, 0xa8, 0xd8, 0x21, 0x3f, 0x8c, 0x65, 0x00, + 0x7c, 0xdd, 0xd1, 0xcc, 0x31, 0x51, 0xd0, 0x26, 0x7c, 0xaa, 0xc2, 0x96, 0xa1, 0xb9, 0x5f, 0x2c, + 0xdd, 0xae, 0x8c, 0xc8, 0xf4, 0xb3, 0xca, 0x81, 0x7f, 0x62, 0xc7, 0x8f, 0x63, 0xfb, 0x14, 0x5d, + 0x58, 0x77, 0xc2, 0x76, 0xc0, 0x7c, 0x1b, 0xba, 0x2e, 0x41, 0x94, 0xd6, 0xf6, 0xc0, 0xdd, 0x14, + 0x57, 0x9d, 0x46, 0x26, 0x18, 0xa7, 0x6d, 0x87, 0x0f, 0x50, 0x82, 0x74, 0xc9, 0x4a, 0x3e, 0xb9, + 0x24, 0x44, 0x94, 0x42, 0x0f, 0xa9, 0x76, 0x94, 0x7c, 0xd6, 0x3a, 0x60, 0x4e, 0x40, 0x85, 0x98, + 0xdf, 0x8a, 0xee, 0xab, 0xe9, 0x4a, 0x01, 0xb8, 0x9d, 0x0d, 0x40, 0xd6, 0xd5, 0x91, 0xcb, 0x5c, + 0xad, 0x1d, 0x82, 0xe5, 0x81, 0x76, 0x73, 0x39, 0xf3, 0x7b, 0x79, 0x88, 0xdb, 0xae, 0xfc, 0x29, + 0xe7, 0x3a, 0x3e, 0x7c, 0x00, 0xc6, 0x60, 0x88, 0xdb, 0x11, 0x13, 0xfc, 0xaf, 0x33, 0x5a, 0xaa, + 0xfd, 0x59, 0x77, 0xe7, 0xc4, 0x89, 0x25, 0xc4, 0x74, 0xd6, 0xfd, 0xb1, 0x00, 0xa6, 0x74, 0x18, + 0xbe, 0x6d, 0x9c, 0x4d, 0x71, 0x83, 0x53, 0xdc, 0x34, 0xed, 0x17, 0x60, 0x96, 0x17, 0x33, 0x18, + 0x39, 0x28, 0xc8, 0xc7, 0x3d, 0x6b, 0x71, 0x05, 0x2c, 0x0d, 0xc2, 0xd5, 0x76, 0xff, 0x5e, 0x00, + 0x95, 0x06, 0xf5, 0x76, 0x50, 0xc0, 0x67, 0x81, 0xeb, 0x07, 0xcc, 0x04, 0xe3, 0xe9, 0x2c, 0x9d, + 0xb0, 0x92, 0xcf, 0x54, 0x28, 0x8b, 0x37, 0x19, 0xca, 0x2a, 0x30, 0x7b, 0x79, 0x6b, 0xa7, 0xfe, + 0x51, 0x48, 0xc5, 0xf9, 0x6a, 0xae, 0xa5, 0xf8, 0xdf, 0xce, 0xf2, 0x4f, 0x3b, 0x3d, 0x32, 0x2c, + 0x4b, 0x6e, 0xd4, 0x35, 0x59, 0x5a, 0x07, 0xb0, 0xd7, 0x0e, 0xfe, 0xae, 0xd0, 0x77, 0xac, 0xb9, + 0x4f, 0x70, 0x09, 0x4c, 0xb8, 0x12, 0x03, 0x27, 0x67, 0xd8, 0x5d, 0x48, 0xc7, 0xa7, 0x98, 0x89, + 0x4f, 0x96, 0xfa, 0x6b, 0x60, 0xe3, 0x32, 0x5e, 0xda, 0x81, 0x3f, 0x14, 0xc0, 0x64, 0x83, 0x7a, + 0xbb, 0x7c, 0xae, 0x16, 0x83, 0xff, 0xb7, 0xe7, 0x8e, 0xce, 0x8b, 0x9b, 0xa8, 0x99, 0x69, 0xca, + 0xc7, 0x22, 0xa7, 0xb6, 0x5d, 0xf7, 0x08, 0x1f, 0xb7, 0x7c, 0x86, 0x02, 0x9f, 0xb2, 0x6d, 0x37, + 0xf4, 0xa3, 0xcb, 0x72, 0x4a, 0xb5, 0x97, 0x24, 0xa7, 0xd4, 0xe7, 0xa0, 0xe3, 0x1e, 0x00, 0xac, + 0x4d, 0x7f, 0x0c, 0x16, 0x75, 0x42, 0xec, 0x12, 0x1c, 0xde, 0xac, 0xfd, 0x07, 0x60, 0xfd, 0x12, + 0x74, 0x4d, 0x22, 0xc9, 0xca, 0x33, 0x48, 0xdc, 0xc1, 0x87, 0x4a, 0xd4, 0xad, 0xeb, 0xd3, 0xb8, + 0xd1, 0x82, 0x92, 0x21, 0xff, 0xf8, 0xcf, 0x93, 0x60, 0xa4, 0x41, 0x3d, 0xe3, 0x08, 0x4c, 0x66, + 0x1e, 0xb5, 0xcb, 0xd9, 0xe9, 0xa6, 0xe7, 0x15, 0x5a, 0x7d, 0x70, 0xa9, 0x58, 0x77, 0xcc, 0x97, + 0x60, 0xaa, 0xe7, 0x81, 0xba, 0xda, 0xb7, 0x31, 0xab, 0x50, 0x7d, 0xfd, 0x15, 0x0a, 0x1a, 0xfb, + 0x03, 0x50, 0xd2, 0xa3, 0xd1, 0x42, 0xdf, 0xa6, 0x44, 0x54, 0xbd, 0x3f, 0x54, 0xa4, 0x91, 0x9a, + 0xc0, 0x18, 0x30, 0x6d, 0xac, 0x0f, 0xd8, 0xd8, 0xab, 0x54, 0x7d, 0xf3, 0x0a, 0x4a, 0x69, 0xc6, + 0x7a, 0x0e, 0xe8, 0x67, 0x9c, 0x88, 0x06, 0x30, 0xee, 0x6d, 0xd2, 0xc6, 0x87, 0xa0, 0x9c, 0x6e, + 0x72, 0x4b, 0x43, 0x58, 0x48, 0xbc, 0x8d, 0xcb, 0xa4, 0x1a, 0xd2, 0x01, 0x33, 0xfd, 0xdd, 0xb3, + 0xd6, 0x7f, 0x18, 0xbd, 0x3a, 0xd5, 0x87, 0xaf, 0xd6, 0xd1, 0x46, 0x8e, 0xc1, 0x9d, 0x6c, 0x62, + 0xaf, 0xf4, 0x6d, 0xce, 0xc8, 0xab, 0xaf, 0x5d, 0x2e, 0xd7, 0xc0, 0x3e, 0xb8, 0x3b, 0xe8, 0xde, + 0x0c, 0x72, 0xbd, 0x4f, 0xab, 0xfa, 0xd6, 0x55, 0xb4, 0xb2, 0xa6, 0xfa, 0x3b, 0xc6, 0xb0, 0x28, + 0xbf, 0xda, 0xd4, 0xd0, 0x2a, 0x6f, 0xfc, 0x1c, 0x2c, 0x0c, 0x6f, 0x51, 0x97, 0xc7, 0x3d, 0x6b, + 0xf6, 0xf1, 0xd5, 0x75, 0xb5, 0xf1, 0x1f, 0x83, 0x89, 0x6e, 0x7b, 0xa9, 0xf6, 0x01, 0x68, 0x59, + 0xb5, 0x36, 0x5c, 0x96, 0x0e, 0xda, 0xa0, 0xca, 0xbf, 0x31, 0x28, 0xd5, 0x7b, 0xb5, 0x06, 0x04, + 0xed, 0x92, 0x62, 0x6f, 0x9c, 0x03, 0x73, 0x68, 0xa5, 0x7f, 0x63, 0x48, 0xf8, 0xfb, 0x55, 0xab, + 0x6f, 0x5f, 0x59, 0x35, 0xed, 0xe4, 0xa0, 0xc7, 0x65, 0xbf, 0x93, 0x03, 0xb4, 0x06, 0x38, 0x79, + 0xc9, 0xdb, 0xd0, 0x08, 0xc0, 0xec, 0xc0, 0xf7, 0xf7, 0x83, 0x21, 0x28, 0x59, 0xb5, 0xea, 0xa3, + 0x2b, 0xa9, 0x25, 0xd6, 0xaa, 0xa3, 0xbf, 0xe0, 0xed, 0xfe, 0x89, 0xf5, 0xf9, 0x57, 0x2b, 0x85, + 0x2f, 0xbe, 0x5a, 0x29, 0xfc, 0xf7, 0xab, 0x95, 0xc2, 0x6f, 0xbe, 0x5e, 0xb9, 0xf5, 0xc5, 0xd7, + 0x2b, 0xb7, 0xfe, 0xfd, 0xf5, 0xca, 0xad, 0x97, 0xef, 0x5e, 0xf1, 0x47, 0x8f, 0xf3, 0xad, 0xee, + 0x1f, 0xc9, 0xb0, 0x8b, 0x18, 0xd1, 0x93, 0x31, 0xf1, 0xb7, 0x30, 0xef, 0xfc, 0x2f, 0x00, 0x00, + 0xff, 0xff, 0x1b, 0xc5, 0x1c, 0x6e, 0xc6, 0x23, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3410,6 +3419,52 @@ func (m *MsgCreateNewTopic) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + { + size := m.ActiveReputerQuantile.Size() + i -= size + if _, err := m.ActiveReputerQuantile.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x92 + { + size := m.ActiveForecasterQuantile.Size() + i -= size + if _, err := m.ActiveForecasterQuantile.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + { + size := m.ActiveInfererQuantile.Size() + i -= size + if _, err := m.ActiveInfererQuantile.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + { + size := m.MeritSortitionAlpha.Size() + i -= size + if _, err := m.MeritSortitionAlpha.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a if m.WorkerSubmissionWindow != 0 { i = encodeVarintTx(dAtA, i, uint64(m.WorkerSubmissionWindow)) i-- @@ -4832,6 +4887,14 @@ func (m *MsgCreateNewTopic) Size() (n int) { if m.WorkerSubmissionWindow != 0 { n += 1 + sovTx(uint64(m.WorkerSubmissionWindow)) } + l = m.MeritSortitionAlpha.Size() + n += 1 + l + sovTx(uint64(l)) + l = m.ActiveInfererQuantile.Size() + n += 2 + l + sovTx(uint64(l)) + l = m.ActiveForecasterQuantile.Size() + n += 2 + l + sovTx(uint64(l)) + l = m.ActiveReputerQuantile.Size() + n += 2 + l + sovTx(uint64(l)) return n } @@ -7899,6 +7962,142 @@ func (m *MsgCreateNewTopic) Unmarshal(dAtA []byte) error { break } } + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MeritSortitionAlpha", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MeritSortitionAlpha.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveInfererQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ActiveInfererQuantile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveForecasterQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ActiveForecasterQuantile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 18: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ActiveReputerQuantile", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ActiveReputerQuantile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:])