diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b3f6c122..d683cf14b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -69,6 +69,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * [#627](https://github.com/allora-network/allora-chain/pull/627) Add fee market and fee grant module ### Changed +* [#670](https://github.com/allora-network/allora-chain/pull/670) Adjust topic initial regret initialization * [#652](https://github.com/allora-network/allora-chain/pull/652) Reduce code duplication, set local_testnet_upgrade_l1.sh using environment variables with local_testnet_l1.sh instead * [#650](https://github.com/allora-network/allora-chain/pull/650) Make fuzzer setup run through every state transition once before fuzzing starts * [#651](https://github.com/allora-network/allora-chain/pull/651) Refactor: Fuzzer rename invariants test to fuzz test diff --git a/test/integration/update_params_test.go b/test/integration/update_params_test.go index 4427b07c2..7b1813944 100644 --- a/test/integration/update_params_test.go +++ b/test/integration/update_params_test.go @@ -88,6 +88,7 @@ func UpdateParamsChecks(m testCommon.TestConfig) { PNormSafeDiv: nil, GlobalWhitelistEnabled: nil, TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, }, } txResp, err := m.Client.BroadcastTx(ctx, m.AliceAcc, updateParamRequest) @@ -146,6 +147,7 @@ func UpdateParamsChecks(m testCommon.TestConfig) { PNormSafeDiv: nil, GlobalWhitelistEnabled: nil, TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, }, } _, err = m.Client.BroadcastTx(ctx, m.BobAcc, updateParamRequest) @@ -208,6 +210,7 @@ func UpdateParamsChecks(m testCommon.TestConfig) { PNormSafeDiv: nil, GlobalWhitelistEnabled: nil, TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, }, } txResp, err = m.Client.BroadcastTx(ctx, m.AliceAcc, updateParamRequest) diff --git a/x/emissions/api/emissions/v6/params.pulsar.go b/x/emissions/api/emissions/v6/params.pulsar.go index 4bdd6389b..81bb2ea07 100644 --- a/x/emissions/api/emissions/v6/params.pulsar.go +++ b/x/emissions/api/emissions/v6/params.pulsar.go @@ -62,6 +62,7 @@ var ( fd_Params_p_norm_safe_div protoreflect.FieldDescriptor fd_Params_global_whitelist_enabled protoreflect.FieldDescriptor fd_Params_topic_creator_whitelist_enabled protoreflect.FieldDescriptor + fd_Params_min_experienced_worker_regrets protoreflect.FieldDescriptor ) func init() { @@ -112,6 +113,7 @@ func init() { fd_Params_p_norm_safe_div = md_Params.Fields().ByName("p_norm_safe_div") fd_Params_global_whitelist_enabled = md_Params.Fields().ByName("global_whitelist_enabled") fd_Params_topic_creator_whitelist_enabled = md_Params.Fields().ByName("topic_creator_whitelist_enabled") + fd_Params_min_experienced_worker_regrets = md_Params.Fields().ByName("min_experienced_worker_regrets") } var _ protoreflect.Message = (*fastReflection_Params)(nil) @@ -449,6 +451,12 @@ func (x *fastReflection_Params) Range(f func(protoreflect.FieldDescriptor, proto return } } + if x.MinExperiencedWorkerRegrets != uint64(0) { + value := protoreflect.ValueOfUint64(x.MinExperiencedWorkerRegrets) + if !f(fd_Params_min_experienced_worker_regrets, value) { + return + } + } } // Has reports whether a field is populated. @@ -554,6 +562,8 @@ func (x *fastReflection_Params) Has(fd protoreflect.FieldDescriptor) bool { return x.GlobalWhitelistEnabled != false case "emissions.v6.Params.topic_creator_whitelist_enabled": return x.TopicCreatorWhitelistEnabled != false + case "emissions.v6.Params.min_experienced_worker_regrets": + return x.MinExperiencedWorkerRegrets != uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.Params")) @@ -660,6 +670,8 @@ func (x *fastReflection_Params) Clear(fd protoreflect.FieldDescriptor) { x.GlobalWhitelistEnabled = false case "emissions.v6.Params.topic_creator_whitelist_enabled": x.TopicCreatorWhitelistEnabled = false + case "emissions.v6.Params.min_experienced_worker_regrets": + x.MinExperiencedWorkerRegrets = uint64(0) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.Params")) @@ -811,6 +823,9 @@ func (x *fastReflection_Params) Get(descriptor protoreflect.FieldDescriptor) pro case "emissions.v6.Params.topic_creator_whitelist_enabled": value := x.TopicCreatorWhitelistEnabled return protoreflect.ValueOfBool(value) + case "emissions.v6.Params.min_experienced_worker_regrets": + value := x.MinExperiencedWorkerRegrets + return protoreflect.ValueOfUint64(value) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.Params")) @@ -921,6 +936,8 @@ func (x *fastReflection_Params) Set(fd protoreflect.FieldDescriptor, value proto x.GlobalWhitelistEnabled = value.Bool() case "emissions.v6.Params.topic_creator_whitelist_enabled": x.TopicCreatorWhitelistEnabled = value.Bool() + case "emissions.v6.Params.min_experienced_worker_regrets": + x.MinExperiencedWorkerRegrets = value.Uint() default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.Params")) @@ -1031,6 +1048,8 @@ func (x *fastReflection_Params) Mutable(fd protoreflect.FieldDescriptor) protore panic(fmt.Errorf("field global_whitelist_enabled of message emissions.v6.Params is not mutable")) case "emissions.v6.Params.topic_creator_whitelist_enabled": panic(fmt.Errorf("field topic_creator_whitelist_enabled of message emissions.v6.Params is not mutable")) + case "emissions.v6.Params.min_experienced_worker_regrets": + panic(fmt.Errorf("field min_experienced_worker_regrets of message emissions.v6.Params is not mutable")) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.Params")) @@ -1134,6 +1153,8 @@ func (x *fastReflection_Params) NewField(fd protoreflect.FieldDescriptor) protor return protoreflect.ValueOfBool(false) case "emissions.v6.Params.topic_creator_whitelist_enabled": return protoreflect.ValueOfBool(false) + case "emissions.v6.Params.min_experienced_worker_regrets": + return protoreflect.ValueOfUint64(uint64(0)) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.Params")) @@ -1363,6 +1384,9 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { if x.TopicCreatorWhitelistEnabled { n += 3 } + if x.MinExperiencedWorkerRegrets != 0 { + n += 2 + runtime.Sov(uint64(x.MinExperiencedWorkerRegrets)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -1392,6 +1416,13 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if x.MinExperiencedWorkerRegrets != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.MinExperiencedWorkerRegrets)) + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xa0 + } if x.TopicCreatorWhitelistEnabled { i-- if x.TopicCreatorWhitelistEnabled { @@ -2972,6 +3003,25 @@ func (x *fastReflection_Params) ProtoMethods() *protoiface.Methods { } } x.TopicCreatorWhitelistEnabled = bool(v != 0) + case 52: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MinExperiencedWorkerRegrets", wireType) + } + x.MinExperiencedWorkerRegrets = 0 + 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++ + x.MinExperiencedWorkerRegrets |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -3088,7 +3138,8 @@ type Params struct { PNormSafeDiv string `protobuf:"bytes,49,opt,name=p_norm_safe_div,json=pNormSafeDiv,proto3" json:"p_norm_safe_div,omitempty"` GlobalWhitelistEnabled bool `protobuf:"varint,50,opt,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` // global whitelist enabled => all global whitelisted actors can create topics // and participate in all topics as workers and reputers - TopicCreatorWhitelistEnabled bool `protobuf:"varint,51,opt,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` // topic creator whitelist enabled => only topic creator whitelisted actors can create topics + TopicCreatorWhitelistEnabled bool `protobuf:"varint,51,opt,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` // topic creator whitelist enabled => only topic creator whitelisted actors can create topics + MinExperiencedWorkerRegrets uint64 `protobuf:"varint,52,opt,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` // minimum number of experienced workers required to use their regrets } func (x *Params) Reset() { @@ -3426,6 +3477,13 @@ func (x *Params) GetTopicCreatorWhitelistEnabled() bool { return false } +func (x *Params) GetMinExperiencedWorkerRegrets() uint64 { + if x != nil { + return x.MinExperiencedWorkerRegrets + } + return 0 +} + var File_emissions_v6_params_proto protoreflect.FileDescriptor var file_emissions_v6_params_proto_rawDesc = []byte{ @@ -3435,7 +3493,7 @@ var file_emissions_v6_params_proto_rawDesc = []byte{ 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 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, 0xa8, 0x1e, + 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xed, 0x1e, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, @@ -3666,32 +3724,36 @@ var file_emissions_v6_params_proto_rawDesc = []byte{ 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x4a, 0x04, - 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, - 0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, 0x61, - 0x78, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, - 0x63, 0x6b, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, - 0x23, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, - 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, - 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x52, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, - 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, - 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x42, 0xc1, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x42, 0x0b, 0x50, - 0x61, 0x72, 0x61, 0x6d, 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, - 0x36, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x36, 0xa2, 0x02, 0x03, - 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x56, 0x36, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, - 0x36, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x36, - 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, 0x36, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x43, + 0x0a, 0x1e, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, + 0x64, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, + 0x18, 0x34, 0x20, 0x01, 0x28, 0x04, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x70, 0x65, 0x72, + 0x69, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x67, 0x72, + 0x65, 0x74, 0x73, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, + 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, 0x29, 0x10, + 0x2a, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x66, 0x66, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x76, + 0x65, 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, + 0x65, 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x63, + 0x61, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x52, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, + 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, + 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x42, 0xc1, 0x01, + 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x36, 0x42, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 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, 0x36, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x76, 0x36, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x36, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x36, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x5c, 0x56, 0x36, 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, + 0x36, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/x/emissions/api/emissions/v6/tx.pulsar.go b/x/emissions/api/emissions/v6/tx.pulsar.go index e249b21fa..1aec5618f 100644 --- a/x/emissions/api/emissions/v6/tx.pulsar.go +++ b/x/emissions/api/emissions/v6/tx.pulsar.go @@ -2087,6 +2087,52 @@ func (x *_OptionalParams_51_list) IsValid() bool { return x.list != nil } +var _ protoreflect.List = (*_OptionalParams_52_list)(nil) + +type _OptionalParams_52_list struct { + list *[]uint64 +} + +func (x *_OptionalParams_52_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_OptionalParams_52_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfUint64((*x.list)[i]) +} + +func (x *_OptionalParams_52_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_OptionalParams_52_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Uint() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_OptionalParams_52_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message OptionalParams at list field MinExperiencedWorkerRegrets as it is not of Message kind")) +} + +func (x *_OptionalParams_52_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_OptionalParams_52_list) NewElement() protoreflect.Value { + v := uint64(0) + return protoreflect.ValueOfUint64(v) +} + +func (x *_OptionalParams_52_list) IsValid() bool { + return x.list != nil +} + var ( md_OptionalParams protoreflect.MessageDescriptor fd_OptionalParams_version protoreflect.FieldDescriptor @@ -2134,6 +2180,7 @@ var ( fd_OptionalParams_p_norm_safe_div protoreflect.FieldDescriptor fd_OptionalParams_global_whitelist_enabled protoreflect.FieldDescriptor fd_OptionalParams_topic_creator_whitelist_enabled protoreflect.FieldDescriptor + fd_OptionalParams_min_experienced_worker_regrets protoreflect.FieldDescriptor ) func init() { @@ -2184,6 +2231,7 @@ func init() { fd_OptionalParams_p_norm_safe_div = md_OptionalParams.Fields().ByName("p_norm_safe_div") fd_OptionalParams_global_whitelist_enabled = md_OptionalParams.Fields().ByName("global_whitelist_enabled") fd_OptionalParams_topic_creator_whitelist_enabled = md_OptionalParams.Fields().ByName("topic_creator_whitelist_enabled") + fd_OptionalParams_min_experienced_worker_regrets = md_OptionalParams.Fields().ByName("min_experienced_worker_regrets") } var _ protoreflect.Message = (*fastReflection_OptionalParams)(nil) @@ -2521,6 +2569,12 @@ func (x *fastReflection_OptionalParams) Range(f func(protoreflect.FieldDescripto return } } + if len(x.MinExperiencedWorkerRegrets) != 0 { + value := protoreflect.ValueOfList(&_OptionalParams_52_list{list: &x.MinExperiencedWorkerRegrets}) + if !f(fd_OptionalParams_min_experienced_worker_regrets, value) { + return + } + } } // Has reports whether a field is populated. @@ -2626,6 +2680,8 @@ func (x *fastReflection_OptionalParams) Has(fd protoreflect.FieldDescriptor) boo return len(x.GlobalWhitelistEnabled) != 0 case "emissions.v6.OptionalParams.topic_creator_whitelist_enabled": return len(x.TopicCreatorWhitelistEnabled) != 0 + case "emissions.v6.OptionalParams.min_experienced_worker_regrets": + return len(x.MinExperiencedWorkerRegrets) != 0 default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.OptionalParams")) @@ -2732,6 +2788,8 @@ func (x *fastReflection_OptionalParams) Clear(fd protoreflect.FieldDescriptor) { x.GlobalWhitelistEnabled = nil case "emissions.v6.OptionalParams.topic_creator_whitelist_enabled": x.TopicCreatorWhitelistEnabled = nil + case "emissions.v6.OptionalParams.min_experienced_worker_regrets": + x.MinExperiencedWorkerRegrets = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.OptionalParams")) @@ -3018,6 +3076,12 @@ func (x *fastReflection_OptionalParams) Get(descriptor protoreflect.FieldDescrip } listValue := &_OptionalParams_51_list{list: &x.TopicCreatorWhitelistEnabled} return protoreflect.ValueOfList(listValue) + case "emissions.v6.OptionalParams.min_experienced_worker_regrets": + if len(x.MinExperiencedWorkerRegrets) == 0 { + return protoreflect.ValueOfList(&_OptionalParams_52_list{}) + } + listValue := &_OptionalParams_52_list{list: &x.MinExperiencedWorkerRegrets} + return protoreflect.ValueOfList(listValue) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.OptionalParams")) @@ -3218,6 +3282,10 @@ func (x *fastReflection_OptionalParams) Set(fd protoreflect.FieldDescriptor, val lv := value.List() clv := lv.(*_OptionalParams_51_list) x.TopicCreatorWhitelistEnabled = *clv.list + case "emissions.v6.OptionalParams.min_experienced_worker_regrets": + lv := value.List() + clv := lv.(*_OptionalParams_52_list) + x.MinExperiencedWorkerRegrets = *clv.list default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.OptionalParams")) @@ -3508,6 +3576,12 @@ func (x *fastReflection_OptionalParams) Mutable(fd protoreflect.FieldDescriptor) } value := &_OptionalParams_51_list{list: &x.TopicCreatorWhitelistEnabled} return protoreflect.ValueOfList(value) + case "emissions.v6.OptionalParams.min_experienced_worker_regrets": + if x.MinExperiencedWorkerRegrets == nil { + x.MinExperiencedWorkerRegrets = []uint64{} + } + value := &_OptionalParams_52_list{list: &x.MinExperiencedWorkerRegrets} + return protoreflect.ValueOfList(value) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.OptionalParams")) @@ -3656,6 +3730,9 @@ func (x *fastReflection_OptionalParams) NewField(fd protoreflect.FieldDescriptor case "emissions.v6.OptionalParams.topic_creator_whitelist_enabled": list := []bool{} return protoreflect.ValueOfList(&_OptionalParams_51_list{list: &list}) + case "emissions.v6.OptionalParams.min_experienced_worker_regrets": + list := []uint64{} + return protoreflect.ValueOfList(&_OptionalParams_52_list{list: &list}) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: emissions.v6.OptionalParams")) @@ -4007,6 +4084,13 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { if len(x.TopicCreatorWhitelistEnabled) > 0 { n += 2 + runtime.Sov(uint64(len(x.TopicCreatorWhitelistEnabled))) + len(x.TopicCreatorWhitelistEnabled)*1 } + if len(x.MinExperiencedWorkerRegrets) > 0 { + l = 0 + for _, e := range x.MinExperiencedWorkerRegrets { + l += runtime.Sov(uint64(e)) + } + n += 2 + runtime.Sov(uint64(l)) + l + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -4036,6 +4120,28 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if len(x.MinExperiencedWorkerRegrets) > 0 { + var pksize2 int + for _, num := range x.MinExperiencedWorkerRegrets { + pksize2 += runtime.Sov(uint64(num)) + } + i -= pksize2 + j1 := i + for _, num := range x.MinExperiencedWorkerRegrets { + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = runtime.EncodeVarint(dAtA, i, uint64(pksize2)) + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xa2 + } if len(x.TopicCreatorWhitelistEnabled) > 0 { for iNdEx := len(x.TopicCreatorWhitelistEnabled) - 1; iNdEx >= 0; iNdEx-- { i-- @@ -4089,66 +4195,66 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { } } if len(x.MaxStringLength) > 0 { - var pksize2 int + var pksize4 int for _, num := range x.MaxStringLength { - pksize2 += runtime.Sov(uint64(num)) + pksize4 += runtime.Sov(uint64(num)) } - i -= pksize2 - j1 := i + i -= pksize4 + j3 := i for _, num := range x.MaxStringLength { for num >= 1<<7 { - dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + dAtA[j3] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j1++ + j3++ } - dAtA[j1] = uint8(num) - j1++ + dAtA[j3] = uint8(num) + j3++ } - i = runtime.EncodeVarint(dAtA, i, uint64(pksize2)) + i = runtime.EncodeVarint(dAtA, i, uint64(pksize4)) i-- dAtA[i] = 0x2 i-- dAtA[i] = 0xfa } if len(x.MaxActiveTopicsPerBlock) > 0 { - var pksize4 int + var pksize6 int for _, num := range x.MaxActiveTopicsPerBlock { - pksize4 += runtime.Sov(uint64(num)) + pksize6 += runtime.Sov(uint64(num)) } - i -= pksize4 - j3 := i + i -= pksize6 + j5 := i for _, num := range x.MaxActiveTopicsPerBlock { for num >= 1<<7 { - dAtA[j3] = uint8(uint64(num)&0x7f | 0x80) + dAtA[j5] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j3++ + j5++ } - dAtA[j3] = uint8(num) - j3++ + dAtA[j5] = uint8(num) + j5++ } - i = runtime.EncodeVarint(dAtA, i, uint64(pksize4)) + i = runtime.EncodeVarint(dAtA, i, uint64(pksize6)) i-- dAtA[i] = 0x2 i-- dAtA[i] = 0xf2 } if len(x.MaxElementsPerForecast) > 0 { - var pksize6 int + var pksize8 int for _, num := range x.MaxElementsPerForecast { - pksize6 += runtime.Sov(uint64(num)) + pksize8 += runtime.Sov(uint64(num)) } - i -= pksize6 - j5 := i + i -= pksize8 + j7 := i for _, num := range x.MaxElementsPerForecast { for num >= 1<<7 { - dAtA[j5] = uint8(uint64(num)&0x7f | 0x80) + dAtA[j7] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j5++ + j7++ } - dAtA[j5] = uint8(num) - j5++ + dAtA[j7] = uint8(num) + j7++ } - i = runtime.EncodeVarint(dAtA, i, uint64(pksize6)) + i = runtime.EncodeVarint(dAtA, i, uint64(pksize8)) i-- dAtA[i] = 0x2 i-- @@ -4177,22 +4283,22 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { } } if len(x.HalfMaxProcessStakeRemovalsEndBlock) > 0 { - var pksize8 int + var pksize10 int for _, num := range x.HalfMaxProcessStakeRemovalsEndBlock { - pksize8 += runtime.Sov(uint64(num)) + pksize10 += runtime.Sov(uint64(num)) } - i -= pksize8 - j7 := i + i -= pksize10 + j9 := i for _, num := range x.HalfMaxProcessStakeRemovalsEndBlock { for num >= 1<<7 { - dAtA[j7] = uint8(uint64(num)&0x7f | 0x80) + dAtA[j9] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j7++ + j9++ } - dAtA[j7] = uint8(num) - j7++ + dAtA[j9] = uint8(num) + j9++ } - i = runtime.EncodeVarint(dAtA, i, uint64(pksize8)) + i = runtime.EncodeVarint(dAtA, i, uint64(pksize10)) i-- dAtA[i] = 0x2 i-- @@ -4276,36 +4382,13 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { } } if len(x.BlocksPerMonth) > 0 { - var pksize10 int - for _, num := range x.BlocksPerMonth { - pksize10 += runtime.Sov(uint64(num)) - } - i -= pksize10 - j9 := i - for _, num := range x.BlocksPerMonth { - for num >= 1<<7 { - dAtA[j9] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j9++ - } - dAtA[j9] = uint8(num) - j9++ - } - i = runtime.EncodeVarint(dAtA, i, uint64(pksize10)) - i-- - dAtA[i] = 0x2 - i-- - dAtA[i] = 0x82 - } - if len(x.MinEpochLengthRecordLimit) > 0 { var pksize12 int - for _, num := range x.MinEpochLengthRecordLimit { + for _, num := range x.BlocksPerMonth { pksize12 += runtime.Sov(uint64(num)) } i -= pksize12 j11 := i - for _, num1 := range x.MinEpochLengthRecordLimit { - num := uint64(num1) + for _, num := range x.BlocksPerMonth { for num >= 1<<7 { dAtA[j11] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4316,18 +4399,19 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { } i = runtime.EncodeVarint(dAtA, i, uint64(pksize12)) i-- - dAtA[i] = 0x1 + dAtA[i] = 0x2 i-- - dAtA[i] = 0xfa + dAtA[i] = 0x82 } - if len(x.MaxPageLimit) > 0 { + if len(x.MinEpochLengthRecordLimit) > 0 { var pksize14 int - for _, num := range x.MaxPageLimit { + for _, num := range x.MinEpochLengthRecordLimit { pksize14 += runtime.Sov(uint64(num)) } i -= pksize14 j13 := i - for _, num := range x.MaxPageLimit { + for _, num1 := range x.MinEpochLengthRecordLimit { + num := uint64(num1) for num >= 1<<7 { dAtA[j13] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4340,16 +4424,16 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xf2 + dAtA[i] = 0xfa } - if len(x.DefaultPageLimit) > 0 { + if len(x.MaxPageLimit) > 0 { var pksize16 int - for _, num := range x.DefaultPageLimit { + for _, num := range x.MaxPageLimit { pksize16 += runtime.Sov(uint64(num)) } i -= pksize16 j15 := i - for _, num := range x.DefaultPageLimit { + for _, num := range x.MaxPageLimit { for num >= 1<<7 { dAtA[j15] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4362,27 +4446,16 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xea - } - if len(x.RegistrationFee) > 0 { - for iNdEx := len(x.RegistrationFee) - 1; iNdEx >= 0; iNdEx-- { - i -= len(x.RegistrationFee[iNdEx]) - copy(dAtA[i:], x.RegistrationFee[iNdEx]) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.RegistrationFee[iNdEx]))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xe2 - } + dAtA[i] = 0xf2 } - if len(x.GradientDescentMaxIters) > 0 { + if len(x.DefaultPageLimit) > 0 { var pksize18 int - for _, num := range x.GradientDescentMaxIters { + for _, num := range x.DefaultPageLimit { pksize18 += runtime.Sov(uint64(num)) } i -= pksize18 j17 := i - for _, num := range x.GradientDescentMaxIters { + for _, num := range x.DefaultPageLimit { for num >= 1<<7 { dAtA[j17] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4395,27 +4468,27 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xca + dAtA[i] = 0xea } - if len(x.CreateTopicFee) > 0 { - for iNdEx := len(x.CreateTopicFee) - 1; iNdEx >= 0; iNdEx-- { - i -= len(x.CreateTopicFee[iNdEx]) - copy(dAtA[i:], x.CreateTopicFee[iNdEx]) - i = runtime.EncodeVarint(dAtA, i, uint64(len(x.CreateTopicFee[iNdEx]))) + if len(x.RegistrationFee) > 0 { + for iNdEx := len(x.RegistrationFee) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.RegistrationFee[iNdEx]) + copy(dAtA[i:], x.RegistrationFee[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.RegistrationFee[iNdEx]))) i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xc2 + dAtA[i] = 0xe2 } } - if len(x.MaxTopReputersToReward) > 0 { + if len(x.GradientDescentMaxIters) > 0 { var pksize20 int - for _, num := range x.MaxTopReputersToReward { + for _, num := range x.GradientDescentMaxIters { pksize20 += runtime.Sov(uint64(num)) } i -= pksize20 j19 := i - for _, num := range x.MaxTopReputersToReward { + for _, num := range x.GradientDescentMaxIters { for num >= 1<<7 { dAtA[j19] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4428,16 +4501,27 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xba + dAtA[i] = 0xca } - if len(x.MaxTopForecastersToReward) > 0 { + if len(x.CreateTopicFee) > 0 { + for iNdEx := len(x.CreateTopicFee) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.CreateTopicFee[iNdEx]) + copy(dAtA[i:], x.CreateTopicFee[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.CreateTopicFee[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc2 + } + } + if len(x.MaxTopReputersToReward) > 0 { var pksize22 int - for _, num := range x.MaxTopForecastersToReward { + for _, num := range x.MaxTopReputersToReward { pksize22 += runtime.Sov(uint64(num)) } i -= pksize22 j21 := i - for _, num := range x.MaxTopForecastersToReward { + for _, num := range x.MaxTopReputersToReward { for num >= 1<<7 { dAtA[j21] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4450,16 +4534,16 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xb2 + dAtA[i] = 0xba } - if len(x.MaxTopInferersToReward) > 0 { + if len(x.MaxTopForecastersToReward) > 0 { var pksize24 int - for _, num := range x.MaxTopInferersToReward { + for _, num := range x.MaxTopForecastersToReward { pksize24 += runtime.Sov(uint64(num)) } i -= pksize24 j23 := i - for _, num := range x.MaxTopInferersToReward { + for _, num := range x.MaxTopForecastersToReward { for num >= 1<<7 { dAtA[j23] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4472,16 +4556,16 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xaa + dAtA[i] = 0xb2 } - if len(x.MaxSamplesToScaleScores) > 0 { + if len(x.MaxTopInferersToReward) > 0 { var pksize26 int - for _, num := range x.MaxSamplesToScaleScores { + for _, num := range x.MaxTopInferersToReward { pksize26 += runtime.Sov(uint64(num)) } i -= pksize26 j25 := i - for _, num := range x.MaxSamplesToScaleScores { + for _, num := range x.MaxTopInferersToReward { for num >= 1<<7 { dAtA[j25] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4494,6 +4578,28 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { i-- dAtA[i] = 0x1 i-- + dAtA[i] = 0xaa + } + if len(x.MaxSamplesToScaleScores) > 0 { + var pksize28 int + for _, num := range x.MaxSamplesToScaleScores { + pksize28 += runtime.Sov(uint64(num)) + } + i -= pksize28 + j27 := i + for _, num := range x.MaxSamplesToScaleScores { + for num >= 1<<7 { + dAtA[j27] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j27++ + } + dAtA[j27] = uint8(num) + j27++ + } + i = runtime.EncodeVarint(dAtA, i, uint64(pksize28)) + i-- + dAtA[i] = 0x1 + i-- dAtA[i] = 0xa2 } if len(x.ValidatorsVsAlloraPercentReward) > 0 { @@ -4550,42 +4656,42 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { } } if len(x.MaxUnfulfilledReputerRequests) > 0 { - var pksize28 int + var pksize30 int for _, num := range x.MaxUnfulfilledReputerRequests { - pksize28 += runtime.Sov(uint64(num)) + pksize30 += runtime.Sov(uint64(num)) } - i -= pksize28 - j27 := i + i -= pksize30 + j29 := i for _, num := range x.MaxUnfulfilledReputerRequests { for num >= 1<<7 { - dAtA[j27] = uint8(uint64(num)&0x7f | 0x80) + dAtA[j29] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j27++ + j29++ } - dAtA[j27] = uint8(num) - j27++ + dAtA[j29] = uint8(num) + j29++ } - i = runtime.EncodeVarint(dAtA, i, uint64(pksize28)) + i = runtime.EncodeVarint(dAtA, i, uint64(pksize30)) i-- dAtA[i] = 0x72 } if len(x.MaxUnfulfilledWorkerRequests) > 0 { - var pksize30 int + var pksize32 int for _, num := range x.MaxUnfulfilledWorkerRequests { - pksize30 += runtime.Sov(uint64(num)) + pksize32 += runtime.Sov(uint64(num)) } - i -= pksize30 - j29 := i + i -= pksize32 + j31 := i for _, num := range x.MaxUnfulfilledWorkerRequests { for num >= 1<<7 { - dAtA[j29] = uint8(uint64(num)&0x7f | 0x80) + dAtA[j31] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j29++ + j31++ } - dAtA[j29] = uint8(num) - j29++ + dAtA[j31] = uint8(num) + j31++ } - i = runtime.EncodeVarint(dAtA, i, uint64(pksize30)) + i = runtime.EncodeVarint(dAtA, i, uint64(pksize32)) i-- dAtA[i] = 0x6a } @@ -4626,44 +4732,44 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { } } if len(x.MinEpochLength) > 0 { - var pksize32 int + var pksize34 int for _, num := range x.MinEpochLength { - pksize32 += runtime.Sov(uint64(num)) + pksize34 += runtime.Sov(uint64(num)) } - i -= pksize32 - j31 := i + i -= pksize34 + j33 := i for _, num1 := range x.MinEpochLength { num := uint64(num1) for num >= 1<<7 { - dAtA[j31] = uint8(uint64(num)&0x7f | 0x80) + dAtA[j33] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j31++ + j33++ } - dAtA[j31] = uint8(num) - j31++ + dAtA[j33] = uint8(num) + j33++ } - i = runtime.EncodeVarint(dAtA, i, uint64(pksize32)) + i = runtime.EncodeVarint(dAtA, i, uint64(pksize34)) i-- dAtA[i] = 0x3a } if len(x.RemoveStakeDelayWindow) > 0 { - var pksize34 int + var pksize36 int for _, num := range x.RemoveStakeDelayWindow { - pksize34 += runtime.Sov(uint64(num)) + pksize36 += runtime.Sov(uint64(num)) } - i -= pksize34 - j33 := i + i -= pksize36 + j35 := i for _, num1 := range x.RemoveStakeDelayWindow { num := uint64(num1) for num >= 1<<7 { - dAtA[j33] = uint8(uint64(num)&0x7f | 0x80) + dAtA[j35] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j33++ + j35++ } - dAtA[j33] = uint8(num) - j33++ + dAtA[j35] = uint8(num) + j35++ } - i = runtime.EncodeVarint(dAtA, i, uint64(pksize34)) + i = runtime.EncodeVarint(dAtA, i, uint64(pksize36)) i-- dAtA[i] = 0x32 } @@ -4686,23 +4792,23 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { } } if len(x.MaxSerializedMsgLength) > 0 { - var pksize36 int + var pksize38 int for _, num := range x.MaxSerializedMsgLength { - pksize36 += runtime.Sov(uint64(num)) + pksize38 += runtime.Sov(uint64(num)) } - i -= pksize36 - j35 := i + i -= pksize38 + j37 := i for _, num1 := range x.MaxSerializedMsgLength { num := uint64(num1) for num >= 1<<7 { - dAtA[j35] = uint8(uint64(num)&0x7f | 0x80) + dAtA[j37] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j35++ + j37++ } - dAtA[j35] = uint8(num) - j35++ + dAtA[j37] = uint8(num) + j37++ } - i = runtime.EncodeVarint(dAtA, i, uint64(pksize36)) + i = runtime.EncodeVarint(dAtA, i, uint64(pksize38)) i-- dAtA[i] = 0x12 } @@ -7072,6 +7178,82 @@ func (x *fastReflection_OptionalParams) ProtoMethods() *protoiface.Methods { } else { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field TopicCreatorWhitelistEnabled", wireType) } + case 52: + if wireType == 0 { + var v 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++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.MinExperiencedWorkerRegrets = append(x.MinExperiencedWorkerRegrets, v) + } else if wireType == 2 { + var packedLen int + 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++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + packedLen + 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 + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(x.MinExperiencedWorkerRegrets) == 0 { + x.MinExperiencedWorkerRegrets = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v 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++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.MinExperiencedWorkerRegrets = append(x.MinExperiencedWorkerRegrets, v) + } + } else { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field MinExperiencedWorkerRegrets", wireType) + } default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -32633,6 +32815,7 @@ type OptionalParams struct { PNormSafeDiv []string `protobuf:"bytes,49,rep,name=p_norm_safe_div,json=pNormSafeDiv,proto3" json:"p_norm_safe_div,omitempty"` GlobalWhitelistEnabled []bool `protobuf:"varint,50,rep,packed,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` TopicCreatorWhitelistEnabled []bool `protobuf:"varint,51,rep,packed,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` + MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` } func (x *OptionalParams) Reset() { @@ -32970,6 +33153,13 @@ func (x *OptionalParams) GetTopicCreatorWhitelistEnabled() []bool { return nil } +func (x *OptionalParams) GetMinExperiencedWorkerRegrets() []uint64 { + if x != nil { + return x.MinExperiencedWorkerRegrets + } + return nil +} + type UpdateParamsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -35210,7 +35400,7 @@ var file_emissions_v6_tx_proto_rawDesc = []byte{ 0x65, 0x72, 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, 0xb0, 0x1e, 0x0a, 0x0e, 0x4f, 0x70, + 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf5, 0x1e, 0x0a, 0x0e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x19, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x65, @@ -35442,169 +35632,162 @@ var file_emissions_v6_tx_proto_rawDesc = []byte{ 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x33, 0x20, 0x03, 0x28, 0x08, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1b, 0x4a, 0x04, - 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, - 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x5f, 0x70, 0x65, 0x72, - 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x66, 0x66, 0x65, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x76, 0x65, - 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, - 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1c, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x5f, - 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x5f, 0x64, 0x65, 0x63, 0x61, - 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x52, 0x24, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, 0x6e, 0x6f, - 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x13, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 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, 0x34, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 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, 0x16, - 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb5, 0x09, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 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, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x73, - 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x70, 0x6f, 0x63, 0x68, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, - 0x70, 0x6f, 0x63, 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x72, 0x75, 0x74, 0x68, 0x5f, 0x6c, 0x61, 0x67, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x74, - 0x68, 0x4c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x70, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x18, 0x0a, - 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, 0x05, 0x70, - 0x4e, 0x6f, 0x72, 0x6d, 0x12, 0x5a, 0x0a, 0x0c, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x72, 0x65, - 0x67, 0x72, 0x65, 0x74, 0x18, 0x0b, 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, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, - 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4e, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, - 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x37, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, + 0x65, 0x64, 0x12, 0x43, 0x0a, 0x1e, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, + 0x65, 0x6e, 0x63, 0x65, 0x64, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x67, + 0x72, 0x65, 0x74, 0x73, 0x18, 0x34, 0x20, 0x03, 0x28, 0x04, 0x52, 0x1b, 0x6d, 0x69, 0x6e, 0x45, + 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x64, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x52, 0x65, 0x67, 0x72, 0x65, 0x74, 0x73, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, + 0x1a, 0x10, 0x1b, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x27, 0x10, 0x28, 0x4a, + 0x04, 0x08, 0x29, 0x10, 0x2a, 0x52, 0x14, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x1b, 0x6d, 0x69, 0x6e, + 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, + 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, 0x52, 0x23, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, 0x69, 0x6c, 0x5f, + 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x1c, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x5f, 0x66, 0x65, 0x65, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x75, 0x65, + 0x5f, 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x52, 0x24, 0x6d, 0x61, 0x78, + 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x66, + 0x69, 0x6c, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x22, 0x70, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x34, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 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, 0x16, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb5, 0x09, 0x0a, 0x15, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, + 0x6f, 0x73, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6c, 0x6f, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x21, 0x0a, 0x0c, + 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0b, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, + 0x28, 0x0a, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x74, 0x72, 0x75, 0x74, 0x68, 0x5f, + 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x54, 0x72, 0x75, 0x74, 0x68, 0x4c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x70, 0x5f, 0x6e, + 0x6f, 0x72, 0x6d, 0x18, 0x0a, 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, 0x05, 0x70, 0x4e, 0x6f, 0x72, 0x6d, 0x12, 0x5a, 0x0a, 0x0c, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x74, 0x18, 0x0b, 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, 0x0b, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x52, + 0x65, 0x67, 0x72, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x4e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 0x51, 0x0a, 0x07, + 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x18, 0x0d, 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, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x12, + 0x38, 0x0a, 0x18, 0x77, 0x6f, 0x72, 0x6b, 0x65, 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, 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, 0x07, 0x65, 0x70, 0x73, 0x69, 0x6c, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x18, 0x77, 0x6f, - 0x72, 0x6b, 0x65, 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, 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, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x75, - 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 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, 0x33, - 0x0a, 0x16, 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, 0x96, 0x01, 0x0a, 0x1b, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 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, 0x1e, 0x0a, 0x1c, - 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, 0x8f, 0x01, 0x0a, - 0x1a, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x1d, - 0x0a, 0x1b, 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, 0xae, 0x01, - 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 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, 0x46, - 0x0a, 0x10, 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, 0x7a, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 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, 0x50, 0x0a, 0x1a, 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, 0x9b, 0x01, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, + 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, 0x12, + 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x72, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 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, 0x33, 0x0a, 0x16, 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, 0x96, 0x01, 0x0a, 0x1b, 0x49, 0x6e, 0x73, + 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x1e, 0x0a, 0x1c, 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, 0x8f, 0x01, 0x0a, 0x1a, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 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, 0x1d, 0x0a, 0x1b, 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, 0xae, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x46, 0x0a, 0x10, 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, 0x7a, 0x0a, 0x19, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x12, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 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, 0x50, 0x0a, 0x1a, 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, 0x9b, 0x01, 0x0a, 0x0f, 0x41, 0x64, + 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, @@ -35613,183 +35796,205 @@ var file_emissions_v6_tx_proto_rawDesc = []byte{ 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, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, - 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, - 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x1b, 0x0a, 0x19, 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, 0xba, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 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, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc0, 0x01, - 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x1d, 0x0a, 0x1b, 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, - 0x9a, 0x01, 0x0a, 0x20, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x12, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x53, 0x74, + 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x12, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 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, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, + 0x1b, 0x0a, 0x19, 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, 0xba, 0x01, 0x0a, + 0x14, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 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, 0x1d, 0x0a, 0x1b, 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, 0x9a, 0x01, 0x0a, 0x20, 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, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x23, 0x0a, 0x21, 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, 0x76, 0x0a, 0x1a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x23, 0x0a, 0x21, - 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, 0x76, 0x0a, 0x1a, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 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, 0x22, 0x1d, + 0x0a, 0x1b, 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, 0x9c, 0x01, + 0x0a, 0x10, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 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, 0x13, 0x0a, 0x11, + 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x5b, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x22, 0x1d, 0x0a, 0x1b, 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, 0x9c, 0x01, 0x0a, 0x10, 0x46, 0x75, 0x6e, - 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x13, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x1a, - 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x1d, 0x0a, 0x1b, 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, 0x60, 0x0a, 0x1f, 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, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x22, 0x0a, 0x20, 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, 0x63, - 0x0a, 0x21, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 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, 0x24, 0x0a, 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, + 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, 0x1d, + 0x0a, 0x1b, 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, 0x60, 0x0a, + 0x1f, 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, 0x71, 0x75, 0x65, 0x73, 0x74, + 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, + 0x22, 0x0a, 0x20, 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, 0x63, 0x0a, 0x21, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x22, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x24, 0x0a, 0x22, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, + 0x0a, 0x22, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 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, 0x25, 0x0a, 0x23, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x22, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 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, 0x25, 0x0a, 0x23, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x23, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, - 0x25, 0x0a, 0x23, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x22, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x25, 0x0a, 0x23, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x23, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, - 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x26, 0x0a, 0x24, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, - 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x26, 0x0a, 0x24, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x54, 0x6f, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x1e, 0x0a, 0x1c, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x61, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, + 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x23, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x0a, + 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 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, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x67, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x1e, 0x0a, 0x1c, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x61, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 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, 0x23, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, - 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x62, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, - 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x24, 0x0a, 0x22, - 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x67, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x29, 0x0a, 0x27, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7c, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, + 0x22, 0x29, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7c, 0x0a, 0x20, 0x41, + 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 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, 0x3a, 0x0b, 0x82, 0xe7, + 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x21, 0x41, 0x64, 0x64, + 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, + 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x25, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, - 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 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, 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, - 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, - 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x54, 0x6f, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x22, 0x28, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7d, 0x0a, 0x21, + 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, + 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 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, 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, 0x3a, 0x0b, + 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x41, + 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x82, 0x01, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, @@ -35797,232 +36002,221 @@ var file_emissions_v6_tx_proto_rawDesc = []byte{ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, - 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x24, 0x0a, 0x22, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x82, 0x01, 0x0a, - 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 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, 0x3a, 0x0b, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x22, 0x29, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf0, 0x18, 0x0a, - 0x0a, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x0c, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x21, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x12, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x36, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x27, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x32, 0xf0, 0x18, 0x0a, 0x0a, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x55, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x36, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, - 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x49, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x12, 0x52, 0x65, + 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x67, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x49, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, - 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, - 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, - 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, - 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x20, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x64, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x26, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x58, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x22, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x36, 0x2e, 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, 0x6a, - 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x7c, 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, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x4c, 0x0a, 0x09, 0x46, 0x75, 0x6e, 0x64, - 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, - 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x79, 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, 0x2d, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, + 0x74, 0x61, 0x6b, 0x65, 0x12, 0x1d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x12, 0x20, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x26, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x36, 0x2e, 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, 0x58, 0x0a, + 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x22, + 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x36, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x6a, 0x0a, - 0x13, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, - 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x36, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, - 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x6d, 0x0a, 0x14, 0x49, 0x6e, 0x73, - 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, + 0x77, 0x61, 0x72, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x6a, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x76, 0x36, 0x2e, 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, + 0x7c, 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, 0x2e, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x4c, 0x0a, + 0x09, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x1e, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x46, 0x75, 0x6e, 0x64, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x13, 0x41, + 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x79, 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, 0x2d, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x36, 0x2e, 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, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x36, 0x2e, 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, 0x6a, 0x0a, 0x13, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, 0x6f, 0x72, 0x6b, + 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x28, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x57, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x76, 0x36, 0x2e, 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, 0x6d, + 0x0a, 0x14, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, + 0x74, 0x65, 0x72, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x49, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 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, 0x12, 0x6d, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x54, - 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6d, 0x0a, + 0x14, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2a, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, - 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, - 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, - 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x36, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, - 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x36, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, - 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, + 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, + 0x72, 0x6f, 0x6d, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, + 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x1b, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, + 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x44, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x85, 0x01, 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x12, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, - 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, - 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x36, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x12, 0x82, 0x01, 0x0a, 0x1b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, + 0x12, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, + 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x36, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x31, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, + 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, - 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, + 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x19, 0x41, 0x64, - 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, - 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, - 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, + 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, + 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, + 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x7c, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, + 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, + 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x65, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, + 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, + 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, + 0x12, 0x33, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, + 0x6f, 0x70, 0x69, 0x63, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7f, 0x0a, 0x1a, 0x41, + 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, + 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, + 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, - 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, - 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, - 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x65, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, - 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x35, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, + 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, 0x01, 0x0a, + 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 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, 0x36, 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, 0x36, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x76, 0x36, - 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x56, 0x36, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x5c, 0x56, 0x36, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x5c, 0x56, 0x36, 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, 0x36, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x34, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, + 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x76, 0x36, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x6f, 0x6d, + 0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x65, 0x70, 0x75, 0x74, 0x65, 0x72, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 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, 0x36, 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, 0x36, 0x3b, 0x65, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x76, 0x36, 0xa2, 0x02, 0x03, 0x45, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x45, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x36, 0xca, 0x02, 0x0c, 0x45, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x36, 0xe2, 0x02, 0x18, 0x45, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5c, 0x56, 0x36, 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, 0x36, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/x/emissions/keeper/inference_synthesis/network_regrets.go b/x/emissions/keeper/inference_synthesis/network_regrets.go index eba78f2eb..b2e102ea4 100644 --- a/x/emissions/keeper/inference_synthesis/network_regrets.go +++ b/x/emissions/keeper/inference_synthesis/network_regrets.go @@ -118,6 +118,7 @@ func GetCalcSetNetworkRegrets(args GetCalcSetNetworkRegretsArgs) error { networkLossesByWorker := ConvertValueBundleToNetworkLossesByWorker(args.NetworkLosses) blockHeight := args.Nonce.BlockHeight + fallbackRegrets := make([]alloraMath.Dec, 0) workersRegrets := make([]alloraMath.Dec, 0) // R_ij - Inferer Regrets @@ -157,6 +158,7 @@ func GetCalcSetNetworkRegrets(args GetCalcSetNetworkRegretsArgs) error { if shouldAddWorkerRegret { workersRegrets = append(workersRegrets, newInfererRegret.Value) } + fallbackRegrets = append(fallbackRegrets, newInfererRegret.Value) // For batch event emission workersForEvent = append(workersForEvent, infererLoss.Worker) @@ -201,6 +203,7 @@ func GetCalcSetNetworkRegrets(args GetCalcSetNetworkRegretsArgs) error { if shouldAddWorkerRegret { workersRegrets = append(workersRegrets, newForecasterRegret.Value) } + fallbackRegrets = append(fallbackRegrets, newForecasterRegret.Value) // For batch event emission workersForEvent = append(workersForEvent, forecasterLoss.Worker) @@ -377,57 +380,83 @@ func GetCalcSetNetworkRegrets(args GetCalcSetNetworkRegretsArgs) error { } } - // Recalculate topic initial regret - if len(workersRegrets) > 0 { - updatedTopicInitialRegret, err := CalcTopicInitialRegret( - workersRegrets, - args.EpsilonTopic, - args.PNorm, - args.CNorm, - args.InitialRegretQuantile, - args.PNormSafeDiv, - ) + // Get Params + params, err := args.K.GetParams(args.Ctx) + if err != nil { + return errorsmod.Wrapf(err, "Error getting params") + } + + // Select which regrets to use for calculating the topic initial regret: + // - If we have 10 or more experienced workers, use their regrets + // - Otherwise, use fallback regrets which include all workers + regrets := fallbackRegrets + if uint64(len(workersRegrets)) >= params.MinExperiencedWorkerRegrets { + regrets = workersRegrets + } + + // Only proceed if we have any regrets to process + if len(regrets) > 0 { + quantile, err := alloraMath.GetQuantileOfDecs(regrets, args.InitialRegretQuantile) if err != nil { return errorsmod.Wrapf(err, "Error calculating topic initial regret") } + + // Set initial value to the quantile (used when we don't have enough experienced workers) + updatedTopicInitialRegret := quantile + if uint64(len(workersRegrets)) >= params.MinExperiencedWorkerRegrets { + updatedTopicInitialRegret, err = CalcTopicInitialRegret( + regrets, + args.EpsilonTopic, + args.PNorm, + args.CNorm, + quantile, + args.PNormSafeDiv, + ) + if err != nil { + return errorsmod.Wrapf(err, "Error calculating topic initial regret") + } + } + err = args.K.UpdateTopicInitialRegret(args.Ctx, args.TopicId, updatedTopicInitialRegret) if err != nil { return errorsmod.Wrapf(err, "Error updating topic initial regret") } - - // For batch event emission - emissions.EmitNewTopicInitialRegretSetEvent(args.Ctx, args.TopicId, blockHeight, updatedTopicInitialRegret) } return nil } // Calculate the initial regret for all new workers in the topic -// denominator = std(regrets[i-1, :]) + epsilon -// offset = cnorm - 8.25 / pnorm -// dummy_regret[i] = np.percentile(regrets[i-1, :], 25.) + offset * denominator -// It is assumed that the regrets are filtered by experience for each actor -// i.e. if they have not been included in the topic for enough epochs, their regret is ignored. +// When using experienced workers' regrets: +// +// denominator = std(regrets) + epsilon +// offset = cnorm - 8.25 / pnorm +// initialRegret = percentile(regrets, 25) + offset * denominator + +// When using fallback regrets (not enough experienced workers / cold start): +// +// initialRegret = percentile(regrets, 25) func CalcTopicInitialRegret( regrets []alloraMath.Dec, epsilon alloraMath.Dec, pNorm alloraMath.Dec, cNorm alloraMath.Dec, - quantileRegret alloraMath.Dec, + quantile alloraMath.Dec, pNormDiv alloraMath.Dec, ) (initialRegret alloraMath.Dec, err error) { - // Calculate the Denominator + // Normal case with experienced workers - calculate with offset and std dev stdDevRegrets, err := alloraMath.StdDev(regrets) if err != nil { return alloraMath.ZeroDec(), err } + // Calculate the Denominator denominator, err := stdDevRegrets.Add(epsilon) if err != nil { return alloraMath.ZeroDec(), err } - // calculate the offset + // Calculate the offset eightPointTwoFiveDividedByPnorm, err := pNormDiv.Quo(pNorm) if err != nil { return alloraMath.ZeroDec(), err @@ -438,18 +467,11 @@ func CalcTopicInitialRegret( return alloraMath.ZeroDec(), err } - // calculate the dummy regret offSetTimesDenominator, err := offset.Mul(denominator) if err != nil { return alloraMath.ZeroDec(), err } - // Calculate quantile - quantile, err := alloraMath.GetQuantileOfDecs(regrets, quantileRegret) - if err != nil { - return alloraMath.ZeroDec(), err - } - initialRegret, err = quantile.Add(offSetTimesDenominator) if err != nil { return alloraMath.ZeroDec(), err diff --git a/x/emissions/keeper/inference_synthesis/network_regrets_test.go b/x/emissions/keeper/inference_synthesis/network_regrets_test.go index ee87d9dfb..7f7279771 100644 --- a/x/emissions/keeper/inference_synthesis/network_regrets_test.go +++ b/x/emissions/keeper/inference_synthesis/network_regrets_test.go @@ -3,6 +3,7 @@ package inferencesynthesis_test import ( "context" "fmt" + "slices" alloraMath "github.com/allora-network/allora-chain/math" "github.com/allora-network/allora-chain/test/testutil" @@ -737,115 +738,156 @@ func (s *InferenceSynthesisTestSuite) TestCalcTopicInitialRegret() { epsilon := alloraMath.MustNewDecFromString("0.0001") percentileRegert := alloraMath.MustNewDecFromString("0.25") pnormDiv := alloraMath.MustNewDecFromString("8.25") + + quantile, err := alloraMath.GetQuantileOfDecs(regrets, percentileRegert) + require.NoError(err) calculatedInitialRegret, err := inferencesynthesis.CalcTopicInitialRegret( regrets, epsilon, pNorm, cNorm, - percentileRegert, + quantile, pnormDiv, ) require.NoError(err) testutil.InEpsilon5(s.T(), calculatedInitialRegret, "0.3354820760526412097325669544281814") } -// TestUpdateTopicInitialRegret tests the UpdateTopicInitialRegret function. +// TestUpdateTopicInitialRegret tests the UpdateTopicInitialRegret function with a larger set of workers. // // Setup: // - Create a topic with ID 1 and initial regret of 0 // - Set AlphaRegret to 0.5, making the experience threshold 2 inclusions -// - Add 5 inferers and 3 forecasters, each with 2 inclusions to make them experienced -// - Set up a simulated value getter for epochs 300 and 301 +// - Add 8 inferers and 4 forecasters (12 total workers) with 2 inclusions each to make them experienced +// - Set initial regrets for all workers with varying values to simulate different performance levels // // Test steps: -// 1. Create a value bundle with combined value and individual values for inferers and forecasters +// 1. Create a value bundle with: +// - Combined value of 0.5 +// - Inferer values ranging from 0.2 to 0.9 +// - Forecaster values ranging from 0.3 to 0.6 +// - One-in and one-out variations for comprehensive testing +// // 2. Call UpdateTopicInitialRegret with this value bundle -// 3. Retrieve the updated topic +// 3. Verify the updated topic's initial regret // // Expected outcomes: // 1. The function should execute without error // 2. The topic's initial regret should be updated from 0 to a non-zero value -// 3. The new initial regret should be calculated based on the provided values and parameters -// -// This test ensures that the UpdateTopicInitialRegret function correctly calculates -// and updates the initial regret for a topic based on the performance of experienced -// workers, using the provided normalization and calculation parameters. +// 3. The new initial regret should reflect the collective performance of all workers +// 4. With more workers and varying performance levels, the initial regret should be statistically meaningful func (s *InferenceSynthesisTestSuite) TestUpdateTopicInitialRegret() { require := s.Require() k := s.emissionsKeeper - epochGet := testutil.GetSimulatedValuesGetterForEpochs() - epochPrevGet := epochGet[300] - epoch301Get := epochGet[301] topicId := uint64(1) blockHeight := int64(1003) nonce := emissionstypes.Nonce{BlockHeight: blockHeight} - alpha := alloraMath.MustNewDecFromString("0.1") pNorm := alloraMath.MustNewDecFromString("3.0") cNorm := alloraMath.MustNewDecFromString("0.75") epsilon := alloraMath.MustNewDecFromString("1e-4") initialRegretQuantile := alloraMath.MustNewDecFromString("0.5") pnormSafeDiv := alloraMath.MustNewDecFromString("1.0") - // Set initial Regret to check if this value is updated or not - initialRegret := alloraMath.MustNewDecFromString("0") + // Set initial Regret to check if this value is updated + initialRegret := alloraMath.ZeroDec() topic := s.mockTopic() - // Need to use "0.5" to set limit inclusions count as 2=(1/0.5) topic.AlphaRegret = alloraMath.MustNewDecFromString("0.5") - // Create new topic err := s.emissionsKeeper.SetTopic(s.ctx, topicId, topic) s.Require().NoError(err) - inferer0 := s.addrs[0].String() - inferer1 := s.addrs[1].String() - inferer2 := s.addrs[2].String() - inferer3 := s.addrs[3].String() - inferer4 := s.addrs[4].String() - infererAddresses := []string{inferer0, inferer1, inferer2, inferer3, inferer4} + // Create 8 inferer addresses + infererAddresses := make([]string, 8) + for i := 0; i < 8; i++ { + infererAddresses[i] = s.addrs[i].String() + } - forecaster0 := s.addrs[5].String() - forecaster1 := s.addrs[6].String() - forecaster2 := s.addrs[7].String() - forecasterAddresses := []string{forecaster0, forecaster1, forecaster2} + // Create 4 forecaster addresses + forecasterAddresses := make([]string, 4) + for i := 0; i < 4; i++ { + forecasterAddresses[i] = s.addrs[i+8].String() + } - reputer0 := s.addrs[8].String() + reputer := s.addrs[12].String() - // Need to add experienced inferers for this topic + // Make all workers experienced by giving them 2 inclusions for _, worker := range infererAddresses { - err := k.IncrementCountInfererInclusionsInTopic(s.ctx, topicId, worker) + err = k.IncrementCountInfererInclusionsInTopic(s.ctx, topicId, worker) require.NoError(err) err = k.IncrementCountInfererInclusionsInTopic(s.ctx, topicId, worker) require.NoError(err) } - // Need to add experienced forecasters for this topic for _, worker := range forecasterAddresses { - err := k.IncrementCountForecasterInclusionsInTopic(s.ctx, topicId, worker) + err = k.IncrementCountForecasterInclusionsInTopic(s.ctx, topicId, worker) require.NoError(err) err = k.IncrementCountForecasterInclusionsInTopic(s.ctx, topicId, worker) require.NoError(err) } - err = testutil.SetRegretsFromPreviousEpoch(s.ctx, s.emissionsKeeper, topicId, blockHeight, infererAddresses, forecasterAddresses, epochPrevGet) - require.NoError(err) + // Set initial regrets for all workers + for i, worker := range infererAddresses { + value := alloraMath.MustNewDecFromString(fmt.Sprintf("0.%d", i+2)) // Values from 0.2 to 0.9 + timestampedValue := emissionstypes.TimestampedValue{ + BlockHeight: blockHeight, + Value: value, + } + err = k.SetInfererNetworkRegret(s.ctx, topicId, worker, timestampedValue) + require.NoError(err) + } - networkLosses, err := testutil.GetNetworkLossFromCsv( - topicId, - blockHeight, - infererAddresses, - forecasterAddresses, - reputer0, - epoch301Get, - ) - s.Require().NoError(err) + for i, worker := range forecasterAddresses { + value := alloraMath.MustNewDecFromString(fmt.Sprintf("0.%d", i+3)) // Values from 0.3 to 0.6 + timestampedValue := emissionstypes.TimestampedValue{ + BlockHeight: blockHeight, + Value: value, + } + err = k.SetForecasterNetworkRegret(s.ctx, topicId, worker, timestampedValue) + require.NoError(err) + } + // Create inferer values + infererValues := make([]*emissionstypes.WorkerAttributedValue, len(infererAddresses)) + for i, worker := range infererAddresses { + infererValues[i] = &emissionstypes.WorkerAttributedValue{ + Worker: worker, + Value: alloraMath.MustNewDecFromString(fmt.Sprintf("0.%d", i+2)), + } + } + + // Create forecaster values + forecasterValues := make([]*emissionstypes.WorkerAttributedValue, len(forecasterAddresses)) + for i, worker := range forecasterAddresses { + forecasterValues[i] = &emissionstypes.WorkerAttributedValue{ + Worker: worker, + Value: alloraMath.MustNewDecFromString(fmt.Sprintf("0.%d", i+3)), + } + } + + // Create network losses value bundle + networkLosses := emissionstypes.ValueBundle{ + TopicId: topicId, + Reputer: reputer, + ReputerRequestNonce: &emissionstypes.ReputerRequestNonce{ReputerNonce: &nonce}, + ExtraData: nil, + CombinedValue: alloraMath.MustNewDecFromString("0.5"), + NaiveValue: alloraMath.MustNewDecFromString("0.4"), + InfererValues: infererValues, + ForecasterValues: forecasterValues, + OneOutInfererValues: nil, + OneOutForecasterValues: nil, + OneInForecasterValues: nil, + OneOutInfererForecasterValues: nil, + } + + // Calculate and set network regrets err = inferencesynthesis.GetCalcSetNetworkRegrets(inferencesynthesis.GetCalcSetNetworkRegretsArgs{ Ctx: s.ctx, K: k, TopicId: topicId, NetworkLosses: networkLosses, Nonce: nonce, - AlphaRegret: alpha, + AlphaRegret: topic.AlphaRegret, CNorm: cNorm, PNorm: pNorm, EpsilonTopic: epsilon, @@ -854,99 +896,179 @@ func (s *InferenceSynthesisTestSuite) TestUpdateTopicInitialRegret() { }) require.NoError(err) - // Assert that initial regret is updated + // Verify that initial regret was updated topic, err = s.emissionsKeeper.GetTopic(s.ctx, topicId) require.NoError(err) require.NotEqual(topic.InitialRegret, initialRegret) + + // Verify that the new initial regret is reasonable + require.True(topic.InitialRegret.Gt(alloraMath.ZeroDec())) } -// TestNotUpdateTopicInitialRegret tests that the topic's initial regret is not updated -// when there are no experienced workers for the topic. +// TestCalcSetNetworkRegretsWithFallbackRegrets tests that when there are no experienced workers +// but enough total workers (>10), the system falls back to using all workers' regrets for +// calculating the initial regret. // // Setup: -// - Create a topic with an initial regret of 0 -// - Set up inferer and forecaster addresses -// - Do not increment the inclusion counts for workers, leaving them as inexperienced -// - Set regrets from the previous epoch -// - Generate network losses for the current epoch +// - Create a topic with a high alpha regret (0.5) so workers need 2 inclusions to be experienced +// - Add 10 inferers and 2 forecasters with only 1 inclusion each (not experienced) +// - Set initial regrets +// - Create network losses value bundle with fixed values +// +// Test steps: +// 1. Call GetCalcSetNetworkRegrets with the network losses +// 2. Retrieve the updated topic // // Expected outcomes: -// 1. The GetCalcSetNetworkRegrets function should execute without error -// 2. The topic's initial regret should remain unchanged (0) after the function call -// because there are no experienced workers to trigger an update +// 1. The function should execute without error +// 2. Since we're using fallback regrets (no experienced workers but >10 total workers), +// the initial regret should be the 25th percentile of all workers' regrets +// without the offset calculation +// 3. The new initial regret should match the expected value based on the fixed regrets // -// This test ensures that the initial regret of a topic is not modified when -// there are no experienced workers, maintaining the system's integrity by -// preventing premature updates to the topic's regret baseline. -func (s *InferenceSynthesisTestSuite) TestNotUpdateTopicInitialRegret() { +// This test ensures that the fallback regret calculation works correctly when there +// are no experienced workers but enough total workers to use the fallback mechanism. +func (s *InferenceSynthesisTestSuite) TestCalcSetNetworkRegretsWithFallbackRegrets() { require := s.Require() k := s.emissionsKeeper - epochGet := testutil.GetSimulatedValuesGetterForEpochs() - epochPrevGet := epochGet[300] - epoch301Get := epochGet[301] + // Setup topic topicId := uint64(1) blockHeight := int64(1003) nonce := emissionstypes.Nonce{BlockHeight: blockHeight} - alpha := alloraMath.MustNewDecFromString("0.1") + alpha := alloraMath.MustNewDecFromString("0.5") // Set high alpha so workers need 2 inclusions to be experienced pNorm := alloraMath.MustNewDecFromString("3.0") cNorm := alloraMath.MustNewDecFromString("0.75") epsilon := alloraMath.MustNewDecFromString("1e-4") - initialRegretQuantile := alloraMath.MustNewDecFromString("0.5") + initialRegretQuantile := alloraMath.MustNewDecFromString("0.25") pnormSafeDiv := alloraMath.MustNewDecFromString("1.0") - // Set initial Regret to check if this value is updated or not - initialRegret := alloraMath.MustNewDecFromString("0") - // Create new topic + // Create topic topic := s.mockTopic() - topic.InitialRegret = initialRegret - err := s.emissionsKeeper.SetTopic(s.ctx, topicId, topic) - s.Require().NoError(err) + topic.AlphaRegret = alpha + err := k.SetTopic(s.ctx, topicId, topic) + require.NoError(err) - inferer0 := s.addrs[0].String() - inferer1 := s.addrs[1].String() - inferer2 := s.addrs[2].String() - inferer3 := s.addrs[3].String() - inferer4 := s.addrs[4].String() - infererAddresses := []string{inferer0, inferer1, inferer2, inferer3, inferer4} + // Setup workers + inferer0 := s.addrsStr[0] + inferer1 := s.addrsStr[1] + inferer2 := s.addrsStr[2] + inferer3 := s.addrsStr[3] + inferer4 := s.addrsStr[4] + inferer5 := s.addrsStr[5] + inferer6 := s.addrsStr[6] + inferer7 := s.addrsStr[7] + inferer8 := s.addrsStr[8] + inferer9 := s.addrsStr[9] + infererAddresses := []string{inferer0, inferer1, inferer2, inferer3, inferer4, + inferer5, inferer6, inferer7, inferer8, inferer9} + + forecaster0 := s.addrsStr[10] + forecaster1 := s.addrsStr[11] + forecasterAddresses := []string{forecaster0, forecaster1} + + // Add workers with only 1 inclusion each (not experienced) + for _, worker := range infererAddresses { + err := k.IncrementCountInfererInclusionsInTopic(s.ctx, topicId, worker) + require.NoError(err) + } + for _, worker := range forecasterAddresses { + err := k.IncrementCountForecasterInclusionsInTopic(s.ctx, topicId, worker) + require.NoError(err) + } - forecaster0 := s.addrs[5].String() - forecaster1 := s.addrs[6].String() - forecaster2 := s.addrs[7].String() - forecasterAddresses := []string{forecaster0, forecaster1, forecaster2} + // Set initial regrets with fixed values + timestampedValue0_1 := emissionstypes.TimestampedValue{ + BlockHeight: blockHeight, + Value: alloraMath.MustNewDecFromString("0.1"), + } + timestampedValue0_2 := emissionstypes.TimestampedValue{ + BlockHeight: blockHeight, + Value: alloraMath.MustNewDecFromString("0.2"), + } - reputer0 := s.addrs[8].String() + for i, inferer := range infererAddresses { + if i < 5 { + err = k.SetInfererNetworkRegret(s.ctx, topicId, inferer, timestampedValue0_1) + } else { + err = k.SetInfererNetworkRegret(s.ctx, topicId, inferer, timestampedValue0_2) + } + require.NoError(err) + } - err = testutil.SetRegretsFromPreviousEpoch(s.ctx, s.emissionsKeeper, topicId, blockHeight, infererAddresses, forecasterAddresses, epochPrevGet) - require.NoError(err) + for _, forecaster := range forecasterAddresses { + err = k.SetForecasterNetworkRegret(s.ctx, topicId, forecaster, timestampedValue0_2) + require.NoError(err) + } - networkLosses, err := testutil.GetNetworkLossFromCsv( - topicId, - blockHeight, - infererAddresses, - forecasterAddresses, - reputer0, - epoch301Get, - ) - s.Require().NoError(err) + // Create network losses value bundle + networkLosses := emissionstypes.ValueBundle{ + TopicId: topicId, + ReputerRequestNonce: &emissionstypes.ReputerRequestNonce{ReputerNonce: &nonce}, + Reputer: s.addrsStr[12], + ExtraData: nil, + CombinedValue: alloraMath.MustNewDecFromString("0.1"), + InfererValues: []*emissionstypes.WorkerAttributedValue{ + {Worker: inferer0, Value: alloraMath.MustNewDecFromString("0.2")}, + {Worker: inferer1, Value: alloraMath.MustNewDecFromString("0.2")}, + {Worker: inferer2, Value: alloraMath.MustNewDecFromString("0.2")}, + {Worker: inferer3, Value: alloraMath.MustNewDecFromString("0.2")}, + {Worker: inferer4, Value: alloraMath.MustNewDecFromString("0.2")}, + {Worker: inferer5, Value: alloraMath.MustNewDecFromString("0.3")}, + {Worker: inferer6, Value: alloraMath.MustNewDecFromString("0.3")}, + {Worker: inferer7, Value: alloraMath.MustNewDecFromString("0.3")}, + {Worker: inferer8, Value: alloraMath.MustNewDecFromString("0.3")}, + {Worker: inferer9, Value: alloraMath.MustNewDecFromString("0.3")}, + }, + ForecasterValues: []*emissionstypes.WorkerAttributedValue{ + {Worker: forecaster0, Value: alloraMath.MustNewDecFromString("0.3")}, + {Worker: forecaster1, Value: alloraMath.MustNewDecFromString("0.3")}, + }, + NaiveValue: alloraMath.MustNewDecFromString("0.1"), + OneOutInfererValues: nil, + OneOutForecasterValues: nil, + OneInForecasterValues: nil, + OneOutInfererForecasterValues: nil, + } - err = inferencesynthesis.GetCalcSetNetworkRegrets(inferencesynthesis.GetCalcSetNetworkRegretsArgs{ - Ctx: s.ctx, - K: k, - TopicId: topicId, - NetworkLosses: networkLosses, - Nonce: nonce, - AlphaRegret: alpha, - CNorm: cNorm, - PNorm: pNorm, - EpsilonTopic: epsilon, - InitialRegretQuantile: initialRegretQuantile, - PNormSafeDiv: pnormSafeDiv, - }) + // Call GetCalcSetNetworkRegrets + err = inferencesynthesis.GetCalcSetNetworkRegrets( + inferencesynthesis.GetCalcSetNetworkRegretsArgs{ + Ctx: s.ctx, + K: k, + TopicId: topicId, + NetworkLosses: networkLosses, + Nonce: nonce, + AlphaRegret: alpha, + CNorm: cNorm, + PNorm: pNorm, + EpsilonTopic: epsilon, + InitialRegretQuantile: initialRegretQuantile, + PNormSafeDiv: pnormSafeDiv, + }) require.NoError(err) - // Initial Regret will not be updated because this topic has no experienced actors - topic, err = s.emissionsKeeper.GetTopic(s.ctx, topicId) + // Get the updated topic + updatedTopic, err := k.GetTopic(s.ctx, topicId) require.NoError(err) - require.Equal(topic.InitialRegret, initialRegret) + + // Since we're using fallback regrets (no experienced workers), + // the initial regret should just be the 25th percentile without the offset calculation + expectedRegrets := make([]alloraMath.Dec, 0) + for _, worker := range append(infererAddresses, forecasterAddresses...) { + var regret emissionstypes.TimestampedValue + var err error + if slices.Contains(infererAddresses, worker) { + regret, _, err = k.GetInfererNetworkRegret(s.ctx, topicId, worker) + } else { + regret, _, err = k.GetForecasterNetworkRegret(s.ctx, topicId, worker) + } + require.NoError(err) + expectedRegrets = append(expectedRegrets, regret.Value) + } + + expectedInitialRegret, err := alloraMath.GetQuantileOfDecs(expectedRegrets, initialRegretQuantile) + require.NoError(err) + + require.Equal(expectedInitialRegret, updatedTopic.InitialRegret) } diff --git a/x/emissions/keeper/keeper_test.go b/x/emissions/keeper/keeper_test.go index b02576e35..361a93781 100644 --- a/x/emissions/keeper/keeper_test.go +++ b/x/emissions/keeper/keeper_test.go @@ -3815,6 +3815,7 @@ func mockUninitializedParams() types.Params { PNormSafeDiv: alloraMath.ZeroDec(), GlobalWhitelistEnabled: true, TopicCreatorWhitelistEnabled: true, + MinExperiencedWorkerRegrets: uint64(10), } } diff --git a/x/emissions/keeper/msgserver/msg_server_params.go b/x/emissions/keeper/msgserver/msg_server_params.go index 246c61ced..91424fefa 100644 --- a/x/emissions/keeper/msgserver/msg_server_params.go +++ b/x/emissions/keeper/msgserver/msg_server_params.go @@ -162,6 +162,9 @@ func (ms msgServer) UpdateParams(ctx context.Context, msg *types.UpdateParamsReq if len(newParams.TopicCreatorWhitelistEnabled) == 1 { existingParams.TopicCreatorWhitelistEnabled = newParams.TopicCreatorWhitelistEnabled[0] } + if len(newParams.MinExperiencedWorkerRegrets) == 1 { + existingParams.MinExperiencedWorkerRegrets = newParams.MinExperiencedWorkerRegrets[0] + } err = existingParams.Validate() if err != nil { return nil, err diff --git a/x/emissions/keeper/msgserver/msg_server_params_test.go b/x/emissions/keeper/msgserver/msg_server_params_test.go index a7f6f47e2..d254e013f 100644 --- a/x/emissions/keeper/msgserver/msg_server_params_test.go +++ b/x/emissions/keeper/msgserver/msg_server_params_test.go @@ -65,6 +65,7 @@ func (s *MsgServerTestSuite) TestUpdateAllParams() { PNormSafeDiv: []alloraMath.Dec{alloraMath.ZeroDec()}, GlobalWhitelistEnabled: []bool{true}, TopicCreatorWhitelistEnabled: []bool{true}, + MinExperiencedWorkerRegrets: []uint64{1234}, } updateMsg := &types.UpdateParamsRequest{ @@ -173,6 +174,7 @@ func (s *MsgServerTestSuite) TestUpdateParamsNonWhitelistedUser() { PNormSafeDiv: nil, GlobalWhitelistEnabled: nil, TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, } // Creating the UpdateParamsRequest message with a non-whitelisted user 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 967264bcc..82de46e61 100644 --- a/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go +++ b/x/emissions/keeper/msgserver/msg_server_worker_payload_test.go @@ -363,6 +363,7 @@ func (s *MsgServerTestSuite) TestMsgInsertWorkerPayloadWithFewTopElementsPerFore PNormSafeDiv: nil, GlobalWhitelistEnabled: nil, TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, } updateMsg := &types.UpdateParamsRequest{ @@ -762,6 +763,7 @@ func (s *MsgServerTestSuite) TestMsgInsertWorkerPayloadWithLowScoreForecastsAreR PNormSafeDiv: nil, GlobalWhitelistEnabled: nil, TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, } updateMsg := &types.UpdateParamsRequest{ diff --git a/x/emissions/migrations/v6/migrate.go b/x/emissions/migrations/v6/migrate.go index 378f68adb..f597c3e5a 100644 --- a/x/emissions/migrations/v6/migrate.go +++ b/x/emissions/migrations/v6/migrate.go @@ -108,6 +108,7 @@ func MigrateParams(store storetypes.KVStore, cdc codec.BinaryCodec) error { // NEW PARAMS GlobalWhitelistEnabled: defaultParams.GlobalWhitelistEnabled, TopicCreatorWhitelistEnabled: defaultParams.TopicCreatorWhitelistEnabled, + MinExperiencedWorkerRegrets: defaultParams.MinExperiencedWorkerRegrets, } store.Delete(emissionstypes.ParamsKey) diff --git a/x/emissions/module/rewards/rewards_test.go b/x/emissions/module/rewards/rewards_test.go index 67ab9e026..35cb6d18b 100644 --- a/x/emissions/module/rewards/rewards_test.go +++ b/x/emissions/module/rewards/rewards_test.go @@ -2216,6 +2216,7 @@ func (s *RewardsTestSuite) SetParamsForTest() { PNormSafeDiv: nil, GlobalWhitelistEnabled: nil, TopicCreatorWhitelistEnabled: nil, + MinExperiencedWorkerRegrets: nil, } updateMsg := &types.UpdateParamsRequest{ diff --git a/x/emissions/proto/emissions/v6/params.proto b/x/emissions/proto/emissions/v6/params.proto index c37ab17da..145fdff2a 100644 --- a/x/emissions/proto/emissions/v6/params.proto +++ b/x/emissions/proto/emissions/v6/params.proto @@ -155,4 +155,6 @@ message Params { bool global_whitelist_enabled = 50; // global whitelist enabled => all global whitelisted actors can create topics // and participate in all topics as workers and reputers bool topic_creator_whitelist_enabled = 51; // topic creator whitelist enabled => only topic creator whitelisted actors can create topics + uint64 min_experienced_worker_regrets = 52; // minimum number of experienced workers required to use their regrets + // for calculating the topic initial regret } diff --git a/x/emissions/proto/emissions/v6/tx.proto b/x/emissions/proto/emissions/v6/tx.proto index a99d65eab..84b8539e7 100644 --- a/x/emissions/proto/emissions/v6/tx.proto +++ b/x/emissions/proto/emissions/v6/tx.proto @@ -208,6 +208,7 @@ message OptionalParams { ]; repeated bool global_whitelist_enabled = 50; repeated bool topic_creator_whitelist_enabled = 51; + repeated uint64 min_experienced_worker_regrets = 52; } message UpdateParamsRequest { diff --git a/x/emissions/types/params.go b/x/emissions/types/params.go index 8648019bc..17cdee832 100644 --- a/x/emissions/types/params.go +++ b/x/emissions/types/params.go @@ -57,6 +57,7 @@ func DefaultParams() Params { PNormSafeDiv: alloraMath.MustNewDecFromString("8.25"), // pnorm divide value to calculate offset with cnorm GlobalWhitelistEnabled: true, // global whitelist enabled => all global whitelisted actors can create topics and participate in all topics as workers and reputers TopicCreatorWhitelistEnabled: true, // topic creator whitelist enabled => all topic creator whitelisted actors can create topics + MinExperiencedWorkerRegrets: uint64(10), // minimum number of experienced workers required to use their regrets for calculating the topic initial regret } } @@ -191,6 +192,9 @@ func (p Params) Validate() error { if err := validatePNormSafeDiv(p.PNormSafeDiv); err != nil { return errorsmod.Wrap(err, "params validation failure: pnorm safe div") } + if err := validateMinExperiencedWorkerRegrets(p.MinExperiencedWorkerRegrets); err != nil { + return errorsmod.Wrap(err, "params validation failure: min experienced worker regrets") + } return nil } @@ -602,3 +606,8 @@ func validateDataSendingFee(i cosmosMath.Int) error { } return nil } + +// No validation needed as it is a uint +func validateMinExperiencedWorkerRegrets(i uint64) error { + return nil +} diff --git a/x/emissions/types/params.pb.go b/x/emissions/types/params.pb.go index 2d07646aa..6b8e40fae 100644 --- a/x/emissions/types/params.pb.go +++ b/x/emissions/types/params.pb.go @@ -91,7 +91,8 @@ type Params struct { PNormSafeDiv github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,49,opt,name=p_norm_safe_div,json=pNormSafeDiv,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_norm_safe_div"` GlobalWhitelistEnabled bool `protobuf:"varint,50,opt,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` // and participate in all topics as workers and reputers - TopicCreatorWhitelistEnabled bool `protobuf:"varint,51,opt,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` + TopicCreatorWhitelistEnabled bool `protobuf:"varint,51,opt,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` + MinExperiencedWorkerRegrets uint64 `protobuf:"varint,52,opt,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` } func (m *Params) Reset() { *m = Params{} } @@ -274,6 +275,13 @@ func (m *Params) GetTopicCreatorWhitelistEnabled() bool { return false } +func (m *Params) GetMinExperiencedWorkerRegrets() uint64 { + if m != nil { + return m.MinExperiencedWorkerRegrets + } + return 0 +} + func init() { proto.RegisterType((*Params)(nil), "emissions.v6.Params") } @@ -281,97 +289,99 @@ func init() { func init() { proto.RegisterFile("emissions/v6/params.proto", fileDescriptor_510cba56e74b19fc) } var fileDescriptor_510cba56e74b19fc = []byte{ - // 1433 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x6f, 0x14, 0xc7, - 0x13, 0xf7, 0xfe, 0x31, 0x66, 0x69, 0x8c, 0xbd, 0x9e, 0xbf, 0x31, 0xe3, 0xd7, 0xda, 0xc1, 0x24, - 0x59, 0x1c, 0xf0, 0x92, 0x20, 0x11, 0xf2, 0x38, 0x04, 0x62, 0x1b, 0xd9, 0xc2, 0xc8, 0x19, 0x3b, - 0x58, 0x22, 0x51, 0x3a, 0xed, 0x99, 0x9a, 0xd9, 0x96, 0x67, 0xba, 0x87, 0xee, 0xde, 0xf5, 0x9a, - 0x7b, 0xee, 0xf9, 0x18, 0x1c, 0x73, 0xc8, 0x87, 0xe0, 0x88, 0x72, 0x8a, 0x72, 0x40, 0x11, 0x1c, - 0xf2, 0x35, 0xa2, 0x7e, 0xcc, 0x3e, 0x0c, 0x8a, 0x22, 0x26, 0x97, 0xd5, 0x4e, 0x57, 0xd5, 0xaf, - 0x6a, 0x7e, 0x55, 0x5d, 0x55, 0x83, 0x66, 0x21, 0xa3, 0x52, 0x52, 0xce, 0x64, 0xb3, 0x73, 0xbb, - 0x99, 0x13, 0x41, 0x32, 0xb9, 0x96, 0x0b, 0xae, 0xb8, 0x37, 0xde, 0x13, 0xad, 0x75, 0x6e, 0xcf, - 0x4d, 0x91, 0x8c, 0x32, 0xde, 0x34, 0xbf, 0x56, 0x61, 0x6e, 0x36, 0xe4, 0x32, 0xe3, 0x12, 0x9b, - 0xa7, 0xa6, 0x7d, 0x70, 0xa2, 0xe9, 0x84, 0x27, 0xdc, 0x9e, 0xeb, 0x7f, 0xf6, 0xf4, 0xca, 0xb3, - 0x3a, 0x1a, 0xdb, 0x35, 0x2e, 0x3c, 0x1f, 0x9d, 0xeb, 0x80, 0xd0, 0xe8, 0x7e, 0x65, 0xb9, 0xd2, - 0x38, 0x1f, 0x14, 0x8f, 0xde, 0x67, 0x68, 0x36, 0x23, 0x5d, 0x2c, 0x41, 0x50, 0x92, 0xd2, 0xa7, - 0x10, 0xe1, 0x4c, 0x26, 0x38, 0x05, 0x96, 0xa8, 0x96, 0xff, 0xbf, 0xe5, 0x4a, 0xe3, 0x4c, 0x30, - 0x93, 0x91, 0xee, 0x5e, 0x4f, 0xbe, 0x23, 0x93, 0x07, 0x46, 0xea, 0x11, 0x54, 0xcb, 0x28, 0xc3, - 0x8a, 0xe7, 0x34, 0xc4, 0xc7, 0x40, 0x93, 0x96, 0xf2, 0xcf, 0x68, 0xf4, 0x7b, 0x9f, 0x3e, 0x7f, - 0xb9, 0x34, 0xf2, 0xc7, 0xcb, 0xa5, 0x66, 0x42, 0x55, 0xab, 0x7d, 0xb8, 0x16, 0xf2, 0xac, 0x49, - 0xd2, 0x94, 0x0b, 0x72, 0x83, 0x81, 0x3a, 0xe6, 0xe2, 0xa8, 0x78, 0x0c, 0x5b, 0x84, 0xb2, 0x66, - 0x46, 0x54, 0x6b, 0x6d, 0x1d, 0xc2, 0x60, 0x22, 0xa3, 0x6c, 0x5f, 0xe3, 0x1d, 0x18, 0x38, 0x2f, - 0x46, 0x33, 0x02, 0x9e, 0xb4, 0xa9, 0xd0, 0x71, 0x51, 0x46, 0xb3, 0x76, 0x86, 0xa5, 0x22, 0x47, - 0xe0, 0x9f, 0x35, 0x8e, 0x6e, 0x3a, 0x47, 0x97, 0x2c, 0x1d, 0x32, 0x3a, 0x5a, 0xa3, 0xdc, 0xc2, - 0x6d, 0x31, 0xf5, 0xdb, 0xaf, 0x37, 0x90, 0xe3, 0x69, 0x8b, 0xa9, 0x67, 0x7f, 0xfd, 0xb2, 0x5a, - 0x09, 0xa6, 0x0b, 0xbc, 0x1d, 0x0b, 0xb7, 0xa7, 0xd1, 0x34, 0x0b, 0x02, 0x32, 0xde, 0x01, 0x8b, - 0x8e, 0x23, 0x48, 0xc9, 0x09, 0x3e, 0xa6, 0x2c, 0xe2, 0xc7, 0xfe, 0x98, 0x65, 0xc1, 0x2a, 0x18, - 0xfd, 0x75, 0x2d, 0x3e, 0x30, 0x52, 0xaf, 0x61, 0x59, 0x80, 0x9c, 0x87, 0xad, 0x82, 0xb7, 0x73, - 0xc6, 0x42, 0xbf, 0xcc, 0x86, 0x3e, 0x76, 0x7c, 0x3d, 0x46, 0xe3, 0x87, 0xa0, 0x08, 0x06, 0xa6, - 0x04, 0xcf, 0x4f, 0xfc, 0x6a, 0x39, 0xae, 0x2e, 0x68, 0xb0, 0x0d, 0x8b, 0xe5, 0x7d, 0x8f, 0x2e, - 0xa6, 0x40, 0x04, 0xa3, 0x2c, 0xc1, 0x82, 0x28, 0xf0, 0xcf, 0x97, 0x03, 0x1f, 0x2f, 0xd0, 0x02, - 0xa2, 0xc0, 0xcb, 0x90, 0xae, 0x01, 0x9c, 0x08, 0x12, 0x51, 0x60, 0x0a, 0xab, 0x96, 0x00, 0xd9, - 0xe2, 0x69, 0xe4, 0xa3, 0x72, 0x6e, 0xa6, 0x33, 0xd2, 0xbd, 0xef, 0x50, 0xf7, 0x0b, 0x50, 0x0f, - 0x90, 0xa7, 0x29, 0xb5, 0xa9, 0x88, 0x05, 0x09, 0x95, 0x2e, 0xdc, 0x0b, 0xe5, 0x5c, 0xe9, 0x2c, - 0x99, 0xe4, 0x6d, 0x3a, 0x40, 0x6f, 0x03, 0x2d, 0xe9, 0xb7, 0x6a, 0xb3, 0xb8, 0x9d, 0xc6, 0x34, - 0x4d, 0x21, 0xc2, 0xda, 0x1e, 0x04, 0xd6, 0x35, 0x02, 0x52, 0x49, 0xff, 0xe2, 0x72, 0xa5, 0x31, - 0x1a, 0x2c, 0x64, 0xa4, 0xfb, 0x6d, 0x5f, 0xeb, 0xc0, 0x28, 0x05, 0x4e, 0xc7, 0xbb, 0x8f, 0x96, - 0x4f, 0xc3, 0x08, 0xc8, 0xdb, 0x6a, 0x10, 0x67, 0xc2, 0xe0, 0x2c, 0x0e, 0xe3, 0x04, 0x56, 0xab, - 0x07, 0xf4, 0x14, 0x2d, 0xda, 0xbb, 0x24, 0xe0, 0x98, 0x88, 0xc8, 0xbd, 0x3f, 0xcd, 0x72, 0x2e, - 0x14, 0x61, 0x21, 0xf8, 0x93, 0xe5, 0x18, 0x98, 0x33, 0xe8, 0x81, 0x01, 0x37, 0x4c, 0x6c, 0xf5, - 0xa0, 0xbd, 0x9f, 0x2a, 0x68, 0x65, 0xc8, 0x79, 0x0c, 0x80, 0x05, 0x74, 0x80, 0xb5, 0x87, 0x42, - 0xa8, 0x95, 0x0b, 0x61, 0x69, 0x20, 0x84, 0x4d, 0x80, 0xc0, 0x3a, 0x18, 0x88, 0x03, 0x90, 0x37, - 0x14, 0x06, 0x49, 0xf3, 0x16, 0xf1, 0xa7, 0x4a, 0xa6, 0x7e, 0xc0, 0xeb, 0x5d, 0x0d, 0xe8, 0x85, - 0x68, 0x4a, 0x11, 0x79, 0x34, 0xec, 0xc5, 0x2b, 0xe7, 0x65, 0x52, 0x23, 0x0e, 0x3a, 0xd1, 0x9c, - 0x76, 0x48, 0x4a, 0x23, 0xa2, 0xb8, 0x90, 0xb8, 0x23, 0xb1, 0x35, 0xc4, 0x39, 0x88, 0x50, 0x5f, - 0x23, 0xeb, 0xdd, 0xff, 0x7f, 0x49, 0x4e, 0xfb, 0x3e, 0x1e, 0xc9, 0xbb, 0x46, 0x65, 0xd7, 0x3a, - 0xb0, 0xc1, 0x78, 0x5f, 0xa2, 0x79, 0xd3, 0xe2, 0x49, 0x96, 0xa7, 0x20, 0xb1, 0xe2, 0x58, 0x86, - 0x24, 0x05, 0x2c, 0x43, 0x2e, 0x40, 0xfa, 0xd3, 0xa6, 0x36, 0x2f, 0xeb, 0x26, 0x6f, 0x35, 0xf6, - 0xf9, 0x9e, 0x96, 0xef, 0x19, 0xb1, 0xf7, 0x39, 0x9a, 0xd3, 0xd6, 0x8a, 0xe7, 0x98, 0xb2, 0x18, - 0x04, 0x08, 0x03, 0xe1, 0x62, 0xbf, 0x64, 0x8c, 0x75, 0x77, 0xd8, 0xe7, 0xf9, 0x96, 0x93, 0xef, - 0x73, 0xe7, 0xf9, 0x2b, 0xb4, 0x58, 0xd8, 0xc6, 0x5c, 0x40, 0x48, 0xa4, 0x1a, 0x36, 0x9f, 0x31, - 0xe6, 0xb3, 0xd6, 0x7c, 0xb3, 0xaf, 0xd2, 0x43, 0x18, 0xf0, 0xee, 0x2e, 0xd5, 0xa0, 0xf9, 0xe5, - 0x41, 0xef, 0xee, 0x3a, 0xf5, 0x6d, 0x1f, 0xa3, 0x5a, 0x28, 0x80, 0x28, 0x70, 0x23, 0x2a, 0x06, - 0xf0, 0xfd, 0x77, 0x1c, 0x1b, 0x13, 0x16, 0xc9, 0xcc, 0xa6, 0x4d, 0x00, 0xef, 0x0b, 0x34, 0xd7, - 0xeb, 0x86, 0x11, 0x48, 0x93, 0x4e, 0x1d, 0x28, 0xd5, 0x11, 0xf8, 0xb3, 0x96, 0xd2, 0x42, 0x63, - 0xdd, 0x2a, 0xec, 0x90, 0xee, 0x96, 0x16, 0x7b, 0xdf, 0xa1, 0x9a, 0x80, 0x84, 0x4a, 0x25, 0x88, - 0x6e, 0x44, 0x26, 0xb0, 0x85, 0x77, 0x0c, 0x6c, 0x72, 0x10, 0x49, 0x47, 0x76, 0x1d, 0x79, 0x11, - 0xc4, 0xa4, 0x9d, 0x2a, 0x9c, 0x93, 0x04, 0x70, 0x4a, 0x33, 0xaa, 0xfc, 0x45, 0x13, 0x51, 0xcd, - 0x49, 0x76, 0x49, 0x02, 0x0f, 0xf4, 0xb9, 0x77, 0x15, 0x4d, 0xe8, 0xb0, 0x07, 0x34, 0xeb, 0x46, - 0x73, 0x3c, 0x23, 0xdd, 0xbe, 0x96, 0xce, 0xe3, 0xa9, 0x19, 0x87, 0x05, 0x84, 0x5c, 0x44, 0xce, - 0x68, 0xc9, 0x0c, 0xbc, 0xd9, 0xe1, 0x81, 0x17, 0x18, 0x0d, 0x8b, 0xd0, 0x40, 0xb5, 0xc3, 0x94, - 0x87, 0x47, 0x52, 0x17, 0x3f, 0xce, 0x38, 0x53, 0x2d, 0x7f, 0xd9, 0x78, 0x9a, 0xb0, 0xe7, 0xbb, - 0x20, 0x76, 0xf4, 0xa9, 0xee, 0x00, 0x79, 0x71, 0x2f, 0x6d, 0xc1, 0xe9, 0xbe, 0xf3, 0x5e, 0xc9, - 0x0e, 0x90, 0xdb, 0x9a, 0xd8, 0x2a, 0x00, 0x75, 0x07, 0xe8, 0xb9, 0x29, 0x6a, 0xd3, 0xbf, 0x52, - 0xb2, 0x03, 0x38, 0x2f, 0x45, 0x21, 0xeb, 0x0d, 0xa9, 0xe7, 0xc4, 0x95, 0xaf, 0xbf, 0x52, 0x72, - 0x43, 0x72, 0x3e, 0x5c, 0xb5, 0x6b, 0xba, 0xc2, 0x37, 0xe9, 0xba, 0x5a, 0x92, 0xae, 0xf0, 0x2d, - 0x74, 0x85, 0x6f, 0xd0, 0xf5, 0x7e, 0x49, 0xba, 0xc2, 0x53, 0x74, 0x3d, 0x44, 0x63, 0x21, 0x66, - 0x5c, 0x64, 0xfe, 0x07, 0xe5, 0x90, 0xcf, 0x86, 0x0f, 0xb9, 0xc8, 0xbc, 0x1f, 0xd1, 0x24, 0xe4, - 0x92, 0xa6, 0x9c, 0xf5, 0xd8, 0x6f, 0x94, 0x64, 0xdf, 0xe1, 0x15, 0xec, 0x3f, 0x42, 0xd7, 0x5a, - 0x24, 0x8d, 0xcd, 0xd5, 0xcf, 0x05, 0x0f, 0x41, 0x4a, 0x37, 0xb6, 0xcd, 0xb6, 0x48, 0x52, 0x89, - 0x81, 0x45, 0xd8, 0x94, 0xb8, 0xbf, 0x6a, 0xea, 0x7d, 0x45, 0x1b, 0xec, 0x90, 0xee, 0xae, 0x55, - 0x37, 0x83, 0x38, 0x70, 0xca, 0x1b, 0x2c, 0xba, 0xa7, 0x55, 0x75, 0xe1, 0x14, 0x91, 0x4b, 0x12, - 0x03, 0x8e, 0x68, 0xc7, 0xff, 0xe8, 0xbf, 0x09, 0x7d, 0x8f, 0xc4, 0xb0, 0x4e, 0x3b, 0xba, 0x3b, - 0x46, 0x44, 0x11, 0x2c, 0x81, 0x45, 0x7a, 0x6b, 0xd4, 0x4d, 0xe8, 0xfa, 0xbb, 0x76, 0x47, 0x8d, - 0xb4, 0x67, 0x81, 0x74, 0x0f, 0x72, 0x1f, 0x15, 0x90, 0x42, 0x06, 0x4c, 0xd9, 0x3b, 0xdf, 0xab, - 0x9a, 0x1b, 0xbd, 0xa6, 0xbd, 0xe1, 0xe4, 0xbb, 0x20, 0x7a, 0x35, 0xe0, 0x86, 0x95, 0x5e, 0xd1, - 0x3a, 0xae, 0x71, 0x5b, 0x7b, 0xcb, 0xe1, 0x5a, 0x6f, 0x58, 0xdd, 0x35, 0x1a, 0xa6, 0x21, 0x6b, - 0x00, 0xcb, 0xdb, 0x2a, 0x9a, 0x32, 0xa3, 0x4e, 0x09, 0xfd, 0x4a, 0x6e, 0x1b, 0x6f, 0x1a, 0x9b, - 0x49, 0x3d, 0xe0, 0xcc, 0xb9, 0x5b, 0xc7, 0x39, 0xba, 0x4c, 0x19, 0x55, 0x94, 0xa4, 0x58, 0x40, - 0x22, 0x40, 0xe1, 0x27, 0x6d, 0xc2, 0x14, 0x4d, 0xc1, 0xbf, 0x59, 0x8e, 0xea, 0x4b, 0x0e, 0x37, - 0x30, 0xb0, 0xdf, 0x38, 0x54, 0xef, 0x07, 0x34, 0x99, 0x9b, 0xf2, 0xee, 0xe7, 0xf4, 0xe3, 0x92, - 0x5b, 0x7a, 0xae, 0xeb, 0xbc, 0xc8, 0xe8, 0x1d, 0xe4, 0x27, 0x29, 0x3f, 0x24, 0x29, 0x3e, 0x6e, - 0x51, 0x05, 0x29, 0x95, 0x0a, 0x03, 0x23, 0x87, 0x29, 0x44, 0xfe, 0x27, 0xcb, 0x95, 0x46, 0x35, - 0x98, 0xb1, 0xf2, 0x83, 0x42, 0xbc, 0x61, 0xa5, 0x7a, 0x13, 0xb6, 0x23, 0xd2, 0x4c, 0x39, 0x2e, - 0xde, 0x02, 0x70, 0xcb, 0x00, 0x2c, 0x18, 0xb5, 0xaf, 0xad, 0xd6, 0x69, 0x98, 0xed, 0xd1, 0xea, - 0x68, 0xed, 0xec, 0xf6, 0x68, 0x75, 0xae, 0x36, 0xbf, 0x3d, 0x5a, 0x9d, 0xaf, 0x2d, 0x6c, 0x8f, - 0x56, 0x3f, 0xac, 0x35, 0xb6, 0x47, 0xab, 0xd7, 0x6a, 0xab, 0x66, 0xd7, 0x7f, 0x23, 0xa1, 0xc1, - 0xbc, 0x19, 0x2c, 0x71, 0x0c, 0x03, 0x09, 0x2f, 0x16, 0xcf, 0x60, 0x45, 0x9b, 0x08, 0x50, 0x82, - 0xda, 0xbd, 0xc5, 0xae, 0xce, 0x98, 0x71, 0x16, 0x82, 0x74, 0xcb, 0xba, 0x8b, 0x69, 0x68, 0x61, - 0x8d, 0x20, 0x24, 0x27, 0xe6, 0x3b, 0x28, 0xb8, 0xfa, 0x8f, 0x10, 0xae, 0x2d, 0xdc, 0x0b, 0x9e, - 0xbf, 0xaa, 0x57, 0x5e, 0xbc, 0xaa, 0x57, 0xfe, 0x7c, 0x55, 0xaf, 0xfc, 0xfc, 0xba, 0x3e, 0xf2, - 0xe2, 0x75, 0x7d, 0xe4, 0xf7, 0xd7, 0xf5, 0x91, 0xc7, 0x77, 0xfe, 0x65, 0x4e, 0xba, 0xcd, 0xfe, - 0xa7, 0xbd, 0x3a, 0xc9, 0x41, 0x1e, 0x8e, 0x99, 0xaf, 0xf0, 0x5b, 0x7f, 0x07, 0x00, 0x00, 0xff, - 0xff, 0xa6, 0x80, 0xf0, 0x4b, 0xf4, 0x0f, 0x00, 0x00, + // 1466 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4f, 0x6f, 0x14, 0xcb, + 0x11, 0xf7, 0x06, 0x63, 0x4c, 0x63, 0xec, 0xf5, 0xc4, 0x98, 0xf1, 0xbf, 0xb5, 0x83, 0x49, 0xb2, + 0x38, 0xe0, 0x25, 0x21, 0x22, 0xe4, 0xcf, 0x21, 0x80, 0x6d, 0x64, 0x0b, 0x23, 0x67, 0xec, 0x60, + 0x89, 0x44, 0xe9, 0xb4, 0x67, 0x6a, 0x77, 0x5b, 0x9e, 0xe9, 0x1e, 0xba, 0x7b, 0xd7, 0x6b, 0xee, + 0xb9, 0xe7, 0x63, 0xe4, 0x98, 0x43, 0x3e, 0x04, 0x47, 0x94, 0x53, 0x94, 0x03, 0x7a, 0x82, 0xc3, + 0x3b, 0xbd, 0xef, 0xf0, 0x54, 0xdd, 0x3d, 0xfb, 0x07, 0xa3, 0xa7, 0x27, 0xe6, 0x5d, 0x10, 0x3b, + 0xf5, 0xab, 0x5f, 0xd5, 0xfc, 0xba, 0xba, 0xaa, 0xc6, 0x64, 0x01, 0x32, 0xae, 0x35, 0x97, 0x42, + 0x37, 0xba, 0x0f, 0x1b, 0x39, 0x53, 0x2c, 0xd3, 0x9b, 0xb9, 0x92, 0x46, 0x06, 0x53, 0x7d, 0xd3, + 0x66, 0xf7, 0xe1, 0xe2, 0x2c, 0xcb, 0xb8, 0x90, 0x0d, 0xfb, 0xaf, 0x03, 0x2c, 0x2e, 0xc4, 0x52, + 0x67, 0x52, 0x53, 0xfb, 0xab, 0xe1, 0x7e, 0x78, 0xd3, 0x5c, 0x4b, 0xb6, 0xa4, 0x7b, 0x8e, 0xff, + 0x73, 0x4f, 0x6f, 0x7d, 0x53, 0x23, 0x13, 0x07, 0x36, 0x44, 0x10, 0x92, 0x2b, 0x5d, 0x50, 0xc8, + 0x1e, 0x56, 0xd6, 0x2a, 0xf5, 0xab, 0x51, 0xf1, 0x33, 0xf8, 0x2d, 0x59, 0xc8, 0x58, 0x8f, 0x6a, + 0x50, 0x9c, 0xa5, 0xfc, 0x0d, 0x24, 0x34, 0xd3, 0x2d, 0x9a, 0x82, 0x68, 0x99, 0x76, 0xf8, 0xa3, + 0xb5, 0x4a, 0xfd, 0x52, 0x34, 0x9f, 0xb1, 0xde, 0x61, 0xdf, 0xbe, 0xaf, 0x5b, 0xcf, 0xad, 0x35, + 0x60, 0xa4, 0x9a, 0x71, 0x41, 0x8d, 0xcc, 0x79, 0x4c, 0xcf, 0x80, 0xb7, 0xda, 0x26, 0xbc, 0x84, + 0xec, 0x4f, 0x7e, 0xf3, 0xf6, 0xfd, 0xea, 0xd8, 0xff, 0xdf, 0xaf, 0x36, 0x5a, 0xdc, 0xb4, 0x3b, + 0x27, 0x9b, 0xb1, 0xcc, 0x1a, 0x2c, 0x4d, 0xa5, 0x62, 0xf7, 0x04, 0x98, 0x33, 0xa9, 0x4e, 0x8b, + 0x9f, 0x71, 0x9b, 0x71, 0xd1, 0xc8, 0x98, 0x69, 0x6f, 0x6e, 0x41, 0x1c, 0x4d, 0x67, 0x5c, 0x1c, + 0x21, 0xdf, 0xb1, 0xa5, 0x0b, 0x9a, 0x64, 0x5e, 0xc1, 0xeb, 0x0e, 0x57, 0x98, 0x17, 0x17, 0x3c, + 0xeb, 0x64, 0x54, 0x1b, 0x76, 0x0a, 0xe1, 0x65, 0x1b, 0xe8, 0xbe, 0x0f, 0x74, 0xc3, 0xc9, 0xa1, + 0x93, 0xd3, 0x4d, 0x2e, 0x1d, 0xdd, 0xae, 0x30, 0xff, 0xfd, 0xcf, 0x3d, 0xe2, 0x75, 0xda, 0x15, + 0xe6, 0x5f, 0x5f, 0xff, 0x7b, 0xa3, 0x12, 0xcd, 0x15, 0x7c, 0xfb, 0x8e, 0xee, 0x10, 0xd9, 0x50, + 0x05, 0x05, 0x99, 0xec, 0x82, 0x63, 0xa7, 0x09, 0xa4, 0xec, 0x9c, 0x9e, 0x71, 0x91, 0xc8, 0xb3, + 0x70, 0xc2, 0xa9, 0xe0, 0x00, 0x16, 0xbf, 0x85, 0xe6, 0x63, 0x6b, 0x0d, 0xea, 0x4e, 0x05, 0xc8, + 0x65, 0xdc, 0x2e, 0x74, 0xbb, 0x62, 0x3d, 0xf0, 0x65, 0xb6, 0xf1, 0xb1, 0xd7, 0xeb, 0x15, 0x99, + 0x3a, 0x01, 0xc3, 0x28, 0x08, 0xa3, 0x64, 0x7e, 0x1e, 0x4e, 0x96, 0xd3, 0xea, 0x1a, 0x92, 0x6d, + 0x3b, 0xae, 0xe0, 0xaf, 0xe4, 0x7a, 0x0a, 0x4c, 0x09, 0x2e, 0x5a, 0x54, 0x31, 0x03, 0xe1, 0xd5, + 0x72, 0xe4, 0x53, 0x05, 0x5b, 0xc4, 0x0c, 0x04, 0x19, 0xc1, 0x1a, 0xa0, 0x2d, 0xc5, 0x12, 0x0e, + 0xc2, 0x50, 0xd3, 0x56, 0xa0, 0xdb, 0x32, 0x4d, 0x42, 0x52, 0x2e, 0xcc, 0x5c, 0xc6, 0x7a, 0xcf, + 0x3c, 0xeb, 0x51, 0x41, 0x1a, 0x00, 0x09, 0x50, 0x52, 0x77, 0x14, 0x4d, 0xc5, 0x62, 0x83, 0x85, + 0x7b, 0xad, 0x5c, 0x28, 0x3c, 0x25, 0x7b, 0x78, 0x3b, 0x9e, 0x30, 0xd8, 0x26, 0xab, 0xf8, 0x56, + 0x1d, 0xd1, 0xec, 0xa4, 0x4d, 0x9e, 0xa6, 0x90, 0x50, 0xf4, 0x07, 0x45, 0xb1, 0x46, 0x40, 0x1b, + 0x1d, 0x5e, 0x5f, 0xab, 0xd4, 0xc7, 0xa3, 0xe5, 0x8c, 0xf5, 0xfe, 0x3c, 0x40, 0x1d, 0x5b, 0x50, + 0xe4, 0x31, 0xc1, 0x33, 0xb2, 0xf6, 0x29, 0x8d, 0x82, 0xbc, 0x63, 0x86, 0x79, 0xa6, 0x2d, 0xcf, + 0xca, 0x28, 0x4f, 0xe4, 0x50, 0x7d, 0xa2, 0x37, 0x64, 0xc5, 0xdd, 0x25, 0x05, 0x67, 0x4c, 0x25, + 0xfe, 0xfd, 0x79, 0x96, 0x4b, 0x65, 0x98, 0x88, 0x21, 0x9c, 0x29, 0xa7, 0xc0, 0xa2, 0x65, 0x8f, + 0x2c, 0xb9, 0x55, 0x62, 0xb7, 0x4f, 0x1d, 0xfc, 0xa3, 0x42, 0xd6, 0x47, 0x82, 0x37, 0x01, 0xa8, + 0x82, 0x2e, 0x88, 0xce, 0x48, 0x0a, 0xd5, 0x72, 0x29, 0xac, 0x0e, 0xa5, 0xb0, 0x03, 0x10, 0xb9, + 0x00, 0x43, 0x79, 0x00, 0x09, 0x46, 0xd2, 0x60, 0x69, 0xde, 0x66, 0xe1, 0x6c, 0xc9, 0xa3, 0x1f, + 0x8a, 0xfa, 0x18, 0x09, 0x83, 0x98, 0xcc, 0x1a, 0xa6, 0x4f, 0x47, 0xa3, 0x04, 0xe5, 0xa2, 0xcc, + 0x20, 0xe3, 0x70, 0x10, 0xd4, 0xb4, 0xcb, 0x52, 0x9e, 0x30, 0x23, 0x95, 0xa6, 0x5d, 0x4d, 0x9d, + 0x23, 0xcd, 0x41, 0xc5, 0x78, 0x8d, 0x5c, 0xf4, 0xf0, 0xc7, 0x25, 0x35, 0x1d, 0xc4, 0x78, 0xa9, + 0x1f, 0x5b, 0xc8, 0x81, 0x0b, 0xe0, 0x92, 0x09, 0xfe, 0x40, 0x96, 0x6c, 0x8b, 0x67, 0x59, 0x9e, + 0x82, 0xa6, 0x46, 0x52, 0x1d, 0xb3, 0x14, 0xa8, 0x8e, 0xa5, 0x02, 0x1d, 0xce, 0xd9, 0xda, 0xbc, + 0x89, 0x4d, 0xde, 0x21, 0x8e, 0xe4, 0x21, 0xda, 0x0f, 0xad, 0x39, 0xf8, 0x1d, 0x59, 0x44, 0x6f, + 0x23, 0x73, 0xca, 0x45, 0x13, 0x14, 0x28, 0x4b, 0xe1, 0x73, 0xbf, 0x61, 0x9d, 0xb1, 0x3b, 0x1c, + 0xc9, 0x7c, 0xd7, 0xdb, 0x8f, 0xa4, 0x8f, 0xfc, 0x47, 0xb2, 0x52, 0xf8, 0x36, 0xa5, 0x82, 0x98, + 0x69, 0x33, 0xea, 0x3e, 0x6f, 0xdd, 0x17, 0x9c, 0xfb, 0xce, 0x00, 0xd2, 0x67, 0x18, 0x8a, 0xee, + 0x2f, 0xd5, 0xb0, 0xfb, 0xcd, 0xe1, 0xe8, 0xfe, 0x3a, 0x0d, 0x7c, 0x5f, 0x91, 0x6a, 0xac, 0x80, + 0x19, 0xf0, 0x23, 0xaa, 0x09, 0x10, 0x86, 0x5f, 0x38, 0x36, 0xa6, 0x1d, 0x93, 0x9d, 0x4d, 0x3b, + 0x00, 0xc1, 0xef, 0xc9, 0x62, 0xbf, 0x1b, 0x26, 0xa0, 0xed, 0x71, 0x62, 0xa2, 0x1c, 0x33, 0x08, + 0x17, 0x9c, 0xa4, 0x05, 0x62, 0xcb, 0x01, 0xf6, 0x59, 0x6f, 0x17, 0xcd, 0xc1, 0x5f, 0x48, 0x55, + 0x41, 0x8b, 0x6b, 0xa3, 0x18, 0x36, 0x22, 0x9b, 0xd8, 0xf2, 0x17, 0x26, 0x36, 0x33, 0xcc, 0x84, + 0x99, 0xdd, 0x25, 0x41, 0x02, 0x4d, 0xd6, 0x49, 0x0d, 0xcd, 0x59, 0x0b, 0x68, 0xca, 0x33, 0x6e, + 0xc2, 0x15, 0x9b, 0x51, 0xd5, 0x5b, 0x0e, 0x58, 0x0b, 0x9e, 0xe3, 0xf3, 0xe0, 0x36, 0x99, 0xc6, + 0xb4, 0x87, 0x90, 0x35, 0x8b, 0x9c, 0xca, 0x58, 0x6f, 0x80, 0xc2, 0x73, 0xfc, 0x64, 0xc6, 0x51, + 0x05, 0xb1, 0x54, 0x89, 0x77, 0x5a, 0xb5, 0x03, 0x6f, 0x61, 0x74, 0xe0, 0x45, 0x16, 0xe1, 0x18, + 0xea, 0xa4, 0x7a, 0x92, 0xca, 0xf8, 0x54, 0x63, 0xf1, 0xd3, 0x4c, 0x0a, 0xd3, 0x0e, 0xd7, 0x6c, + 0xa4, 0x69, 0xf7, 0xfc, 0x00, 0xd4, 0x3e, 0x3e, 0xc5, 0x0e, 0x90, 0x17, 0xf7, 0xd2, 0x15, 0x1c, + 0xf6, 0x9d, 0x9f, 0x94, 0xec, 0x00, 0xb9, 0xab, 0x89, 0xdd, 0x82, 0x10, 0x3b, 0x40, 0x3f, 0x4c, + 0x51, 0x9b, 0xe1, 0xad, 0x92, 0x1d, 0xc0, 0x47, 0x29, 0x0a, 0x19, 0x37, 0xa4, 0x7e, 0x10, 0x5f, + 0xbe, 0xe1, 0x7a, 0xc9, 0x0d, 0xc9, 0xc7, 0xf0, 0xd5, 0x8e, 0x72, 0xc5, 0x17, 0xe5, 0xba, 0x5d, + 0x52, 0xae, 0xf8, 0x33, 0x72, 0xc5, 0x17, 0xe4, 0xfa, 0x69, 0x49, 0xb9, 0xe2, 0x4f, 0xe4, 0x7a, + 0x41, 0x26, 0x62, 0x2a, 0xa4, 0xca, 0xc2, 0x9f, 0x95, 0x63, 0xbe, 0x1c, 0xbf, 0x90, 0x2a, 0x0b, + 0xfe, 0x4e, 0x66, 0x20, 0xd7, 0x3c, 0x95, 0xa2, 0xaf, 0x7e, 0xbd, 0xa4, 0xfa, 0x9e, 0xaf, 0x50, + 0xff, 0x25, 0xb9, 0xd3, 0x66, 0x69, 0xd3, 0x5e, 0xfd, 0x5c, 0xc9, 0x18, 0xb4, 0xf6, 0x63, 0xdb, + 0x6e, 0x8b, 0x2c, 0xd5, 0x14, 0x44, 0x42, 0x6d, 0x89, 0x87, 0x1b, 0xb6, 0xde, 0xd7, 0xd1, 0x61, + 0x9f, 0xf5, 0x0e, 0x1c, 0xdc, 0x0e, 0xe2, 0xc8, 0x83, 0xb7, 0x45, 0xf2, 0x04, 0xa1, 0x58, 0x38, + 0x45, 0xe6, 0x9a, 0x35, 0x81, 0x26, 0xbc, 0x1b, 0xfe, 0xe2, 0x87, 0x49, 0xfd, 0x90, 0x35, 0x61, + 0x8b, 0x77, 0xb1, 0x3b, 0x26, 0xcc, 0x30, 0xaa, 0x41, 0x24, 0xb8, 0x35, 0x62, 0x13, 0xba, 0xfb, + 0xa5, 0xdd, 0x11, 0x99, 0x0e, 0x1d, 0x11, 0xf6, 0x20, 0xff, 0x51, 0x01, 0x29, 0x64, 0x20, 0x8c, + 0xbb, 0xf3, 0xfd, 0xaa, 0xb9, 0xd7, 0x6f, 0xda, 0xdb, 0xde, 0x7e, 0x00, 0xaa, 0x5f, 0x03, 0x7e, + 0x58, 0xe1, 0x8a, 0xd6, 0xf5, 0x8d, 0xdb, 0xf9, 0x3b, 0x0d, 0x37, 0xfb, 0xc3, 0xea, 0xb1, 0x45, + 0xd8, 0x86, 0x8c, 0x04, 0x4e, 0xb7, 0x0d, 0x32, 0x6b, 0x47, 0x9d, 0x51, 0xf8, 0x4a, 0x7e, 0x1b, + 0x6f, 0x58, 0x9f, 0x19, 0x1c, 0x70, 0xf6, 0xb9, 0x5f, 0xc7, 0x25, 0xb9, 0xc9, 0x05, 0x37, 0x9c, + 0xa5, 0x54, 0x41, 0x4b, 0x81, 0xa1, 0xaf, 0x3b, 0x4c, 0x18, 0x9e, 0x42, 0x78, 0xbf, 0x9c, 0xd4, + 0x37, 0x3c, 0x6f, 0x64, 0x69, 0xff, 0xe4, 0x59, 0x83, 0xbf, 0x91, 0x99, 0xdc, 0x96, 0xf7, 0xe0, + 0x4c, 0x7f, 0x59, 0x72, 0x4b, 0xcf, 0xb1, 0xce, 0x8b, 0x13, 0x7d, 0x44, 0xc2, 0x56, 0x2a, 0x4f, + 0x58, 0x4a, 0xcf, 0xda, 0xdc, 0x40, 0xca, 0xb5, 0xa1, 0x20, 0xd8, 0x49, 0x0a, 0x49, 0xf8, 0xab, + 0xb5, 0x4a, 0x7d, 0x32, 0x9a, 0x77, 0xf6, 0xe3, 0xc2, 0xbc, 0xed, 0xac, 0xb8, 0x09, 0xbb, 0x11, + 0x69, 0xa7, 0x9c, 0x54, 0x9f, 0x21, 0x78, 0x60, 0x09, 0x96, 0x2d, 0xec, 0xa9, 0x43, 0x5d, 0xa0, + 0x79, 0x4a, 0x6a, 0x76, 0x4c, 0xf4, 0x72, 0x50, 0x1c, 0xdb, 0xc6, 0xd0, 0x42, 0x8d, 0x4a, 0xe8, + 0xf0, 0xd7, 0xf6, 0x28, 0x96, 0x70, 0x4e, 0x0c, 0x40, 0xc5, 0x3e, 0x6d, 0x21, 0x7b, 0xe3, 0x93, + 0xe3, 0xd5, 0xcb, 0x7b, 0xe3, 0x93, 0x8b, 0xd5, 0xa5, 0xbd, 0xf1, 0xc9, 0xa5, 0xea, 0xf2, 0xde, + 0xf8, 0xe4, 0xcf, 0xab, 0xf5, 0xbd, 0xf1, 0xc9, 0x3b, 0xd5, 0x0d, 0xfb, 0xc1, 0x70, 0xa1, 0x2a, + 0x2c, 0x21, 0x85, 0x66, 0x13, 0x86, 0xaa, 0xa6, 0xd8, 0x5e, 0xa3, 0x75, 0x74, 0x51, 0x60, 0x14, + 0x77, 0xcb, 0x8f, 0xdb, 0xbf, 0xa9, 0x90, 0x22, 0x06, 0xed, 0x13, 0xf4, 0x2f, 0x36, 0xb2, 0xf5, + 0x26, 0x10, 0xb3, 0x73, 0xfb, 0x31, 0x15, 0xdd, 0xfe, 0x4e, 0x0a, 0xdf, 0x5b, 0x9e, 0x44, 0x6f, + 0x3f, 0xd4, 0x2a, 0xef, 0x3e, 0xd4, 0x2a, 0x5f, 0x7d, 0xa8, 0x55, 0xfe, 0xf9, 0xb1, 0x36, 0xf6, + 0xee, 0x63, 0x6d, 0xec, 0x7f, 0x1f, 0x6b, 0x63, 0xaf, 0x1e, 0x7d, 0xcf, 0x83, 0xed, 0x35, 0x06, + 0x7f, 0x1f, 0x30, 0xe7, 0x39, 0xe8, 0x93, 0x09, 0xfb, 0x29, 0xff, 0xe0, 0xdb, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x43, 0x68, 0x0b, 0x86, 0x39, 0x10, 0x00, 0x00, } func (m *Params) Marshal() (dAtA []byte, err error) { @@ -394,6 +404,13 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.MinExperiencedWorkerRegrets != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.MinExperiencedWorkerRegrets)) + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xa0 + } if m.TopicCreatorWhitelistEnabled { i-- if m.TopicCreatorWhitelistEnabled { @@ -947,6 +964,9 @@ func (m *Params) Size() (n int) { if m.TopicCreatorWhitelistEnabled { n += 3 } + if m.MinExperiencedWorkerRegrets != 0 { + n += 2 + sovParams(uint64(m.MinExperiencedWorkerRegrets)) + } return n } @@ -2215,6 +2235,25 @@ func (m *Params) Unmarshal(dAtA []byte) error { } } m.TopicCreatorWhitelistEnabled = bool(v != 0) + case 52: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinExperiencedWorkerRegrets", wireType) + } + m.MinExperiencedWorkerRegrets = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MinExperiencedWorkerRegrets |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipParams(dAtA[iNdEx:]) diff --git a/x/emissions/types/params_test.go b/x/emissions/types/params_test.go index 6843df0e6..a6a94201f 100644 --- a/x/emissions/types/params_test.go +++ b/x/emissions/types/params_test.go @@ -55,6 +55,7 @@ func TestDefaultParams(t *testing.T) { PNormSafeDiv: alloraMath.MustNewDecFromString("8.25"), GlobalWhitelistEnabled: true, TopicCreatorWhitelistEnabled: true, + MinExperiencedWorkerRegrets: uint64(10), } params := DefaultParams() diff --git a/x/emissions/types/tx.pb.go b/x/emissions/types/tx.pb.go index 09d3ce230..fb36d2b29 100644 --- a/x/emissions/types/tx.pb.go +++ b/x/emissions/types/tx.pb.go @@ -85,6 +85,7 @@ type OptionalParams struct { PNormSafeDiv []github_com_allora_network_allora_chain_math.Dec `protobuf:"bytes,49,rep,name=p_norm_safe_div,json=pNormSafeDiv,proto3,customtype=github.com/allora-network/allora-chain/math.Dec" json:"p_norm_safe_div"` GlobalWhitelistEnabled []bool `protobuf:"varint,50,rep,packed,name=global_whitelist_enabled,json=globalWhitelistEnabled,proto3" json:"global_whitelist_enabled,omitempty"` TopicCreatorWhitelistEnabled []bool `protobuf:"varint,51,rep,packed,name=topic_creator_whitelist_enabled,json=topicCreatorWhitelistEnabled,proto3" json:"topic_creator_whitelist_enabled,omitempty"` + MinExperiencedWorkerRegrets []uint64 `protobuf:"varint,52,rep,packed,name=min_experienced_worker_regrets,json=minExperiencedWorkerRegrets,proto3" json:"min_experienced_worker_regrets,omitempty"` } func (m *OptionalParams) Reset() { *m = OptionalParams{} } @@ -267,6 +268,13 @@ func (m *OptionalParams) GetTopicCreatorWhitelistEnabled() []bool { return nil } +func (m *OptionalParams) GetMinExperiencedWorkerRegrets() []uint64 { + if m != nil { + return m.MinExperiencedWorkerRegrets + } + return nil +} + type UpdateParamsRequest struct { Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` Params *OptionalParams `protobuf:"bytes,2,opt,name=params,proto3" json:"params,omitempty"` @@ -3011,201 +3019,203 @@ func init() { func init() { proto.RegisterFile("emissions/v6/tx.proto", fileDescriptor_1c9dde1df4cd2521) } var fileDescriptor_1c9dde1df4cd2521 = []byte{ - // 3101 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0xcd, 0x73, 0x1c, 0x47, - 0x15, 0xf7, 0x5a, 0x6b, 0x69, 0xf5, 0x24, 0x4b, 0xeb, 0xb6, 0x24, 0x8f, 0x56, 0x5f, 0xab, 0x95, - 0x3f, 0xd6, 0x26, 0xd6, 0x3a, 0x76, 0x12, 0x42, 0xe0, 0x80, 0x1d, 0xdb, 0x41, 0x2a, 0xdb, 0x28, - 0x23, 0x25, 0xa6, 0x9c, 0x14, 0x93, 0xd6, 0x4c, 0xef, 0xee, 0xe0, 0xf9, 0xd8, 0xf4, 0xcc, 0xae, - 0xa4, 0x54, 0x28, 0x20, 0x55, 0x39, 0x51, 0x05, 0x9c, 0x38, 0x00, 0xc5, 0x99, 0x13, 0xe5, 0x03, - 0x5c, 0x38, 0x71, 0xcc, 0x31, 0xc5, 0x89, 0xe2, 0x90, 0xa2, 0x92, 0x43, 0xae, 0xfc, 0x09, 0x54, - 0x7f, 0xcc, 0xe7, 0xce, 0xac, 0x24, 0xaf, 0x9c, 0xca, 0xc5, 0xd6, 0x74, 0xbf, 0xfe, 0xbd, 0xdf, - 0x7b, 0xfd, 0xfa, 0xf5, 0x7b, 0xad, 0x12, 0xcc, 0x12, 0xdb, 0xf4, 0x3c, 0xd3, 0x75, 0xbc, 0x46, - 0xef, 0xb5, 0x86, 0xbf, 0xbf, 0xde, 0xa1, 0xae, 0xef, 0xa2, 0xc9, 0x70, 0x78, 0xbd, 0xf7, 0x5a, - 0xe5, 0x1c, 0xb6, 0x4d, 0xc7, 0x6d, 0xf0, 0x7f, 0x85, 0x40, 0xe5, 0x82, 0xee, 0x7a, 0xb6, 0xeb, - 0x35, 0x6c, 0xaf, 0xd5, 0xe8, 0xbd, 0xcc, 0xfe, 0x93, 0x13, 0xf3, 0x62, 0x42, 0xe3, 0x5f, 0x0d, - 0xf1, 0x21, 0xa7, 0x2a, 0x31, 0x5d, 0xb7, 0x1a, 0x94, 0x74, 0xba, 0x3e, 0xa1, 0xc1, 0xb2, 0xc4, - 0xdc, 0x9e, 0x4b, 0x9f, 0x86, 0x53, 0x33, 0x2d, 0xb7, 0xe5, 0x0a, 0x38, 0xf6, 0x93, 0x18, 0xad, - 0x3d, 0x5b, 0x86, 0xa9, 0x1f, 0x77, 0x7c, 0xd3, 0x75, 0xb0, 0xb5, 0x85, 0x29, 0xb6, 0x3d, 0xa4, - 0xc0, 0x58, 0x8f, 0x50, 0x06, 0xa2, 0x14, 0xaa, 0x23, 0xf5, 0x71, 0x35, 0xf8, 0x44, 0xdf, 0x83, - 0x79, 0x1b, 0xef, 0x6b, 0x1e, 0xa1, 0x26, 0xb6, 0xcc, 0x8f, 0x88, 0xa1, 0xd9, 0x5e, 0x4b, 0xb3, - 0x88, 0xd3, 0xf2, 0xdb, 0xca, 0xe9, 0xea, 0x48, 0x7d, 0x44, 0x9d, 0xb3, 0xf1, 0xfe, 0x76, 0x38, - 0xff, 0xd0, 0x6b, 0x3d, 0xe0, 0xb3, 0x08, 0x43, 0xd9, 0x36, 0x1d, 0xcd, 0x77, 0x3b, 0xa6, 0xae, - 0xed, 0x11, 0xb3, 0xd5, 0xf6, 0x95, 0x11, 0x86, 0x7e, 0xe7, 0xbb, 0x9f, 0x7d, 0xb1, 0x72, 0xea, - 0x3f, 0x5f, 0xac, 0x34, 0x5a, 0xa6, 0xdf, 0xee, 0xee, 0xae, 0xeb, 0xae, 0xdd, 0xc0, 0x96, 0xe5, - 0x52, 0x7c, 0xdd, 0x21, 0x3e, 0x33, 0x21, 0xf8, 0xd4, 0xdb, 0xd8, 0x74, 0x1a, 0x36, 0xf6, 0xdb, - 0xeb, 0x77, 0x89, 0xae, 0x4e, 0xd9, 0xa6, 0xb3, 0xc3, 0xf0, 0x1e, 0x73, 0x38, 0xd4, 0x84, 0x39, - 0x4a, 0x3e, 0xec, 0x9a, 0x94, 0xf1, 0x32, 0x1d, 0xd3, 0xee, 0xda, 0x9a, 0xe7, 0xe3, 0xa7, 0x44, - 0x39, 0xc3, 0x15, 0xdd, 0x90, 0x8a, 0x66, 0x85, 0x37, 0x3d, 0xe3, 0xe9, 0xba, 0xe9, 0x0a, 0xb8, - 0x0d, 0xc7, 0xff, 0xd7, 0xdf, 0xae, 0x83, 0x74, 0xf3, 0x86, 0xe3, 0xff, 0xe5, 0xeb, 0x67, 0xd7, - 0x0a, 0xea, 0x4c, 0x80, 0xf7, 0x50, 0xc0, 0x6d, 0x33, 0x34, 0xe6, 0x05, 0x4a, 0x6c, 0xb7, 0x47, - 0x04, 0xba, 0x66, 0x10, 0x0b, 0x1f, 0x68, 0x7b, 0xa6, 0x63, 0xb8, 0x7b, 0xca, 0xa8, 0xf0, 0x82, - 0x10, 0xe0, 0xf2, 0x77, 0xd9, 0xf4, 0x63, 0x3e, 0x8b, 0xea, 0xc2, 0x0b, 0xa4, 0xe3, 0xea, 0xed, - 0xc0, 0x6f, 0x63, 0x7c, 0x05, 0x33, 0xe6, 0x1e, 0x1b, 0x96, 0xfe, 0x7a, 0x02, 0x93, 0xbb, 0xc4, - 0xc7, 0x1a, 0x71, 0x7c, 0xea, 0x76, 0x0e, 0x94, 0xd2, 0x70, 0xbe, 0x9a, 0x60, 0x60, 0xf7, 0x04, - 0x16, 0x7a, 0x1f, 0xce, 0x5a, 0x04, 0x53, 0xc7, 0x74, 0x5a, 0x1a, 0xc5, 0x3e, 0x51, 0xc6, 0x87, - 0x03, 0x9f, 0x0c, 0xd0, 0x54, 0xec, 0x13, 0x64, 0x03, 0x8b, 0x01, 0xad, 0x45, 0xb1, 0x61, 0x12, - 0xc7, 0xd7, 0xfc, 0x36, 0x25, 0x5e, 0xdb, 0xb5, 0x0c, 0x05, 0x86, 0x53, 0x33, 0x63, 0xe3, 0xfd, - 0xb7, 0x24, 0xea, 0x4e, 0x00, 0x8a, 0x08, 0x20, 0xe6, 0x52, 0xb1, 0x15, 0x4d, 0x8a, 0x75, 0x16, - 0xcb, 0xca, 0xc4, 0x70, 0xaa, 0xd8, 0x2e, 0xf1, 0xcd, 0xbb, 0x2f, 0x01, 0xd1, 0x3d, 0x58, 0x61, - 0x56, 0x75, 0x9d, 0x66, 0xd7, 0x6a, 0x9a, 0x96, 0x45, 0x0c, 0x4d, 0x9c, 0x2e, 0x8d, 0xc5, 0x08, - 0xf1, 0x7c, 0x4f, 0x39, 0x5b, 0x1d, 0xa9, 0x17, 0xd5, 0x45, 0x1b, 0xef, 0xbf, 0x13, 0x49, 0x3d, - 0xe6, 0x42, 0xaa, 0x94, 0x41, 0x6f, 0x41, 0x35, 0x0d, 0x23, 0x0f, 0x70, 0x84, 0x33, 0xc5, 0x71, - 0x96, 0x92, 0x38, 0xaa, 0x90, 0x0a, 0x81, 0x3e, 0x82, 0x25, 0x71, 0x96, 0x28, 0xd9, 0xc3, 0xd4, - 0x90, 0xf6, 0x9b, 0x76, 0xc7, 0xa5, 0x3e, 0x76, 0x74, 0xa2, 0x4c, 0x0f, 0xe7, 0x81, 0x0a, 0x47, - 0x57, 0x39, 0x38, 0xf7, 0xc4, 0x46, 0x08, 0x8d, 0x3e, 0x2d, 0xc0, 0x5a, 0x42, 0x79, 0x93, 0x10, - 0x8d, 0x92, 0x1e, 0x71, 0xba, 0x09, 0x0a, 0xe5, 0xe1, 0x28, 0xac, 0xc4, 0x28, 0xdc, 0x27, 0x44, - 0x15, 0x0a, 0x62, 0x3c, 0x08, 0xa0, 0x04, 0x0d, 0x6c, 0x75, 0xda, 0x58, 0x39, 0x37, 0xe4, 0xd6, - 0xc7, 0xb4, 0xde, 0x66, 0x80, 0x48, 0x87, 0x73, 0x3e, 0xf6, 0x9e, 0x26, 0xb5, 0xa0, 0xe1, 0xb4, - 0x4c, 0x33, 0xc4, 0xb8, 0x12, 0xe6, 0xd3, 0x1e, 0xb6, 0x4c, 0x03, 0xfb, 0x2e, 0xf5, 0xb4, 0x9e, - 0xa7, 0x89, 0x85, 0x5a, 0x87, 0x50, 0x9d, 0x1d, 0x23, 0xa1, 0x5d, 0x39, 0x3f, 0xa4, 0x4f, 0x23, - 0x1d, 0xef, 0x7a, 0xb7, 0xb9, 0xc8, 0x96, 0x50, 0x20, 0xc8, 0xa0, 0x1f, 0xc0, 0x02, 0x4f, 0xf1, - 0xd8, 0xee, 0x58, 0xc4, 0xd3, 0x7c, 0x57, 0xf3, 0x74, 0x6c, 0x11, 0xcd, 0xd3, 0x5d, 0x4a, 0x3c, - 0x65, 0x86, 0xc7, 0xe6, 0x05, 0x96, 0xe4, 0x85, 0xc4, 0x8e, 0xbb, 0xcd, 0xe6, 0xb7, 0xf9, 0x34, - 0x7a, 0x03, 0x2a, 0x6c, 0xb5, 0xef, 0x76, 0x34, 0xd3, 0x69, 0x12, 0x4a, 0x28, 0x87, 0x90, 0xdc, - 0x67, 0xf9, 0x62, 0x96, 0x1d, 0x76, 0xdc, 0xce, 0x86, 0x9c, 0xdf, 0x71, 0xa5, 0xe6, 0x1f, 0xc2, - 0x52, 0xb0, 0xb6, 0xe9, 0x52, 0xa2, 0x63, 0xcf, 0x4f, 0x2e, 0x9f, 0xe3, 0xcb, 0xe7, 0xc5, 0xf2, - 0xfb, 0x91, 0x48, 0x88, 0x10, 0xd3, 0x2e, 0x0f, 0x55, 0x7c, 0xf9, 0x85, 0xb8, 0x76, 0x79, 0x9c, - 0xa2, 0xb5, 0x4f, 0xa0, 0xac, 0x53, 0x82, 0x7d, 0x22, 0xaf, 0xa8, 0x26, 0x21, 0x8a, 0xf2, 0x9c, - 0xd7, 0xc6, 0x94, 0x40, 0xe2, 0x77, 0xd3, 0x7d, 0x42, 0xd0, 0xf7, 0xa1, 0x12, 0x66, 0x43, 0x83, - 0x78, 0x7c, 0x3b, 0x19, 0x51, 0x93, 0x31, 0x50, 0xe6, 0x85, 0x4b, 0x03, 0x89, 0xbb, 0x42, 0xe0, - 0x21, 0xde, 0xdf, 0x60, 0xd3, 0xe8, 0x3d, 0x28, 0x53, 0xd2, 0x32, 0x3d, 0x9f, 0x62, 0x96, 0x88, - 0x38, 0xb1, 0xc5, 0xe7, 0x24, 0x36, 0x1d, 0x47, 0x62, 0xcc, 0x5e, 0x02, 0x64, 0x90, 0x26, 0xee, - 0x5a, 0xbe, 0xd6, 0xc1, 0x2d, 0xa2, 0x59, 0xa6, 0x6d, 0xfa, 0xca, 0x12, 0x67, 0x54, 0x96, 0x33, - 0x5b, 0xb8, 0x45, 0x1e, 0xb0, 0x71, 0x74, 0x11, 0xa6, 0x18, 0xed, 0x98, 0xe4, 0x32, 0x97, 0x9c, - 0xb4, 0xf1, 0x7e, 0x24, 0xc5, 0xf6, 0x31, 0x75, 0xc7, 0x69, 0x94, 0xe8, 0x2e, 0x35, 0xe4, 0xa2, - 0x15, 0x7e, 0xe1, 0xcd, 0x27, 0x2f, 0x3c, 0x95, 0x4b, 0x08, 0x84, 0x3a, 0x94, 0x77, 0x2d, 0x57, - 0x7f, 0xea, 0xb1, 0xe0, 0xd7, 0x6c, 0xd7, 0xf1, 0xdb, 0x4a, 0x95, 0x6b, 0x9a, 0x12, 0xe3, 0x5b, - 0x84, 0x3e, 0x64, 0xa3, 0x2c, 0x03, 0x74, 0x82, 0x73, 0x29, 0x02, 0x8e, 0xe5, 0x9d, 0xd5, 0x21, - 0x33, 0x40, 0x47, 0xc4, 0xc4, 0x46, 0x00, 0xc8, 0x32, 0x40, 0xa8, 0x26, 0x88, 0x4d, 0xa5, 0x36, - 0x64, 0x06, 0x90, 0x5a, 0x82, 0x40, 0x66, 0x15, 0x52, 0xa8, 0x44, 0x86, 0xaf, 0xb2, 0x36, 0x64, - 0x85, 0x24, 0x75, 0xc8, 0x68, 0x67, 0xee, 0xd2, 0xfb, 0xdd, 0x75, 0x71, 0x48, 0x77, 0xe9, 0x19, - 0xee, 0xd2, 0xfb, 0xdc, 0x75, 0x69, 0x48, 0x77, 0xe9, 0x29, 0x77, 0x3d, 0x82, 0x51, 0x5d, 0x73, - 0x5c, 0x6a, 0x2b, 0x97, 0x87, 0x43, 0x3e, 0xa3, 0x3f, 0x72, 0xa9, 0x8d, 0x3e, 0x80, 0x69, 0xd2, - 0xf1, 0x4c, 0xcb, 0x75, 0x42, 0xef, 0xd7, 0x87, 0xf4, 0xbe, 0xc4, 0x0b, 0xbc, 0xff, 0x2e, 0x5c, - 0x6d, 0x63, 0xab, 0xc9, 0x8f, 0x7e, 0x87, 0xba, 0x3a, 0xf1, 0x3c, 0x79, 0x6d, 0xf3, 0x6a, 0x11, - 0x5b, 0x9e, 0x46, 0x1c, 0x43, 0xe3, 0x21, 0xae, 0x5c, 0xe3, 0xf1, 0xbe, 0xc6, 0x16, 0x3c, 0xc4, - 0xfb, 0x5b, 0x42, 0x9c, 0x5f, 0xc4, 0xaa, 0x14, 0xbe, 0xe7, 0x18, 0x77, 0x98, 0x28, 0x4b, 0x5d, - 0x06, 0xf6, 0xb1, 0xe6, 0x11, 0xc7, 0x60, 0x25, 0x1d, 0xcb, 0x10, 0xdf, 0x79, 0xde, 0xd4, 0xc5, - 0x90, 0xb6, 0x05, 0x10, 0x4b, 0x10, 0x18, 0xca, 0x81, 0x57, 0x3c, 0xdc, 0x24, 0x9a, 0x61, 0xf6, - 0x94, 0x97, 0x4e, 0xc6, 0x2d, 0xdb, 0xb8, 0x49, 0xee, 0x9a, 0xbd, 0xa0, 0xa9, 0x20, 0x16, 0xb1, - 0x89, 0xe3, 0x8b, 0x33, 0x1f, 0x46, 0xcd, 0xf5, 0x30, 0x69, 0xdf, 0x93, 0xf3, 0x5b, 0x84, 0x86, - 0x31, 0x20, 0x2f, 0x2b, 0x56, 0xa2, 0xf5, 0x64, 0xe2, 0x16, 0xeb, 0x85, 0x0f, 0xd7, 0xc3, 0xcb, - 0xea, 0x36, 0x97, 0xe0, 0x09, 0x99, 0x01, 0x08, 0xbf, 0x5d, 0x83, 0x73, 0xfc, 0xaa, 0xf3, 0x29, - 0xf3, 0x9a, 0xac, 0xc6, 0x1b, 0x7c, 0xcd, 0x34, 0xbb, 0xe0, 0xf8, 0xb8, 0x2c, 0xc7, 0x5d, 0xb8, - 0x60, 0x3a, 0xa6, 0x6f, 0x62, 0x4b, 0xa3, 0xa4, 0x45, 0x89, 0xaf, 0x7d, 0xd8, 0xc5, 0x8e, 0x6f, - 0x5a, 0x44, 0xb9, 0x31, 0x9c, 0x3b, 0x66, 0x25, 0xae, 0xca, 0x61, 0xdf, 0x96, 0xa8, 0xe8, 0xa7, - 0x30, 0xdd, 0xe1, 0xe1, 0x1d, 0xf9, 0xfd, 0xe5, 0x21, 0xab, 0xf4, 0x0e, 0x8b, 0xf3, 0xc0, 0xeb, - 0xaf, 0x83, 0xd2, 0xb2, 0xdc, 0x5d, 0x6c, 0x69, 0x7b, 0x6d, 0xd3, 0x27, 0x96, 0xe9, 0xf9, 0x1a, - 0x71, 0xf0, 0xae, 0x45, 0x0c, 0xe5, 0x66, 0x75, 0xa4, 0x5e, 0x52, 0xe7, 0xc4, 0xfc, 0xe3, 0x60, - 0xfa, 0x9e, 0x98, 0x65, 0x95, 0xb0, 0xb8, 0x22, 0xf9, 0x2d, 0xe7, 0xd2, 0x0c, 0x80, 0x5b, 0x1c, - 0x60, 0x91, 0x8b, 0xbd, 0x29, 0xa4, 0xd2, 0x30, 0x9b, 0xc5, 0x52, 0xb1, 0x7c, 0x66, 0xb3, 0x58, + // 3130 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0x3d, 0x70, 0x1b, 0xc7, + 0xf5, 0x17, 0x44, 0x88, 0x04, 0x1f, 0x29, 0x12, 0x5a, 0x91, 0xd4, 0x11, 0xfc, 0x02, 0x41, 0x7d, + 0x40, 0xfa, 0x5b, 0x84, 0x2c, 0xc9, 0xfe, 0x3b, 0x4e, 0x8a, 0x48, 0x96, 0xe4, 0x90, 0x23, 0x29, + 0xf4, 0x91, 0xb6, 0x32, 0xb2, 0x27, 0xe7, 0xe5, 0xdd, 0x02, 0xb8, 0xe8, 0x3e, 0xe0, 0xbd, 0x03, + 0x48, 0x7a, 0x9c, 0x49, 0xe2, 0x19, 0x57, 0x99, 0x49, 0x52, 0xa5, 0x48, 0x32, 0xa9, 0x53, 0x65, + 0x5c, 0x24, 0x4d, 0xaa, 0x94, 0x2e, 0x3d, 0xa9, 0x32, 0x29, 0x3c, 0x19, 0xbb, 0x70, 0x9b, 0x26, + 0x7d, 0x66, 0x3f, 0xee, 0x13, 0x77, 0x20, 0x29, 0x50, 0x1e, 0x37, 0x12, 0x6f, 0xf7, 0xed, 0xef, + 0xfd, 0xde, 0xdb, 0xb7, 0x6f, 0xdf, 0x5b, 0x0e, 0x61, 0x96, 0xd8, 0xa6, 0xe7, 0x99, 0xae, 0xe3, + 0x35, 0x7a, 0xaf, 0x36, 0xfc, 0xfd, 0xf5, 0x0e, 0x75, 0x7d, 0x17, 0x4d, 0x86, 0xc3, 0xeb, 0xbd, + 0x57, 0x2b, 0xe7, 0xb0, 0x6d, 0x3a, 0x6e, 0x83, 0xff, 0x2b, 0x04, 0x2a, 0x17, 0x74, 0xd7, 0xb3, + 0x5d, 0xaf, 0x61, 0x7b, 0xad, 0x46, 0xef, 0x65, 0xf6, 0x9f, 0x9c, 0x98, 0x17, 0x13, 0x1a, 0xff, + 0x6a, 0x88, 0x0f, 0x39, 0x55, 0x89, 0xe9, 0xba, 0xd5, 0xa0, 0xa4, 0xd3, 0xf5, 0x09, 0x0d, 0x96, + 0x25, 0xe6, 0xf6, 0x5c, 0xfa, 0x2c, 0x9c, 0x9a, 0x69, 0xb9, 0x2d, 0x57, 0xc0, 0xb1, 0x9f, 0xc4, + 0x68, 0xed, 0xbf, 0xcb, 0x30, 0xf5, 0xc3, 0x8e, 0x6f, 0xba, 0x0e, 0xb6, 0xb6, 0x30, 0xc5, 0xb6, + 0x87, 0x14, 0x18, 0xeb, 0x11, 0xca, 0x40, 0x94, 0x42, 0x75, 0xa4, 0x3e, 0xae, 0x06, 0x9f, 0xe8, + 0x3b, 0x30, 0x6f, 0xe3, 0x7d, 0xcd, 0x23, 0xd4, 0xc4, 0x96, 0xf9, 0x21, 0x31, 0x34, 0xdb, 0x6b, + 0x69, 0x16, 0x71, 0x5a, 0x7e, 0x5b, 0x39, 0x5d, 0x1d, 0xa9, 0x8f, 0xa8, 0x73, 0x36, 0xde, 0xdf, + 0x0e, 0xe7, 0x1f, 0x79, 0xad, 0x87, 0x7c, 0x16, 0x61, 0x28, 0xdb, 0xa6, 0xa3, 0xf9, 0x6e, 0xc7, + 0xd4, 0xb5, 0x3d, 0x62, 0xb6, 0xda, 0xbe, 0x32, 0xc2, 0xd0, 0xef, 0xfe, 0xff, 0x67, 0x5f, 0xac, + 0x9c, 0xfa, 0xd7, 0x17, 0x2b, 0x8d, 0x96, 0xe9, 0xb7, 0xbb, 0xbb, 0xeb, 0xba, 0x6b, 0x37, 0xb0, + 0x65, 0xb9, 0x14, 0x5f, 0x77, 0x88, 0xcf, 0x4c, 0x08, 0x3e, 0xf5, 0x36, 0x36, 0x9d, 0x86, 0x8d, + 0xfd, 0xf6, 0xfa, 0x3d, 0xa2, 0xab, 0x53, 0xb6, 0xe9, 0xec, 0x30, 0xbc, 0x27, 0x1c, 0x0e, 0x35, + 0x61, 0x8e, 0x92, 0x0f, 0xba, 0x26, 0x65, 0xbc, 0x4c, 0xc7, 0xb4, 0xbb, 0xb6, 0xe6, 0xf9, 0xf8, + 0x19, 0x51, 0xce, 0x70, 0x45, 0x37, 0xa4, 0xa2, 0x59, 0xe1, 0x4d, 0xcf, 0x78, 0xb6, 0x6e, 0xba, + 0x02, 0x6e, 0xc3, 0xf1, 0xff, 0xf1, 0x97, 0xeb, 0x20, 0xdd, 0xbc, 0xe1, 0xf8, 0x7f, 0xfa, 0xfa, + 0xd3, 0x6b, 0x05, 0x75, 0x26, 0xc0, 0x7b, 0x24, 0xe0, 0xb6, 0x19, 0x1a, 0xf3, 0x02, 0x25, 0xb6, + 0xdb, 0x23, 0x02, 0x5d, 0x33, 0x88, 0x85, 0x0f, 0xb4, 0x3d, 0xd3, 0x31, 0xdc, 0x3d, 0x65, 0x54, + 0x78, 0x41, 0x08, 0x70, 0xf9, 0x7b, 0x6c, 0xfa, 0x09, 0x9f, 0x45, 0x75, 0xe1, 0x05, 0xd2, 0x71, + 0xf5, 0x76, 0xe0, 0xb7, 0x31, 0xbe, 0x82, 0x19, 0x73, 0x9f, 0x0d, 0x4b, 0x7f, 0x3d, 0x85, 0xc9, + 0x5d, 0xe2, 0x63, 0x8d, 0x38, 0x3e, 0x75, 0x3b, 0x07, 0x4a, 0x69, 0x38, 0x5f, 0x4d, 0x30, 0xb0, + 0xfb, 0x02, 0x0b, 0xbd, 0x07, 0x67, 0x2d, 0x82, 0xa9, 0x63, 0x3a, 0x2d, 0x8d, 0x62, 0x9f, 0x28, + 0xe3, 0xc3, 0x81, 0x4f, 0x06, 0x68, 0x2a, 0xf6, 0x09, 0xb2, 0x81, 0xc5, 0x80, 0xd6, 0xa2, 0xd8, + 0x30, 0x89, 0xe3, 0x6b, 0x7e, 0x9b, 0x12, 0xaf, 0xed, 0x5a, 0x86, 0x02, 0xc3, 0xa9, 0x99, 0xb1, + 0xf1, 0xfe, 0x9b, 0x12, 0x75, 0x27, 0x00, 0x45, 0x04, 0x10, 0x73, 0xa9, 0xd8, 0x8a, 0x26, 0xc5, + 0x3a, 0x8b, 0x65, 0x65, 0x62, 0x38, 0x55, 0x6c, 0x97, 0xf8, 0xe6, 0x3d, 0x90, 0x80, 0xe8, 0x3e, + 0xac, 0x30, 0xab, 0xba, 0x4e, 0xb3, 0x6b, 0x35, 0x4d, 0xcb, 0x22, 0x86, 0x26, 0x4e, 0x97, 0xc6, + 0x62, 0x84, 0x78, 0xbe, 0xa7, 0x9c, 0xad, 0x8e, 0xd4, 0x8b, 0xea, 0xa2, 0x8d, 0xf7, 0xdf, 0x8e, + 0xa4, 0x9e, 0x70, 0x21, 0x55, 0xca, 0xa0, 0x37, 0xa1, 0x9a, 0x86, 0x91, 0x07, 0x38, 0xc2, 0x99, + 0xe2, 0x38, 0x4b, 0x49, 0x1c, 0x55, 0x48, 0x85, 0x40, 0x1f, 0xc2, 0x92, 0x38, 0x4b, 0x94, 0xec, + 0x61, 0x6a, 0x48, 0xfb, 0x4d, 0xbb, 0xe3, 0x52, 0x1f, 0x3b, 0x3a, 0x51, 0xa6, 0x87, 0xf3, 0x40, + 0x85, 0xa3, 0xab, 0x1c, 0x9c, 0x7b, 0x62, 0x23, 0x84, 0x46, 0x9f, 0x14, 0x60, 0x2d, 0xa1, 0xbc, + 0x49, 0x88, 0x46, 0x49, 0x8f, 0x38, 0xdd, 0x04, 0x85, 0xf2, 0x70, 0x14, 0x56, 0x62, 0x14, 0x1e, + 0x10, 0xa2, 0x0a, 0x05, 0x31, 0x1e, 0x04, 0x50, 0x82, 0x06, 0xb6, 0x3a, 0x6d, 0xac, 0x9c, 0x1b, + 0x72, 0xeb, 0x63, 0x5a, 0xef, 0x30, 0x40, 0xa4, 0xc3, 0x39, 0x1f, 0x7b, 0xcf, 0x92, 0x5a, 0xd0, + 0x70, 0x5a, 0xa6, 0x19, 0x62, 0x5c, 0x09, 0xf3, 0x69, 0x0f, 0x5b, 0xa6, 0x81, 0x7d, 0x97, 0x7a, + 0x5a, 0xcf, 0xd3, 0xc4, 0x42, 0xad, 0x43, 0xa8, 0xce, 0x8e, 0x91, 0xd0, 0xae, 0x9c, 0x1f, 0xd2, + 0xa7, 0x91, 0x8e, 0x77, 0xbc, 0x3b, 0x5c, 0x64, 0x4b, 0x28, 0x10, 0x64, 0xd0, 0xf7, 0x60, 0x81, + 0xa7, 0x78, 0x6c, 0x77, 0x2c, 0xe2, 0x69, 0xbe, 0xab, 0x79, 0x3a, 0xb6, 0x88, 0xe6, 0xe9, 0x2e, + 0x25, 0x9e, 0x32, 0xc3, 0x63, 0xf3, 0x02, 0x4b, 0xf2, 0x42, 0x62, 0xc7, 0xdd, 0x66, 0xf3, 0xdb, + 0x7c, 0x1a, 0xbd, 0x0e, 0x15, 0xb6, 0xda, 0x77, 0x3b, 0x9a, 0xe9, 0x34, 0x09, 0x25, 0x94, 0x43, + 0x48, 0xee, 0xb3, 0x7c, 0x31, 0xcb, 0x0e, 0x3b, 0x6e, 0x67, 0x43, 0xce, 0xef, 0xb8, 0x52, 0xf3, + 0xf7, 0x61, 0x29, 0x58, 0xdb, 0x74, 0x29, 0xd1, 0xb1, 0xe7, 0x27, 0x97, 0xcf, 0xf1, 0xe5, 0xf3, + 0x62, 0xf9, 0x83, 0x48, 0x24, 0x44, 0x88, 0x69, 0x97, 0x87, 0x2a, 0xbe, 0xfc, 0x42, 0x5c, 0xbb, + 0x3c, 0x4e, 0xd1, 0xda, 0xa7, 0x50, 0xd6, 0x29, 0xc1, 0x3e, 0x91, 0x57, 0x54, 0x93, 0x10, 0x45, + 0x79, 0xce, 0x6b, 0x63, 0x4a, 0x20, 0xf1, 0xbb, 0xe9, 0x01, 0x21, 0xe8, 0xbb, 0x50, 0x09, 0xb3, + 0xa1, 0x41, 0x3c, 0xbe, 0x9d, 0x8c, 0xa8, 0xc9, 0x18, 0x28, 0xf3, 0xc2, 0xa5, 0x81, 0xc4, 0x3d, + 0x21, 0xf0, 0x08, 0xef, 0x6f, 0xb0, 0x69, 0xf4, 0x2e, 0x94, 0x29, 0x69, 0x99, 0x9e, 0x4f, 0x31, + 0x4b, 0x44, 0x9c, 0xd8, 0xe2, 0x73, 0x12, 0x9b, 0x8e, 0x23, 0x31, 0x66, 0x2f, 0x01, 0x32, 0x48, + 0x13, 0x77, 0x2d, 0x5f, 0xeb, 0xe0, 0x16, 0xd1, 0x2c, 0xd3, 0x36, 0x7d, 0x65, 0x89, 0x33, 0x2a, + 0xcb, 0x99, 0x2d, 0xdc, 0x22, 0x0f, 0xd9, 0x38, 0xba, 0x08, 0x53, 0x8c, 0x76, 0x4c, 0x72, 0x99, + 0x4b, 0x4e, 0xda, 0x78, 0x3f, 0x92, 0x62, 0xfb, 0x98, 0xba, 0xe3, 0x34, 0x4a, 0x74, 0x97, 0x1a, + 0x72, 0xd1, 0x0a, 0xbf, 0xf0, 0xe6, 0x93, 0x17, 0x9e, 0xca, 0x25, 0x04, 0x42, 0x1d, 0xca, 0xbb, + 0x96, 0xab, 0x3f, 0xf3, 0x58, 0xf0, 0x6b, 0xb6, 0xeb, 0xf8, 0x6d, 0xa5, 0xca, 0x35, 0x4d, 0x89, + 0xf1, 0x2d, 0x42, 0x1f, 0xb1, 0x51, 0x96, 0x01, 0x3a, 0xc1, 0xb9, 0x14, 0x01, 0xc7, 0xf2, 0xce, + 0xea, 0x90, 0x19, 0xa0, 0x23, 0x62, 0x62, 0x23, 0x00, 0x64, 0x19, 0x20, 0x54, 0x13, 0xc4, 0xa6, + 0x52, 0x1b, 0x32, 0x03, 0x48, 0x2d, 0x41, 0x20, 0xb3, 0x0a, 0x29, 0x54, 0x22, 0xc3, 0x57, 0x59, + 0x1b, 0xb2, 0x42, 0x92, 0x3a, 0x64, 0xb4, 0x33, 0x77, 0xe9, 0xfd, 0xee, 0xba, 0x38, 0xa4, 0xbb, + 0xf4, 0x0c, 0x77, 0xe9, 0x7d, 0xee, 0xba, 0x34, 0xa4, 0xbb, 0xf4, 0x94, 0xbb, 0x1e, 0xc3, 0xa8, + 0xae, 0x39, 0x2e, 0xb5, 0x95, 0xcb, 0xc3, 0x21, 0x9f, 0xd1, 0x1f, 0xbb, 0xd4, 0x46, 0xef, 0xc3, + 0x34, 0xe9, 0x78, 0xa6, 0xe5, 0x3a, 0xa1, 0xf7, 0xeb, 0x43, 0x7a, 0x5f, 0xe2, 0x05, 0xde, 0x7f, + 0x07, 0xae, 0xb6, 0xb1, 0xd5, 0xe4, 0x47, 0xbf, 0x43, 0x5d, 0x9d, 0x78, 0x9e, 0xbc, 0xb6, 0x79, + 0xb5, 0x88, 0x2d, 0x4f, 0x23, 0x8e, 0xa1, 0xf1, 0x10, 0x57, 0xae, 0xf1, 0x78, 0x5f, 0x63, 0x0b, + 0x1e, 0xe1, 0xfd, 0x2d, 0x21, 0xce, 0x2f, 0x62, 0x55, 0x0a, 0xdf, 0x77, 0x8c, 0xbb, 0x4c, 0x94, + 0xa5, 0x2e, 0x03, 0xfb, 0x58, 0xf3, 0x88, 0x63, 0xb0, 0x92, 0x8e, 0x65, 0x88, 0xff, 0x7b, 0xde, + 0xd4, 0xc5, 0x90, 0xb6, 0x05, 0x10, 0x4b, 0x10, 0x18, 0xca, 0x81, 0x57, 0x3c, 0xdc, 0x24, 0x9a, + 0x61, 0xf6, 0x94, 0x97, 0x4e, 0xc6, 0x2d, 0xdb, 0xb8, 0x49, 0xee, 0x99, 0xbd, 0xa0, 0xa9, 0x20, + 0x16, 0xb1, 0x89, 0xe3, 0x8b, 0x33, 0x1f, 0x46, 0xcd, 0xf5, 0x30, 0x69, 0xdf, 0x97, 0xf3, 0x5b, + 0x84, 0x86, 0x31, 0x20, 0x2f, 0x2b, 0x56, 0xa2, 0xf5, 0x64, 0xe2, 0x16, 0xeb, 0x85, 0x0f, 0xd7, + 0xc3, 0xcb, 0xea, 0x0e, 0x97, 0xe0, 0x09, 0x99, 0x01, 0x08, 0xbf, 0x5d, 0x83, 0x73, 0xfc, 0xaa, + 0xf3, 0x29, 0xf3, 0x9a, 0xac, 0xc6, 0x1b, 0x7c, 0xcd, 0x34, 0xbb, 0xe0, 0xf8, 0xb8, 0x2c, 0xc7, + 0x5d, 0xb8, 0x60, 0x3a, 0xa6, 0x6f, 0x62, 0x4b, 0xa3, 0xa4, 0x45, 0x89, 0xaf, 0x7d, 0xd0, 0xc5, + 0x8e, 0x6f, 0x5a, 0x44, 0xb9, 0x31, 0x9c, 0x3b, 0x66, 0x25, 0xae, 0xca, 0x61, 0xdf, 0x92, 0xa8, + 0xe8, 0xc7, 0x30, 0xdd, 0xe1, 0xe1, 0x1d, 0xf9, 0xfd, 0xe5, 0x21, 0xab, 0xf4, 0x0e, 0x8b, 0xf3, + 0xc0, 0xeb, 0xaf, 0x81, 0xd2, 0xb2, 0xdc, 0x5d, 0x6c, 0x69, 0x7b, 0x6d, 0xd3, 0x27, 0x96, 0xe9, + 0xf9, 0x1a, 0x71, 0xf0, 0xae, 0x45, 0x0c, 0xe5, 0x66, 0x75, 0xa4, 0x5e, 0x52, 0xe7, 0xc4, 0xfc, + 0x93, 0x60, 0xfa, 0xbe, 0x98, 0x65, 0x95, 0xb0, 0xb8, 0x22, 0xf9, 0x2d, 0xe7, 0xd2, 0x0c, 0x80, + 0x5b, 0x1c, 0x60, 0x91, 0x8b, 0xbd, 0x21, 0xa4, 0xfa, 0x60, 0xde, 0x80, 0x65, 0x7e, 0x4d, 0xec, + 0x77, 0x08, 0x35, 0x59, 0xda, 0x88, 0x15, 0xd4, 0xcc, 0x13, 0x9e, 0x72, 0x9b, 0x6f, 0xc5, 0x02, + 0xbb, 0x27, 0x22, 0xa1, 0xa0, 0x9e, 0xe6, 0x22, 0x9b, 0xc5, 0x52, 0xb1, 0x7c, 0x66, 0xb3, 0x58, 0xaa, 0x94, 0x17, 0x36, 0x8b, 0xa5, 0x85, 0xf2, 0xe2, 0x66, 0xb1, 0x74, 0xa5, 0x5c, 0xdf, 0x2c, - 0x96, 0xae, 0x96, 0xaf, 0xf1, 0x5a, 0xbf, 0x6f, 0x43, 0xd5, 0x05, 0x7e, 0xb1, 0x34, 0x9b, 0x24, - 0xb6, 0xe1, 0x41, 0xe1, 0xa9, 0xae, 0xb1, 0x25, 0x94, 0xf8, 0xd4, 0x14, 0x75, 0x8b, 0x28, 0x9d, - 0x35, 0xc7, 0x75, 0x74, 0xe2, 0xc9, 0x62, 0x5d, 0x72, 0x4a, 0x14, 0xac, 0x06, 0xd1, 0xf1, 0x01, - 0xef, 0x83, 0xd4, 0x8b, 0x03, 0x21, 0x64, 0x5a, 0xa8, 0x75, 0xe0, 0xfc, 0x3b, 0x1d, 0x03, 0xfb, - 0x44, 0xf4, 0xcb, 0xb2, 0x24, 0x47, 0x73, 0x30, 0xca, 0x4e, 0x20, 0xa1, 0x4a, 0xa1, 0x5a, 0xa8, - 0x8f, 0xab, 0xf2, 0x0b, 0xbd, 0x02, 0xa3, 0x1d, 0x2e, 0xa8, 0x9c, 0xae, 0x16, 0xea, 0x13, 0x37, - 0x17, 0xd7, 0xe3, 0x8f, 0x02, 0xeb, 0xc9, 0xe6, 0x5b, 0x95, 0xb2, 0x6f, 0x4c, 0x7c, 0xf2, 0xf5, - 0xb3, 0x6b, 0x12, 0xa2, 0x36, 0x07, 0x33, 0x49, 0x8d, 0x5e, 0xc7, 0x75, 0x3c, 0x52, 0xfb, 0xfb, - 0x38, 0xcc, 0x72, 0xff, 0x92, 0x47, 0x64, 0x6f, 0x47, 0xd4, 0xad, 0x82, 0x8c, 0x02, 0x63, 0x72, - 0x7b, 0x24, 0x9b, 0xe0, 0x13, 0x55, 0xa0, 0x64, 0x13, 0x1f, 0xb3, 0x73, 0xce, 0x09, 0x8d, 0xab, - 0xe1, 0x37, 0x5a, 0x81, 0x09, 0xcb, 0xf5, 0x3c, 0xcd, 0x26, 0x7e, 0xdb, 0x35, 0x94, 0x22, 0x9f, - 0x06, 0x36, 0xf4, 0x90, 0x8f, 0xa0, 0x55, 0x98, 0x4c, 0xf5, 0xae, 0x85, 0xfa, 0x88, 0x3a, 0x41, - 0x62, 0x8d, 0x6b, 0x1d, 0xca, 0x2d, 0xea, 0x76, 0x1d, 0x43, 0xf3, 0x69, 0xd7, 0x6f, 0x6b, 0x16, - 0x6e, 0x29, 0x25, 0x2e, 0x36, 0x25, 0xc6, 0x77, 0xd8, 0xf0, 0x03, 0xdc, 0x62, 0x19, 0x5c, 0x84, - 0xb8, 0x02, 0x4c, 0xd1, 0x10, 0x19, 0x9c, 0x47, 0x36, 0x6b, 0x99, 0x79, 0x6d, 0x2e, 0x4f, 0xa8, - 0x32, 0x31, 0x1c, 0xea, 0x04, 0x07, 0x13, 0xc7, 0x12, 0x5d, 0x82, 0x29, 0x26, 0xb5, 0xa7, 0x39, - 0xa4, 0x85, 0x59, 0xf0, 0x29, 0x93, 0xd5, 0x42, 0xbd, 0xa4, 0x9e, 0xe5, 0xa3, 0x8f, 0xe4, 0x20, - 0x7a, 0x1b, 0xc6, 0x64, 0x76, 0x53, 0xce, 0x0e, 0xa7, 0x3d, 0xc0, 0x61, 0x07, 0x55, 0x36, 0x9a, - 0x5e, 0x77, 0x57, 0x06, 0x4e, 0xf0, 0xd8, 0x30, 0xc5, 0xfd, 0x3a, 0x27, 0xe6, 0xb7, 0xc3, 0x69, - 0xf9, 0xd8, 0xf0, 0x14, 0x66, 0x6d, 0x42, 0x4d, 0x5f, 0xf3, 0x5c, 0xea, 0x9b, 0xbc, 0x78, 0x14, - 0xbd, 0xcb, 0xf4, 0x70, 0xd4, 0xce, 0x73, 0xd4, 0xed, 0x00, 0x54, 0xf4, 0x2f, 0x2e, 0x5c, 0x90, - 0x69, 0x58, 0x16, 0xfe, 0x51, 0x82, 0x2c, 0x0f, 0xa7, 0x6e, 0x56, 0xe0, 0xca, 0x7e, 0x21, 0x4c, - 0x90, 0x5d, 0xa8, 0x48, 0x85, 0x51, 0xb7, 0x10, 0xe9, 0x3c, 0x37, 0x9c, 0x4e, 0x45, 0x40, 0x47, - 0x4d, 0x46, 0xa8, 0x36, 0xb2, 0x33, 0xe8, 0xdb, 0x43, 0x9d, 0xe8, 0x44, 0xec, 0x94, 0xd5, 0x42, - 0xa8, 0xf0, 0x35, 0xb8, 0x20, 0xd2, 0x6a, 0xf0, 0xde, 0x10, 0xa6, 0x5b, 0xe5, 0x3c, 0x0f, 0xc1, - 0x59, 0x31, 0x2d, 0x1e, 0x1a, 0xc2, 0x34, 0xcb, 0xe2, 0x46, 0xae, 0x0b, 0x88, 0x46, 0x0b, 0x67, - 0xf8, 0xc2, 0x39, 0x31, 0x2f, 0x15, 0x86, 0x2b, 0xdf, 0x98, 0x64, 0xa9, 0x27, 0xc8, 0x17, 0x9b, - 0xc5, 0xd2, 0x48, 0xb9, 0xb8, 0x59, 0x2c, 0x9d, 0x29, 0x8f, 0x6e, 0x16, 0x4b, 0xa3, 0xe5, 0xb1, - 0xcd, 0x62, 0x69, 0xbc, 0x0c, 0x22, 0x2d, 0x68, 0x96, 0xdb, 0x32, 0x75, 0x75, 0x3a, 0x2c, 0x26, - 0xe5, 0x40, 0x39, 0x1a, 0x10, 0xb9, 0x44, 0x9d, 0x08, 0xfa, 0x0c, 0x4c, 0x5b, 0xb5, 0x5b, 0x30, - 0x97, 0x4e, 0x5b, 0x22, 0xa3, 0xa1, 0x79, 0x28, 0x89, 0x0c, 0x6d, 0x1a, 0x3c, 0x71, 0x15, 0xd5, - 0x31, 0xfe, 0xbd, 0x61, 0xd4, 0x7e, 0x5f, 0x80, 0x85, 0x0d, 0xc7, 0x23, 0xd4, 0x97, 0x8c, 0xb7, - 0xf0, 0x81, 0xe5, 0x62, 0xe3, 0xb0, 0xfc, 0xab, 0xc2, 0x4c, 0xe0, 0x81, 0x1e, 0xb6, 0xba, 0x44, - 0xdb, 0xed, 0x3a, 0x86, 0x45, 0x64, 0x36, 0xae, 0xc6, 0xb3, 0xf1, 0xad, 0x75, 0x09, 0xfd, 0x2e, - 0x13, 0xbc, 0xc3, 0xe5, 0x54, 0x44, 0xfb, 0xc6, 0x92, 0xd9, 0x79, 0x19, 0x16, 0xb3, 0x79, 0xc9, - 0x2c, 0xfd, 0xdb, 0x02, 0x54, 0x84, 0x80, 0xd8, 0xa3, 0x23, 0xf2, 0x7e, 0x00, 0x48, 0xee, 0x38, - 0xaf, 0xee, 0x12, 0xac, 0x97, 0x93, 0xac, 0x05, 0xee, 0x5d, 0xec, 0x63, 0xc9, 0xb9, 0xbc, 0x97, - 0x1a, 0x49, 0x32, 0x5e, 0x0a, 0x3c, 0x99, 0x22, 0x24, 0x09, 0xff, 0xb5, 0x00, 0xd3, 0x2a, 0xef, - 0x14, 0xc3, 0x07, 0xa7, 0x5c, 0x96, 0xf1, 0x0d, 0x2b, 0x26, 0x36, 0x0c, 0xcd, 0xc0, 0x19, 0x77, - 0xcf, 0x21, 0x54, 0x39, 0xc3, 0x57, 0x88, 0x0f, 0xb4, 0x04, 0x60, 0x86, 0x77, 0xa9, 0x32, 0xca, - 0x23, 0x71, 0xdc, 0xf4, 0xa4, 0xef, 0x12, 0x3c, 0x37, 0x8b, 0xa5, 0xd3, 0xe5, 0x11, 0x11, 0x81, - 0xea, 0x84, 0x65, 0xee, 0x6a, 0x9d, 0x9b, 0x1d, 0xed, 0x29, 0x39, 0x50, 0xcf, 0xda, 0x5d, 0xcb, - 0x37, 0x35, 0x6c, 0x18, 0x94, 0x78, 0x5e, 0xed, 0x3e, 0x94, 0x23, 0xbe, 0x32, 0x92, 0x14, 0x18, - 0xf3, 0xba, 0x3a, 0xab, 0x9a, 0x39, 0xe3, 0x92, 0x1a, 0x7c, 0xb2, 0x19, 0x9b, 0x78, 0x1e, 0x6e, - 0x11, 0x79, 0x01, 0x06, 0x9f, 0xb5, 0x8f, 0x60, 0x9e, 0x57, 0xd7, 0x44, 0x8d, 0xf5, 0xc9, 0xc7, - 0xf1, 0xc0, 0xe9, 0xa4, 0x07, 0x92, 0xb6, 0x8e, 0x0c, 0xb2, 0xb5, 0xb6, 0x05, 0x95, 0x2c, 0xdd, - 0x43, 0x58, 0xf3, 0xc7, 0x02, 0x4c, 0xdf, 0x36, 0x0c, 0xd9, 0x34, 0x3c, 0xb7, 0x11, 0x3f, 0x82, - 0x51, 0x6c, 0xbb, 0x5d, 0xc7, 0xe7, 0x06, 0x3c, 0x4f, 0x53, 0x21, 0xd7, 0x27, 0xed, 0x45, 0x50, - 0x8e, 0xc8, 0xc9, 0xc0, 0xfb, 0x73, 0x01, 0x90, 0x1a, 0xbd, 0x9c, 0x7f, 0xfb, 0x48, 0xcf, 0xc2, - 0xf9, 0x04, 0x3f, 0xc9, 0xfb, 0x09, 0x28, 0x6f, 0x62, 0x47, 0x27, 0xd6, 0x89, 0x90, 0x4f, 0xaa, - 0x5c, 0x80, 0xf9, 0x0c, 0x6c, 0xa9, 0xf8, 0x1f, 0x05, 0x98, 0xb9, 0x4b, 0x2c, 0x56, 0x7e, 0x0c, - 0xed, 0x32, 0x05, 0xc6, 0xe2, 0x91, 0x3a, 0xae, 0x06, 0x9f, 0x31, 0x67, 0x16, 0x4f, 0xd2, 0x99, - 0x17, 0x60, 0x36, 0xc5, 0x5d, 0x5a, 0xf5, 0xcf, 0x42, 0x70, 0x16, 0x8e, 0x65, 0x5b, 0xcc, 0x80, - 0xd3, 0x49, 0x03, 0xe2, 0x56, 0x8f, 0xe4, 0x05, 0xca, 0x89, 0xda, 0xb6, 0x04, 0x0b, 0x99, 0x16, - 0x48, 0x0b, 0xff, 0x50, 0x80, 0x6a, 0x7c, 0x57, 0x4f, 0x6a, 0x0f, 0x17, 0x61, 0xdc, 0x10, 0x50, - 0x6e, 0xb0, 0x8b, 0xd1, 0x40, 0xdc, 0x41, 0xc5, 0x84, 0x83, 0x92, 0xdc, 0xd7, 0x60, 0x75, 0x00, - 0x37, 0x69, 0x41, 0x8f, 0x6d, 0xd1, 0x1e, 0xa6, 0xc6, 0x0b, 0x0f, 0xbf, 0x0c, 0xc7, 0x66, 0xe8, - 0x95, 0xb4, 0xfe, 0x54, 0x80, 0xf2, 0x7d, 0xd6, 0x64, 0xc4, 0x9b, 0xa1, 0x6f, 0x4f, 0xfe, 0x38, - 0x0f, 0xe7, 0x62, 0xec, 0x24, 0xe7, 0xf7, 0xa0, 0x72, 0xdb, 0x30, 0x76, 0xdc, 0xb0, 0x02, 0xbb, - 0x6d, 0xd8, 0xa6, 0x73, 0x84, 0x68, 0x97, 0xd7, 0x5f, 0x10, 0xed, 0xf2, 0xb3, 0xcf, 0x5f, 0x99, - 0xe0, 0x52, 0xf7, 0x07, 0xb0, 0x22, 0x76, 0xf9, 0x3e, 0x75, 0xed, 0x17, 0x42, 0xa0, 0x06, 0xd5, - 0x7c, 0x0d, 0x92, 0x85, 0x0e, 0xab, 0xe2, 0x59, 0x40, 0xfc, 0x3a, 0x37, 0x59, 0xc9, 0x9e, 0x54, - 0x22, 0xbd, 0x08, 0xb5, 0x41, 0x4a, 0x24, 0x15, 0x03, 0x6a, 0x77, 0x4d, 0xef, 0x45, 0x73, 0xb9, - 0x04, 0x6b, 0x03, 0xb5, 0x44, 0x64, 0x62, 0x94, 0xd3, 0x85, 0xfa, 0x09, 0x92, 0x19, 0xa8, 0x45, - 0x92, 0x21, 0x49, 0xce, 0x2f, 0x8a, 0xcd, 0x65, 0xb8, 0x38, 0x58, 0x8d, 0xa4, 0xf3, 0xbe, 0x0c, - 0xec, 0xb7, 0x92, 0xaf, 0x54, 0x27, 0x14, 0xb5, 0xcb, 0xb0, 0x98, 0x8d, 0x2e, 0xb5, 0xe3, 0x78, - 0x54, 0xbf, 0x18, 0x0a, 0x6b, 0xb0, 0x3a, 0x40, 0x85, 0xe4, 0xb1, 0x0b, 0xab, 0x9c, 0xe7, 0x4e, - 0xd6, 0x53, 0xdb, 0x09, 0x11, 0xb9, 0x08, 0xb5, 0x41, 0x3a, 0x24, 0x93, 0x16, 0x5c, 0x8e, 0xe8, - 0xbe, 0x48, 0x3a, 0x57, 0xe1, 0xca, 0xa1, 0x8a, 0x24, 0xa7, 0x8f, 0xa1, 0x1a, 0x31, 0x3f, 0xe6, - 0x51, 0xce, 0x65, 0x33, 0xa0, 0x9a, 0xe8, 0xdb, 0xc0, 0x01, 0xda, 0x25, 0xc5, 0x5f, 0x15, 0xe0, - 0x52, 0xca, 0x9c, 0x6f, 0x9c, 0x68, 0xbd, 0x6f, 0xeb, 0xf2, 0xd8, 0xfe, 0x3c, 0x6e, 0xd2, 0x71, - 0x33, 0xc0, 0xf0, 0x44, 0x13, 0x91, 0x98, 0x9b, 0x19, 0x3e, 0x29, 0xf4, 0xd9, 0xf3, 0xcd, 0x53, - 0xed, 0x8f, 0xd2, 0x3c, 0xbe, 0x37, 0xff, 0xa7, 0x00, 0x3c, 0xf4, 0x5a, 0xdb, 0x84, 0xf6, 0x4c, - 0x9d, 0xa0, 0x77, 0x60, 0x32, 0xfe, 0xd8, 0x8b, 0x56, 0x93, 0xef, 0xc5, 0x19, 0x4f, 0xcf, 0x95, - 0xda, 0x20, 0x11, 0xd9, 0x41, 0xbe, 0x07, 0x53, 0xc9, 0x37, 0x17, 0xb4, 0x96, 0x5c, 0x95, 0xf9, - 0x90, 0x5c, 0xb9, 0x38, 0x58, 0x48, 0x82, 0x6f, 0x40, 0x29, 0x68, 0xc0, 0xd1, 0x52, 0x72, 0x45, - 0xea, 0x21, 0xa1, 0xb2, 0x9c, 0x37, 0x2d, 0xa1, 0x5a, 0x41, 0x0b, 0x18, 0xef, 0x83, 0xd1, 0x95, - 0xf4, 0xaa, 0x9c, 0x2e, 0xbd, 0x52, 0x3f, 0x5c, 0x30, 0xe2, 0x1c, 0x34, 0xa0, 0x69, 0xce, 0xa9, - 0xae, 0x39, 0xcd, 0x39, 0xdd, 0xb7, 0x22, 0x15, 0x26, 0x62, 0xdd, 0x19, 0xaa, 0x66, 0x71, 0x48, - 0x00, 0xae, 0x0e, 0x90, 0x90, 0x98, 0x06, 0x9c, 0xeb, 0xeb, 0xfb, 0xd0, 0xe5, 0xd4, 0x6e, 0xe4, - 0x34, 0x9d, 0x95, 0x2b, 0x87, 0xca, 0x49, 0x2d, 0x3f, 0x81, 0xb3, 0x89, 0x42, 0x1a, 0xa5, 0x42, - 0x29, 0xab, 0xba, 0xaf, 0xac, 0x0d, 0x94, 0x91, 0xc8, 0x3f, 0x63, 0xad, 0x72, 0x5f, 0xa1, 0x8e, - 0xfa, 0xf6, 0x27, 0xaf, 0x87, 0xa8, 0x5c, 0x3d, 0x82, 0x64, 0x5c, 0x57, 0x5f, 0xaf, 0x82, 0x32, - 0x63, 0xe1, 0x68, 0xba, 0x72, 0x1b, 0x1f, 0xf4, 0x71, 0xb2, 0x1f, 0x4f, 0x6a, 0x5c, 0xcf, 0xf7, - 0x7b, 0xa6, 0xde, 0xc6, 0x91, 0xe5, 0xa5, 0xf6, 0x07, 0x30, 0x1e, 0x36, 0x10, 0x28, 0x15, 0x96, - 0xe9, 0xbe, 0xa7, 0xb2, 0x92, 0x3b, 0x1f, 0xf9, 0x2d, 0xa3, 0x39, 0x48, 0xfb, 0x2d, 0xbf, 0x39, - 0x49, 0xfb, 0x6d, 0x40, 0xa7, 0x81, 0x0e, 0x40, 0xc9, 0xeb, 0x03, 0xd0, 0xf5, 0x2c, 0xf7, 0xe7, - 0x76, 0x24, 0x95, 0xf5, 0xa3, 0x8a, 0x47, 0x66, 0x66, 0x3c, 0x77, 0xa6, 0xcd, 0xcc, 0x7f, 0xa2, - 0x4d, 0x9b, 0x39, 0xe0, 0xed, 0x14, 0xd9, 0x30, 0x93, 0xf5, 0x18, 0x8c, 0x32, 0x21, 0x32, 0x1f, - 0xb2, 0x2b, 0xd7, 0x8e, 0x22, 0x1a, 0xa9, 0xcb, 0xaa, 0x53, 0x51, 0xd6, 0xc6, 0x64, 0x97, 0xa9, - 0x69, 0x75, 0x83, 0xca, 0x5e, 0x16, 0xfc, 0xb9, 0x35, 0x29, 0xca, 0xdd, 0x96, 0x1c, 0xc5, 0x8d, - 0x23, 0xcb, 0x4b, 0xed, 0xbf, 0x80, 0x4a, 0x7e, 0x07, 0x87, 0x52, 0x70, 0x87, 0x36, 0x94, 0x95, - 0x1b, 0x47, 0x5f, 0x20, 0x09, 0x7c, 0x52, 0x80, 0x85, 0x01, 0x7d, 0x1b, 0x4a, 0x21, 0x1e, 0xde, - 0x48, 0x56, 0x5e, 0x3e, 0xc6, 0x8a, 0x18, 0x89, 0x01, 0xfd, 0x1a, 0xca, 0x37, 0x2b, 0xa7, 0x0a, - 0x4a, 0x93, 0x38, 0x42, 0x33, 0x88, 0x3e, 0x2d, 0xc0, 0xe2, 0xa0, 0x36, 0x0d, 0x0d, 0x30, 0x2c, - 0x8f, 0xc6, 0xcd, 0xe3, 0x2c, 0x89, 0x42, 0x22, 0xbf, 0x37, 0x49, 0x87, 0xc4, 0xa1, 0x9d, 0x52, - 0x3a, 0x24, 0x0e, 0x6f, 0x7b, 0xd0, 0x6f, 0x0a, 0xf1, 0x17, 0x94, 0x6c, 0x1a, 0xaf, 0xe4, 0x05, - 0xfa, 0x40, 0x2e, 0xaf, 0x1e, 0x73, 0x55, 0x74, 0x44, 0x73, 0xbb, 0x8e, 0xf4, 0x11, 0x3d, 0xac, - 0x39, 0xaa, 0x34, 0x8e, 0x2c, 0x2f, 0xb5, 0xff, 0xba, 0x00, 0xcb, 0x83, 0x7b, 0x09, 0x74, 0x6b, - 0xa0, 0x5d, 0x39, 0x44, 0x5e, 0x39, 0xde, 0xa2, 0xac, 0xe8, 0xe8, 0x0b, 0xd1, 0x5c, 0xe3, 0xf2, - 0x02, 0xf4, 0xc6, 0xd1, 0x17, 0xe4, 0x47, 0x47, 0x1f, 0x8d, 0xc1, 0xa6, 0xe5, 0x71, 0x79, 0xf5, - 0x98, 0xab, 0x04, 0xa1, 0xca, 0x99, 0x5f, 0x7e, 0xfd, 0xec, 0x5a, 0xe1, 0x8e, 0xfa, 0xd9, 0x97, - 0xcb, 0x85, 0xcf, 0xbf, 0x5c, 0x2e, 0xfc, 0xf7, 0xcb, 0xe5, 0xc2, 0xef, 0xbe, 0x5a, 0x3e, 0xf5, - 0xf9, 0x57, 0xcb, 0xa7, 0xfe, 0xfd, 0xd5, 0xf2, 0xa9, 0x27, 0xaf, 0x1f, 0xf1, 0xd7, 0xd6, 0xfb, - 0x8d, 0xe8, 0x2f, 0x4d, 0xfc, 0x83, 0x0e, 0xf1, 0x76, 0x47, 0xf9, 0x1f, 0x94, 0xdc, 0xfa, 0x7f, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x83, 0xb3, 0x17, 0x0b, 0x33, 0x00, 0x00, + 0x96, 0xae, 0x96, 0xaf, 0xf1, 0x86, 0xa1, 0x2f, 0x2a, 0x38, 0xa0, 0x46, 0x9a, 0x4d, 0x12, 0x8b, + 0x9a, 0xa0, 0x7a, 0x55, 0xd7, 0xd8, 0x12, 0x4a, 0x7c, 0x6a, 0x8a, 0xe2, 0x47, 0xd4, 0xdf, 0x9a, + 0xe3, 0x3a, 0x3a, 0xf1, 0x24, 0x41, 0x69, 0x58, 0xa2, 0xea, 0x35, 0x88, 0x8e, 0x0f, 0x78, 0x33, + 0xa5, 0x5e, 0x1c, 0x08, 0x21, 0x73, 0x4b, 0xad, 0x03, 0xe7, 0xdf, 0xee, 0x18, 0xd8, 0x27, 0xa2, + 0xe9, 0x96, 0x75, 0x3d, 0x9a, 0x83, 0x51, 0x76, 0x8c, 0x09, 0x55, 0x0a, 0xd5, 0x42, 0x7d, 0x5c, + 0x95, 0x5f, 0xe8, 0x36, 0x8c, 0x76, 0xb8, 0xa0, 0x72, 0xba, 0x5a, 0xa8, 0x4f, 0xdc, 0x5c, 0x5c, + 0x8f, 0xbf, 0x2c, 0xac, 0x27, 0x3b, 0x78, 0x55, 0xca, 0xbe, 0x3e, 0xf1, 0xf1, 0xd7, 0x9f, 0x5e, + 0x93, 0x10, 0xb5, 0x39, 0x98, 0x49, 0x6a, 0xf4, 0x3a, 0xae, 0xe3, 0x91, 0xda, 0x5f, 0xc7, 0x61, + 0x96, 0x6f, 0x12, 0x79, 0x4c, 0xf6, 0x76, 0x44, 0xf1, 0x2b, 0xc8, 0x28, 0x30, 0x26, 0xf7, 0x58, + 0xb2, 0x09, 0x3e, 0x51, 0x05, 0x4a, 0x36, 0xf1, 0x31, 0x4b, 0x16, 0x9c, 0xd0, 0xb8, 0x1a, 0x7e, + 0xa3, 0x15, 0x98, 0xb0, 0x5c, 0xcf, 0xd3, 0x6c, 0xe2, 0xb7, 0x5d, 0x43, 0x29, 0xf2, 0x69, 0x60, + 0x43, 0x8f, 0xf8, 0x08, 0x5a, 0x85, 0xc9, 0x54, 0x03, 0x5c, 0xa8, 0x8f, 0xa8, 0x13, 0x24, 0xd6, + 0xfd, 0xd6, 0xa1, 0xdc, 0xa2, 0x6e, 0xd7, 0x31, 0x34, 0x9f, 0x76, 0xfd, 0xb6, 0x66, 0xe1, 0x96, + 0x52, 0xe2, 0x62, 0x53, 0x62, 0x7c, 0x87, 0x0d, 0x3f, 0xc4, 0x2d, 0x76, 0x0d, 0x88, 0x73, 0xa2, + 0x00, 0x53, 0x34, 0xc4, 0x35, 0xc0, 0x8f, 0x07, 0xeb, 0xbb, 0x79, 0x81, 0x2f, 0xa3, 0x50, 0x99, + 0x18, 0x0e, 0x75, 0x82, 0x83, 0x89, 0x70, 0x45, 0x97, 0x60, 0x8a, 0x49, 0xed, 0x69, 0x0e, 0x69, + 0x61, 0x16, 0x7c, 0xca, 0x64, 0xb5, 0x50, 0x2f, 0xa9, 0x67, 0xf9, 0xe8, 0x63, 0x39, 0x88, 0xde, + 0x82, 0x31, 0x99, 0x22, 0x95, 0xb3, 0xc3, 0x69, 0x0f, 0x70, 0xd8, 0x69, 0x97, 0x87, 0xcb, 0xeb, + 0xee, 0xca, 0xc0, 0x09, 0x5e, 0x2c, 0xa6, 0xb8, 0x5f, 0xe7, 0xc4, 0xfc, 0x76, 0x38, 0x2d, 0x5f, + 0x2c, 0x9e, 0xc1, 0xac, 0x4d, 0xa8, 0xe9, 0x6b, 0x9e, 0x4b, 0x7d, 0x93, 0x57, 0xa0, 0xa2, 0x01, + 0x9a, 0x1e, 0x8e, 0xda, 0x79, 0x8e, 0xba, 0x1d, 0x80, 0x8a, 0x26, 0xc8, 0x85, 0x0b, 0x32, 0x97, + 0xcb, 0xee, 0x21, 0xca, 0xb2, 0xe5, 0xe1, 0xd4, 0xcd, 0x0a, 0x5c, 0xd9, 0x74, 0x84, 0x59, 0xb6, + 0x0b, 0x15, 0xa9, 0x30, 0x6a, 0x39, 0x22, 0x9d, 0xe7, 0x86, 0xd3, 0xa9, 0x08, 0xe8, 0xa8, 0x53, + 0x09, 0xd5, 0x46, 0x76, 0x06, 0xcd, 0x7f, 0xa8, 0x13, 0x9d, 0x88, 0x9d, 0xb2, 0xe4, 0x08, 0x15, + 0xbe, 0x0a, 0x17, 0x44, 0x6e, 0x0e, 0x72, 0x6c, 0x98, 0xb3, 0x95, 0xf3, 0x3c, 0x04, 0x67, 0xc5, + 0xb4, 0xc8, 0xae, 0x61, 0xae, 0x66, 0x71, 0x23, 0xd7, 0x05, 0x44, 0xa3, 0x85, 0x33, 0x7c, 0xe1, + 0x9c, 0x98, 0x97, 0x0a, 0xc3, 0x95, 0xaf, 0x4f, 0xb2, 0xd4, 0x13, 0xe4, 0x8b, 0xcd, 0x62, 0x69, + 0xa4, 0x5c, 0xdc, 0x2c, 0x96, 0xce, 0x94, 0x47, 0x37, 0x8b, 0xa5, 0xd1, 0xf2, 0xd8, 0x66, 0xb1, + 0x34, 0x5e, 0x06, 0x91, 0x16, 0x34, 0xcb, 0x6d, 0x99, 0xba, 0x3a, 0x1d, 0x56, 0xa4, 0x72, 0xa0, + 0x1c, 0x0d, 0x88, 0x5c, 0xa2, 0x4e, 0x04, 0xcd, 0x0a, 0xa6, 0xad, 0xda, 0x2d, 0x98, 0x4b, 0xa7, + 0x2d, 0x91, 0xd1, 0xd0, 0x3c, 0x94, 0x44, 0x86, 0x36, 0x0d, 0x9e, 0xb8, 0x8a, 0xea, 0x18, 0xff, + 0xde, 0x30, 0x6a, 0xbf, 0x2d, 0xc0, 0xc2, 0x86, 0xe3, 0x11, 0xea, 0x4b, 0xc6, 0x5b, 0xf8, 0xc0, + 0x72, 0xb1, 0x71, 0x58, 0xfe, 0x55, 0x61, 0x26, 0xf0, 0x40, 0x0f, 0x5b, 0x5d, 0xa2, 0xed, 0x76, + 0x1d, 0xc3, 0x22, 0x32, 0x1b, 0x57, 0xe3, 0xd9, 0xf8, 0xd6, 0xba, 0x84, 0x7e, 0x87, 0x09, 0xde, + 0xe5, 0x72, 0x2a, 0xa2, 0x7d, 0x63, 0xc9, 0xec, 0xbc, 0x0c, 0x8b, 0xd9, 0xbc, 0x64, 0x96, 0xfe, + 0x75, 0x01, 0x2a, 0x42, 0x40, 0xec, 0xd1, 0x11, 0x79, 0x3f, 0x04, 0x24, 0x77, 0x9c, 0x97, 0x88, + 0x09, 0xd6, 0xcb, 0x49, 0xd6, 0x02, 0xf7, 0x1e, 0xf6, 0xb1, 0xe4, 0x5c, 0xde, 0x4b, 0x8d, 0x24, + 0x19, 0x2f, 0x05, 0x9e, 0x4c, 0x11, 0x92, 0x84, 0xff, 0x5c, 0x80, 0x69, 0x95, 0xb7, 0x9b, 0xe1, + 0xab, 0x55, 0x2e, 0xcb, 0xf8, 0x86, 0x15, 0x13, 0x1b, 0x86, 0x66, 0xe0, 0x8c, 0xbb, 0xe7, 0x10, + 0xaa, 0x9c, 0xe1, 0x2b, 0xc4, 0x07, 0x5a, 0x02, 0x30, 0xc3, 0xbb, 0x54, 0x19, 0xe5, 0x91, 0x38, + 0x6e, 0x7a, 0xd2, 0x77, 0x09, 0x9e, 0x9b, 0xc5, 0xd2, 0xe9, 0xf2, 0x88, 0x88, 0x40, 0x75, 0xc2, + 0x32, 0x77, 0xb5, 0xce, 0xcd, 0x8e, 0xf6, 0x8c, 0x1c, 0xa8, 0x67, 0xed, 0xae, 0xe5, 0x9b, 0x1a, + 0x36, 0x0c, 0x4a, 0x3c, 0xaf, 0xf6, 0x00, 0xca, 0x11, 0x5f, 0x19, 0x49, 0x0a, 0x8c, 0x79, 0x5d, + 0x9d, 0x95, 0xde, 0x9c, 0x71, 0x49, 0x0d, 0x3e, 0xd9, 0x8c, 0x4d, 0x3c, 0x0f, 0xb7, 0x88, 0xbc, + 0x00, 0x83, 0xcf, 0xda, 0x87, 0x30, 0xcf, 0x4b, 0x74, 0xa2, 0xc6, 0x9a, 0xed, 0xe3, 0x78, 0xe0, + 0x74, 0xd2, 0x03, 0x49, 0x5b, 0x47, 0x06, 0xd9, 0x5a, 0xdb, 0x82, 0x4a, 0x96, 0xee, 0x21, 0xac, + 0xf9, 0x7d, 0x01, 0xa6, 0xef, 0x18, 0x86, 0xec, 0x3c, 0x9e, 0xdb, 0x88, 0x1f, 0xc0, 0x28, 0xb6, + 0xdd, 0xae, 0xe3, 0x73, 0x03, 0x9e, 0xa7, 0x33, 0x91, 0xeb, 0x93, 0xf6, 0x22, 0x28, 0x47, 0xe4, + 0x64, 0xe0, 0xfd, 0xb1, 0x00, 0x48, 0x8d, 0x9e, 0xdf, 0xbf, 0x7d, 0xa4, 0x67, 0xe1, 0x7c, 0x82, + 0x9f, 0xe4, 0xfd, 0x14, 0x94, 0x37, 0xb0, 0xa3, 0x13, 0xeb, 0x44, 0xc8, 0x27, 0x55, 0x2e, 0xc0, + 0x7c, 0x06, 0xb6, 0x54, 0xfc, 0xb7, 0x02, 0xcc, 0xdc, 0x23, 0x16, 0x2b, 0x3f, 0x86, 0x76, 0x99, + 0x02, 0x63, 0xf1, 0x48, 0x1d, 0x57, 0x83, 0xcf, 0x98, 0x33, 0x8b, 0x27, 0xe9, 0xcc, 0x0b, 0x30, + 0x9b, 0xe2, 0x2e, 0xad, 0xfa, 0x7b, 0x21, 0x38, 0x0b, 0xc7, 0xb2, 0x2d, 0x66, 0xc0, 0xe9, 0xa4, + 0x01, 0x71, 0xab, 0x47, 0xf2, 0x02, 0xe5, 0x44, 0x6d, 0x5b, 0x82, 0x85, 0x4c, 0x0b, 0xa4, 0x85, + 0xbf, 0x2b, 0x40, 0x35, 0xbe, 0xab, 0x27, 0xb5, 0x87, 0x8b, 0x30, 0x6e, 0x08, 0x28, 0x37, 0xd8, + 0xc5, 0x68, 0x20, 0xee, 0xa0, 0x62, 0xc2, 0x41, 0x49, 0xee, 0x6b, 0xb0, 0x3a, 0x80, 0x9b, 0xb4, + 0xa0, 0xc7, 0xb6, 0x68, 0x0f, 0x53, 0xe3, 0x85, 0x87, 0x5f, 0x86, 0x63, 0x33, 0xf4, 0x4a, 0x5a, + 0x7f, 0x28, 0x40, 0xf9, 0x01, 0x6b, 0x32, 0xe2, 0xcd, 0xd0, 0xb7, 0x27, 0x7f, 0x9c, 0x87, 0x73, + 0x31, 0x76, 0x92, 0xf3, 0xbb, 0x50, 0xb9, 0x63, 0x18, 0x3b, 0x6e, 0x58, 0x81, 0xdd, 0x31, 0x6c, + 0xd3, 0x39, 0x42, 0xb4, 0xcb, 0xeb, 0x2f, 0x88, 0x76, 0xf9, 0xd9, 0xe7, 0xaf, 0x4c, 0x70, 0xa9, + 0xfb, 0x7d, 0x58, 0x11, 0xbb, 0xfc, 0x80, 0xba, 0xf6, 0x0b, 0x21, 0x50, 0x83, 0x6a, 0xbe, 0x06, + 0xc9, 0x42, 0x87, 0x55, 0xf1, 0xb6, 0x20, 0x7e, 0x27, 0x9c, 0xac, 0x64, 0x4f, 0x2a, 0x91, 0x5e, + 0x84, 0xda, 0x20, 0x25, 0x92, 0x8a, 0x01, 0xb5, 0x7b, 0xa6, 0xf7, 0xa2, 0xb9, 0x5c, 0x82, 0xb5, + 0x81, 0x5a, 0x22, 0x32, 0x31, 0xca, 0xe9, 0x42, 0xfd, 0x04, 0xc9, 0x0c, 0xd4, 0x22, 0xc9, 0x90, + 0x24, 0xe7, 0x17, 0xc5, 0xe6, 0x32, 0x5c, 0x1c, 0xac, 0x46, 0xd2, 0x79, 0x4f, 0x06, 0xf6, 0x9b, + 0xc9, 0xa7, 0xae, 0x13, 0x8a, 0xda, 0x65, 0x58, 0xcc, 0x46, 0x97, 0xda, 0x71, 0x3c, 0xaa, 0x5f, + 0x0c, 0x85, 0x35, 0x58, 0x1d, 0xa0, 0x42, 0xf2, 0xd8, 0x85, 0x55, 0xce, 0x73, 0x27, 0xeb, 0xbd, + 0xee, 0x84, 0x88, 0x5c, 0x84, 0xda, 0x20, 0x1d, 0x92, 0x49, 0x0b, 0x2e, 0x47, 0x74, 0x5f, 0x24, + 0x9d, 0xab, 0x70, 0xe5, 0x50, 0x45, 0x92, 0xd3, 0x47, 0x50, 0x8d, 0x98, 0x1f, 0xf3, 0x28, 0xe7, + 0xb2, 0x19, 0x50, 0x4d, 0xf4, 0x6d, 0xe0, 0x00, 0xed, 0x92, 0xe2, 0x2f, 0x0a, 0x70, 0x29, 0x65, + 0xce, 0x37, 0x4e, 0xb4, 0xde, 0xb7, 0x75, 0x79, 0x6c, 0x7f, 0x1a, 0x37, 0xe9, 0xb8, 0x19, 0x60, + 0x78, 0xa2, 0x89, 0x48, 0xcc, 0xcd, 0x0c, 0x1f, 0x17, 0xfa, 0xec, 0xf9, 0xe6, 0xa9, 0xf6, 0x47, + 0x69, 0x1e, 0xdf, 0x9b, 0xff, 0x51, 0x00, 0x1e, 0x79, 0xad, 0x6d, 0x42, 0x7b, 0xa6, 0x4e, 0xd0, + 0xdb, 0x30, 0x19, 0x7f, 0xec, 0x45, 0xab, 0xc9, 0xf7, 0xe2, 0x8c, 0xa7, 0xe7, 0x4a, 0x6d, 0x90, + 0x88, 0xec, 0x20, 0xdf, 0x85, 0xa9, 0xe4, 0x9b, 0x0b, 0x5a, 0x4b, 0xae, 0xca, 0x7c, 0x48, 0xae, + 0x5c, 0x1c, 0x2c, 0x24, 0xc1, 0x37, 0xa0, 0x14, 0x34, 0xe0, 0x68, 0x29, 0xb9, 0x22, 0xf5, 0x90, + 0x50, 0x59, 0xce, 0x9b, 0x96, 0x50, 0xad, 0xa0, 0x05, 0x8c, 0xf7, 0xc1, 0xe8, 0x4a, 0x7a, 0x55, + 0x4e, 0x97, 0x5e, 0xa9, 0x1f, 0x2e, 0x18, 0x71, 0x0e, 0x1a, 0xd0, 0x34, 0xe7, 0x54, 0xd7, 0x9c, + 0xe6, 0x9c, 0xee, 0x5b, 0x91, 0x0a, 0x13, 0xb1, 0xee, 0x0c, 0x55, 0xb3, 0x38, 0x24, 0x00, 0x57, + 0x07, 0x48, 0x48, 0x4c, 0x03, 0xce, 0xf5, 0xf5, 0x7d, 0xe8, 0x72, 0x6a, 0x37, 0x72, 0x9a, 0xce, + 0xca, 0x95, 0x43, 0xe5, 0xa4, 0x96, 0x1f, 0xc1, 0xd9, 0x44, 0x21, 0x8d, 0x52, 0xa1, 0x94, 0x55, + 0xdd, 0x57, 0xd6, 0x06, 0xca, 0x48, 0xe4, 0x9f, 0xb0, 0x56, 0xb9, 0xaf, 0x50, 0x47, 0x7d, 0xfb, + 0x93, 0xd7, 0x43, 0x54, 0xae, 0x1e, 0x41, 0x32, 0xae, 0xab, 0xaf, 0x57, 0x41, 0x99, 0xb1, 0x70, + 0x34, 0x5d, 0xb9, 0x8d, 0x0f, 0xfa, 0x28, 0xd9, 0x8f, 0x27, 0x35, 0xae, 0xe7, 0xfb, 0x3d, 0x53, + 0x6f, 0xe3, 0xc8, 0xf2, 0x52, 0xfb, 0x43, 0x18, 0x0f, 0x1b, 0x08, 0x94, 0x0a, 0xcb, 0x74, 0xdf, + 0x53, 0x59, 0xc9, 0x9d, 0x8f, 0xfc, 0x96, 0xd1, 0x1c, 0xa4, 0xfd, 0x96, 0xdf, 0x9c, 0xa4, 0xfd, + 0x36, 0xa0, 0xd3, 0x40, 0x07, 0xa0, 0xe4, 0xf5, 0x01, 0xe8, 0x7a, 0x96, 0xfb, 0x73, 0x3b, 0x92, + 0xca, 0xfa, 0x51, 0xc5, 0x23, 0x33, 0x33, 0x9e, 0x3b, 0xd3, 0x66, 0xe6, 0x3f, 0xd1, 0xa6, 0xcd, + 0x1c, 0xf0, 0x76, 0x8a, 0x6c, 0x98, 0xc9, 0x7a, 0x0c, 0x46, 0x99, 0x10, 0x99, 0x0f, 0xd9, 0x95, + 0x6b, 0x47, 0x11, 0x8d, 0xd4, 0x65, 0xd5, 0xa9, 0x28, 0x6b, 0x63, 0xb2, 0xcb, 0xd4, 0xb4, 0xba, + 0x41, 0x65, 0x2f, 0x0b, 0xfe, 0xdc, 0x9a, 0x14, 0xe5, 0x6e, 0x4b, 0x8e, 0xe2, 0xc6, 0x91, 0xe5, + 0xa5, 0xf6, 0x9f, 0x41, 0x25, 0xbf, 0x83, 0x43, 0x29, 0xb8, 0x43, 0x1b, 0xca, 0xca, 0x8d, 0xa3, + 0x2f, 0x90, 0x04, 0x3e, 0x2e, 0xc0, 0xc2, 0x80, 0xbe, 0x0d, 0xa5, 0x10, 0x0f, 0x6f, 0x24, 0x2b, + 0x2f, 0x1f, 0x63, 0x45, 0x8c, 0xc4, 0x80, 0x7e, 0x0d, 0xe5, 0x9b, 0x95, 0x53, 0x05, 0xa5, 0x49, + 0x1c, 0xa1, 0x19, 0x44, 0x9f, 0x14, 0x60, 0x71, 0x50, 0x9b, 0x86, 0x06, 0x18, 0x96, 0x47, 0xe3, + 0xe6, 0x71, 0x96, 0x44, 0x21, 0x91, 0xdf, 0x9b, 0xa4, 0x43, 0xe2, 0xd0, 0x4e, 0x29, 0x1d, 0x12, + 0x87, 0xb7, 0x3d, 0xe8, 0x57, 0x85, 0xf8, 0x0b, 0x4a, 0x36, 0x8d, 0xdb, 0x79, 0x81, 0x3e, 0x90, + 0xcb, 0x2b, 0xc7, 0x5c, 0x15, 0x1d, 0xd1, 0xdc, 0xae, 0x23, 0x7d, 0x44, 0x0f, 0x6b, 0x8e, 0x2a, + 0x8d, 0x23, 0xcb, 0x4b, 0xed, 0xbf, 0x2c, 0xc0, 0xf2, 0xe0, 0x5e, 0x02, 0xdd, 0x1a, 0x68, 0x57, + 0x0e, 0x91, 0xdb, 0xc7, 0x5b, 0x94, 0x15, 0x1d, 0x7d, 0x21, 0x9a, 0x6b, 0x5c, 0x5e, 0x80, 0xde, + 0x38, 0xfa, 0x82, 0xfc, 0xe8, 0xe8, 0xa3, 0x31, 0xd8, 0xb4, 0x3c, 0x2e, 0xaf, 0x1c, 0x73, 0x95, + 0x20, 0x54, 0x39, 0xf3, 0xf3, 0xaf, 0x3f, 0xbd, 0x56, 0xb8, 0xab, 0x7e, 0xf6, 0xe5, 0x72, 0xe1, + 0xf3, 0x2f, 0x97, 0x0b, 0xff, 0xfe, 0x72, 0xb9, 0xf0, 0x9b, 0xaf, 0x96, 0x4f, 0x7d, 0xfe, 0xd5, + 0xf2, 0xa9, 0x7f, 0x7e, 0xb5, 0x7c, 0xea, 0xe9, 0x6b, 0x47, 0xfc, 0xb5, 0xf5, 0x7e, 0x23, 0xfa, + 0x73, 0x15, 0xff, 0xa0, 0x43, 0xbc, 0xdd, 0x51, 0xfe, 0x57, 0x29, 0xb7, 0xfe, 0x17, 0x00, 0x00, + 0xff, 0xff, 0xec, 0xf6, 0xa8, 0x39, 0x50, 0x33, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -4281,6 +4291,26 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.MinExperiencedWorkerRegrets) > 0 { + dAtA2 := make([]byte, len(m.MinExperiencedWorkerRegrets)*10) + var j1 int + for _, num := range m.MinExperiencedWorkerRegrets { + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ + } + i -= j1 + copy(dAtA[i:], dAtA2[:j1]) + i = encodeVarintTx(dAtA, i, uint64(j1)) + i-- + dAtA[i] = 0x3 + i-- + dAtA[i] = 0xa2 + } if len(m.TopicCreatorWhitelistEnabled) > 0 { for iNdEx := len(m.TopicCreatorWhitelistEnabled) - 1; iNdEx >= 0; iNdEx-- { i-- @@ -4344,29 +4374,9 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.MaxStringLength) > 0 { - dAtA2 := make([]byte, len(m.MaxStringLength)*10) - var j1 int - for _, num := range m.MaxStringLength { - for num >= 1<<7 { - dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j1++ - } - dAtA2[j1] = uint8(num) - j1++ - } - i -= j1 - copy(dAtA[i:], dAtA2[:j1]) - i = encodeVarintTx(dAtA, i, uint64(j1)) - i-- - dAtA[i] = 0x2 - i-- - dAtA[i] = 0xfa - } - if len(m.MaxActiveTopicsPerBlock) > 0 { - dAtA4 := make([]byte, len(m.MaxActiveTopicsPerBlock)*10) + dAtA4 := make([]byte, len(m.MaxStringLength)*10) var j3 int - for _, num := range m.MaxActiveTopicsPerBlock { + for _, num := range m.MaxStringLength { for num >= 1<<7 { dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4381,12 +4391,12 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x2 i-- - dAtA[i] = 0xf2 + dAtA[i] = 0xfa } - if len(m.MaxElementsPerForecast) > 0 { - dAtA6 := make([]byte, len(m.MaxElementsPerForecast)*10) + if len(m.MaxActiveTopicsPerBlock) > 0 { + dAtA6 := make([]byte, len(m.MaxActiveTopicsPerBlock)*10) var j5 int - for _, num := range m.MaxElementsPerForecast { + for _, num := range m.MaxActiveTopicsPerBlock { for num >= 1<<7 { dAtA6[j5] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4401,6 +4411,26 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x2 i-- + dAtA[i] = 0xf2 + } + if len(m.MaxElementsPerForecast) > 0 { + dAtA8 := make([]byte, len(m.MaxElementsPerForecast)*10) + var j7 int + for _, num := range m.MaxElementsPerForecast { + for num >= 1<<7 { + dAtA8[j7] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j7++ + } + dAtA8[j7] = uint8(num) + j7++ + } + i -= j7 + copy(dAtA[i:], dAtA8[:j7]) + i = encodeVarintTx(dAtA, i, uint64(j7)) + i-- + dAtA[i] = 0x2 + i-- dAtA[i] = 0xea } if len(m.EpsilonSafeDiv) > 0 { @@ -4436,20 +4466,20 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.HalfMaxProcessStakeRemovalsEndBlock) > 0 { - dAtA8 := make([]byte, len(m.HalfMaxProcessStakeRemovalsEndBlock)*10) - var j7 int + dAtA10 := make([]byte, len(m.HalfMaxProcessStakeRemovalsEndBlock)*10) + var j9 int for _, num := range m.HalfMaxProcessStakeRemovalsEndBlock { for num >= 1<<7 { - dAtA8[j7] = uint8(uint64(num)&0x7f | 0x80) + dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j7++ + j9++ } - dAtA8[j7] = uint8(num) - j7++ + dAtA10[j9] = uint8(num) + j9++ } - i -= j7 - copy(dAtA[i:], dAtA8[:j7]) - i = encodeVarintTx(dAtA, i, uint64(j7)) + i -= j9 + copy(dAtA[i:], dAtA10[:j9]) + i = encodeVarintTx(dAtA, i, uint64(j9)) i-- dAtA[i] = 0x2 i-- @@ -4568,30 +4598,9 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.BlocksPerMonth) > 0 { - dAtA10 := make([]byte, len(m.BlocksPerMonth)*10) - var j9 int - for _, num := range m.BlocksPerMonth { - for num >= 1<<7 { - dAtA10[j9] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j9++ - } - dAtA10[j9] = uint8(num) - j9++ - } - i -= j9 - copy(dAtA[i:], dAtA10[:j9]) - i = encodeVarintTx(dAtA, i, uint64(j9)) - i-- - dAtA[i] = 0x2 - i-- - dAtA[i] = 0x82 - } - if len(m.MinEpochLengthRecordLimit) > 0 { - dAtA12 := make([]byte, len(m.MinEpochLengthRecordLimit)*10) + dAtA12 := make([]byte, len(m.BlocksPerMonth)*10) var j11 int - for _, num1 := range m.MinEpochLengthRecordLimit { - num := uint64(num1) + for _, num := range m.BlocksPerMonth { for num >= 1<<7 { dAtA12[j11] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4604,14 +4613,15 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], dAtA12[:j11]) i = encodeVarintTx(dAtA, i, uint64(j11)) i-- - dAtA[i] = 0x1 + dAtA[i] = 0x2 i-- - dAtA[i] = 0xfa + dAtA[i] = 0x82 } - if len(m.MaxPageLimit) > 0 { - dAtA14 := make([]byte, len(m.MaxPageLimit)*10) + if len(m.MinEpochLengthRecordLimit) > 0 { + dAtA14 := make([]byte, len(m.MinEpochLengthRecordLimit)*10) var j13 int - for _, num := range m.MaxPageLimit { + for _, num1 := range m.MinEpochLengthRecordLimit { + num := uint64(num1) for num >= 1<<7 { dAtA14[j13] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4626,12 +4636,12 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xf2 + dAtA[i] = 0xfa } - if len(m.DefaultPageLimit) > 0 { - dAtA16 := make([]byte, len(m.DefaultPageLimit)*10) + if len(m.MaxPageLimit) > 0 { + dAtA16 := make([]byte, len(m.MaxPageLimit)*10) var j15 int - for _, num := range m.DefaultPageLimit { + for _, num := range m.MaxPageLimit { for num >= 1<<7 { dAtA16[j15] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4646,6 +4656,26 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1 i-- + dAtA[i] = 0xf2 + } + if len(m.DefaultPageLimit) > 0 { + dAtA18 := make([]byte, len(m.DefaultPageLimit)*10) + var j17 int + for _, num := range m.DefaultPageLimit { + for num >= 1<<7 { + dAtA18[j17] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j17++ + } + dAtA18[j17] = uint8(num) + j17++ + } + i -= j17 + copy(dAtA[i:], dAtA18[:j17]) + i = encodeVarintTx(dAtA, i, uint64(j17)) + i-- + dAtA[i] = 0x1 + i-- dAtA[i] = 0xea } if len(m.RegistrationFee) > 0 { @@ -4665,20 +4695,20 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.GradientDescentMaxIters) > 0 { - dAtA18 := make([]byte, len(m.GradientDescentMaxIters)*10) - var j17 int + dAtA20 := make([]byte, len(m.GradientDescentMaxIters)*10) + var j19 int for _, num := range m.GradientDescentMaxIters { for num >= 1<<7 { - dAtA18[j17] = uint8(uint64(num)&0x7f | 0x80) + dAtA20[j19] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j17++ + j19++ } - dAtA18[j17] = uint8(num) - j17++ + dAtA20[j19] = uint8(num) + j19++ } - i -= j17 - copy(dAtA[i:], dAtA18[:j17]) - i = encodeVarintTx(dAtA, i, uint64(j17)) + i -= j19 + copy(dAtA[i:], dAtA20[:j19]) + i = encodeVarintTx(dAtA, i, uint64(j19)) i-- dAtA[i] = 0x1 i-- @@ -4701,29 +4731,9 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.MaxTopReputersToReward) > 0 { - dAtA20 := make([]byte, len(m.MaxTopReputersToReward)*10) - var j19 int - for _, num := range m.MaxTopReputersToReward { - for num >= 1<<7 { - dAtA20[j19] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j19++ - } - dAtA20[j19] = uint8(num) - j19++ - } - i -= j19 - copy(dAtA[i:], dAtA20[:j19]) - i = encodeVarintTx(dAtA, i, uint64(j19)) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xba - } - if len(m.MaxTopForecastersToReward) > 0 { - dAtA22 := make([]byte, len(m.MaxTopForecastersToReward)*10) + dAtA22 := make([]byte, len(m.MaxTopReputersToReward)*10) var j21 int - for _, num := range m.MaxTopForecastersToReward { + for _, num := range m.MaxTopReputersToReward { for num >= 1<<7 { dAtA22[j21] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4738,12 +4748,12 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xb2 + dAtA[i] = 0xba } - if len(m.MaxTopInferersToReward) > 0 { - dAtA24 := make([]byte, len(m.MaxTopInferersToReward)*10) + if len(m.MaxTopForecastersToReward) > 0 { + dAtA24 := make([]byte, len(m.MaxTopForecastersToReward)*10) var j23 int - for _, num := range m.MaxTopInferersToReward { + for _, num := range m.MaxTopForecastersToReward { for num >= 1<<7 { dAtA24[j23] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4758,12 +4768,12 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1 i-- - dAtA[i] = 0xaa + dAtA[i] = 0xb2 } - if len(m.MaxSamplesToScaleScores) > 0 { - dAtA26 := make([]byte, len(m.MaxSamplesToScaleScores)*10) + if len(m.MaxTopInferersToReward) > 0 { + dAtA26 := make([]byte, len(m.MaxTopInferersToReward)*10) var j25 int - for _, num := range m.MaxSamplesToScaleScores { + for _, num := range m.MaxTopInferersToReward { for num >= 1<<7 { dAtA26[j25] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 @@ -4778,6 +4788,26 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1 i-- + dAtA[i] = 0xaa + } + if len(m.MaxSamplesToScaleScores) > 0 { + dAtA28 := make([]byte, len(m.MaxSamplesToScaleScores)*10) + var j27 int + for _, num := range m.MaxSamplesToScaleScores { + for num >= 1<<7 { + dAtA28[j27] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j27++ + } + dAtA28[j27] = uint8(num) + j27++ + } + i -= j27 + copy(dAtA[i:], dAtA28[:j27]) + i = encodeVarintTx(dAtA, i, uint64(j27)) + i-- + dAtA[i] = 0x1 + i-- dAtA[i] = 0xa2 } if len(m.ValidatorsVsAlloraPercentReward) > 0 { @@ -4859,38 +4889,38 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.MaxUnfulfilledReputerRequests) > 0 { - dAtA28 := make([]byte, len(m.MaxUnfulfilledReputerRequests)*10) - var j27 int + dAtA30 := make([]byte, len(m.MaxUnfulfilledReputerRequests)*10) + var j29 int for _, num := range m.MaxUnfulfilledReputerRequests { for num >= 1<<7 { - dAtA28[j27] = uint8(uint64(num)&0x7f | 0x80) + dAtA30[j29] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j27++ + j29++ } - dAtA28[j27] = uint8(num) - j27++ + dAtA30[j29] = uint8(num) + j29++ } - i -= j27 - copy(dAtA[i:], dAtA28[:j27]) - i = encodeVarintTx(dAtA, i, uint64(j27)) + i -= j29 + copy(dAtA[i:], dAtA30[:j29]) + i = encodeVarintTx(dAtA, i, uint64(j29)) i-- dAtA[i] = 0x72 } if len(m.MaxUnfulfilledWorkerRequests) > 0 { - dAtA30 := make([]byte, len(m.MaxUnfulfilledWorkerRequests)*10) - var j29 int + dAtA32 := make([]byte, len(m.MaxUnfulfilledWorkerRequests)*10) + var j31 int for _, num := range m.MaxUnfulfilledWorkerRequests { for num >= 1<<7 { - dAtA30[j29] = uint8(uint64(num)&0x7f | 0x80) + dAtA32[j31] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j29++ + j31++ } - dAtA30[j29] = uint8(num) - j29++ + dAtA32[j31] = uint8(num) + j31++ } - i -= j29 - copy(dAtA[i:], dAtA30[:j29]) - i = encodeVarintTx(dAtA, i, uint64(j29)) + i -= j31 + copy(dAtA[i:], dAtA32[:j31]) + i = encodeVarintTx(dAtA, i, uint64(j31)) i-- dAtA[i] = 0x6a } @@ -4951,40 +4981,40 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.MinEpochLength) > 0 { - dAtA32 := make([]byte, len(m.MinEpochLength)*10) - var j31 int + dAtA34 := make([]byte, len(m.MinEpochLength)*10) + var j33 int for _, num1 := range m.MinEpochLength { num := uint64(num1) for num >= 1<<7 { - dAtA32[j31] = uint8(uint64(num)&0x7f | 0x80) + dAtA34[j33] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j31++ + j33++ } - dAtA32[j31] = uint8(num) - j31++ + dAtA34[j33] = uint8(num) + j33++ } - i -= j31 - copy(dAtA[i:], dAtA32[:j31]) - i = encodeVarintTx(dAtA, i, uint64(j31)) + i -= j33 + copy(dAtA[i:], dAtA34[:j33]) + i = encodeVarintTx(dAtA, i, uint64(j33)) i-- dAtA[i] = 0x3a } if len(m.RemoveStakeDelayWindow) > 0 { - dAtA34 := make([]byte, len(m.RemoveStakeDelayWindow)*10) - var j33 int + dAtA36 := make([]byte, len(m.RemoveStakeDelayWindow)*10) + var j35 int for _, num1 := range m.RemoveStakeDelayWindow { num := uint64(num1) for num >= 1<<7 { - dAtA34[j33] = uint8(uint64(num)&0x7f | 0x80) + dAtA36[j35] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j33++ + j35++ } - dAtA34[j33] = uint8(num) - j33++ + dAtA36[j35] = uint8(num) + j35++ } - i -= j33 - copy(dAtA[i:], dAtA34[:j33]) - i = encodeVarintTx(dAtA, i, uint64(j33)) + i -= j35 + copy(dAtA[i:], dAtA36[:j35]) + i = encodeVarintTx(dAtA, i, uint64(j35)) i-- dAtA[i] = 0x32 } @@ -5017,21 +5047,21 @@ func (m *OptionalParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { } } if len(m.MaxSerializedMsgLength) > 0 { - dAtA36 := make([]byte, len(m.MaxSerializedMsgLength)*10) - var j35 int + dAtA38 := make([]byte, len(m.MaxSerializedMsgLength)*10) + var j37 int for _, num1 := range m.MaxSerializedMsgLength { num := uint64(num1) for num >= 1<<7 { - dAtA36[j35] = uint8(uint64(num)&0x7f | 0x80) + dAtA38[j37] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j35++ + j37++ } - dAtA36[j35] = uint8(num) - j35++ + dAtA38[j37] = uint8(num) + j37++ } - i -= j35 - copy(dAtA[i:], dAtA36[:j35]) - i = encodeVarintTx(dAtA, i, uint64(j35)) + i -= j37 + copy(dAtA[i:], dAtA38[:j37]) + i = encodeVarintTx(dAtA, i, uint64(j37)) i-- dAtA[i] = 0x12 } @@ -7316,6 +7346,13 @@ func (m *OptionalParams) Size() (n int) { if len(m.TopicCreatorWhitelistEnabled) > 0 { n += 2 + sovTx(uint64(len(m.TopicCreatorWhitelistEnabled))) + len(m.TopicCreatorWhitelistEnabled)*1 } + if len(m.MinExperiencedWorkerRegrets) > 0 { + l = 0 + for _, e := range m.MinExperiencedWorkerRegrets { + l += sovTx(uint64(e)) + } + n += 2 + sovTx(uint64(l)) + l + } return n } @@ -10577,6 +10614,82 @@ func (m *OptionalParams) Unmarshal(dAtA []byte) error { } else { return fmt.Errorf("proto: wrong wireType = %d for field TopicCreatorWhitelistEnabled", wireType) } + case 52: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinExperiencedWorkerRegrets = append(m.MinExperiencedWorkerRegrets, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.MinExperiencedWorkerRegrets) == 0 { + m.MinExperiencedWorkerRegrets = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MinExperiencedWorkerRegrets = append(m.MinExperiencedWorkerRegrets, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field MinExperiencedWorkerRegrets", wireType) + } default: iNdEx = preIndex skippy, err := skipTx(dAtA[iNdEx:])