diff --git a/CHANGELOG.md b/CHANGELOG.md index 73ebbd2d22fb..7a7d5d013f2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -153,6 +153,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (types) [#17738](https://github.com/cosmos/cosmos-sdk/pull/17738) `WithBlockTime()` was removed & `BlockTime()` were deprecated in favor of `WithHeaderInfo()` & `HeaderInfo()`. `BlockTime` now gets data from `HeaderInfo()` instead of `BlockHeader()`. * (client) [#17746](https://github.com/cosmos/cosmos-sdk/pull/17746) `txEncodeAmino` & `txDecodeAmino` txs via grpc and rest were removed * `RegisterLegacyAmino` was removed from `AppModuleBasic` +* (x/staking) [#17655](https://github.com/cosmos/cosmos-sdk/pull/17655) `QueryHistoricalInfo` was adjusted to return `HistoricalRecord` and marked `Hist` as deprecated. ### CLI Breaking Changes @@ -160,6 +161,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (x/distribution) [#17115](https://github.com/cosmos/cosmos-sdk/pull/17115) Migrate `PreviousProposer` to collections. * (x/upgrade) [#16244](https://github.com/cosmos/cosmos-sdk/pull/16244) upgrade module no longer stores the app version but gets and sets the app version stored in the `ParamStore` of baseapp. +* (x/staking) [#17655](https://github.com/cosmos/cosmos-sdk/pull/17655) `HistoricalInfo` was replaced with `HistoricalRecord`, it removes the validator set and comet header and only keep what is needed for IBC. ## [v0.50.0-rc.0](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.0-rc.0) - 2023-08-18 diff --git a/api/cosmos/staking/v1beta1/query.pulsar.go b/api/cosmos/staking/v1beta1/query.pulsar.go index d2200ab51140..0ebc9bbd4800 100644 --- a/api/cosmos/staking/v1beta1/query.pulsar.go +++ b/api/cosmos/staking/v1beta1/query.pulsar.go @@ -11667,14 +11667,16 @@ func (x *fastReflection_QueryHistoricalInfoRequest) ProtoMethods() *protoiface.M } var ( - md_QueryHistoricalInfoResponse protoreflect.MessageDescriptor - fd_QueryHistoricalInfoResponse_hist protoreflect.FieldDescriptor + md_QueryHistoricalInfoResponse protoreflect.MessageDescriptor + fd_QueryHistoricalInfoResponse_hist protoreflect.FieldDescriptor + fd_QueryHistoricalInfoResponse_historical_record protoreflect.FieldDescriptor ) func init() { file_cosmos_staking_v1beta1_query_proto_init() md_QueryHistoricalInfoResponse = File_cosmos_staking_v1beta1_query_proto.Messages().ByName("QueryHistoricalInfoResponse") fd_QueryHistoricalInfoResponse_hist = md_QueryHistoricalInfoResponse.Fields().ByName("hist") + fd_QueryHistoricalInfoResponse_historical_record = md_QueryHistoricalInfoResponse.Fields().ByName("historical_record") } var _ protoreflect.Message = (*fastReflection_QueryHistoricalInfoResponse)(nil) @@ -11748,6 +11750,12 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Range(f func(protoreflect.F return } } + if x.HistoricalRecord != nil { + value := protoreflect.ValueOfMessage(x.HistoricalRecord.ProtoReflect()) + if !f(fd_QueryHistoricalInfoResponse_historical_record, value) { + return + } + } } // Has reports whether a field is populated. @@ -11765,6 +11773,8 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Has(fd protoreflect.FieldDe switch fd.FullName() { case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist": return x.Hist != nil + case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": + return x.HistoricalRecord != nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -11783,6 +11793,8 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Clear(fd protoreflect.Field switch fd.FullName() { case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist": x.Hist = nil + case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": + x.HistoricalRecord = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -11802,6 +11814,9 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Get(descriptor protoreflect case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist": value := x.Hist return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": + value := x.HistoricalRecord + return protoreflect.ValueOfMessage(value.ProtoReflect()) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -11824,6 +11839,8 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Set(fd protoreflect.FieldDe switch fd.FullName() { case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist": x.Hist = value.Message().Interface().(*HistoricalInfo) + case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": + x.HistoricalRecord = value.Message().Interface().(*HistoricalRecord) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -11849,6 +11866,11 @@ func (x *fastReflection_QueryHistoricalInfoResponse) Mutable(fd protoreflect.Fie x.Hist = new(HistoricalInfo) } return protoreflect.ValueOfMessage(x.Hist.ProtoReflect()) + case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": + if x.HistoricalRecord == nil { + x.HistoricalRecord = new(HistoricalRecord) + } + return protoreflect.ValueOfMessage(x.HistoricalRecord.ProtoReflect()) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -11865,6 +11887,9 @@ func (x *fastReflection_QueryHistoricalInfoResponse) NewField(fd protoreflect.Fi case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist": m := new(HistoricalInfo) return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record": + m := new(HistoricalRecord) + return protoreflect.ValueOfMessage(m.ProtoReflect()) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.QueryHistoricalInfoResponse")) @@ -11938,6 +11963,10 @@ func (x *fastReflection_QueryHistoricalInfoResponse) ProtoMethods() *protoiface. l = options.Size(x.Hist) n += 1 + l + runtime.Sov(uint64(l)) } + if x.HistoricalRecord != nil { + l = options.Size(x.HistoricalRecord) + n += 1 + l + runtime.Sov(uint64(l)) + } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -11967,6 +11996,20 @@ func (x *fastReflection_QueryHistoricalInfoResponse) ProtoMethods() *protoiface. i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } + if x.HistoricalRecord != nil { + encoded, err := options.Marshal(x.HistoricalRecord) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } if x.Hist != nil { encoded, err := options.Marshal(x.Hist) if err != nil { @@ -12066,6 +12109,42 @@ func (x *fastReflection_QueryHistoricalInfoResponse) ProtoMethods() *protoiface. return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field HistoricalRecord", wireType) + } + var msglen 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++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + 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 + } + if x.HistoricalRecord == nil { + x.HistoricalRecord = &HistoricalRecord{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.HistoricalRecord); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -14739,7 +14818,10 @@ type QueryHistoricalInfoResponse struct { unknownFields protoimpl.UnknownFields // hist defines the historical info at the given height. - Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"` + // + // Deprecated: Do not use. + Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"` + HistoricalRecord *HistoricalRecord `protobuf:"bytes,2,opt,name=historical_record,json=historicalRecord,proto3" json:"historical_record,omitempty"` } func (x *QueryHistoricalInfoResponse) Reset() { @@ -14762,6 +14844,7 @@ func (*QueryHistoricalInfoResponse) Descriptor() ([]byte, []int) { return file_cosmos_staking_v1beta1_query_proto_rawDescGZIP(), []int{23} } +// Deprecated: Do not use. func (x *QueryHistoricalInfoResponse) GetHist() *HistoricalInfo { if x != nil { return x.Hist @@ -14769,6 +14852,13 @@ func (x *QueryHistoricalInfoResponse) GetHist() *HistoricalInfo { return nil } +func (x *QueryHistoricalInfoResponse) GetHistoricalRecord() *HistoricalRecord { + if x != nil { + return x.HistoricalRecord + } + return nil +} + // QueryPoolRequest is request type for the Query/Pool RPC method. type QueryPoolRequest struct { state protoimpl.MessageState @@ -15167,220 +15257,226 @@ var file_cosmos_staking_v1beta1_query_proto_rawDesc = []byte{ 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x34, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x59, 0x0a, 0x1b, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x68, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x68, 0x69, 0x73, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x50, 0x0a, 0x11, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3b, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x42, 0x09, 0xc8, 0xde, - 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x22, 0x14, 0x0a, - 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x58, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xb4, 0x01, 0x0a, + 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x04, + 0x68, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x32, 0xb0, 0x16, - 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x9e, 0x01, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x74, 0x61, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x68, 0x69, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x11, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x52, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x22, 0x12, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x50, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, + 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x58, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x09, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x32, 0xb0, 0x16, 0x0a, 0x05, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x12, 0x9e, 0x01, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, + 0x12, 0x22, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x12, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x40, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x7d, 0x12, 0xd9, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x35, 0x12, 0x33, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x12, 0xd9, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x41, 0x12, 0x3f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0xfe, 0x01, 0x0a, 0x1d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x62, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x4c, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x3f, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x7d, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0xfe, 0x01, 0x0a, 0x1d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x88, 0xe7, - 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x75, - 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xcc, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x52, 0x12, 0x50, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x7d, 0x12, 0xfc, 0x01, 0x0a, 0x13, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, + 0x73, 0x12, 0x41, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, - 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x67, 0x12, 0x65, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, - 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, - 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x75, 0x6e, - 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0xce, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x41, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, + 0x65, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x62, 0x6f, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0xcc, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x5d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x12, 0x50, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x7d, 0x12, 0xfe, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x62, - 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x88, 0xe7, - 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x7d, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x12, + 0xfc, 0x01, 0x0a, 0x13, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, + 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, 0x88, 0xe7, 0xb0, 0x2a, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x67, 0x12, 0x65, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0xce, + 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x88, 0xe7, + 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x75, - 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xc6, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x88, - 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x12, 0x41, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, - 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xd5, 0x01, - 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x3e, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, + 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x12, + 0xfe, 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x62, + 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x41, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x42, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x62, 0x6f, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x4b, 0x12, 0x49, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0xe3, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x36, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x88, - 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x0e, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0xc6, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x68, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x7b, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x12, 0x86, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, - 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, - 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1e, 0x12, 0x1c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x12, - 0x8e, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x73, + 0x79, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x12, 0x41, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x72, 0x65, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xd5, 0x01, 0x0a, 0x13, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, - 0x12, 0x1e, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x42, 0xda, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, - 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x40, 0x12, 0x3e, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x12, 0xe3, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x36, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x2f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x0e, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, + 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, + 0x12, 0x30, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x7b, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x7d, 0x12, 0x86, 0x01, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x28, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x29, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x8e, 0x01, 0x0a, 0x06, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2b, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xda, 0x01, 0x0a, + 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -15432,8 +15528,9 @@ var file_cosmos_staking_v1beta1_query_proto_goTypes = []interface{}{ (*UnbondingDelegation)(nil), // 32: cosmos.staking.v1beta1.UnbondingDelegation (*RedelegationResponse)(nil), // 33: cosmos.staking.v1beta1.RedelegationResponse (*HistoricalInfo)(nil), // 34: cosmos.staking.v1beta1.HistoricalInfo - (*Pool)(nil), // 35: cosmos.staking.v1beta1.Pool - (*Params)(nil), // 36: cosmos.staking.v1beta1.Params + (*HistoricalRecord)(nil), // 35: cosmos.staking.v1beta1.HistoricalRecord + (*Pool)(nil), // 36: cosmos.staking.v1beta1.Pool + (*Params)(nil), // 37: cosmos.staking.v1beta1.Params } var file_cosmos_staking_v1beta1_query_proto_depIdxs = []int32{ 28, // 0: cosmos.staking.v1beta1.QueryValidatorsRequest.pagination:type_name -> cosmos.base.query.v1beta1.PageRequest @@ -15462,41 +15559,42 @@ var file_cosmos_staking_v1beta1_query_proto_depIdxs = []int32{ 30, // 23: cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse.pagination:type_name -> cosmos.base.query.v1beta1.PageResponse 29, // 24: cosmos.staking.v1beta1.QueryDelegatorValidatorResponse.validator:type_name -> cosmos.staking.v1beta1.Validator 34, // 25: cosmos.staking.v1beta1.QueryHistoricalInfoResponse.hist:type_name -> cosmos.staking.v1beta1.HistoricalInfo - 35, // 26: cosmos.staking.v1beta1.QueryPoolResponse.pool:type_name -> cosmos.staking.v1beta1.Pool - 36, // 27: cosmos.staking.v1beta1.QueryParamsResponse.params:type_name -> cosmos.staking.v1beta1.Params - 0, // 28: cosmos.staking.v1beta1.Query.Validators:input_type -> cosmos.staking.v1beta1.QueryValidatorsRequest - 2, // 29: cosmos.staking.v1beta1.Query.Validator:input_type -> cosmos.staking.v1beta1.QueryValidatorRequest - 4, // 30: cosmos.staking.v1beta1.Query.ValidatorDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsRequest - 6, // 31: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest - 8, // 32: cosmos.staking.v1beta1.Query.Delegation:input_type -> cosmos.staking.v1beta1.QueryDelegationRequest - 10, // 33: cosmos.staking.v1beta1.Query.UnbondingDelegation:input_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationRequest - 12, // 34: cosmos.staking.v1beta1.Query.DelegatorDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest - 14, // 35: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest - 16, // 36: cosmos.staking.v1beta1.Query.Redelegations:input_type -> cosmos.staking.v1beta1.QueryRedelegationsRequest - 18, // 37: cosmos.staking.v1beta1.Query.DelegatorValidators:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest - 20, // 38: cosmos.staking.v1beta1.Query.DelegatorValidator:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorRequest - 22, // 39: cosmos.staking.v1beta1.Query.HistoricalInfo:input_type -> cosmos.staking.v1beta1.QueryHistoricalInfoRequest - 24, // 40: cosmos.staking.v1beta1.Query.Pool:input_type -> cosmos.staking.v1beta1.QueryPoolRequest - 26, // 41: cosmos.staking.v1beta1.Query.Params:input_type -> cosmos.staking.v1beta1.QueryParamsRequest - 1, // 42: cosmos.staking.v1beta1.Query.Validators:output_type -> cosmos.staking.v1beta1.QueryValidatorsResponse - 3, // 43: cosmos.staking.v1beta1.Query.Validator:output_type -> cosmos.staking.v1beta1.QueryValidatorResponse - 5, // 44: cosmos.staking.v1beta1.Query.ValidatorDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsResponse - 7, // 45: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse - 9, // 46: cosmos.staking.v1beta1.Query.Delegation:output_type -> cosmos.staking.v1beta1.QueryDelegationResponse - 11, // 47: cosmos.staking.v1beta1.Query.UnbondingDelegation:output_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationResponse - 13, // 48: cosmos.staking.v1beta1.Query.DelegatorDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse - 15, // 49: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse - 17, // 50: cosmos.staking.v1beta1.Query.Redelegations:output_type -> cosmos.staking.v1beta1.QueryRedelegationsResponse - 19, // 51: cosmos.staking.v1beta1.Query.DelegatorValidators:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse - 21, // 52: cosmos.staking.v1beta1.Query.DelegatorValidator:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorResponse - 23, // 53: cosmos.staking.v1beta1.Query.HistoricalInfo:output_type -> cosmos.staking.v1beta1.QueryHistoricalInfoResponse - 25, // 54: cosmos.staking.v1beta1.Query.Pool:output_type -> cosmos.staking.v1beta1.QueryPoolResponse - 27, // 55: cosmos.staking.v1beta1.Query.Params:output_type -> cosmos.staking.v1beta1.QueryParamsResponse - 42, // [42:56] is the sub-list for method output_type - 28, // [28:42] is the sub-list for method input_type - 28, // [28:28] is the sub-list for extension type_name - 28, // [28:28] is the sub-list for extension extendee - 0, // [0:28] is the sub-list for field type_name + 35, // 26: cosmos.staking.v1beta1.QueryHistoricalInfoResponse.historical_record:type_name -> cosmos.staking.v1beta1.HistoricalRecord + 36, // 27: cosmos.staking.v1beta1.QueryPoolResponse.pool:type_name -> cosmos.staking.v1beta1.Pool + 37, // 28: cosmos.staking.v1beta1.QueryParamsResponse.params:type_name -> cosmos.staking.v1beta1.Params + 0, // 29: cosmos.staking.v1beta1.Query.Validators:input_type -> cosmos.staking.v1beta1.QueryValidatorsRequest + 2, // 30: cosmos.staking.v1beta1.Query.Validator:input_type -> cosmos.staking.v1beta1.QueryValidatorRequest + 4, // 31: cosmos.staking.v1beta1.Query.ValidatorDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsRequest + 6, // 32: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsRequest + 8, // 33: cosmos.staking.v1beta1.Query.Delegation:input_type -> cosmos.staking.v1beta1.QueryDelegationRequest + 10, // 34: cosmos.staking.v1beta1.Query.UnbondingDelegation:input_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationRequest + 12, // 35: cosmos.staking.v1beta1.Query.DelegatorDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsRequest + 14, // 36: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:input_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsRequest + 16, // 37: cosmos.staking.v1beta1.Query.Redelegations:input_type -> cosmos.staking.v1beta1.QueryRedelegationsRequest + 18, // 38: cosmos.staking.v1beta1.Query.DelegatorValidators:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsRequest + 20, // 39: cosmos.staking.v1beta1.Query.DelegatorValidator:input_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorRequest + 22, // 40: cosmos.staking.v1beta1.Query.HistoricalInfo:input_type -> cosmos.staking.v1beta1.QueryHistoricalInfoRequest + 24, // 41: cosmos.staking.v1beta1.Query.Pool:input_type -> cosmos.staking.v1beta1.QueryPoolRequest + 26, // 42: cosmos.staking.v1beta1.Query.Params:input_type -> cosmos.staking.v1beta1.QueryParamsRequest + 1, // 43: cosmos.staking.v1beta1.Query.Validators:output_type -> cosmos.staking.v1beta1.QueryValidatorsResponse + 3, // 44: cosmos.staking.v1beta1.Query.Validator:output_type -> cosmos.staking.v1beta1.QueryValidatorResponse + 5, // 45: cosmos.staking.v1beta1.Query.ValidatorDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorDelegationsResponse + 7, // 46: cosmos.staking.v1beta1.Query.ValidatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryValidatorUnbondingDelegationsResponse + 9, // 47: cosmos.staking.v1beta1.Query.Delegation:output_type -> cosmos.staking.v1beta1.QueryDelegationResponse + 11, // 48: cosmos.staking.v1beta1.Query.UnbondingDelegation:output_type -> cosmos.staking.v1beta1.QueryUnbondingDelegationResponse + 13, // 49: cosmos.staking.v1beta1.Query.DelegatorDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorDelegationsResponse + 15, // 50: cosmos.staking.v1beta1.Query.DelegatorUnbondingDelegations:output_type -> cosmos.staking.v1beta1.QueryDelegatorUnbondingDelegationsResponse + 17, // 51: cosmos.staking.v1beta1.Query.Redelegations:output_type -> cosmos.staking.v1beta1.QueryRedelegationsResponse + 19, // 52: cosmos.staking.v1beta1.Query.DelegatorValidators:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorsResponse + 21, // 53: cosmos.staking.v1beta1.Query.DelegatorValidator:output_type -> cosmos.staking.v1beta1.QueryDelegatorValidatorResponse + 23, // 54: cosmos.staking.v1beta1.Query.HistoricalInfo:output_type -> cosmos.staking.v1beta1.QueryHistoricalInfoResponse + 25, // 55: cosmos.staking.v1beta1.Query.Pool:output_type -> cosmos.staking.v1beta1.QueryPoolResponse + 27, // 56: cosmos.staking.v1beta1.Query.Params:output_type -> cosmos.staking.v1beta1.QueryParamsResponse + 43, // [43:57] is the sub-list for method output_type + 29, // [29:43] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_cosmos_staking_v1beta1_query_proto_init() } diff --git a/api/cosmos/staking/v1beta1/staking.pulsar.go b/api/cosmos/staking/v1beta1/staking.pulsar.go index 9ec8314f45ca..f61a865f95dd 100644 --- a/api/cosmos/staking/v1beta1/staking.pulsar.go +++ b/api/cosmos/staking/v1beta1/staking.pulsar.go @@ -594,6 +594,573 @@ func (x *fastReflection_HistoricalInfo) ProtoMethods() *protoiface.Methods { } } +var ( + md_HistoricalRecord protoreflect.MessageDescriptor + fd_HistoricalRecord_apphash protoreflect.FieldDescriptor + fd_HistoricalRecord_time protoreflect.FieldDescriptor + fd_HistoricalRecord_validator_hash protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_staking_v1beta1_staking_proto_init() + md_HistoricalRecord = File_cosmos_staking_v1beta1_staking_proto.Messages().ByName("HistoricalRecord") + fd_HistoricalRecord_apphash = md_HistoricalRecord.Fields().ByName("apphash") + fd_HistoricalRecord_time = md_HistoricalRecord.Fields().ByName("time") + fd_HistoricalRecord_validator_hash = md_HistoricalRecord.Fields().ByName("validator_hash") +} + +var _ protoreflect.Message = (*fastReflection_HistoricalRecord)(nil) + +type fastReflection_HistoricalRecord HistoricalRecord + +func (x *HistoricalRecord) ProtoReflect() protoreflect.Message { + return (*fastReflection_HistoricalRecord)(x) +} + +func (x *HistoricalRecord) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_HistoricalRecord_messageType fastReflection_HistoricalRecord_messageType +var _ protoreflect.MessageType = fastReflection_HistoricalRecord_messageType{} + +type fastReflection_HistoricalRecord_messageType struct{} + +func (x fastReflection_HistoricalRecord_messageType) Zero() protoreflect.Message { + return (*fastReflection_HistoricalRecord)(nil) +} +func (x fastReflection_HistoricalRecord_messageType) New() protoreflect.Message { + return new(fastReflection_HistoricalRecord) +} +func (x fastReflection_HistoricalRecord_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_HistoricalRecord +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_HistoricalRecord) Descriptor() protoreflect.MessageDescriptor { + return md_HistoricalRecord +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_HistoricalRecord) Type() protoreflect.MessageType { + return _fastReflection_HistoricalRecord_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_HistoricalRecord) New() protoreflect.Message { + return new(fastReflection_HistoricalRecord) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_HistoricalRecord) Interface() protoreflect.ProtoMessage { + return (*HistoricalRecord)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_HistoricalRecord) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Apphash) != 0 { + value := protoreflect.ValueOfBytes(x.Apphash) + if !f(fd_HistoricalRecord_apphash, value) { + return + } + } + if x.Time != nil { + value := protoreflect.ValueOfMessage(x.Time.ProtoReflect()) + if !f(fd_HistoricalRecord_time, value) { + return + } + } + if len(x.ValidatorHash) != 0 { + value := protoreflect.ValueOfBytes(x.ValidatorHash) + if !f(fd_HistoricalRecord_validator_hash, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_HistoricalRecord) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.staking.v1beta1.HistoricalRecord.apphash": + return len(x.Apphash) != 0 + case "cosmos.staking.v1beta1.HistoricalRecord.time": + return x.Time != nil + case "cosmos.staking.v1beta1.HistoricalRecord.validator_hash": + return len(x.ValidatorHash) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_HistoricalRecord) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.HistoricalRecord.apphash": + x.Apphash = nil + case "cosmos.staking.v1beta1.HistoricalRecord.time": + x.Time = nil + case "cosmos.staking.v1beta1.HistoricalRecord.validator_hash": + x.ValidatorHash = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_HistoricalRecord) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.staking.v1beta1.HistoricalRecord.apphash": + value := x.Apphash + return protoreflect.ValueOfBytes(value) + case "cosmos.staking.v1beta1.HistoricalRecord.time": + value := x.Time + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "cosmos.staking.v1beta1.HistoricalRecord.validator_hash": + value := x.ValidatorHash + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_HistoricalRecord) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.staking.v1beta1.HistoricalRecord.apphash": + x.Apphash = value.Bytes() + case "cosmos.staking.v1beta1.HistoricalRecord.time": + x.Time = value.Message().Interface().(*timestamppb.Timestamp) + case "cosmos.staking.v1beta1.HistoricalRecord.validator_hash": + x.ValidatorHash = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_HistoricalRecord) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.HistoricalRecord.time": + if x.Time == nil { + x.Time = new(timestamppb.Timestamp) + } + return protoreflect.ValueOfMessage(x.Time.ProtoReflect()) + case "cosmos.staking.v1beta1.HistoricalRecord.apphash": + panic(fmt.Errorf("field apphash of message cosmos.staking.v1beta1.HistoricalRecord is not mutable")) + case "cosmos.staking.v1beta1.HistoricalRecord.validator_hash": + panic(fmt.Errorf("field validator_hash of message cosmos.staking.v1beta1.HistoricalRecord is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_HistoricalRecord) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.staking.v1beta1.HistoricalRecord.apphash": + return protoreflect.ValueOfBytes(nil) + case "cosmos.staking.v1beta1.HistoricalRecord.time": + m := new(timestamppb.Timestamp) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "cosmos.staking.v1beta1.HistoricalRecord.validator_hash": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.staking.v1beta1.HistoricalRecord")) + } + panic(fmt.Errorf("message cosmos.staking.v1beta1.HistoricalRecord does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_HistoricalRecord) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.staking.v1beta1.HistoricalRecord", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_HistoricalRecord) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_HistoricalRecord) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_HistoricalRecord) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_HistoricalRecord) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*HistoricalRecord) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Apphash) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Time != nil { + l = options.Size(x.Time) + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.ValidatorHash) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*HistoricalRecord) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.ValidatorHash) > 0 { + i -= len(x.ValidatorHash) + copy(dAtA[i:], x.ValidatorHash) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.ValidatorHash))) + i-- + dAtA[i] = 0x1a + } + if x.Time != nil { + encoded, err := options.Marshal(x.Time) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if len(x.Apphash) > 0 { + i -= len(x.Apphash) + copy(dAtA[i:], x.Apphash) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Apphash))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*HistoricalRecord) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire 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++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: HistoricalRecord: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: HistoricalRecord: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Apphash", wireType) + } + var byteLen 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++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Apphash = append(x.Apphash[:0], dAtA[iNdEx:postIndex]...) + if x.Apphash == nil { + x.Apphash = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) + } + var msglen 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++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + 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 + } + if x.Time == nil { + x.Time = ×tamppb.Timestamp{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Time); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field ValidatorHash", wireType) + } + var byteLen 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++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.ValidatorHash = append(x.ValidatorHash[:0], dAtA[iNdEx:postIndex]...) + if x.ValidatorHash == nil { + x.ValidatorHash = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + var ( md_CommissionRates protoreflect.MessageDescriptor fd_CommissionRates_rate protoreflect.FieldDescriptor @@ -618,7 +1185,7 @@ func (x *CommissionRates) ProtoReflect() protoreflect.Message { } func (x *CommissionRates) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[1] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1164,7 +1731,7 @@ func (x *Commission) ProtoReflect() protoreflect.Message { } func (x *Commission) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[2] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1684,7 +2251,7 @@ func (x *Description) ProtoReflect() protoreflect.Message { } func (x *Description) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[3] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2422,7 +2989,7 @@ func (x *Validator) ProtoReflect() protoreflect.Message { } func (x *Validator) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[4] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3704,7 +4271,7 @@ func (x *ValAddresses) ProtoReflect() protoreflect.Message { } func (x *ValAddresses) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[5] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4140,7 +4707,7 @@ func (x *DVPair) ProtoReflect() protoreflect.Message { } func (x *DVPair) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[6] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4673,7 +5240,7 @@ func (x *DVPairs) ProtoReflect() protoreflect.Message { } func (x *DVPairs) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[7] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5120,7 +5687,7 @@ func (x *DVVTriplet) ProtoReflect() protoreflect.Message { } func (x *DVVTriplet) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[8] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5715,7 +6282,7 @@ func (x *DVVTriplets) ProtoReflect() protoreflect.Message { } func (x *DVVTriplets) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[9] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6162,7 +6729,7 @@ func (x *Delegation) ProtoReflect() protoreflect.Message { } func (x *Delegation) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[10] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6761,7 +7328,7 @@ func (x *UnbondingDelegation) ProtoReflect() protoreflect.Message { } func (x *UnbondingDelegation) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[11] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7338,7 +7905,7 @@ func (x *UnbondingDelegationEntry) ProtoReflect() protoreflect.Message { } func (x *UnbondingDelegationEntry) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[12] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8045,7 +8612,7 @@ func (x *RedelegationEntry) ProtoReflect() protoreflect.Message { } func (x *RedelegationEntry) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[13] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8799,7 +9366,7 @@ func (x *Redelegation) ProtoReflect() protoreflect.Message { } func (x *Redelegation) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[14] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9438,7 +10005,7 @@ func (x *Params) ProtoReflect() protoreflect.Message { } func (x *Params) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[15] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10137,7 +10704,7 @@ func (x *DelegationResponse) ProtoReflect() protoreflect.Message { } func (x *DelegationResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[16] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10651,7 +11218,7 @@ func (x *RedelegationEntryResponse) ProtoReflect() protoreflect.Message { } func (x *RedelegationEntryResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[17] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11201,7 +11768,7 @@ func (x *RedelegationResponse) ProtoReflect() protoreflect.Message { } func (x *RedelegationResponse) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[18] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11723,7 +12290,7 @@ func (x *Pool) ProtoReflect() protoreflect.Message { } func (x *Pool) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[19] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12256,7 +12823,7 @@ func (x *ValidatorUpdates) ProtoReflect() protoreflect.Message { } func (x *ValidatorUpdates) slowProtoReflect() protoreflect.Message { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[20] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12806,6 +13373,8 @@ func (Infraction) EnumDescriptor() ([]byte, []int) { // It is stored as part of staking module's state, which persists the `n` most // recent HistoricalInfo // (`n` is set by the staking module's `historical_entries` parameter). +// +// Deprecated: Do not use. type HistoricalInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -12849,6 +13418,61 @@ func (x *HistoricalInfo) GetValset() []*Validator { return nil } +// Historical contains a set of minimum values needed for evaluating historical validator sets and blocks. +// It is stored as part of staking module's state, which persists the `n` most +// recent HistoricalInfo +// (`n` is set by the staking module's `historical_entries` parameter). +type HistoricalRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Apphash []byte `protobuf:"bytes,1,opt,name=apphash,proto3" json:"apphash,omitempty"` + Time *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"` + ValidatorHash []byte `protobuf:"bytes,3,opt,name=validator_hash,json=validatorHash,proto3" json:"validator_hash,omitempty"` +} + +func (x *HistoricalRecord) Reset() { + *x = HistoricalRecord{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoricalRecord) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoricalRecord) ProtoMessage() {} + +// Deprecated: Use HistoricalRecord.ProtoReflect.Descriptor instead. +func (*HistoricalRecord) Descriptor() ([]byte, []int) { + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{1} +} + +func (x *HistoricalRecord) GetApphash() []byte { + if x != nil { + return x.Apphash + } + return nil +} + +func (x *HistoricalRecord) GetTime() *timestamppb.Timestamp { + if x != nil { + return x.Time + } + return nil +} + +func (x *HistoricalRecord) GetValidatorHash() []byte { + if x != nil { + return x.ValidatorHash + } + return nil +} + // CommissionRates defines the initial commission rates to be used for creating // a validator. type CommissionRates struct { @@ -12867,7 +13491,7 @@ type CommissionRates struct { func (x *CommissionRates) Reset() { *x = CommissionRates{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[1] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12881,7 +13505,7 @@ func (*CommissionRates) ProtoMessage() {} // Deprecated: Use CommissionRates.ProtoReflect.Descriptor instead. func (*CommissionRates) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{1} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{2} } func (x *CommissionRates) GetRate() string { @@ -12920,7 +13544,7 @@ type Commission struct { func (x *Commission) Reset() { *x = Commission{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[2] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12934,7 +13558,7 @@ func (*Commission) ProtoMessage() {} // Deprecated: Use Commission.ProtoReflect.Descriptor instead. func (*Commission) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{2} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{3} } func (x *Commission) GetCommissionRates() *CommissionRates { @@ -12972,7 +13596,7 @@ type Description struct { func (x *Description) Reset() { *x = Description{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[3] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12986,7 +13610,7 @@ func (*Description) ProtoMessage() {} // Deprecated: Use Description.ProtoReflect.Descriptor instead. func (*Description) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{3} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{4} } func (x *Description) GetMoniker() string { @@ -13070,7 +13694,7 @@ type Validator struct { func (x *Validator) Reset() { *x = Validator{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[4] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13084,7 +13708,7 @@ func (*Validator) ProtoMessage() {} // Deprecated: Use Validator.ProtoReflect.Descriptor instead. func (*Validator) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{4} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{5} } func (x *Validator) GetOperatorAddress() string { @@ -13190,7 +13814,7 @@ type ValAddresses struct { func (x *ValAddresses) Reset() { *x = ValAddresses{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[5] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13204,7 +13828,7 @@ func (*ValAddresses) ProtoMessage() {} // Deprecated: Use ValAddresses.ProtoReflect.Descriptor instead. func (*ValAddresses) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{5} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{6} } func (x *ValAddresses) GetAddresses() []string { @@ -13229,7 +13853,7 @@ type DVPair struct { func (x *DVPair) Reset() { *x = DVPair{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[6] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13243,7 +13867,7 @@ func (*DVPair) ProtoMessage() {} // Deprecated: Use DVPair.ProtoReflect.Descriptor instead. func (*DVPair) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{6} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{7} } func (x *DVPair) GetDelegatorAddress() string { @@ -13272,7 +13896,7 @@ type DVPairs struct { func (x *DVPairs) Reset() { *x = DVPairs{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[7] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13286,7 +13910,7 @@ func (*DVPairs) ProtoMessage() {} // Deprecated: Use DVPairs.ProtoReflect.Descriptor instead. func (*DVPairs) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{7} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{8} } func (x *DVPairs) GetPairs() []*DVPair { @@ -13313,7 +13937,7 @@ type DVVTriplet struct { func (x *DVVTriplet) Reset() { *x = DVVTriplet{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[8] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13327,7 +13951,7 @@ func (*DVVTriplet) ProtoMessage() {} // Deprecated: Use DVVTriplet.ProtoReflect.Descriptor instead. func (*DVVTriplet) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{8} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{9} } func (x *DVVTriplet) GetDelegatorAddress() string { @@ -13363,7 +13987,7 @@ type DVVTriplets struct { func (x *DVVTriplets) Reset() { *x = DVVTriplets{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[9] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13377,7 +14001,7 @@ func (*DVVTriplets) ProtoMessage() {} // Deprecated: Use DVVTriplets.ProtoReflect.Descriptor instead. func (*DVVTriplets) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{9} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{10} } func (x *DVVTriplets) GetTriplets() []*DVVTriplet { @@ -13406,7 +14030,7 @@ type Delegation struct { func (x *Delegation) Reset() { *x = Delegation{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[10] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13420,7 +14044,7 @@ func (*Delegation) ProtoMessage() {} // Deprecated: Use Delegation.ProtoReflect.Descriptor instead. func (*Delegation) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{10} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{11} } func (x *Delegation) GetDelegatorAddress() string { @@ -13462,7 +14086,7 @@ type UnbondingDelegation struct { func (x *UnbondingDelegation) Reset() { *x = UnbondingDelegation{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[11] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13476,7 +14100,7 @@ func (*UnbondingDelegation) ProtoMessage() {} // Deprecated: Use UnbondingDelegation.ProtoReflect.Descriptor instead. func (*UnbondingDelegation) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{11} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{12} } func (x *UnbondingDelegation) GetDelegatorAddress() string { @@ -13523,7 +14147,7 @@ type UnbondingDelegationEntry struct { func (x *UnbondingDelegationEntry) Reset() { *x = UnbondingDelegationEntry{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[12] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13537,7 +14161,7 @@ func (*UnbondingDelegationEntry) ProtoMessage() {} // Deprecated: Use UnbondingDelegationEntry.ProtoReflect.Descriptor instead. func (*UnbondingDelegationEntry) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{12} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{13} } func (x *UnbondingDelegationEntry) GetCreationHeight() int64 { @@ -13605,7 +14229,7 @@ type RedelegationEntry struct { func (x *RedelegationEntry) Reset() { *x = RedelegationEntry{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[13] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13619,7 +14243,7 @@ func (*RedelegationEntry) ProtoMessage() {} // Deprecated: Use RedelegationEntry.ProtoReflect.Descriptor instead. func (*RedelegationEntry) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{13} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{14} } func (x *RedelegationEntry) GetCreationHeight() int64 { @@ -13684,7 +14308,7 @@ type Redelegation struct { func (x *Redelegation) Reset() { *x = Redelegation{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[14] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13698,7 +14322,7 @@ func (*Redelegation) ProtoMessage() {} // Deprecated: Use Redelegation.ProtoReflect.Descriptor instead. func (*Redelegation) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{14} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{15} } func (x *Redelegation) GetDelegatorAddress() string { @@ -13752,7 +14376,7 @@ type Params struct { func (x *Params) Reset() { *x = Params{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[15] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13766,7 +14390,7 @@ func (*Params) ProtoMessage() {} // Deprecated: Use Params.ProtoReflect.Descriptor instead. func (*Params) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{15} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{16} } func (x *Params) GetUnbondingTime() *durationpb.Duration { @@ -13825,7 +14449,7 @@ type DelegationResponse struct { func (x *DelegationResponse) Reset() { *x = DelegationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[16] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13839,7 +14463,7 @@ func (*DelegationResponse) ProtoMessage() {} // Deprecated: Use DelegationResponse.ProtoReflect.Descriptor instead. func (*DelegationResponse) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{16} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{17} } func (x *DelegationResponse) GetDelegation() *Delegation { @@ -13871,7 +14495,7 @@ type RedelegationEntryResponse struct { func (x *RedelegationEntryResponse) Reset() { *x = RedelegationEntryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[17] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13885,7 +14509,7 @@ func (*RedelegationEntryResponse) ProtoMessage() {} // Deprecated: Use RedelegationEntryResponse.ProtoReflect.Descriptor instead. func (*RedelegationEntryResponse) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{17} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{18} } func (x *RedelegationEntryResponse) GetRedelegationEntry() *RedelegationEntry { @@ -13917,7 +14541,7 @@ type RedelegationResponse struct { func (x *RedelegationResponse) Reset() { *x = RedelegationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[18] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13931,7 +14555,7 @@ func (*RedelegationResponse) ProtoMessage() {} // Deprecated: Use RedelegationResponse.ProtoReflect.Descriptor instead. func (*RedelegationResponse) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{18} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{19} } func (x *RedelegationResponse) GetRedelegation() *Redelegation { @@ -13962,7 +14586,7 @@ type Pool struct { func (x *Pool) Reset() { *x = Pool{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[19] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13976,7 +14600,7 @@ func (*Pool) ProtoMessage() {} // Deprecated: Use Pool.ProtoReflect.Descriptor instead. func (*Pool) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{19} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{20} } func (x *Pool) GetNotBondedTokens() string { @@ -14006,7 +14630,7 @@ type ValidatorUpdates struct { func (x *ValidatorUpdates) Reset() { *x = ValidatorUpdates{} if protoimpl.UnsafeEnabled { - mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[20] + mi := &file_cosmos_staking_v1beta1_staking_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14020,7 +14644,7 @@ func (*ValidatorUpdates) ProtoMessage() {} // Deprecated: Use ValidatorUpdates.ProtoReflect.Descriptor instead. func (*ValidatorUpdates) Descriptor() ([]byte, []int) { - return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{20} + return file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP(), []int{21} } func (x *ValidatorUpdates) GetUpdates() []*abci.ValidatorUpdate { @@ -14052,7 +14676,7 @@ var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{ 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x61, 0x62, 0x63, 0x69, 0x2f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x01, 0x0a, 0x0e, 0x48, 0x69, + 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x01, 0x0a, 0x0e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, @@ -14061,7 +14685,16 @@ var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{ 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x09, 0xc8, 0xde, - 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x74, 0x22, + 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x74, 0x3a, + 0x02, 0x18, 0x01, 0x22, 0x89, 0x01, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, + 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x68, + 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x70, 0x70, 0x68, 0x61, + 0x73, 0x68, 0x12, 0x34, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x04, 0x90, 0xdf, + 0x1f, 0x01, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x61, 0x73, 0x68, 0x22, 0x96, 0x02, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, @@ -14439,66 +15072,68 @@ func file_cosmos_staking_v1beta1_staking_proto_rawDescGZIP() []byte { } var file_cosmos_staking_v1beta1_staking_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_cosmos_staking_v1beta1_staking_proto_msgTypes = make([]protoimpl.MessageInfo, 21) +var file_cosmos_staking_v1beta1_staking_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_cosmos_staking_v1beta1_staking_proto_goTypes = []interface{}{ (BondStatus)(0), // 0: cosmos.staking.v1beta1.BondStatus (Infraction)(0), // 1: cosmos.staking.v1beta1.Infraction (*HistoricalInfo)(nil), // 2: cosmos.staking.v1beta1.HistoricalInfo - (*CommissionRates)(nil), // 3: cosmos.staking.v1beta1.CommissionRates - (*Commission)(nil), // 4: cosmos.staking.v1beta1.Commission - (*Description)(nil), // 5: cosmos.staking.v1beta1.Description - (*Validator)(nil), // 6: cosmos.staking.v1beta1.Validator - (*ValAddresses)(nil), // 7: cosmos.staking.v1beta1.ValAddresses - (*DVPair)(nil), // 8: cosmos.staking.v1beta1.DVPair - (*DVPairs)(nil), // 9: cosmos.staking.v1beta1.DVPairs - (*DVVTriplet)(nil), // 10: cosmos.staking.v1beta1.DVVTriplet - (*DVVTriplets)(nil), // 11: cosmos.staking.v1beta1.DVVTriplets - (*Delegation)(nil), // 12: cosmos.staking.v1beta1.Delegation - (*UnbondingDelegation)(nil), // 13: cosmos.staking.v1beta1.UnbondingDelegation - (*UnbondingDelegationEntry)(nil), // 14: cosmos.staking.v1beta1.UnbondingDelegationEntry - (*RedelegationEntry)(nil), // 15: cosmos.staking.v1beta1.RedelegationEntry - (*Redelegation)(nil), // 16: cosmos.staking.v1beta1.Redelegation - (*Params)(nil), // 17: cosmos.staking.v1beta1.Params - (*DelegationResponse)(nil), // 18: cosmos.staking.v1beta1.DelegationResponse - (*RedelegationEntryResponse)(nil), // 19: cosmos.staking.v1beta1.RedelegationEntryResponse - (*RedelegationResponse)(nil), // 20: cosmos.staking.v1beta1.RedelegationResponse - (*Pool)(nil), // 21: cosmos.staking.v1beta1.Pool - (*ValidatorUpdates)(nil), // 22: cosmos.staking.v1beta1.ValidatorUpdates - (*types.Header)(nil), // 23: tendermint.types.Header - (*timestamppb.Timestamp)(nil), // 24: google.protobuf.Timestamp - (*anypb.Any)(nil), // 25: google.protobuf.Any - (*durationpb.Duration)(nil), // 26: google.protobuf.Duration - (*v1beta1.Coin)(nil), // 27: cosmos.base.v1beta1.Coin - (*abci.ValidatorUpdate)(nil), // 28: tendermint.abci.ValidatorUpdate + (*HistoricalRecord)(nil), // 3: cosmos.staking.v1beta1.HistoricalRecord + (*CommissionRates)(nil), // 4: cosmos.staking.v1beta1.CommissionRates + (*Commission)(nil), // 5: cosmos.staking.v1beta1.Commission + (*Description)(nil), // 6: cosmos.staking.v1beta1.Description + (*Validator)(nil), // 7: cosmos.staking.v1beta1.Validator + (*ValAddresses)(nil), // 8: cosmos.staking.v1beta1.ValAddresses + (*DVPair)(nil), // 9: cosmos.staking.v1beta1.DVPair + (*DVPairs)(nil), // 10: cosmos.staking.v1beta1.DVPairs + (*DVVTriplet)(nil), // 11: cosmos.staking.v1beta1.DVVTriplet + (*DVVTriplets)(nil), // 12: cosmos.staking.v1beta1.DVVTriplets + (*Delegation)(nil), // 13: cosmos.staking.v1beta1.Delegation + (*UnbondingDelegation)(nil), // 14: cosmos.staking.v1beta1.UnbondingDelegation + (*UnbondingDelegationEntry)(nil), // 15: cosmos.staking.v1beta1.UnbondingDelegationEntry + (*RedelegationEntry)(nil), // 16: cosmos.staking.v1beta1.RedelegationEntry + (*Redelegation)(nil), // 17: cosmos.staking.v1beta1.Redelegation + (*Params)(nil), // 18: cosmos.staking.v1beta1.Params + (*DelegationResponse)(nil), // 19: cosmos.staking.v1beta1.DelegationResponse + (*RedelegationEntryResponse)(nil), // 20: cosmos.staking.v1beta1.RedelegationEntryResponse + (*RedelegationResponse)(nil), // 21: cosmos.staking.v1beta1.RedelegationResponse + (*Pool)(nil), // 22: cosmos.staking.v1beta1.Pool + (*ValidatorUpdates)(nil), // 23: cosmos.staking.v1beta1.ValidatorUpdates + (*types.Header)(nil), // 24: tendermint.types.Header + (*timestamppb.Timestamp)(nil), // 25: google.protobuf.Timestamp + (*anypb.Any)(nil), // 26: google.protobuf.Any + (*durationpb.Duration)(nil), // 27: google.protobuf.Duration + (*v1beta1.Coin)(nil), // 28: cosmos.base.v1beta1.Coin + (*abci.ValidatorUpdate)(nil), // 29: tendermint.abci.ValidatorUpdate } var file_cosmos_staking_v1beta1_staking_proto_depIdxs = []int32{ - 23, // 0: cosmos.staking.v1beta1.HistoricalInfo.header:type_name -> tendermint.types.Header - 6, // 1: cosmos.staking.v1beta1.HistoricalInfo.valset:type_name -> cosmos.staking.v1beta1.Validator - 3, // 2: cosmos.staking.v1beta1.Commission.commission_rates:type_name -> cosmos.staking.v1beta1.CommissionRates - 24, // 3: cosmos.staking.v1beta1.Commission.update_time:type_name -> google.protobuf.Timestamp - 25, // 4: cosmos.staking.v1beta1.Validator.consensus_pubkey:type_name -> google.protobuf.Any - 0, // 5: cosmos.staking.v1beta1.Validator.status:type_name -> cosmos.staking.v1beta1.BondStatus - 5, // 6: cosmos.staking.v1beta1.Validator.description:type_name -> cosmos.staking.v1beta1.Description - 24, // 7: cosmos.staking.v1beta1.Validator.unbonding_time:type_name -> google.protobuf.Timestamp - 4, // 8: cosmos.staking.v1beta1.Validator.commission:type_name -> cosmos.staking.v1beta1.Commission - 8, // 9: cosmos.staking.v1beta1.DVPairs.pairs:type_name -> cosmos.staking.v1beta1.DVPair - 10, // 10: cosmos.staking.v1beta1.DVVTriplets.triplets:type_name -> cosmos.staking.v1beta1.DVVTriplet - 14, // 11: cosmos.staking.v1beta1.UnbondingDelegation.entries:type_name -> cosmos.staking.v1beta1.UnbondingDelegationEntry - 24, // 12: cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time:type_name -> google.protobuf.Timestamp - 24, // 13: cosmos.staking.v1beta1.RedelegationEntry.completion_time:type_name -> google.protobuf.Timestamp - 15, // 14: cosmos.staking.v1beta1.Redelegation.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntry - 26, // 15: cosmos.staking.v1beta1.Params.unbonding_time:type_name -> google.protobuf.Duration - 12, // 16: cosmos.staking.v1beta1.DelegationResponse.delegation:type_name -> cosmos.staking.v1beta1.Delegation - 27, // 17: cosmos.staking.v1beta1.DelegationResponse.balance:type_name -> cosmos.base.v1beta1.Coin - 15, // 18: cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry:type_name -> cosmos.staking.v1beta1.RedelegationEntry - 16, // 19: cosmos.staking.v1beta1.RedelegationResponse.redelegation:type_name -> cosmos.staking.v1beta1.Redelegation - 19, // 20: cosmos.staking.v1beta1.RedelegationResponse.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntryResponse - 28, // 21: cosmos.staking.v1beta1.ValidatorUpdates.updates:type_name -> tendermint.abci.ValidatorUpdate - 22, // [22:22] is the sub-list for method output_type - 22, // [22:22] is the sub-list for method input_type - 22, // [22:22] is the sub-list for extension type_name - 22, // [22:22] is the sub-list for extension extendee - 0, // [0:22] is the sub-list for field type_name + 24, // 0: cosmos.staking.v1beta1.HistoricalInfo.header:type_name -> tendermint.types.Header + 7, // 1: cosmos.staking.v1beta1.HistoricalInfo.valset:type_name -> cosmos.staking.v1beta1.Validator + 25, // 2: cosmos.staking.v1beta1.HistoricalRecord.time:type_name -> google.protobuf.Timestamp + 4, // 3: cosmos.staking.v1beta1.Commission.commission_rates:type_name -> cosmos.staking.v1beta1.CommissionRates + 25, // 4: cosmos.staking.v1beta1.Commission.update_time:type_name -> google.protobuf.Timestamp + 26, // 5: cosmos.staking.v1beta1.Validator.consensus_pubkey:type_name -> google.protobuf.Any + 0, // 6: cosmos.staking.v1beta1.Validator.status:type_name -> cosmos.staking.v1beta1.BondStatus + 6, // 7: cosmos.staking.v1beta1.Validator.description:type_name -> cosmos.staking.v1beta1.Description + 25, // 8: cosmos.staking.v1beta1.Validator.unbonding_time:type_name -> google.protobuf.Timestamp + 5, // 9: cosmos.staking.v1beta1.Validator.commission:type_name -> cosmos.staking.v1beta1.Commission + 9, // 10: cosmos.staking.v1beta1.DVPairs.pairs:type_name -> cosmos.staking.v1beta1.DVPair + 11, // 11: cosmos.staking.v1beta1.DVVTriplets.triplets:type_name -> cosmos.staking.v1beta1.DVVTriplet + 15, // 12: cosmos.staking.v1beta1.UnbondingDelegation.entries:type_name -> cosmos.staking.v1beta1.UnbondingDelegationEntry + 25, // 13: cosmos.staking.v1beta1.UnbondingDelegationEntry.completion_time:type_name -> google.protobuf.Timestamp + 25, // 14: cosmos.staking.v1beta1.RedelegationEntry.completion_time:type_name -> google.protobuf.Timestamp + 16, // 15: cosmos.staking.v1beta1.Redelegation.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntry + 27, // 16: cosmos.staking.v1beta1.Params.unbonding_time:type_name -> google.protobuf.Duration + 13, // 17: cosmos.staking.v1beta1.DelegationResponse.delegation:type_name -> cosmos.staking.v1beta1.Delegation + 28, // 18: cosmos.staking.v1beta1.DelegationResponse.balance:type_name -> cosmos.base.v1beta1.Coin + 16, // 19: cosmos.staking.v1beta1.RedelegationEntryResponse.redelegation_entry:type_name -> cosmos.staking.v1beta1.RedelegationEntry + 17, // 20: cosmos.staking.v1beta1.RedelegationResponse.redelegation:type_name -> cosmos.staking.v1beta1.Redelegation + 20, // 21: cosmos.staking.v1beta1.RedelegationResponse.entries:type_name -> cosmos.staking.v1beta1.RedelegationEntryResponse + 29, // 22: cosmos.staking.v1beta1.ValidatorUpdates.updates:type_name -> tendermint.abci.ValidatorUpdate + 23, // [23:23] is the sub-list for method output_type + 23, // [23:23] is the sub-list for method input_type + 23, // [23:23] is the sub-list for extension type_name + 23, // [23:23] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name } func init() { file_cosmos_staking_v1beta1_staking_proto_init() } @@ -14520,7 +15155,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommissionRates); i { + switch v := v.(*HistoricalRecord); i { case 0: return &v.state case 1: @@ -14532,7 +15167,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Commission); i { + switch v := v.(*CommissionRates); i { case 0: return &v.state case 1: @@ -14544,7 +15179,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Description); i { + switch v := v.(*Commission); i { case 0: return &v.state case 1: @@ -14556,7 +15191,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Validator); i { + switch v := v.(*Description); i { case 0: return &v.state case 1: @@ -14568,7 +15203,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValAddresses); i { + switch v := v.(*Validator); i { case 0: return &v.state case 1: @@ -14580,7 +15215,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DVPair); i { + switch v := v.(*ValAddresses); i { case 0: return &v.state case 1: @@ -14592,7 +15227,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DVPairs); i { + switch v := v.(*DVPair); i { case 0: return &v.state case 1: @@ -14604,7 +15239,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DVVTriplet); i { + switch v := v.(*DVPairs); i { case 0: return &v.state case 1: @@ -14616,7 +15251,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DVVTriplets); i { + switch v := v.(*DVVTriplet); i { case 0: return &v.state case 1: @@ -14628,7 +15263,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Delegation); i { + switch v := v.(*DVVTriplets); i { case 0: return &v.state case 1: @@ -14640,7 +15275,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnbondingDelegation); i { + switch v := v.(*Delegation); i { case 0: return &v.state case 1: @@ -14652,7 +15287,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnbondingDelegationEntry); i { + switch v := v.(*UnbondingDelegation); i { case 0: return &v.state case 1: @@ -14664,7 +15299,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedelegationEntry); i { + switch v := v.(*UnbondingDelegationEntry); i { case 0: return &v.state case 1: @@ -14676,7 +15311,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Redelegation); i { + switch v := v.(*RedelegationEntry); i { case 0: return &v.state case 1: @@ -14688,7 +15323,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Params); i { + switch v := v.(*Redelegation); i { case 0: return &v.state case 1: @@ -14700,7 +15335,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DelegationResponse); i { + switch v := v.(*Params); i { case 0: return &v.state case 1: @@ -14712,7 +15347,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedelegationEntryResponse); i { + switch v := v.(*DelegationResponse); i { case 0: return &v.state case 1: @@ -14724,7 +15359,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RedelegationResponse); i { + switch v := v.(*RedelegationEntryResponse); i { case 0: return &v.state case 1: @@ -14736,7 +15371,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Pool); i { + switch v := v.(*RedelegationResponse); i { case 0: return &v.state case 1: @@ -14748,6 +15383,18 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { } } file_cosmos_staking_v1beta1_staking_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Pool); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_staking_v1beta1_staking_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ValidatorUpdates); i { case 0: return &v.state @@ -14766,7 +15413,7 @@ func file_cosmos_staking_v1beta1_staking_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_cosmos_staking_v1beta1_staking_proto_rawDesc, NumEnums: 2, - NumMessages: 21, + NumMessages: 22, NumExtensions: 0, NumServices: 0, }, diff --git a/docs/architecture/adr-017-historical-header-module.md b/docs/architecture/adr-017-historical-header-module.md index 573c632c2741..54cd998458e4 100644 --- a/docs/architecture/adr-017-historical-header-module.md +++ b/docs/architecture/adr-017-historical-header-module.md @@ -4,6 +4,7 @@ * 26 November 2019: Start of first version * 2 December 2019: Final draft of first version +* 7 September 2023: Reduce HistoricalInfo type ## Context @@ -16,10 +17,11 @@ The application MUST store the most recent `n` headers in a persistent store. At The application MUST store this information by storing new headers immediately when handling `abci.RequestBeginBlock`: ```go -func BeginBlock(ctx sdk.Context, keeper HistoricalHeaderKeeper, req abci.RequestBeginBlock) abci.ResponseBeginBlock { +func BeginBlock(ctx sdk.Context, keeper HistoricalHeaderKeeper) error { info := HistoricalInfo{ - Header: ctx.BlockHeader(), - ValSet: keeper.StakingKeeper.GetAllValidators(ctx), // note that this must be stored in a canonical order + apphash: ctx.HeaderInfo().AppHash, + Time: ctx.HeaderInfo().Time, + NextValidatorsHash: ctx.CometInfo().NextValidatorsHash, } keeper.SetHistoricalInfo(ctx, ctx.BlockHeight(), info) n := keeper.GetParamRecentHeadersToStore() diff --git a/proto/cosmos/staking/v1beta1/query.proto b/proto/cosmos/staking/v1beta1/query.proto index 08eb9f3245fb..958424a72eae 100644 --- a/proto/cosmos/staking/v1beta1/query.proto +++ b/proto/cosmos/staking/v1beta1/query.proto @@ -365,7 +365,8 @@ message QueryHistoricalInfoRequest { // method. message QueryHistoricalInfoResponse { // hist defines the historical info at the given height. - HistoricalInfo hist = 1; + HistoricalInfo hist = 1 [deprecated = true]; + HistoricalRecord historical_record = 2; } // QueryPoolRequest is request type for the Query/Pool RPC method. diff --git a/proto/cosmos/staking/v1beta1/staking.proto b/proto/cosmos/staking/v1beta1/staking.proto index 24ec65d10202..bb3ebf24d93b 100644 --- a/proto/cosmos/staking/v1beta1/staking.proto +++ b/proto/cosmos/staking/v1beta1/staking.proto @@ -19,10 +19,22 @@ option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; // recent HistoricalInfo // (`n` is set by the staking module's `historical_entries` parameter). message HistoricalInfo { + option deprecated = true; + tendermint.types.Header header = 1 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; repeated Validator valset = 2 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; } +// Historical contains a set of minimum values needed for evaluating historical validator sets and blocks. +// It is stored as part of staking module's state, which persists the `n` most +// recent HistoricalInfo +// (`n` is set by the staking module's `historical_entries` parameter). +message HistoricalRecord { + bytes apphash = 1; + google.protobuf.Timestamp time = 2 [(gogoproto.stdtime) = true]; + bytes validator_hash = 3; +} + // CommissionRates defines the initial commission rates to be used for creating // a validator. message CommissionRates { diff --git a/tests/integration/staking/keeper/deterministic_test.go b/tests/integration/staking/keeper/deterministic_test.go index 004ed77730f9..cd65ecde50c1 100644 --- a/tests/integration/staking/keeper/deterministic_test.go +++ b/tests/integration/staking/keeper/deterministic_test.go @@ -4,7 +4,6 @@ import ( "testing" "time" - cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" "gotest.tools/v3/assert" "pgregory.net/rapid" @@ -662,24 +661,14 @@ func TestGRPCHistoricalInfo(t *testing.T) { f := initDeterministicFixture(t) rapid.Check(t, func(rt *rapid.T) { - numVals := rapid.IntRange(1, 5).Draw(rt, "num-vals") - vals := stakingtypes.Validators{} - for i := 0; i < numVals; i++ { - validator := createAndSetValidatorWithStatus(t, rt, f, stakingtypes.Bonded) - vals.Validators = append(vals.Validators, validator) - } - - historicalInfo := stakingtypes.HistoricalInfo{ - Header: cmtproto.Header{}, - Valset: vals.Validators, - } + historical := stakingtypes.HistoricalRecord{} height := rapid.Int64Min(0).Draw(rt, "height") assert.NilError(t, f.stakingKeeper.HistoricalInfo.Set( f.ctx, uint64(height), - historicalInfo, + historical, )) req := &stakingtypes.QueryHistoricalInfoRequest{ @@ -691,12 +680,7 @@ func TestGRPCHistoricalInfo(t *testing.T) { f = initDeterministicFixture(t) // reset - validator := getStaticValidator(t, f) - - historicalInfo := stakingtypes.HistoricalInfo{ - Header: cmtproto.Header{}, - Valset: []stakingtypes.Validator{validator}, - } + historicalInfo := stakingtypes.HistoricalRecord{} height := int64(127) @@ -710,7 +694,7 @@ func TestGRPCHistoricalInfo(t *testing.T) { Height: height, } - testdata.DeterministicIterations(f.ctx, t, req, f.queryClient.HistoricalInfo, 1945, false) + testdata.DeterministicIterations(f.ctx, t, req, f.queryClient.HistoricalInfo, 1027, false) } func TestGRPCDelegatorValidators(t *testing.T) { diff --git a/tests/integration/staking/keeper/grpc_query_test.go b/tests/integration/staking/keeper/grpc_query_test.go index 7c3144d85263..9c278f46e06d 100644 --- a/tests/integration/staking/keeper/grpc_query_test.go +++ b/tests/integration/staking/keeper/grpc_query_test.go @@ -29,7 +29,7 @@ func createValidatorAccs(t *testing.T, f *fixture) ([]sdk.AccAddress, []types.Va // have its order changed sortedVals := make([]types.Validator, len(validators)) copy(sortedVals, validators) - hi := types.NewHistoricalInfo(header, types.Validators{Validators: sortedVals}, f.stakingKeeper.PowerReduction(f.sdkCtx)) + hi := types.HistoricalRecord{Time: &header.Time, Apphash: header.AppHash, ValidatorHash: header.NextValidatorsHash} assert.NilError(t, f.stakingKeeper.HistoricalInfo.Set(f.sdkCtx, uint64(5), hi)) return addrs, validators @@ -783,7 +783,7 @@ func TestGRPCQueryHistoricalInfo(t *testing.T) { if tc.expPass { assert.NilError(t, err) assert.Assert(t, res != nil) - assert.Assert(t, hi.Equal(res.Hist)) + assert.DeepEqual(t, &hi, res.HistoricalRecord) } else { assert.ErrorContains(t, err, tc.expErrMsg) assert.Assert(t, res == nil) diff --git a/x/staking/keeper/grpc_query.go b/x/staking/keeper/grpc_query.go index 9c0846a9ad09..0288952a4bbe 100644 --- a/x/staking/keeper/grpc_query.go +++ b/x/staking/keeper/grpc_query.go @@ -402,7 +402,7 @@ func (k Querier) HistoricalInfo(ctx context.Context, req *types.QueryHistoricalI return nil, status.Errorf(codes.NotFound, "historical info for height %d not found", req.Height) } - return &types.QueryHistoricalInfoResponse{Hist: &hi}, nil + return &types.QueryHistoricalInfoResponse{HistoricalRecord: &hi}, nil } // Redelegations queries redelegations of given address diff --git a/x/staking/keeper/historical_info.go b/x/staking/keeper/historical_info.go index e23fbd207256..6380f9a700dc 100644 --- a/x/staking/keeper/historical_info.go +++ b/x/staking/keeper/historical_info.go @@ -24,7 +24,7 @@ func (k Keeper) TrackHistoricalInfo(ctx context.Context) error { // Since the entries to be deleted are always in a continuous range, we can iterate // over the historical entries starting from the most recent version to be pruned // and then return at the first empty entry. - for i := sdkCtx.BlockHeight() - int64(entryNum); i >= 0; i-- { + for i := sdkCtx.HeaderInfo().Height - int64(entryNum); i >= 0; i-- { has, err := k.HistoricalInfo.Has(ctx, uint64(i)) if err != nil { return err @@ -42,14 +42,14 @@ func (k Keeper) TrackHistoricalInfo(ctx context.Context) error { return nil } - // Create HistoricalInfo struct - lastVals, err := k.GetLastValidators(ctx) - if err != nil { - return err - } + time := sdkCtx.HeaderInfo().Time - historicalEntry := types.NewHistoricalInfo(sdkCtx.BlockHeader(), types.Validators{Validators: lastVals, ValidatorCodec: k.validatorAddressCodec}, k.PowerReduction(ctx)) + historicalEntry := types.HistoricalRecord{ + Time: &time, + ValidatorHash: sdkCtx.CometInfo().ValidatorsHash, + Apphash: sdkCtx.HeaderInfo().AppHash, + } // Set latest HistoricalInfo at current height - return k.HistoricalInfo.Set(ctx, uint64(sdkCtx.BlockHeight()), historicalEntry) + return k.HistoricalInfo.Set(ctx, uint64(sdkCtx.HeaderInfo().Height), historicalEntry) } diff --git a/x/staking/keeper/historical_info_test.go b/x/staking/keeper/historical_info_test.go index 876ff9cf396b..1f3002fdae5a 100644 --- a/x/staking/keeper/historical_info_test.go +++ b/x/staking/keeper/historical_info_test.go @@ -1,7 +1,7 @@ package keeper_test import ( - cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" + "time" "cosmossdk.io/collections" coreheader "cosmossdk.io/core/header" @@ -34,19 +34,23 @@ func (s *KeeperTestSuite) TestHistoricalInfo() { validators[i] = testutil.NewValidator(s.T(), valAddr, PKs[i]) } - hi := stakingtypes.NewHistoricalInfo(ctx.BlockHeader(), stakingtypes.Validators{Validators: validators}, keeper.PowerReduction(ctx)) + time := ctx.BlockTime() + hi := stakingtypes.HistoricalRecord{ + Time: &time, + ValidatorHash: ctx.CometInfo().ValidatorsHash, + Apphash: ctx.HeaderInfo().AppHash, + } require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(2), hi)) recv, err := keeper.HistoricalInfo.Get(ctx, uint64(2)) require.NoError(err, "HistoricalInfo found after set") require.Equal(hi, recv, "HistoricalInfo not equal") - require.True(IsValSetSorted(recv.Valset, keeper.PowerReduction(ctx)), "HistoricalInfo validators is not sorted") require.NoError(keeper.HistoricalInfo.Remove(ctx, uint64(2))) recv, err = keeper.HistoricalInfo.Get(ctx, uint64(2)) require.ErrorIs(err, collections.ErrNotFound, "HistoricalInfo not found after delete") - require.Equal(stakingtypes.HistoricalInfo{}, recv, "HistoricalInfo is not empty") + require.Equal(stakingtypes.HistoricalRecord{}, recv, "HistoricalInfo is not empty") } func (s *KeeperTestSuite) TestTrackHistoricalInfo() { @@ -62,20 +66,19 @@ func (s *KeeperTestSuite) TestTrackHistoricalInfo() { // set historical info at 5, 4 which should be pruned // and check that it has been stored - h4 := cmtproto.Header{ - ChainID: "HelloChain", - Height: 4, - } - h5 := cmtproto.Header{ - ChainID: "HelloChain", - Height: 5, + t := time.Now().Round(0).UTC() + hi4 := stakingtypes.HistoricalRecord{ + Time: &t, + ValidatorHash: []byte("validatorHash"), + Apphash: []byte("AppHash"), } - valSet := []stakingtypes.Validator{ - testutil.NewValidator(s.T(), addrVals[0], PKs[0]), - testutil.NewValidator(s.T(), addrVals[1], PKs[1]), + + hi5 := stakingtypes.HistoricalRecord{ + Time: &t, + ValidatorHash: []byte("validatorHash"), + Apphash: []byte("AppHash"), } - hi4 := stakingtypes.NewHistoricalInfo(h4, stakingtypes.Validators{Validators: valSet}, keeper.PowerReduction(ctx)) - hi5 := stakingtypes.NewHistoricalInfo(h5, stakingtypes.Validators{Validators: valSet}, keeper.PowerReduction(ctx)) + require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(4), hi4)) require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(5), hi5)) recv, err := keeper.HistoricalInfo.Get(ctx, uint64(4)) @@ -105,18 +108,19 @@ func (s *KeeperTestSuite) TestTrackHistoricalInfo() { require.True(IsValSetSorted(vals, keeper.PowerReduction(ctx))) // Set Header for BeginBlock context - header := cmtproto.Header{ + ctx = ctx.WithHeaderInfo(coreheader.Info{ ChainID: "HelloChain", Height: 10, - } - ctx = ctx.WithBlockHeader(header).WithHeaderInfo(coreheader.Info{ChainID: header.ChainID, Height: header.Height}) + Time: t, + }) require.NoError(keeper.TrackHistoricalInfo(ctx)) // Check HistoricalInfo at height 10 is persisted - expected := stakingtypes.HistoricalInfo{ - Header: header, - Valset: vals, + expected := stakingtypes.HistoricalRecord{ + Time: &t, + ValidatorHash: ctx.CometInfo().ValidatorsHash, + Apphash: ctx.HeaderInfo().AppHash, } recv, err = keeper.HistoricalInfo.Get(ctx, uint64(10)) require.NoError(err, "GetHistoricalInfo failed after BeginBlock") @@ -125,39 +129,42 @@ func (s *KeeperTestSuite) TestTrackHistoricalInfo() { // Check HistoricalInfo at height 5, 4 is pruned recv, err = keeper.HistoricalInfo.Get(ctx, uint64(4)) require.ErrorIs(err, collections.ErrNotFound, "GetHistoricalInfo did not prune earlier height") - require.Equal(stakingtypes.HistoricalInfo{}, recv, "GetHistoricalInfo at height 4 is not empty after prune") + require.Equal(stakingtypes.HistoricalRecord{}, recv, "GetHistoricalInfo at height 4 is not empty after prune") recv, err = keeper.HistoricalInfo.Get(ctx, uint64(5)) require.ErrorIs(err, collections.ErrNotFound, "GetHistoricalInfo did not prune first prune height") - require.Equal(stakingtypes.HistoricalInfo{}, recv, "GetHistoricalInfo at height 5 is not empty after prune") + require.Equal(stakingtypes.HistoricalRecord{}, recv, "GetHistoricalInfo at height 5 is not empty after prune") } func (s *KeeperTestSuite) TestGetAllHistoricalInfo() { ctx, keeper := s.ctx, s.stakingKeeper require := s.Require() - _, addrVals := createValAddrs(50) + t := time.Now().Round(0).UTC() - valSet := []stakingtypes.Validator{ - testutil.NewValidator(s.T(), addrVals[0], PKs[0]), - testutil.NewValidator(s.T(), addrVals[1], PKs[1]), + hist1 := stakingtypes.HistoricalRecord{ + Time: &t, + ValidatorHash: nil, + Apphash: nil, + } + hist2 := stakingtypes.HistoricalRecord{ + Time: &t, + ValidatorHash: nil, + Apphash: nil, + } + hist3 := stakingtypes.HistoricalRecord{ + Time: &t, + ValidatorHash: nil, + Apphash: nil, } - header1 := cmtproto.Header{ChainID: "HelloChain", Height: 9} - header2 := cmtproto.Header{ChainID: "HelloChain", Height: 10} - header3 := cmtproto.Header{ChainID: "HelloChain", Height: 11} - - hist1 := stakingtypes.HistoricalInfo{Header: header1, Valset: valSet} - hist2 := stakingtypes.HistoricalInfo{Header: header2, Valset: valSet} - hist3 := stakingtypes.HistoricalInfo{Header: header3, Valset: valSet} - - expHistInfos := []stakingtypes.HistoricalInfo{hist1, hist2, hist3} + expHistInfos := []stakingtypes.HistoricalRecord{hist1, hist2, hist3} for i, hi := range expHistInfos { require.NoError(keeper.HistoricalInfo.Set(ctx, uint64(int64(9+i)), hi)) } - var infos []stakingtypes.HistoricalInfo - err := keeper.HistoricalInfo.Walk(ctx, nil, func(key uint64, info stakingtypes.HistoricalInfo) (stop bool, err error) { + var infos []stakingtypes.HistoricalRecord + err := keeper.HistoricalInfo.Walk(ctx, nil, func(key uint64, info stakingtypes.HistoricalRecord) (stop bool, err error) { infos = append(infos, info) return false, nil }) diff --git a/x/staking/keeper/keeper.go b/x/staking/keeper/keeper.go index 8bad712ff964..5f6f218ec0e4 100644 --- a/x/staking/keeper/keeper.go +++ b/x/staking/keeper/keeper.go @@ -25,6 +25,22 @@ var _ types.ValidatorSet = Keeper{} // Implements DelegationSet interface var _ types.DelegationSet = Keeper{} +func HistoricalInfoCodec(cdc codec.BinaryCodec) collcodec.ValueCodec[types.HistoricalRecord] { + return collcodec.NewAltValueCodec(codec.CollValue[types.HistoricalRecord](cdc), func(b []byte) (types.HistoricalRecord, error) { + historicalinfo := types.HistoricalInfo{} //nolint: staticcheck // HistoricalInfo is deprecated + err := historicalinfo.Unmarshal(b) + if err != nil { + return types.HistoricalRecord{}, err + } + + return types.HistoricalRecord{ + Apphash: historicalinfo.Header.AppHash, + Time: &historicalinfo.Header.Time, + ValidatorHash: historicalinfo.Header.NextValidatorsHash, + }, nil + }) +} + // Keeper of the x/staking store type Keeper struct { storeService storetypes.KVStoreService @@ -37,8 +53,9 @@ type Keeper struct { consensusAddressCodec addresscodec.Codec Schema collections.Schema + // HistoricalInfo key: Height | value: HistoricalInfo - HistoricalInfo collections.Map[uint64, types.HistoricalInfo] + HistoricalInfo collections.Map[uint64, types.HistoricalRecord] // LastTotalPower value: LastTotalPower LastTotalPower collections.Item[math.Int] // ValidatorUpdates value: ValidatorUpdates @@ -117,7 +134,7 @@ func NewKeeper( validatorAddressCodec: validatorAddressCodec, consensusAddressCodec: consensusAddressCodec, LastTotalPower: collections.NewItem(sb, types.LastTotalPowerKey, "last_total_power", sdk.IntValue), - HistoricalInfo: collections.NewMap(sb, types.HistoricalInfoKey, "historical_info", collections.Uint64Key, codec.CollValue[types.HistoricalInfo](cdc)), + HistoricalInfo: collections.NewMap(sb, types.HistoricalInfoKey, "historical_info", collections.Uint64Key, HistoricalInfoCodec(cdc)), ValidatorUpdates: collections.NewItem(sb, types.ValidatorUpdatesKey, "validator_updates", codec.CollValue[types.ValidatorUpdates](cdc)), Delegations: collections.NewMap( sb, types.DelegationKey, "delegations", diff --git a/x/staking/types/historical_info.go b/x/staking/types/historical_info.go index fc34afffdf36..5261357fc7b9 100644 --- a/x/staking/types/historical_info.go +++ b/x/staking/types/historical_info.go @@ -4,7 +4,6 @@ import ( "sort" cmtproto "github.com/cometbft/cometbft/proto/tendermint/types" - "github.com/cosmos/gogoproto/proto" "cosmossdk.io/core/address" "cosmossdk.io/errors" @@ -40,22 +39,6 @@ func ValidateBasic(hi HistoricalInfo, valAc address.Codec) error { return nil } -// Equal checks if receiver is equal to the parameter -func (hi *HistoricalInfo) Equal(hi2 *HistoricalInfo) bool { - if !proto.Equal(&hi.Header, &hi2.Header) { - return false - } - if len(hi.Valset) != len(hi2.Valset) { - return false - } - for i := range hi.Valset { - if !hi.Valset[i].Equal(&hi2.Valset[i]) { - return false - } - } - return true -} - // UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces func (hi HistoricalInfo) UnpackInterfaces(c codectypes.AnyUnpacker) error { for i := range hi.Valset { diff --git a/x/staking/types/query.pb.go b/x/staking/types/query.pb.go index 661784ccdd81..4d601b7a9b64 100644 --- a/x/staking/types/query.pb.go +++ b/x/staking/types/query.pb.go @@ -1182,7 +1182,8 @@ func (m *QueryHistoricalInfoRequest) GetHeight() int64 { // method. type QueryHistoricalInfoResponse struct { // hist defines the historical info at the given height. - Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"` + Hist *HistoricalInfo `protobuf:"bytes,1,opt,name=hist,proto3" json:"hist,omitempty"` // Deprecated: Do not use. + HistoricalRecord *HistoricalRecord `protobuf:"bytes,2,opt,name=historical_record,json=historicalRecord,proto3" json:"historical_record,omitempty"` } func (m *QueryHistoricalInfoResponse) Reset() { *m = QueryHistoricalInfoResponse{} } @@ -1218,6 +1219,7 @@ func (m *QueryHistoricalInfoResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryHistoricalInfoResponse proto.InternalMessageInfo +// Deprecated: Do not use. func (m *QueryHistoricalInfoResponse) GetHist() *HistoricalInfo { if m != nil { return m.Hist @@ -1225,6 +1227,13 @@ func (m *QueryHistoricalInfoResponse) GetHist() *HistoricalInfo { return nil } +func (m *QueryHistoricalInfoResponse) GetHistoricalRecord() *HistoricalRecord { + if m != nil { + return m.HistoricalRecord + } + return nil +} + // QueryPoolRequest is request type for the Query/Pool RPC method. type QueryPoolRequest struct { } @@ -1427,94 +1436,96 @@ func init() { } var fileDescriptor_f270127f442bbcd8 = []byte{ - // 1390 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xdb, 0x6b, 0x1c, 0x65, - 0x1b, 0xdf, 0x37, 0xcd, 0x17, 0xbe, 0x3c, 0xa5, 0xa1, 0x7d, 0x77, 0x1b, 0xd3, 0x69, 0xba, 0xd9, - 0x0c, 0xa5, 0xe6, 0xd0, 0xec, 0x98, 0xa4, 0xb6, 0xb1, 0xa2, 0xed, 0xc6, 0x52, 0x5b, 0x5b, 0x6a, - 0xba, 0x62, 0xf0, 0x48, 0x98, 0x64, 0xa6, 0xb3, 0x43, 0x37, 0x33, 0xdb, 0x79, 0x27, 0xa1, 0x25, - 0x04, 0xc1, 0x0b, 0xe9, 0x95, 0x08, 0xde, 0x4b, 0x2f, 0x45, 0x14, 0x72, 0x91, 0x8a, 0x5e, 0xd8, - 0x4b, 0xe9, 0x85, 0x48, 0xa9, 0x54, 0xf4, 0xa6, 0x4a, 0x22, 0xe8, 0x8d, 0xff, 0x81, 0x88, 0xec, - 0xcc, 0x33, 0xa7, 0xcc, 0x61, 0x67, 0x37, 0x1b, 0x48, 0x6e, 0xda, 0xdd, 0x77, 0x9e, 0xc3, 0xef, - 0xf7, 0x1c, 0xde, 0x79, 0x9e, 0x0d, 0xf0, 0x0b, 0x3a, 0x5b, 0xd4, 0x99, 0xc0, 0x4c, 0xf1, 0xa6, - 0xaa, 0x29, 0xc2, 0xf2, 0xf8, 0xbc, 0x6c, 0x8a, 0xe3, 0xc2, 0xad, 0x25, 0xd9, 0xb8, 0x53, 0xac, - 0x19, 0xba, 0xa9, 0xd3, 0x5e, 0x5b, 0xa6, 0x88, 0x32, 0x45, 0x94, 0xe1, 0x46, 0x50, 0x77, 0x5e, - 0x64, 0xb2, 0xad, 0xe0, 0xaa, 0xd7, 0x44, 0x45, 0xd5, 0x44, 0x53, 0xd5, 0x35, 0xdb, 0x06, 0x97, - 0x53, 0x74, 0x45, 0xb7, 0x3e, 0x0a, 0xf5, 0x4f, 0x78, 0xda, 0xaf, 0xe8, 0xba, 0x52, 0x95, 0x05, - 0xb1, 0xa6, 0x0a, 0xa2, 0xa6, 0xe9, 0xa6, 0xa5, 0xc2, 0xf0, 0xe9, 0xf1, 0x18, 0x6c, 0x0e, 0x0e, - 0x5b, 0xea, 0x88, 0x2d, 0x35, 0x67, 0x1b, 0x47, 0xa8, 0xf6, 0xa3, 0xa3, 0x68, 0xc0, 0xc1, 0xe6, - 0x67, 0xc5, 0x1d, 0x12, 0x17, 0x55, 0x4d, 0x17, 0xac, 0x7f, 0xed, 0x23, 0xfe, 0x36, 0xf4, 0x5e, - 0xaf, 0x4b, 0xcc, 0x8a, 0x55, 0x55, 0x12, 0x4d, 0xdd, 0x60, 0x65, 0xf9, 0xd6, 0x92, 0xcc, 0x4c, - 0xda, 0x0b, 0x5d, 0xcc, 0x14, 0xcd, 0x25, 0xd6, 0x47, 0x0a, 0x64, 0xa8, 0xbb, 0x8c, 0xdf, 0xe8, - 0x45, 0x00, 0x8f, 0x6a, 0x5f, 0x47, 0x81, 0x0c, 0xed, 0x9f, 0x38, 0x51, 0x44, 0x10, 0xf5, 0xb8, - 0x14, 0x6d, 0x97, 0x08, 0xbd, 0x38, 0x23, 0x2a, 0x32, 0xda, 0x2c, 0xfb, 0x34, 0xf9, 0x35, 0x02, - 0xcf, 0x84, 0x5c, 0xb3, 0x9a, 0xae, 0x31, 0x99, 0x5e, 0x05, 0x58, 0x76, 0x4f, 0xfb, 0x48, 0x61, - 0xdf, 0xd0, 0xfe, 0x89, 0xc1, 0x62, 0x74, 0x4e, 0x8a, 0xae, 0xfe, 0x74, 0xf7, 0xc3, 0xa7, 0x03, - 0x99, 0xcf, 0xff, 0x5c, 0x1b, 0x21, 0x65, 0x9f, 0x3e, 0x7d, 0x35, 0x02, 0xf1, 0xb3, 0x0d, 0x11, - 0xdb, 0x50, 0x02, 0x90, 0x45, 0x38, 0x1c, 0x44, 0xec, 0xc4, 0xea, 0x12, 0xf4, 0xb8, 0xfe, 0xe6, - 0x44, 0x49, 0x32, 0xec, 0x98, 0x4d, 0x0f, 0x3e, 0x5e, 0x1f, 0x3b, 0x86, 0x8e, 0x5c, 0xa5, 0x92, - 0x24, 0x19, 0x32, 0x63, 0x6f, 0x98, 0x86, 0xaa, 0x29, 0xe5, 0x03, 0xcb, 0xfe, 0x73, 0x5e, 0xda, - 0x9a, 0x0f, 0x37, 0x26, 0xaf, 0x41, 0xb7, 0x2b, 0x6a, 0x99, 0x6f, 0x36, 0x24, 0x9e, 0x3a, 0xbf, - 0x4e, 0xa0, 0x10, 0x74, 0x73, 0x41, 0xae, 0xca, 0x8a, 0x5d, 0x8a, 0x6d, 0x27, 0xd5, 0xb6, 0x92, - 0xf9, 0x9b, 0xc0, 0x60, 0x02, 0x6c, 0x0c, 0xd4, 0x07, 0x90, 0x93, 0xdc, 0xe3, 0x39, 0x03, 0x8f, - 0x9d, 0x32, 0x1a, 0x89, 0x8b, 0x99, 0x67, 0xca, 0xb1, 0x34, 0x5d, 0xa8, 0x07, 0xef, 0x8b, 0xdf, - 0x06, 0xb2, 0xe1, 0x67, 0xcc, 0x8e, 0x69, 0x56, 0x0a, 0x3f, 0x69, 0x5f, 0xbd, 0x7d, 0x47, 0x60, - 0x38, 0xc8, 0xf7, 0x4d, 0x6d, 0x5e, 0xd7, 0x24, 0x55, 0x53, 0xf6, 0x44, 0xbe, 0x9e, 0x12, 0x18, - 0x49, 0x83, 0x1f, 0x13, 0xa7, 0x40, 0x76, 0xc9, 0x79, 0x1e, 0xca, 0xdb, 0x68, 0x5c, 0xde, 0x22, - 0x4c, 0xfa, 0xab, 0x9e, 0xba, 0x26, 0x77, 0x20, 0x41, 0x5f, 0x11, 0x6c, 0x57, 0x7f, 0x81, 0xd8, - 0xd9, 0x38, 0x07, 0x3d, 0x58, 0x1b, 0xc1, 0x6c, 0xf4, 0x3d, 0x5e, 0x1f, 0xcb, 0xa1, 0xab, 0x2d, - 0x49, 0x70, 0xe5, 0xad, 0x24, 0x84, 0xd3, 0xd9, 0xd1, 0x5a, 0x3a, 0xcf, 0xfe, 0xff, 0xee, 0xbd, - 0x81, 0xcc, 0x5f, 0xf7, 0x06, 0x32, 0xfc, 0x32, 0x5e, 0xb9, 0xe1, 0x7a, 0xa6, 0xef, 0x42, 0x36, - 0xa2, 0x6b, 0xf0, 0xa2, 0x69, 0xa2, 0x69, 0xca, 0x34, 0xdc, 0x12, 0xfc, 0xd7, 0x04, 0x06, 0x2c, - 0xc7, 0x11, 0xc9, 0xda, 0xd5, 0x01, 0x33, 0xf0, 0x9e, 0x8c, 0xc4, 0x8d, 0x91, 0xbb, 0x06, 0x5d, - 0x76, 0x8d, 0x61, 0xb0, 0x5a, 0xad, 0x54, 0xb4, 0xc2, 0xdf, 0x77, 0x2e, 0xe7, 0x0b, 0x0e, 0xbd, - 0x88, 0x66, 0xdf, 0x76, 0xb4, 0xda, 0xd4, 0xe3, 0xbe, 0x58, 0xfd, 0xec, 0xdc, 0xce, 0xd1, 0xb8, - 0x31, 0x5a, 0x95, 0xb6, 0xdd, 0xce, 0xbe, 0xd0, 0xed, 0xec, 0x35, 0xfc, 0xc0, 0xb9, 0x86, 0x5d, - 0x62, 0x49, 0xd7, 0xf0, 0x2e, 0xcc, 0x8c, 0x7b, 0x0f, 0x37, 0x20, 0xb0, 0x67, 0xef, 0xe1, 0x07, - 0x1d, 0x70, 0xc4, 0x22, 0x58, 0x96, 0xa5, 0x1d, 0xc9, 0x08, 0x65, 0xc6, 0xc2, 0x5c, 0xe4, 0xed, - 0x12, 0x6f, 0xe4, 0x20, 0x33, 0x16, 0x66, 0xb7, 0xbc, 0x57, 0xa9, 0xc4, 0xcc, 0xad, 0x76, 0xf6, - 0x35, 0xb2, 0x23, 0x31, 0x73, 0x36, 0xe1, 0xfd, 0xdc, 0xd9, 0x86, 0x0a, 0x79, 0x42, 0x80, 0x8b, - 0x0a, 0x20, 0x56, 0x84, 0x06, 0xbd, 0x86, 0x9c, 0xd0, 0xb6, 0x27, 0xe3, 0x8a, 0xc2, 0x6f, 0x2e, - 0xaa, 0x71, 0x0f, 0x1b, 0xf2, 0x8e, 0xb6, 0xee, 0xba, 0xf3, 0xe2, 0x71, 0x2b, 0x3f, 0xbc, 0xe8, - 0xec, 0xc2, 0x86, 0xfd, 0x36, 0xf4, 0x0a, 0xd8, 0x3b, 0x4b, 0xd2, 0x7d, 0x02, 0xf9, 0x18, 0xec, - 0xbb, 0xfa, 0x55, 0xbf, 0x18, 0x5b, 0x29, 0x3b, 0xb2, 0x82, 0x9d, 0xc2, 0x86, 0xbb, 0xa4, 0x32, - 0x53, 0x37, 0xd4, 0x05, 0xb1, 0x7a, 0x59, 0xbb, 0xa1, 0xfb, 0x96, 0xef, 0x8a, 0xac, 0x2a, 0x15, - 0xd3, 0x72, 0xb3, 0xaf, 0x8c, 0xdf, 0xf8, 0xb7, 0xe1, 0x68, 0xa4, 0x16, 0x02, 0x3c, 0x0b, 0x9d, - 0x15, 0x95, 0x99, 0x88, 0xed, 0x44, 0x1c, 0xb6, 0x2d, 0xda, 0x96, 0x0e, 0x4f, 0xe1, 0xa0, 0x65, - 0x7a, 0x46, 0xd7, 0xab, 0x08, 0x83, 0x9f, 0x81, 0x43, 0xbe, 0x33, 0x74, 0xf2, 0x22, 0x74, 0xd6, - 0x74, 0xbd, 0x8a, 0x4e, 0xfa, 0xe3, 0x9c, 0xd4, 0x75, 0xfc, 0xdc, 0x2d, 0x25, 0x3e, 0x07, 0xd4, - 0xb6, 0x28, 0x1a, 0xe2, 0xa2, 0xd3, 0x82, 0xfc, 0x5b, 0x90, 0x0d, 0x9c, 0xa2, 0xa7, 0x12, 0x74, - 0xd5, 0xac, 0x13, 0xf4, 0x95, 0x8f, 0xf5, 0x65, 0x49, 0x05, 0x86, 0x29, 0x5b, 0x71, 0x62, 0xad, - 0x17, 0xfe, 0x67, 0x99, 0xa6, 0x9f, 0x11, 0x00, 0xaf, 0x8b, 0x68, 0x31, 0xce, 0x56, 0xf4, 0xcf, - 0x21, 0x9c, 0x90, 0x5a, 0x1e, 0x67, 0x5e, 0xe1, 0x6e, 0x1d, 0xc8, 0x87, 0x3f, 0xfd, 0xf1, 0x69, - 0xc7, 0x71, 0xca, 0x0b, 0x31, 0x3f, 0xec, 0xf8, 0x3a, 0xf0, 0x4b, 0x02, 0xdd, 0xae, 0x1d, 0x3a, - 0x96, 0xce, 0x9f, 0x03, 0xaf, 0x98, 0x56, 0x1c, 0xd1, 0x9d, 0xf7, 0xd0, 0x3d, 0x4f, 0x27, 0x1b, - 0xa3, 0x13, 0x56, 0x82, 0x0d, 0xb7, 0x4a, 0x7f, 0x25, 0x90, 0x8b, 0xda, 0xc3, 0xe9, 0x54, 0x3a, - 0x28, 0xe1, 0xd1, 0x89, 0x7b, 0xa1, 0x05, 0x4d, 0xe4, 0x73, 0xd5, 0xe3, 0x53, 0xa2, 0xe7, 0x5a, - 0xe0, 0x23, 0xf8, 0xde, 0x7b, 0xf4, 0x5f, 0x02, 0xc7, 0x12, 0x77, 0x56, 0x5a, 0x4a, 0x07, 0x35, - 0x61, 0x50, 0xe4, 0xa6, 0xb7, 0x63, 0x02, 0x69, 0xcf, 0x7a, 0xb4, 0xaf, 0xd0, 0xcb, 0xad, 0xd0, - 0xf6, 0x26, 0x3d, 0x7f, 0x00, 0x7e, 0x20, 0x00, 0x9e, 0xbf, 0x06, 0xcd, 0x12, 0xda, 0xe5, 0x1a, - 0x34, 0x4b, 0x78, 0x96, 0xe7, 0xdf, 0xf7, 0x78, 0x94, 0xe9, 0xcc, 0x36, 0xd3, 0x27, 0xac, 0x04, - 0xdf, 0x2e, 0xab, 0xf4, 0x1f, 0x02, 0xd9, 0x88, 0x38, 0xd2, 0x33, 0x89, 0x38, 0xe3, 0x97, 0x55, - 0x6e, 0xaa, 0x79, 0x45, 0x64, 0x6a, 0x78, 0x4c, 0x15, 0x2a, 0xb7, 0x9b, 0x69, 0x64, 0x3a, 0xe9, - 0x8f, 0x04, 0x72, 0x51, 0x4b, 0x59, 0x83, 0x56, 0x4d, 0xd8, 0x3f, 0x1b, 0xb4, 0x6a, 0xd2, 0x06, - 0xc8, 0x97, 0xbc, 0x08, 0x9c, 0xa6, 0xa7, 0xe2, 0x22, 0x90, 0x98, 0xcf, 0x7a, 0x7f, 0x26, 0xee, - 0x32, 0x0d, 0xfa, 0x33, 0xcd, 0x22, 0xd7, 0xa0, 0x3f, 0x53, 0xad, 0x52, 0x29, 0xfb, 0xd3, 0xa5, - 0x97, 0x32, 0xa1, 0x8c, 0x7e, 0x4f, 0xe0, 0x40, 0x60, 0x54, 0xa7, 0xe3, 0x89, 0x68, 0xa3, 0xf6, - 0x22, 0x6e, 0xa2, 0x19, 0x15, 0x24, 0x74, 0xcd, 0x23, 0xf4, 0x0a, 0x2d, 0xb5, 0x42, 0xc8, 0x08, - 0xc0, 0x7e, 0x42, 0x20, 0x1b, 0x31, 0xe4, 0x36, 0xe8, 0xcc, 0xf8, 0x69, 0x9e, 0x9b, 0x6a, 0x5e, - 0x11, 0xa9, 0x5d, 0xf1, 0xa8, 0x9d, 0xa7, 0x2f, 0xb7, 0x42, 0xcd, 0xf7, 0x32, 0xdf, 0x24, 0x40, - 0xc3, 0xce, 0xe8, 0xe9, 0x26, 0xd1, 0x39, 0xac, 0xce, 0x34, 0xad, 0x87, 0xa4, 0xde, 0xf3, 0x48, - 0x5d, 0xa7, 0xaf, 0x6f, 0x8f, 0x54, 0x78, 0x06, 0xf8, 0x86, 0x40, 0x4f, 0x70, 0x98, 0xa4, 0xc9, - 0x45, 0x15, 0x39, 0xed, 0x72, 0x93, 0x4d, 0xe9, 0x20, 0xb3, 0x97, 0x3c, 0x66, 0x13, 0xf4, 0xb9, - 0x38, 0x66, 0x15, 0x57, 0x79, 0x4e, 0xd5, 0x6e, 0xe8, 0xc2, 0x8a, 0x3d, 0x48, 0xaf, 0xd2, 0x8f, - 0x08, 0x74, 0xd6, 0x47, 0x54, 0x3a, 0x94, 0xe8, 0xdc, 0x37, 0x0d, 0x73, 0xc3, 0x29, 0x24, 0x11, - 0xdc, 0xb0, 0x07, 0x2e, 0x4f, 0xfb, 0xe3, 0xc0, 0xd5, 0x27, 0x62, 0xfa, 0x31, 0x81, 0x2e, 0x7b, - 0x7e, 0xa5, 0x23, 0xc9, 0x0e, 0xfc, 0x23, 0x33, 0x37, 0x9a, 0x4a, 0x16, 0xe1, 0x8c, 0x7a, 0x70, - 0x0a, 0x34, 0x1f, 0x0b, 0xc7, 0x9e, 0xa2, 0x2f, 0x3e, 0xdc, 0xc8, 0x93, 0x47, 0x1b, 0x79, 0xf2, - 0xfb, 0x46, 0x9e, 0x7c, 0xb2, 0x99, 0xcf, 0x3c, 0xda, 0xcc, 0x67, 0x7e, 0xd9, 0xcc, 0x67, 0xde, - 0x39, 0xa9, 0xa8, 0x66, 0x65, 0x69, 0xbe, 0xb8, 0xa0, 0x2f, 0x3a, 0x36, 0xec, 0xff, 0xc6, 0x98, - 0x74, 0x53, 0xb8, 0xed, 0x1a, 0x34, 0xef, 0xd4, 0x64, 0x36, 0xdf, 0x65, 0xfd, 0x85, 0x71, 0xf2, - 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x88, 0x69, 0x9e, 0x5b, 0x70, 0x1d, 0x00, 0x00, + // 1417 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xdb, 0x6f, 0x14, 0xf5, + 0x17, 0xdf, 0x6f, 0xe9, 0xaf, 0xf9, 0xf5, 0x10, 0x08, 0x7c, 0x77, 0xa9, 0x65, 0x80, 0xed, 0x76, + 0x42, 0xb0, 0x17, 0xba, 0x63, 0x5b, 0x84, 0xaa, 0x11, 0xd8, 0x4a, 0x10, 0x84, 0x60, 0x19, 0x43, + 0x63, 0xbc, 0xa4, 0x99, 0xee, 0x0c, 0xb3, 0x13, 0xb6, 0x33, 0xcb, 0xcc, 0xb4, 0x81, 0x34, 0x8d, + 0x89, 0x0f, 0x86, 0x27, 0x63, 0xe2, 0xbb, 0xe1, 0xd1, 0x18, 0x4d, 0xfa, 0x50, 0x8c, 0x3e, 0xc8, + 0xa3, 0xe1, 0xc1, 0x18, 0x82, 0xc1, 0xe8, 0x0b, 0x9a, 0xd6, 0x44, 0x5f, 0xfc, 0x0f, 0x8c, 0x31, + 0x3b, 0x73, 0xe6, 0xd6, 0xb9, 0xee, 0x76, 0x9b, 0xb4, 0x2f, 0xb0, 0xfb, 0x9d, 0x73, 0xf9, 0x7c, + 0xce, 0xe5, 0x3b, 0xe7, 0x6c, 0x81, 0xad, 0x6a, 0xc6, 0x82, 0x66, 0x70, 0x86, 0x29, 0xdc, 0x52, + 0x54, 0x99, 0x5b, 0x1a, 0x9f, 0x97, 0x4c, 0x61, 0x9c, 0xbb, 0xbd, 0x28, 0xe9, 0x77, 0xcb, 0x0d, + 0x5d, 0x33, 0x35, 0xda, 0x67, 0xcb, 0x94, 0x51, 0xa6, 0x8c, 0x32, 0xcc, 0x08, 0xea, 0xce, 0x0b, + 0x86, 0x64, 0x2b, 0xb8, 0xea, 0x0d, 0x41, 0x56, 0x54, 0xc1, 0x54, 0x34, 0xd5, 0xb6, 0xc1, 0x14, + 0x64, 0x4d, 0xd6, 0xac, 0x8f, 0x5c, 0xf3, 0x13, 0x9e, 0x1e, 0x95, 0x35, 0x4d, 0xae, 0x4b, 0x9c, + 0xd0, 0x50, 0x38, 0x41, 0x55, 0x35, 0xd3, 0x52, 0x31, 0xf0, 0xe9, 0xf1, 0x18, 0x6c, 0x0e, 0x0e, + 0x5b, 0xea, 0xb0, 0x2d, 0x35, 0x67, 0x1b, 0x47, 0xa8, 0xf6, 0xa3, 0x23, 0x68, 0xc0, 0xc1, 0xe6, + 0x67, 0xc5, 0x1c, 0x14, 0x16, 0x14, 0x55, 0xe3, 0xac, 0x7f, 0xed, 0x23, 0xf6, 0x0e, 0xf4, 0x5d, + 0x6f, 0x4a, 0xcc, 0x0a, 0x75, 0x45, 0x14, 0x4c, 0x4d, 0x37, 0x78, 0xe9, 0xf6, 0xa2, 0x64, 0x98, + 0xb4, 0x0f, 0x7a, 0x0c, 0x53, 0x30, 0x17, 0x8d, 0x7e, 0x52, 0x22, 0x43, 0xbd, 0x3c, 0x7e, 0xa3, + 0x17, 0x01, 0x3c, 0xaa, 0xfd, 0x5d, 0x25, 0x32, 0xb4, 0x77, 0xe2, 0x44, 0x19, 0x41, 0x34, 0xe3, + 0x52, 0xb6, 0x5d, 0x22, 0xf4, 0xf2, 0x8c, 0x20, 0x4b, 0x68, 0x93, 0xf7, 0x69, 0xb2, 0xab, 0x04, + 0x9e, 0x0b, 0xb9, 0x36, 0x1a, 0x9a, 0x6a, 0x48, 0xf4, 0x2a, 0xc0, 0x92, 0x7b, 0xda, 0x4f, 0x4a, + 0x7b, 0x86, 0xf6, 0x4e, 0x0c, 0x96, 0xa3, 0x73, 0x52, 0x76, 0xf5, 0xa7, 0x7b, 0x1f, 0x3d, 0x1b, + 0xc8, 0x7d, 0xfe, 0xe7, 0xea, 0x08, 0xe1, 0x7d, 0xfa, 0xf4, 0xf5, 0x08, 0xc4, 0xcf, 0xa7, 0x22, + 0xb6, 0xa1, 0x04, 0x20, 0x0b, 0x70, 0x28, 0x88, 0xd8, 0x89, 0xd5, 0x25, 0xd8, 0xef, 0xfa, 0x9b, + 0x13, 0x44, 0x51, 0xb7, 0x63, 0x36, 0x3d, 0xf8, 0x64, 0x6d, 0xec, 0x18, 0x3a, 0x72, 0x95, 0x2a, + 0xa2, 0xa8, 0x4b, 0x86, 0xf1, 0x96, 0xa9, 0x2b, 0xaa, 0xcc, 0xef, 0x5b, 0xf2, 0x9f, 0xb3, 0xe2, + 0xe6, 0x7c, 0xb8, 0x31, 0x79, 0x03, 0x7a, 0x5d, 0x51, 0xcb, 0x7c, 0xab, 0x21, 0xf1, 0xd4, 0xd9, + 0x35, 0x02, 0xa5, 0xa0, 0x9b, 0x0b, 0x52, 0x5d, 0x92, 0xed, 0x52, 0xec, 0x38, 0xa9, 0x8e, 0x95, + 0xcc, 0xdf, 0x04, 0x06, 0x13, 0x60, 0x63, 0xa0, 0x3e, 0x80, 0x82, 0xe8, 0x1e, 0xcf, 0xe9, 0x78, + 0xec, 0x94, 0xd1, 0x48, 0x5c, 0xcc, 0x3c, 0x53, 0x8e, 0xa5, 0xe9, 0x52, 0x33, 0x78, 0x5f, 0xfc, + 0x36, 0x90, 0x0f, 0x3f, 0x33, 0xec, 0x98, 0xe6, 0xc5, 0xf0, 0x93, 0xce, 0xd5, 0xdb, 0x77, 0x04, + 0x86, 0x83, 0x7c, 0x6f, 0xa8, 0xf3, 0x9a, 0x2a, 0x2a, 0xaa, 0xbc, 0x2b, 0xf2, 0xf5, 0x8c, 0xc0, + 0x48, 0x16, 0xfc, 0x98, 0x38, 0x19, 0xf2, 0x8b, 0xce, 0xf3, 0x50, 0xde, 0x46, 0xe3, 0xf2, 0x16, + 0x61, 0xd2, 0x5f, 0xf5, 0xd4, 0x35, 0xb9, 0x0d, 0x09, 0xfa, 0x8a, 0x60, 0xbb, 0xfa, 0x0b, 0xc4, + 0xce, 0xc6, 0x39, 0xd8, 0x8f, 0xb5, 0x11, 0xcc, 0x46, 0xff, 0x93, 0xb5, 0xb1, 0x02, 0xba, 0xda, + 0x94, 0x04, 0x57, 0xde, 0x4a, 0x42, 0x38, 0x9d, 0x5d, 0xed, 0xa5, 0xf3, 0xe5, 0xff, 0xdf, 0xbb, + 0x3f, 0x90, 0xfb, 0xeb, 0xfe, 0x40, 0x8e, 0x5d, 0xc2, 0x2b, 0x37, 0x5c, 0xcf, 0xf4, 0x5d, 0xc8, + 0x47, 0x74, 0x0d, 0x5e, 0x34, 0x2d, 0x34, 0x0d, 0x4f, 0xc3, 0x2d, 0xc1, 0x7e, 0x4d, 0x60, 0xc0, + 0x72, 0x1c, 0x91, 0xac, 0x1d, 0x1d, 0x30, 0x1d, 0xef, 0xc9, 0x48, 0xdc, 0x18, 0xb9, 0x6b, 0xd0, + 0x63, 0xd7, 0x18, 0x06, 0xab, 0xdd, 0x4a, 0x45, 0x2b, 0xec, 0x03, 0xe7, 0x72, 0xbe, 0xe0, 0xd0, + 0x8b, 0x68, 0xf6, 0x2d, 0x47, 0xab, 0x43, 0x3d, 0xee, 0x8b, 0xd5, 0xcf, 0xce, 0xed, 0x1c, 0x8d, + 0x1b, 0xa3, 0x55, 0xeb, 0xd8, 0xed, 0xec, 0x0b, 0xdd, 0xf6, 0x5e, 0xc3, 0x0f, 0x9d, 0x6b, 0xd8, + 0x25, 0x96, 0x74, 0x0d, 0xef, 0xc0, 0xcc, 0xb8, 0xf7, 0x70, 0x0a, 0x81, 0x5d, 0x7b, 0x0f, 0x3f, + 0xec, 0x82, 0xc3, 0x16, 0x41, 0x5e, 0x12, 0xb7, 0x25, 0x23, 0xd4, 0xd0, 0xab, 0x73, 0x91, 0xb7, + 0x4b, 0xbc, 0x91, 0x03, 0x86, 0x5e, 0x9d, 0xdd, 0xf4, 0x5e, 0xa5, 0xa2, 0x61, 0x6e, 0xb6, 0xb3, + 0x27, 0xcd, 0x8e, 0x68, 0x98, 0xb3, 0x09, 0xef, 0xe7, 0xee, 0x0e, 0x54, 0xc8, 0x53, 0x02, 0x4c, + 0x54, 0x00, 0xb1, 0x22, 0x54, 0xe8, 0xd3, 0xa5, 0x84, 0xb6, 0x3d, 0x19, 0x57, 0x14, 0x7e, 0x73, + 0x51, 0x8d, 0x7b, 0x48, 0x97, 0xb6, 0xb5, 0x75, 0xd7, 0x9c, 0x17, 0x8f, 0x5b, 0xf9, 0xe1, 0x45, + 0x67, 0x07, 0x36, 0xec, 0xb7, 0xa1, 0x57, 0xc0, 0xee, 0x59, 0x92, 0x1e, 0x10, 0x28, 0xc6, 0x60, + 0xdf, 0xd1, 0xaf, 0xfa, 0x85, 0xd8, 0x4a, 0xd9, 0x96, 0x15, 0xec, 0x14, 0x36, 0xdc, 0x25, 0xc5, + 0x30, 0x35, 0x5d, 0xa9, 0x0a, 0xf5, 0xcb, 0xea, 0x4d, 0xcd, 0xb7, 0x7c, 0xd7, 0x24, 0x45, 0xae, + 0x99, 0x96, 0x9b, 0x3d, 0x3c, 0x7e, 0x6b, 0xd6, 0xf3, 0x91, 0x48, 0x35, 0x44, 0x78, 0x16, 0xba, + 0x6b, 0x8a, 0x61, 0x22, 0xb8, 0x13, 0x71, 0xe0, 0x82, 0xda, 0xd3, 0x5d, 0xfd, 0x84, 0xb7, 0xf4, + 0xe8, 0x0d, 0x38, 0x58, 0x73, 0x9f, 0xcd, 0xe9, 0x52, 0x55, 0xd3, 0x45, 0x2c, 0x86, 0xa1, 0x74, + 0x63, 0xbc, 0x25, 0xcf, 0x1f, 0xa8, 0x6d, 0x3a, 0x61, 0x29, 0x1c, 0xb0, 0x50, 0xcf, 0x68, 0x5a, + 0x1d, 0x29, 0xb2, 0x33, 0x70, 0xd0, 0x77, 0x86, 0xf8, 0x5f, 0x81, 0xee, 0x86, 0xa6, 0xd5, 0x11, + 0xff, 0xd1, 0x38, 0x97, 0x4d, 0x1d, 0x7f, 0x5c, 0x2d, 0x25, 0xb6, 0x00, 0xd4, 0xb6, 0x28, 0xe8, + 0xc2, 0x82, 0xd3, 0xde, 0xec, 0xdb, 0x90, 0x0f, 0x9c, 0xa2, 0xa7, 0x0a, 0xf4, 0x34, 0xac, 0x13, + 0xf4, 0x55, 0x8c, 0xf5, 0x65, 0x49, 0x05, 0x06, 0x35, 0x5b, 0x71, 0x62, 0xb5, 0x0f, 0xfe, 0x67, + 0x99, 0xa6, 0x9f, 0x11, 0x00, 0xaf, 0x43, 0x69, 0x39, 0xce, 0x56, 0xf4, 0x4f, 0x2d, 0x0c, 0x97, + 0x59, 0x1e, 0xe7, 0x69, 0xee, 0x5e, 0x13, 0xc8, 0x87, 0x3f, 0xfd, 0xf1, 0x69, 0xd7, 0x71, 0xca, + 0x72, 0x31, 0x3f, 0x1a, 0xf9, 0xba, 0xfb, 0x4b, 0x02, 0xbd, 0xae, 0x1d, 0x3a, 0x96, 0xcd, 0x9f, + 0x03, 0xaf, 0x9c, 0x55, 0x1c, 0xd1, 0x9d, 0xf7, 0xd0, 0xbd, 0x48, 0x27, 0xd3, 0xd1, 0x71, 0xcb, + 0xc1, 0x66, 0x5e, 0xa1, 0xbf, 0x12, 0x28, 0x44, 0xed, 0xf8, 0x74, 0x2a, 0x1b, 0x94, 0xf0, 0x58, + 0xc6, 0xbc, 0xd4, 0x86, 0x26, 0xf2, 0xb9, 0xea, 0xf1, 0xa9, 0xd0, 0x73, 0x6d, 0xf0, 0xe1, 0x7c, + 0xef, 0x54, 0xfa, 0x2f, 0x81, 0x63, 0x89, 0xfb, 0x30, 0xad, 0x64, 0x83, 0x9a, 0x30, 0x84, 0x32, + 0xd3, 0x5b, 0x31, 0x81, 0xb4, 0x67, 0x3d, 0xda, 0x57, 0xe8, 0xe5, 0x76, 0x68, 0x7b, 0x53, 0xa4, + 0x3f, 0x00, 0x3f, 0x10, 0x00, 0xcf, 0x5f, 0x4a, 0xb3, 0x84, 0xf6, 0xc4, 0x94, 0x66, 0x09, 0xef, + 0x09, 0xec, 0xfb, 0x1e, 0x0f, 0x9e, 0xce, 0x6c, 0x31, 0x7d, 0xdc, 0x72, 0xf0, 0xcd, 0xb5, 0x42, + 0xff, 0x21, 0x90, 0x8f, 0x88, 0x23, 0x3d, 0x93, 0x88, 0x33, 0x7e, 0x11, 0x66, 0xa6, 0x5a, 0x57, + 0x44, 0xa6, 0xba, 0xc7, 0x54, 0xa6, 0x52, 0xa7, 0x99, 0x46, 0xa6, 0x93, 0xfe, 0x48, 0xa0, 0x10, + 0xb5, 0xf0, 0xa5, 0xb4, 0x6a, 0xc2, 0x6e, 0x9b, 0xd2, 0xaa, 0x49, 0xdb, 0x25, 0x5b, 0xf1, 0x22, + 0x70, 0x9a, 0x9e, 0x8a, 0x8b, 0x40, 0x62, 0x3e, 0x9b, 0xfd, 0x99, 0xb8, 0x27, 0xa5, 0xf4, 0x67, + 0x96, 0x25, 0x31, 0xa5, 0x3f, 0x33, 0xad, 0x69, 0x19, 0xfb, 0xd3, 0xa5, 0x97, 0x31, 0xa1, 0x06, + 0xfd, 0x9e, 0xc0, 0xbe, 0xc0, 0x1a, 0x40, 0xc7, 0x13, 0xd1, 0x46, 0xed, 0x5c, 0xcc, 0x44, 0x2b, + 0x2a, 0x48, 0xe8, 0x9a, 0x47, 0xe8, 0x35, 0x5a, 0x69, 0x87, 0x90, 0x1e, 0x80, 0xfd, 0x94, 0x40, + 0x3e, 0x62, 0x80, 0x4e, 0xe9, 0xcc, 0xf8, 0x4d, 0x81, 0x99, 0x6a, 0x5d, 0x11, 0xa9, 0x5d, 0xf1, + 0xa8, 0x9d, 0xa7, 0x67, 0xdb, 0xa1, 0xe6, 0x7b, 0x99, 0x6f, 0x10, 0xa0, 0x61, 0x67, 0xf4, 0x74, + 0x8b, 0xe8, 0x1c, 0x56, 0x67, 0x5a, 0xd6, 0x43, 0x52, 0xef, 0x79, 0xa4, 0xae, 0xd3, 0x37, 0xb7, + 0x46, 0x2a, 0x3c, 0x03, 0x7c, 0x43, 0x60, 0x7f, 0x70, 0x4e, 0xa5, 0xc9, 0x45, 0x15, 0x39, 0x49, + 0x33, 0x93, 0x2d, 0xe9, 0x20, 0xb3, 0x57, 0x3d, 0x66, 0x13, 0xf4, 0x85, 0x38, 0x66, 0xbe, 0x49, + 0x59, 0x51, 0x6f, 0x6a, 0xdc, 0xb2, 0x3d, 0xa4, 0xaf, 0xd0, 0x8f, 0x08, 0x74, 0x37, 0x47, 0x54, + 0x3a, 0x94, 0xe8, 0xdc, 0x37, 0x0d, 0x33, 0xc3, 0x19, 0x24, 0x11, 0xdc, 0xb0, 0x07, 0xae, 0x48, + 0x8f, 0xc6, 0x81, 0x6b, 0x4e, 0xc4, 0xf4, 0x63, 0x02, 0x3d, 0xf6, 0xfc, 0x4a, 0x47, 0x92, 0x1d, + 0xf8, 0x47, 0x66, 0x66, 0x34, 0x93, 0x2c, 0xc2, 0x19, 0xf5, 0xe0, 0x94, 0x68, 0x31, 0x16, 0x8e, + 0x3d, 0x45, 0x5f, 0x7c, 0xb4, 0x5e, 0x24, 0x8f, 0xd7, 0x8b, 0xe4, 0xf7, 0xf5, 0x22, 0xf9, 0x64, + 0xa3, 0x98, 0x7b, 0xbc, 0x51, 0xcc, 0xfd, 0xb2, 0x51, 0xcc, 0xbd, 0x73, 0x52, 0x56, 0xcc, 0xda, + 0xe2, 0x7c, 0xb9, 0xaa, 0x2d, 0x38, 0x36, 0xec, 0xff, 0xc6, 0x0c, 0xf1, 0x16, 0x77, 0xc7, 0x35, + 0x68, 0xde, 0x6d, 0x48, 0xc6, 0x7c, 0x8f, 0xf5, 0xd7, 0xcb, 0xc9, 0xff, 0x02, 0x00, 0x00, 0xff, + 0xff, 0xcd, 0x26, 0x9b, 0x20, 0xcc, 0x1d, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -3117,6 +3128,18 @@ func (m *QueryHistoricalInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, er _ = i var l int _ = l + if m.HistoricalRecord != nil { + { + size, err := m.HistoricalRecord.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } if m.Hist != nil { { size, err := m.Hist.MarshalToSizedBuffer(dAtA[:i]) @@ -3647,6 +3670,10 @@ func (m *QueryHistoricalInfoResponse) Size() (n int) { l = m.Hist.Size() n += 1 + l + sovQuery(uint64(l)) } + if m.HistoricalRecord != nil { + l = m.HistoricalRecord.Size() + n += 1 + l + sovQuery(uint64(l)) + } return n } @@ -6319,6 +6346,42 @@ func (m *QueryHistoricalInfoResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HistoricalRecord", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.HistoricalRecord == nil { + m.HistoricalRecord = &HistoricalRecord{} + } + if err := m.HistoricalRecord.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 4a1da323813d..ad15129bfa50 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -112,6 +112,8 @@ func (Infraction) EnumDescriptor() ([]byte, []int) { // It is stored as part of staking module's state, which persists the `n` most // recent HistoricalInfo // (`n` is set by the staking module's `historical_entries` parameter). +// +// Deprecated: Do not use. type HistoricalInfo struct { Header types.Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header"` Valset []Validator `protobuf:"bytes,2,rep,name=valset,proto3" json:"valset"` @@ -164,6 +166,70 @@ func (m *HistoricalInfo) GetValset() []Validator { return nil } +// Historical contains a set of minimum values needed for evaluating historical validator sets and blocks. +// It is stored as part of staking module's state, which persists the `n` most +// recent HistoricalInfo +// (`n` is set by the staking module's `historical_entries` parameter). +type HistoricalRecord struct { + Apphash []byte `protobuf:"bytes,1,opt,name=apphash,proto3" json:"apphash,omitempty"` + Time *time.Time `protobuf:"bytes,2,opt,name=time,proto3,stdtime" json:"time,omitempty"` + ValidatorHash []byte `protobuf:"bytes,3,opt,name=validator_hash,json=validatorHash,proto3" json:"validator_hash,omitempty"` +} + +func (m *HistoricalRecord) Reset() { *m = HistoricalRecord{} } +func (m *HistoricalRecord) String() string { return proto.CompactTextString(m) } +func (*HistoricalRecord) ProtoMessage() {} +func (*HistoricalRecord) Descriptor() ([]byte, []int) { + return fileDescriptor_64c30c6cf92913c9, []int{1} +} +func (m *HistoricalRecord) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *HistoricalRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_HistoricalRecord.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *HistoricalRecord) XXX_Merge(src proto.Message) { + xxx_messageInfo_HistoricalRecord.Merge(m, src) +} +func (m *HistoricalRecord) XXX_Size() int { + return m.Size() +} +func (m *HistoricalRecord) XXX_DiscardUnknown() { + xxx_messageInfo_HistoricalRecord.DiscardUnknown(m) +} + +var xxx_messageInfo_HistoricalRecord proto.InternalMessageInfo + +func (m *HistoricalRecord) GetApphash() []byte { + if m != nil { + return m.Apphash + } + return nil +} + +func (m *HistoricalRecord) GetTime() *time.Time { + if m != nil { + return m.Time + } + return nil +} + +func (m *HistoricalRecord) GetValidatorHash() []byte { + if m != nil { + return m.ValidatorHash + } + return nil +} + // CommissionRates defines the initial commission rates to be used for creating // a validator. type CommissionRates struct { @@ -179,7 +245,7 @@ func (m *CommissionRates) Reset() { *m = CommissionRates{} } func (m *CommissionRates) String() string { return proto.CompactTextString(m) } func (*CommissionRates) ProtoMessage() {} func (*CommissionRates) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{1} + return fileDescriptor_64c30c6cf92913c9, []int{2} } func (m *CommissionRates) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -220,7 +286,7 @@ func (m *Commission) Reset() { *m = Commission{} } func (m *Commission) String() string { return proto.CompactTextString(m) } func (*Commission) ProtoMessage() {} func (*Commission) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{2} + return fileDescriptor_64c30c6cf92913c9, []int{3} } func (m *Commission) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -274,7 +340,7 @@ func (m *Description) Reset() { *m = Description{} } func (m *Description) String() string { return proto.CompactTextString(m) } func (*Description) ProtoMessage() {} func (*Description) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{3} + return fileDescriptor_64c30c6cf92913c9, []int{4} } func (m *Description) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -381,7 +447,7 @@ func (m *Validator) Reset() { *m = Validator{} } func (m *Validator) String() string { return proto.CompactTextString(m) } func (*Validator) ProtoMessage() {} func (*Validator) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{4} + return fileDescriptor_64c30c6cf92913c9, []int{5} } func (m *Validator) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -419,7 +485,7 @@ func (m *ValAddresses) Reset() { *m = ValAddresses{} } func (m *ValAddresses) String() string { return proto.CompactTextString(m) } func (*ValAddresses) ProtoMessage() {} func (*ValAddresses) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{5} + return fileDescriptor_64c30c6cf92913c9, []int{6} } func (m *ValAddresses) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -467,7 +533,7 @@ func (m *DVPair) Reset() { *m = DVPair{} } func (m *DVPair) String() string { return proto.CompactTextString(m) } func (*DVPair) ProtoMessage() {} func (*DVPair) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{6} + return fileDescriptor_64c30c6cf92913c9, []int{7} } func (m *DVPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -505,7 +571,7 @@ func (m *DVPairs) Reset() { *m = DVPairs{} } func (m *DVPairs) String() string { return proto.CompactTextString(m) } func (*DVPairs) ProtoMessage() {} func (*DVPairs) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{7} + return fileDescriptor_64c30c6cf92913c9, []int{8} } func (m *DVPairs) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -555,7 +621,7 @@ func (m *DVVTriplet) Reset() { *m = DVVTriplet{} } func (m *DVVTriplet) String() string { return proto.CompactTextString(m) } func (*DVVTriplet) ProtoMessage() {} func (*DVVTriplet) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{8} + return fileDescriptor_64c30c6cf92913c9, []int{9} } func (m *DVVTriplet) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -593,7 +659,7 @@ func (m *DVVTriplets) Reset() { *m = DVVTriplets{} } func (m *DVVTriplets) String() string { return proto.CompactTextString(m) } func (*DVVTriplets) ProtoMessage() {} func (*DVVTriplets) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{9} + return fileDescriptor_64c30c6cf92913c9, []int{10} } func (m *DVVTriplets) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -645,7 +711,7 @@ func (m *Delegation) Reset() { *m = Delegation{} } func (m *Delegation) String() string { return proto.CompactTextString(m) } func (*Delegation) ProtoMessage() {} func (*Delegation) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{10} + return fileDescriptor_64c30c6cf92913c9, []int{11} } func (m *Delegation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -689,7 +755,7 @@ func (m *UnbondingDelegation) Reset() { *m = UnbondingDelegation{} } func (m *UnbondingDelegation) String() string { return proto.CompactTextString(m) } func (*UnbondingDelegation) ProtoMessage() {} func (*UnbondingDelegation) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{11} + return fileDescriptor_64c30c6cf92913c9, []int{12} } func (m *UnbondingDelegation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -738,7 +804,7 @@ func (m *UnbondingDelegationEntry) Reset() { *m = UnbondingDelegationEnt func (m *UnbondingDelegationEntry) String() string { return proto.CompactTextString(m) } func (*UnbondingDelegationEntry) ProtoMessage() {} func (*UnbondingDelegationEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{12} + return fileDescriptor_64c30c6cf92913c9, []int{13} } func (m *UnbondingDelegationEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -815,7 +881,7 @@ func (m *RedelegationEntry) Reset() { *m = RedelegationEntry{} } func (m *RedelegationEntry) String() string { return proto.CompactTextString(m) } func (*RedelegationEntry) ProtoMessage() {} func (*RedelegationEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{13} + return fileDescriptor_64c30c6cf92913c9, []int{14} } func (m *RedelegationEntry) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -889,7 +955,7 @@ func (m *Redelegation) Reset() { *m = Redelegation{} } func (m *Redelegation) String() string { return proto.CompactTextString(m) } func (*Redelegation) ProtoMessage() {} func (*Redelegation) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{14} + return fileDescriptor_64c30c6cf92913c9, []int{15} } func (m *Redelegation) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -938,7 +1004,7 @@ func (m *Params) Reset() { *m = Params{} } func (m *Params) String() string { return proto.CompactTextString(m) } func (*Params) ProtoMessage() {} func (*Params) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{15} + return fileDescriptor_64c30c6cf92913c9, []int{16} } func (m *Params) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1013,7 +1079,7 @@ func (m *DelegationResponse) Reset() { *m = DelegationResponse{} } func (m *DelegationResponse) String() string { return proto.CompactTextString(m) } func (*DelegationResponse) ProtoMessage() {} func (*DelegationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{16} + return fileDescriptor_64c30c6cf92913c9, []int{17} } func (m *DelegationResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1068,7 +1134,7 @@ func (m *RedelegationEntryResponse) Reset() { *m = RedelegationEntryResp func (m *RedelegationEntryResponse) String() string { return proto.CompactTextString(m) } func (*RedelegationEntryResponse) ProtoMessage() {} func (*RedelegationEntryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{17} + return fileDescriptor_64c30c6cf92913c9, []int{18} } func (m *RedelegationEntryResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1116,7 +1182,7 @@ func (m *RedelegationResponse) Reset() { *m = RedelegationResponse{} } func (m *RedelegationResponse) String() string { return proto.CompactTextString(m) } func (*RedelegationResponse) ProtoMessage() {} func (*RedelegationResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{18} + return fileDescriptor_64c30c6cf92913c9, []int{19} } func (m *RedelegationResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1170,7 +1236,7 @@ func (m *Pool) Reset() { *m = Pool{} } func (m *Pool) String() string { return proto.CompactTextString(m) } func (*Pool) ProtoMessage() {} func (*Pool) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{19} + return fileDescriptor_64c30c6cf92913c9, []int{20} } func (m *Pool) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1209,7 +1275,7 @@ func (m *ValidatorUpdates) Reset() { *m = ValidatorUpdates{} } func (m *ValidatorUpdates) String() string { return proto.CompactTextString(m) } func (*ValidatorUpdates) ProtoMessage() {} func (*ValidatorUpdates) Descriptor() ([]byte, []int) { - return fileDescriptor_64c30c6cf92913c9, []int{20} + return fileDescriptor_64c30c6cf92913c9, []int{21} } func (m *ValidatorUpdates) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1249,6 +1315,7 @@ func init() { proto.RegisterEnum("cosmos.staking.v1beta1.BondStatus", BondStatus_name, BondStatus_value) proto.RegisterEnum("cosmos.staking.v1beta1.Infraction", Infraction_name, Infraction_value) proto.RegisterType((*HistoricalInfo)(nil), "cosmos.staking.v1beta1.HistoricalInfo") + proto.RegisterType((*HistoricalRecord)(nil), "cosmos.staking.v1beta1.HistoricalRecord") proto.RegisterType((*CommissionRates)(nil), "cosmos.staking.v1beta1.CommissionRates") proto.RegisterType((*Commission)(nil), "cosmos.staking.v1beta1.Commission") proto.RegisterType((*Description)(nil), "cosmos.staking.v1beta1.Description") @@ -1276,126 +1343,130 @@ func init() { } var fileDescriptor_64c30c6cf92913c9 = []byte{ - // 1901 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4d, 0x6c, 0x63, 0x47, - 0x1d, 0xcf, 0x8b, 0x53, 0x27, 0xf9, 0x3b, 0x89, 0x9d, 0xd9, 0x2f, 0xaf, 0x97, 0xc6, 0x5e, 0x77, - 0xa1, 0xe9, 0xd2, 0xd8, 0x6c, 0x90, 0x7a, 0x08, 0x08, 0x14, 0xc7, 0xde, 0xae, 0x4b, 0x9b, 0x04, - 0x3b, 0x09, 0x94, 0xaf, 0xa7, 0xf1, 0x7b, 0x13, 0x67, 0x88, 0x3d, 0xcf, 0xbc, 0x19, 0x2f, 0xf1, - 0x9d, 0x43, 0x15, 0x84, 0x54, 0x09, 0x09, 0x21, 0xc1, 0x8a, 0x95, 0xb8, 0x94, 0x5b, 0x0f, 0x2b, - 0xee, 0xdc, 0x0a, 0x12, 0xd2, 0x6a, 0x4f, 0x08, 0x89, 0x80, 0x76, 0x0f, 0xad, 0xe0, 0x82, 0x38, - 0x71, 0x44, 0xf3, 0xf1, 0x3e, 0x1c, 0x27, 0x9b, 0xcd, 0xb6, 0x42, 0x15, 0x5c, 0x9e, 0xde, 0xcc, - 0xfc, 0xff, 0xbf, 0x99, 0xff, 0xef, 0xff, 0x31, 0x1f, 0x70, 0xc3, 0xf1, 0x78, 0xd7, 0xe3, 0x65, - 0x2e, 0xf0, 0x3e, 0x65, 0xed, 0xf2, 0xdd, 0x5b, 0x2d, 0x22, 0xf0, 0xad, 0xa0, 0x5d, 0xea, 0xf9, - 0x9e, 0xf0, 0xd0, 0x65, 0x2d, 0x55, 0x0a, 0x7a, 0x8d, 0x54, 0xee, 0x62, 0xdb, 0x6b, 0x7b, 0x4a, - 0xa4, 0x2c, 0xff, 0xb4, 0x74, 0xee, 0x6a, 0xdb, 0xf3, 0xda, 0x1d, 0x52, 0x56, 0xad, 0x56, 0x7f, - 0xb7, 0x8c, 0xd9, 0xc0, 0x0c, 0x2d, 0x1c, 0x1f, 0x72, 0xfb, 0x3e, 0x16, 0xd4, 0x63, 0x66, 0x3c, - 0x7f, 0x7c, 0x5c, 0xd0, 0x2e, 0xe1, 0x02, 0x77, 0x7b, 0x01, 0xb6, 0x5e, 0x89, 0xad, 0x27, 0x35, - 0xcb, 0x32, 0xd8, 0xc6, 0x94, 0x16, 0xe6, 0x24, 0xb4, 0xc3, 0xf1, 0x68, 0x80, 0x3d, 0x8f, 0xbb, - 0x94, 0x79, 0x65, 0xf5, 0x35, 0x5d, 0x9f, 0x11, 0x84, 0xb9, 0xc4, 0xef, 0x52, 0x26, 0xca, 0x62, - 0xd0, 0x23, 0x5c, 0x7f, 0xcd, 0xe8, 0xb5, 0xd8, 0x28, 0x6e, 0x39, 0x34, 0x3e, 0x58, 0xfc, 0xa9, - 0x05, 0x73, 0x77, 0x28, 0x17, 0x9e, 0x4f, 0x1d, 0xdc, 0xa9, 0xb3, 0x5d, 0x0f, 0x7d, 0x09, 0x92, - 0x7b, 0x04, 0xbb, 0xc4, 0xcf, 0x5a, 0x05, 0x6b, 0x31, 0xb5, 0x9c, 0x2d, 0x45, 0x00, 0x25, 0xad, - 0x7b, 0x47, 0x8d, 0x57, 0xa6, 0x3f, 0x38, 0xca, 0x8f, 0xbd, 0xf7, 0xe1, 0xfb, 0x37, 0xad, 0x86, - 0x51, 0x41, 0x55, 0x48, 0xde, 0xc5, 0x1d, 0x4e, 0x44, 0x76, 0xbc, 0x90, 0x58, 0x4c, 0x2d, 0x5f, - 0x2f, 0x9d, 0xcc, 0x79, 0x69, 0x07, 0x77, 0xa8, 0x8b, 0x85, 0x37, 0x8c, 0xa2, 0x75, 0x8b, 0x3f, - 0x1b, 0x87, 0xf4, 0x9a, 0xd7, 0xed, 0x52, 0xce, 0xa9, 0xc7, 0x1a, 0x58, 0x10, 0x8e, 0xde, 0x80, - 0x09, 0x1f, 0x0b, 0xa2, 0x16, 0x35, 0x5d, 0x79, 0x4d, 0x2a, 0xfd, 0xf9, 0x28, 0x7f, 0x4d, 0xc3, - 0x73, 0x77, 0xbf, 0x44, 0xbd, 0x72, 0x17, 0x8b, 0xbd, 0xd2, 0x9b, 0xa4, 0x8d, 0x9d, 0x41, 0x95, - 0x38, 0x8f, 0x1e, 0x2c, 0x81, 0x99, 0xbd, 0x4a, 0x1c, 0x3d, 0x83, 0xc2, 0x40, 0x5f, 0x87, 0xa9, - 0x2e, 0x3e, 0xb0, 0x15, 0xde, 0xf8, 0xc7, 0xc2, 0x9b, 0xec, 0xe2, 0x03, 0xb9, 0x3e, 0xf4, 0x3d, - 0x48, 0x4b, 0x48, 0x67, 0x0f, 0xb3, 0x36, 0xd1, 0xc8, 0x89, 0x8f, 0x85, 0x3c, 0xdb, 0xc5, 0x07, - 0x6b, 0x0a, 0x4d, 0xe2, 0xaf, 0x4c, 0x7c, 0x74, 0x3f, 0x6f, 0x15, 0x7f, 0x67, 0x01, 0x44, 0xc4, - 0x20, 0x0c, 0x19, 0x27, 0x6c, 0xa9, 0x49, 0xb9, 0x71, 0xda, 0xcb, 0xa7, 0xf1, 0x7e, 0x8c, 0xd6, - 0xca, 0xac, 0x5c, 0xde, 0xc3, 0xa3, 0xbc, 0xa5, 0x67, 0x4d, 0x3b, 0x23, 0xb4, 0xa7, 0xfa, 0x3d, - 0x17, 0x0b, 0x62, 0xcb, 0x18, 0x56, 0x6c, 0xa5, 0x96, 0x73, 0x25, 0x1d, 0xe0, 0xa5, 0x20, 0xc0, - 0x4b, 0x5b, 0x41, 0x80, 0x6b, 0xc0, 0x77, 0xff, 0x1a, 0x00, 0x82, 0xd6, 0x96, 0xe3, 0xc6, 0x86, - 0xf7, 0x2c, 0x48, 0x55, 0x09, 0x77, 0x7c, 0xda, 0x93, 0x29, 0x83, 0xb2, 0x30, 0xd9, 0xf5, 0x18, - 0xdd, 0x37, 0x01, 0x37, 0xdd, 0x08, 0x9a, 0x28, 0x07, 0x53, 0xd4, 0x25, 0x4c, 0x50, 0x31, 0xd0, - 0x6e, 0x6a, 0x84, 0x6d, 0xa9, 0xf5, 0x43, 0xd2, 0xe2, 0x34, 0xe0, 0xb9, 0x11, 0x34, 0xd1, 0x2b, - 0x90, 0xe1, 0xc4, 0xe9, 0xfb, 0x54, 0x0c, 0x6c, 0xc7, 0x63, 0x02, 0x3b, 0x22, 0x3b, 0xa1, 0x44, - 0xd2, 0x41, 0xff, 0x9a, 0xee, 0x96, 0x20, 0x2e, 0x11, 0x98, 0x76, 0x78, 0xf6, 0x05, 0x0d, 0x62, - 0x9a, 0x66, 0xa9, 0x87, 0x93, 0x30, 0x1d, 0x06, 0x2a, 0x5a, 0x83, 0x8c, 0xd7, 0x23, 0xbe, 0xfc, - 0xb7, 0xb1, 0xeb, 0xfa, 0x84, 0x73, 0x13, 0x8d, 0xd9, 0x47, 0x0f, 0x96, 0x2e, 0x1a, 0xc2, 0x57, - 0xf5, 0x48, 0x53, 0xf8, 0x94, 0xb5, 0x1b, 0xe9, 0x40, 0xc3, 0x74, 0xa3, 0xb7, 0xa5, 0xcb, 0x18, - 0x27, 0x8c, 0xf7, 0xb9, 0xdd, 0xeb, 0xb7, 0xf6, 0xc9, 0xc0, 0x90, 0x7a, 0x71, 0x84, 0xd4, 0x55, - 0x36, 0xa8, 0x64, 0xff, 0x10, 0x41, 0x3b, 0xfe, 0xa0, 0x27, 0xbc, 0xd2, 0x66, 0xbf, 0xf5, 0x35, - 0x32, 0x90, 0xae, 0x32, 0x38, 0x9b, 0x0a, 0x06, 0x5d, 0x86, 0xe4, 0xf7, 0x31, 0xed, 0x10, 0x57, - 0x31, 0x32, 0xd5, 0x30, 0x2d, 0xb4, 0x02, 0x49, 0x2e, 0xb0, 0xe8, 0x73, 0x45, 0xc3, 0xdc, 0x72, - 0xf1, 0xb4, 0xd8, 0xa8, 0x78, 0xcc, 0x6d, 0x2a, 0xc9, 0x86, 0xd1, 0x40, 0x6b, 0x90, 0x14, 0xde, - 0x3e, 0x61, 0x86, 0xa0, 0xca, 0xe7, 0x4d, 0x34, 0x5f, 0x1a, 0x8d, 0xe6, 0x3a, 0x13, 0xb1, 0x38, - 0xae, 0x33, 0xd1, 0x30, 0xaa, 0xe8, 0x3b, 0x90, 0x71, 0x49, 0x87, 0xb4, 0x15, 0x73, 0x7c, 0x0f, - 0xfb, 0x84, 0x67, 0x93, 0x0a, 0xee, 0xd6, 0xb9, 0x93, 0xa3, 0x91, 0x0e, 0xa1, 0x9a, 0x0a, 0x09, - 0x6d, 0x42, 0xca, 0x8d, 0xc2, 0x29, 0x3b, 0xa9, 0xc8, 0x7c, 0xe9, 0x34, 0x1b, 0x63, 0x91, 0x17, - 0xaf, 0x3c, 0x71, 0x08, 0x19, 0x41, 0x7d, 0xd6, 0xf2, 0x98, 0x4b, 0x59, 0xdb, 0xde, 0x23, 0xb4, - 0xbd, 0x27, 0xb2, 0x53, 0x05, 0x6b, 0x31, 0xd1, 0x48, 0x87, 0xfd, 0x77, 0x54, 0x37, 0xda, 0x84, - 0xb9, 0x48, 0x54, 0x65, 0xc8, 0xf4, 0x79, 0x33, 0x64, 0x36, 0x04, 0x90, 0x22, 0xe8, 0x2d, 0x80, - 0x28, 0x07, 0xb3, 0xa0, 0xd0, 0x8a, 0x67, 0x67, 0x73, 0xdc, 0x98, 0x18, 0x00, 0xfa, 0x36, 0x5c, - 0xe8, 0x52, 0x66, 0x73, 0xd2, 0xd9, 0xb5, 0x0d, 0x73, 0x12, 0x37, 0x75, 0x7e, 0x6f, 0xce, 0x77, - 0x29, 0x6b, 0x92, 0xce, 0x6e, 0x35, 0x44, 0x41, 0x5f, 0x86, 0x6b, 0x91, 0xf5, 0x1e, 0xb3, 0xf7, - 0xbc, 0x8e, 0x6b, 0xfb, 0x64, 0xd7, 0x76, 0xbc, 0x3e, 0x13, 0xd9, 0x19, 0xc5, 0xd9, 0x95, 0x50, - 0x64, 0x83, 0xdd, 0xf1, 0x3a, 0x6e, 0x83, 0xec, 0xae, 0xc9, 0x61, 0xf4, 0x12, 0x44, 0xa6, 0xdb, - 0xd4, 0xe5, 0xd9, 0xd9, 0x42, 0x62, 0x71, 0xa2, 0x31, 0x13, 0x76, 0xd6, 0x5d, 0xbe, 0x32, 0xf5, - 0xce, 0xfd, 0xfc, 0xd8, 0x47, 0xf7, 0xf3, 0x63, 0xc5, 0xdb, 0x30, 0xb3, 0x83, 0x3b, 0x26, 0x8f, - 0x08, 0x47, 0xaf, 0xc1, 0x34, 0x0e, 0x1a, 0x59, 0xab, 0x90, 0x78, 0x6a, 0x1e, 0x46, 0xa2, 0xc5, - 0xdf, 0x58, 0x90, 0xac, 0xee, 0x6c, 0x62, 0xea, 0xa3, 0x1a, 0xcc, 0x47, 0x81, 0xf9, 0xac, 0x29, - 0x1d, 0xc5, 0x72, 0x90, 0xd3, 0xeb, 0x30, 0x7f, 0x37, 0xa8, 0x12, 0x21, 0x8c, 0xde, 0x57, 0xae, - 0x3f, 0x7a, 0xb0, 0xf4, 0xa2, 0x81, 0x09, 0x2b, 0xc9, 0x31, 0xbc, 0xbb, 0xc7, 0xfa, 0x63, 0x36, - 0xbf, 0x01, 0x93, 0x7a, 0xa9, 0x1c, 0x7d, 0x15, 0x5e, 0xe8, 0xc9, 0x1f, 0x65, 0x6a, 0x6a, 0x79, - 0xe1, 0xd4, 0x00, 0x57, 0xf2, 0xf1, 0x70, 0xd0, 0x7a, 0xc5, 0x1f, 0x8f, 0x03, 0x54, 0x77, 0x76, - 0xb6, 0x7c, 0xda, 0xeb, 0x10, 0xf1, 0x49, 0xd9, 0xbe, 0x0d, 0x97, 0x22, 0xdb, 0xb9, 0xef, 0x9c, - 0xdf, 0xfe, 0x0b, 0xa1, 0x7e, 0xd3, 0x77, 0x4e, 0x84, 0x75, 0xb9, 0x08, 0x61, 0x13, 0xe7, 0x87, - 0xad, 0x72, 0x31, 0xca, 0xec, 0x37, 0x21, 0x15, 0x91, 0xc1, 0x51, 0x1d, 0xa6, 0x84, 0xf9, 0x37, - 0x04, 0x17, 0x4f, 0x27, 0x38, 0x50, 0x8b, 0x93, 0x1c, 0xaa, 0x17, 0xff, 0x6d, 0x01, 0xc4, 0x72, - 0xe4, 0xd3, 0x19, 0x63, 0xa8, 0x0e, 0x49, 0x53, 0x89, 0x13, 0xcf, 0x5b, 0x89, 0x0d, 0x40, 0x8c, - 0xd4, 0x9f, 0x8c, 0xc3, 0x85, 0xed, 0x20, 0x7b, 0x3f, 0xfd, 0x1c, 0x6c, 0xc3, 0x24, 0x61, 0xc2, - 0xa7, 0x8a, 0x04, 0xe9, 0xf3, 0x2f, 0x9c, 0xe6, 0xf3, 0x13, 0x8c, 0xaa, 0x31, 0xe1, 0x0f, 0xe2, - 0x11, 0x10, 0x60, 0xc5, 0xf8, 0xf8, 0x45, 0x02, 0xb2, 0xa7, 0xa9, 0xa2, 0x97, 0x21, 0xed, 0xf8, - 0x44, 0x75, 0x04, 0x9b, 0x8c, 0xa5, 0x0a, 0xe6, 0x5c, 0xd0, 0x6d, 0xf6, 0x98, 0x06, 0xc8, 0x53, - 0x99, 0x0c, 0x2e, 0x29, 0xfa, 0x7c, 0xc7, 0xb0, 0xb9, 0x08, 0x41, 0xed, 0x32, 0x5b, 0x90, 0xa6, - 0x8c, 0x0a, 0x8a, 0x3b, 0x76, 0x0b, 0x77, 0x30, 0x73, 0x82, 0xe3, 0xea, 0xb9, 0xb6, 0x84, 0x39, - 0x83, 0x51, 0xd1, 0x10, 0xa8, 0x06, 0x93, 0x01, 0xda, 0xc4, 0xf9, 0xd1, 0x02, 0x5d, 0x74, 0x1d, - 0x66, 0xe2, 0x1b, 0x83, 0x3a, 0x7a, 0x4c, 0x34, 0x52, 0xb1, 0x7d, 0xe1, 0xac, 0x9d, 0x27, 0xf9, - 0xd4, 0x9d, 0xc7, 0x9c, 0xee, 0x7e, 0x95, 0x80, 0xf9, 0x06, 0x71, 0xff, 0xf7, 0xdd, 0xb2, 0x09, - 0xa0, 0x53, 0x55, 0x56, 0x52, 0xe3, 0x99, 0xe7, 0xc8, 0xf7, 0x69, 0x0d, 0x52, 0xe5, 0xe2, 0xbf, - 0xe5, 0xa1, 0xbf, 0x8c, 0xc3, 0x4c, 0xdc, 0x43, 0xff, 0x97, 0x9b, 0x16, 0x5a, 0x8f, 0xca, 0xd4, - 0x84, 0x2a, 0x53, 0xaf, 0x9c, 0x56, 0xa6, 0x46, 0xa2, 0xf9, 0x8c, 0xfa, 0xf4, 0xcb, 0x04, 0x24, - 0x37, 0xb1, 0x8f, 0xbb, 0x1c, 0x6d, 0x8c, 0x1c, 0x64, 0xf5, 0x45, 0xf2, 0xea, 0x48, 0x30, 0x57, - 0xcd, 0x5b, 0x87, 0x8e, 0xe5, 0x9f, 0x9f, 0x76, 0x8e, 0xfd, 0x2c, 0xcc, 0xc9, 0x0b, 0x71, 0x68, - 0x90, 0x26, 0x77, 0x56, 0xdd, 0x6b, 0x43, 0xeb, 0x39, 0xca, 0x43, 0x4a, 0x8a, 0x45, 0x75, 0x58, - 0xca, 0x40, 0x17, 0x1f, 0xd4, 0x74, 0x0f, 0x5a, 0x02, 0xb4, 0x17, 0x3e, 0x50, 0xd8, 0x11, 0x11, - 0x52, 0x6e, 0x3e, 0x1a, 0x09, 0xc4, 0x5f, 0x04, 0x90, 0xab, 0xb0, 0x5d, 0xc2, 0xbc, 0xae, 0xb9, - 0xd5, 0x4d, 0xcb, 0x9e, 0xaa, 0xec, 0x40, 0x3f, 0xb2, 0xf4, 0x79, 0xf8, 0xd8, 0xb5, 0xd9, 0x5c, - 0x47, 0xb6, 0x9e, 0x21, 0x29, 0xfe, 0x75, 0x94, 0xcf, 0x0d, 0x70, 0xb7, 0xb3, 0x52, 0x3c, 0x01, - 0xa7, 0x78, 0xd2, 0x4d, 0x5e, 0x1e, 0x9c, 0x87, 0xaf, 0xdd, 0x2b, 0x37, 0x64, 0x78, 0x1f, 0x7e, - 0xf8, 0xfe, 0x4d, 0x33, 0xd3, 0x12, 0x77, 0xf7, 0xcb, 0x07, 0xe1, 0xf3, 0x95, 0xf6, 0x89, 0x3c, - 0xa9, 0xa2, 0x68, 0xd7, 0x68, 0x10, 0xde, 0x93, 0x37, 0x3e, 0x79, 0x43, 0x88, 0x9d, 0xe4, 0xad, - 0xa7, 0xdf, 0x10, 0x22, 0xfd, 0xa1, 0x1b, 0x42, 0x2c, 0xa7, 0xbe, 0x12, 0x15, 0xed, 0x71, 0xe3, - 0x72, 0x83, 0xd5, 0xc2, 0x9c, 0xc4, 0xae, 0x1a, 0x74, 0x08, 0x22, 0x50, 0x52, 0xa9, 0x3a, 0x56, - 0xfc, 0xa3, 0x05, 0x57, 0x47, 0xc2, 0x2f, 0x5c, 0xb2, 0x03, 0xc8, 0x8f, 0x0d, 0x2a, 0x37, 0x0e, - 0xcc, 0xd2, 0x9f, 0x2f, 0x9a, 0xe7, 0xfd, 0x91, 0xca, 0xfd, 0xc9, 0xec, 0x3e, 0xa6, 0xf4, 0xfc, - 0xde, 0x82, 0x8b, 0xf1, 0x05, 0x84, 0xa6, 0x34, 0x61, 0x26, 0x3e, 0xb5, 0x31, 0xe2, 0xc6, 0xb3, - 0x18, 0x11, 0x5f, 0xff, 0x10, 0x08, 0xda, 0x89, 0x52, 0x5c, 0xbf, 0x9b, 0xdd, 0x7a, 0x66, 0x52, - 0x82, 0x85, 0x9d, 0x98, 0xea, 0xda, 0x37, 0xff, 0xb0, 0x60, 0x62, 0xd3, 0xf3, 0x3a, 0xe8, 0x07, - 0x30, 0xcf, 0x3c, 0x61, 0xcb, 0x74, 0x20, 0xae, 0x6d, 0x2e, 0xf6, 0xba, 0x7c, 0xd6, 0x9e, 0xca, - 0xd5, 0xdf, 0x8f, 0xf2, 0xa3, 0x9a, 0xc3, 0x04, 0x9a, 0xf7, 0x23, 0xe6, 0x89, 0x8a, 0x12, 0xda, - 0xd2, 0x77, 0xff, 0x5d, 0x98, 0x1d, 0x9e, 0x4e, 0x97, 0xd8, 0xd5, 0xb3, 0xa6, 0x9b, 0x3d, 0x73, - 0xaa, 0x99, 0x56, 0x6c, 0x9e, 0x95, 0x29, 0xe9, 0xb5, 0x7f, 0x4a, 0xcf, 0xbd, 0x0d, 0x99, 0xb0, - 0xbe, 0x6c, 0xab, 0xc7, 0x27, 0x2e, 0x43, 0x43, 0xbf, 0x43, 0x05, 0xa7, 0xfb, 0x42, 0xfc, 0x51, - 0x13, 0xb7, 0x1c, 0x5a, 0x3a, 0xa6, 0x33, 0x44, 0xa7, 0xd1, 0xbd, 0xf9, 0x5b, 0x0b, 0x20, 0x7a, - 0x24, 0x41, 0xaf, 0xc2, 0x95, 0xca, 0xc6, 0x7a, 0xd5, 0x6e, 0x6e, 0xad, 0x6e, 0x6d, 0x37, 0xed, - 0xed, 0xf5, 0xe6, 0x66, 0x6d, 0xad, 0x7e, 0xbb, 0x5e, 0xab, 0x66, 0xc6, 0x72, 0xe9, 0xc3, 0x7b, - 0x85, 0xd4, 0x36, 0xe3, 0x3d, 0xe2, 0xd0, 0x5d, 0x4a, 0x5c, 0xf4, 0x39, 0xb8, 0x38, 0x2c, 0x2d, - 0x5b, 0xb5, 0x6a, 0xc6, 0xca, 0xcd, 0x1c, 0xde, 0x2b, 0x4c, 0xe9, 0x73, 0x22, 0x71, 0xd1, 0x22, - 0x5c, 0x1a, 0x95, 0xab, 0xaf, 0xbf, 0x9e, 0x19, 0xcf, 0xcd, 0x1e, 0xde, 0x2b, 0x4c, 0x87, 0x07, - 0x4a, 0x54, 0x04, 0x14, 0x97, 0x34, 0x78, 0x89, 0x1c, 0x1c, 0xde, 0x2b, 0x24, 0xb5, 0x17, 0x72, - 0x13, 0xef, 0xfc, 0x7a, 0x61, 0xec, 0xe6, 0x77, 0x01, 0xea, 0x6c, 0xd7, 0xc7, 0x8e, 0x8a, 0xb6, - 0x1c, 0x5c, 0xae, 0xaf, 0xdf, 0x6e, 0xac, 0xae, 0x6d, 0xd5, 0x37, 0xd6, 0x87, 0x97, 0x7d, 0x6c, - 0xac, 0xba, 0xb1, 0x5d, 0x79, 0xb3, 0x66, 0x37, 0xeb, 0xaf, 0xaf, 0x67, 0x2c, 0x74, 0x05, 0x2e, - 0x0c, 0x8d, 0x7d, 0x63, 0x7d, 0xab, 0xfe, 0x56, 0x2d, 0x33, 0x5e, 0xb9, 0xfd, 0xc1, 0xe3, 0x05, - 0xeb, 0xe1, 0xe3, 0x05, 0xeb, 0x6f, 0x8f, 0x17, 0xac, 0x77, 0x9f, 0x2c, 0x8c, 0x3d, 0x7c, 0xb2, - 0x30, 0xf6, 0xa7, 0x27, 0x0b, 0x63, 0xdf, 0x7a, 0xb5, 0x4d, 0xc5, 0x5e, 0xbf, 0x55, 0x72, 0xbc, - 0xae, 0x79, 0xe6, 0x2e, 0x9f, 0x58, 0xf1, 0xd4, 0xbb, 0x72, 0x2b, 0xa9, 0x36, 0x99, 0x2f, 0xfe, - 0x27, 0x00, 0x00, 0xff, 0xff, 0x7a, 0x6b, 0x77, 0xd8, 0xcf, 0x17, 0x00, 0x00, + // 1958 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4b, 0x6c, 0x63, 0x57, + 0x19, 0xce, 0xb5, 0x5d, 0x27, 0xf9, 0x9d, 0xc4, 0xce, 0x99, 0x97, 0xc7, 0x43, 0x63, 0x8f, 0x3b, + 0xa5, 0xe9, 0xd0, 0xd8, 0xcc, 0x80, 0xba, 0x08, 0x08, 0x14, 0xc7, 0x9e, 0xc6, 0xa5, 0x4d, 0xc2, + 0x75, 0x12, 0x28, 0xaf, 0xab, 0xe3, 0x7b, 0x4f, 0xec, 0x4b, 0x7c, 0xef, 0x35, 0xf7, 0x1c, 0x0f, + 0xf1, 0x9e, 0x45, 0x09, 0x42, 0xea, 0x0a, 0x90, 0x60, 0xc4, 0x48, 0x6c, 0xca, 0xae, 0x8b, 0x11, + 0x7b, 0x76, 0x05, 0x09, 0x69, 0x34, 0x2b, 0x84, 0x44, 0x40, 0x33, 0x8b, 0x56, 0xb0, 0x41, 0xac, + 0x58, 0xa2, 0xf3, 0xb8, 0x0f, 0xc7, 0xc9, 0x24, 0x99, 0x56, 0xa8, 0xa2, 0x1b, 0xcb, 0xe7, 0x9c, + 0xff, 0xff, 0xee, 0xff, 0x7f, 0xff, 0xe3, 0x3c, 0xe0, 0x86, 0xe9, 0x51, 0xc7, 0xa3, 0x55, 0xca, + 0xf0, 0x9e, 0xed, 0x76, 0xaa, 0x77, 0x6f, 0xb5, 0x09, 0xc3, 0xb7, 0x82, 0x71, 0xa5, 0xef, 0x7b, + 0xcc, 0x43, 0x97, 0xa5, 0x54, 0x25, 0x98, 0x55, 0x52, 0x85, 0x8b, 0x1d, 0xaf, 0xe3, 0x09, 0x91, + 0x2a, 0xff, 0x27, 0xa5, 0x0b, 0x57, 0x3b, 0x9e, 0xd7, 0xe9, 0x91, 0xaa, 0x18, 0xb5, 0x07, 0xbb, + 0x55, 0xec, 0x0e, 0xd5, 0xd2, 0xc2, 0xd1, 0x25, 0x6b, 0xe0, 0x63, 0x66, 0x7b, 0xae, 0x5a, 0x2f, + 0x1e, 0x5d, 0x67, 0xb6, 0x43, 0x28, 0xc3, 0x4e, 0x3f, 0xc0, 0x96, 0x96, 0x18, 0xf2, 0xa3, 0xca, + 0x2c, 0x85, 0xad, 0x5c, 0x69, 0x63, 0x4a, 0x42, 0x3f, 0x4c, 0xcf, 0x0e, 0xb0, 0xe7, 0xb1, 0x63, + 0xbb, 0x5e, 0x55, 0xfc, 0xaa, 0xa9, 0xcf, 0x30, 0xe2, 0x5a, 0xc4, 0x77, 0x6c, 0x97, 0x55, 0xd9, + 0xb0, 0x4f, 0xa8, 0xfc, 0x55, 0xab, 0xd7, 0x62, 0xab, 0xb8, 0x6d, 0xda, 0xf1, 0xc5, 0xf2, 0xcf, + 0x35, 0x98, 0x5b, 0xb3, 0x29, 0xf3, 0x7c, 0xdb, 0xc4, 0xbd, 0xa6, 0xbb, 0xeb, 0xa1, 0x2f, 0x41, + 0xba, 0x4b, 0xb0, 0x45, 0xfc, 0xbc, 0x56, 0xd2, 0x16, 0x33, 0xb7, 0xf3, 0x95, 0x08, 0xa0, 0x22, + 0x75, 0xd7, 0xc4, 0x7a, 0x6d, 0xfa, 0xfd, 0xc3, 0xe2, 0xc4, 0xbb, 0x1f, 0xbc, 0x77, 0x53, 0xd3, + 0x95, 0x0a, 0xaa, 0x43, 0xfa, 0x2e, 0xee, 0x51, 0xc2, 0xf2, 0x89, 0x52, 0x72, 0x31, 0x73, 0xfb, + 0x7a, 0xe5, 0x78, 0xce, 0x2b, 0x3b, 0xb8, 0x67, 0x5b, 0x98, 0x79, 0xa3, 0x28, 0x52, 0x77, 0x39, + 0x91, 0xd7, 0xca, 0x3f, 0xd6, 0x20, 0x17, 0x59, 0xa6, 0x13, 0xd3, 0xf3, 0x2d, 0x94, 0x87, 0x49, + 0xdc, 0xef, 0x77, 0x31, 0xed, 0x0a, 0xe3, 0x66, 0xf4, 0x60, 0x88, 0xbe, 0x08, 0x29, 0x4e, 0x72, + 0x3e, 0x21, 0x6c, 0x2e, 0x54, 0x64, 0x04, 0x2a, 0x41, 0x04, 0x2a, 0x5b, 0x41, 0x04, 0x6a, 0xa9, + 0x77, 0xfe, 0x56, 0xd4, 0x74, 0x21, 0x8d, 0x5e, 0x84, 0xb9, 0xbb, 0x81, 0x21, 0x86, 0x80, 0x4d, + 0x0a, 0xd8, 0xd9, 0x70, 0x76, 0x0d, 0xd3, 0x6e, 0xf9, 0x67, 0x09, 0xc8, 0xae, 0x7a, 0x8e, 0x63, + 0x53, 0x6a, 0x7b, 0xae, 0x8e, 0x19, 0xa1, 0xe8, 0x75, 0x48, 0xf9, 0x98, 0x11, 0x61, 0xc7, 0x74, + 0xed, 0x55, 0xee, 0xc4, 0x5f, 0x0e, 0x8b, 0xd7, 0xa4, 0xbb, 0xd4, 0xda, 0xab, 0xd8, 0x5e, 0xd5, + 0xc1, 0xac, 0x5b, 0x79, 0x83, 0x74, 0xb0, 0x39, 0xac, 0x13, 0xf3, 0xd1, 0x83, 0x25, 0x50, 0x6c, + 0xd4, 0x89, 0x29, 0x3d, 0x16, 0x18, 0xe8, 0xeb, 0x30, 0xe5, 0xe0, 0x7d, 0x43, 0xe0, 0x25, 0x3e, + 0x12, 0xde, 0xa4, 0x83, 0xf7, 0xb9, 0x7d, 0xe8, 0x7b, 0x90, 0xe5, 0x90, 0x66, 0x17, 0xbb, 0x1d, + 0x22, 0x91, 0x93, 0x1f, 0x09, 0x79, 0xd6, 0xc1, 0xfb, 0xab, 0x02, 0x8d, 0xe3, 0x2f, 0xa7, 0x3e, + 0xbc, 0x5f, 0xd4, 0xca, 0xbf, 0xd7, 0x00, 0x22, 0x62, 0x10, 0x86, 0x9c, 0x19, 0x8e, 0xc4, 0x47, + 0xa9, 0x4a, 0xa2, 0x97, 0x4e, 0xca, 0x83, 0x23, 0xb4, 0xd6, 0x66, 0xb9, 0x79, 0x0f, 0x0f, 0x8b, + 0x9a, 0xfc, 0x6a, 0xd6, 0x1c, 0xa3, 0x3d, 0x33, 0xe8, 0x5b, 0x98, 0x11, 0xe3, 0x8c, 0xe1, 0x16, + 0x80, 0x3c, 0xe4, 0x12, 0x10, 0xa4, 0x36, 0x5f, 0x57, 0x3e, 0xbc, 0xab, 0x41, 0xa6, 0x4e, 0xa8, + 0xe9, 0xdb, 0x7d, 0x5e, 0xc2, 0x3c, 0xc7, 0x1c, 0xcf, 0xb5, 0xf7, 0x54, 0x01, 0x4c, 0xeb, 0xc1, + 0x10, 0x15, 0x60, 0xca, 0xb6, 0x88, 0xcb, 0x6c, 0x36, 0x94, 0x61, 0xd2, 0xc3, 0x31, 0xd7, 0xfa, + 0x21, 0x69, 0x53, 0x3b, 0xe0, 0x59, 0x0f, 0x86, 0xe8, 0x65, 0xc8, 0x51, 0x62, 0x0e, 0x7c, 0x9b, + 0x0d, 0x0d, 0xd3, 0x73, 0x19, 0x36, 0x59, 0x3e, 0x25, 0x44, 0xb2, 0xc1, 0xfc, 0xaa, 0x9c, 0xe6, + 0x20, 0x16, 0x61, 0xd8, 0xee, 0xd1, 0xfc, 0x73, 0x12, 0x44, 0x0d, 0x95, 0xa9, 0x07, 0x93, 0x30, + 0x1d, 0x16, 0x0e, 0x5a, 0x85, 0x9c, 0xd7, 0x27, 0xbe, 0xc8, 0x5d, 0x6c, 0x59, 0x3e, 0xa1, 0x54, + 0x65, 0x63, 0xfe, 0xd1, 0x83, 0xa5, 0x8b, 0x8a, 0xf0, 0x15, 0xb9, 0xd2, 0x62, 0xbe, 0xed, 0x76, + 0xf4, 0x6c, 0xa0, 0xa1, 0xa6, 0xd1, 0x5b, 0x3c, 0x64, 0x2e, 0x25, 0x2e, 0x1d, 0x50, 0xa3, 0x3f, + 0x68, 0xef, 0x91, 0xa1, 0x22, 0xf5, 0xe2, 0x18, 0xa9, 0x2b, 0xee, 0xb0, 0x96, 0xff, 0x63, 0x04, + 0x6d, 0xfa, 0xc3, 0x3e, 0xf3, 0x2a, 0x9b, 0x83, 0xf6, 0xd7, 0xc8, 0x90, 0x87, 0x4a, 0xe1, 0x6c, + 0x0a, 0x18, 0x74, 0x19, 0xd2, 0xdf, 0xc7, 0x76, 0x8f, 0x58, 0x82, 0x91, 0x29, 0x5d, 0x8d, 0xd0, + 0x32, 0xa4, 0x29, 0xc3, 0x6c, 0x40, 0x05, 0x0d, 0x73, 0xb7, 0xcb, 0x27, 0xe5, 0x46, 0xcd, 0x73, + 0xad, 0x96, 0x90, 0xd4, 0x95, 0x06, 0x5a, 0x85, 0x34, 0xf3, 0xf6, 0x88, 0xab, 0x08, 0xaa, 0x7d, + 0x4e, 0x65, 0xf3, 0xa5, 0xf1, 0x6c, 0x6e, 0xba, 0x2c, 0x96, 0xc7, 0x4d, 0x97, 0xe9, 0x4a, 0x15, + 0x7d, 0x07, 0x72, 0x16, 0xe9, 0x91, 0x8e, 0x60, 0x8e, 0x76, 0xb1, 0x4f, 0x68, 0x3e, 0x2d, 0xe0, + 0x6e, 0x9d, 0xbb, 0x38, 0xf4, 0x6c, 0x08, 0xd5, 0x12, 0x48, 0x68, 0x13, 0x32, 0x56, 0x94, 0x4e, + 0xf9, 0x49, 0x41, 0xe6, 0x0b, 0x27, 0xf9, 0x18, 0xcb, 0xbc, 0x78, 0x27, 0x8c, 0x43, 0xf0, 0x0c, + 0x1a, 0xb8, 0x6d, 0xcf, 0xb5, 0x6c, 0xb7, 0x63, 0x74, 0x89, 0xdd, 0xe9, 0xb2, 0xfc, 0x54, 0x49, + 0x5b, 0x4c, 0xea, 0xd9, 0x70, 0x7e, 0x4d, 0x4c, 0xa3, 0x4d, 0x98, 0x8b, 0x44, 0x45, 0x85, 0x4c, + 0x9f, 0xb7, 0x42, 0x66, 0x43, 0x00, 0x2e, 0x82, 0xde, 0x04, 0x88, 0x6a, 0x30, 0x0f, 0x02, 0xad, + 0x7c, 0x7a, 0x35, 0xc7, 0x9d, 0x89, 0x01, 0xa0, 0x6f, 0xc3, 0x05, 0xc7, 0x76, 0x0d, 0x4a, 0x7a, + 0xbb, 0x86, 0x62, 0x8e, 0xe3, 0x66, 0xce, 0x1f, 0xcd, 0x79, 0xc7, 0x76, 0x5b, 0xa4, 0xb7, 0x5b, + 0x0f, 0x51, 0xd0, 0x97, 0xe1, 0x5a, 0xe4, 0xbd, 0xe7, 0x1a, 0x5d, 0xaf, 0x67, 0x19, 0x3e, 0xd9, + 0x35, 0x4c, 0x6f, 0xe0, 0xb2, 0xfc, 0x8c, 0xe0, 0xec, 0x4a, 0x28, 0xb2, 0xe1, 0xae, 0x79, 0x3d, + 0x4b, 0x27, 0xbb, 0xab, 0x7c, 0x19, 0xbd, 0x00, 0x91, 0xeb, 0x86, 0x6d, 0xd1, 0xfc, 0x6c, 0x29, + 0xb9, 0x98, 0xd2, 0x67, 0xc2, 0xc9, 0xa6, 0x45, 0x97, 0xa7, 0xde, 0xbe, 0x5f, 0x9c, 0xf8, 0xf0, + 0x7e, 0x71, 0xa2, 0x7c, 0x07, 0x66, 0x76, 0x70, 0x4f, 0xd5, 0x11, 0xa1, 0xe8, 0x55, 0x98, 0xc6, + 0xc1, 0x20, 0xaf, 0x95, 0x92, 0x4f, 0xad, 0xc3, 0x48, 0xb4, 0xfc, 0x5b, 0x0d, 0xd2, 0xf5, 0x9d, + 0x4d, 0x6c, 0xfb, 0xa8, 0x01, 0xf3, 0x51, 0x62, 0x9e, 0xb5, 0xa4, 0xa3, 0x5c, 0x0e, 0x6a, 0x7a, + 0x1d, 0xe6, 0xa3, 0x5d, 0x2d, 0x80, 0x91, 0xfb, 0xca, 0xf5, 0x47, 0x0f, 0x96, 0x9e, 0x57, 0x30, + 0x61, 0x27, 0x39, 0x82, 0x77, 0xf7, 0xc8, 0x7c, 0xcc, 0xe7, 0xd7, 0x61, 0x52, 0x9a, 0x4a, 0xd1, + 0x57, 0xe1, 0xb9, 0x3e, 0xff, 0x23, 0x5c, 0xcd, 0xdc, 0x5e, 0x38, 0x31, 0xc1, 0x85, 0x7c, 0x3c, + 0x1d, 0xa4, 0x5e, 0xf9, 0x27, 0x09, 0x80, 0xfa, 0xce, 0xce, 0x96, 0x6f, 0xf7, 0x7b, 0x84, 0x7d, + 0x5c, 0xbe, 0x6f, 0xc3, 0xa5, 0xc8, 0x77, 0xea, 0x9b, 0xe7, 0xf7, 0xff, 0x42, 0xa8, 0xdf, 0xf2, + 0xcd, 0x63, 0x61, 0x2d, 0xca, 0x42, 0xd8, 0xe4, 0xf9, 0x61, 0xeb, 0x94, 0x8d, 0x33, 0xfb, 0x4d, + 0xc8, 0x44, 0x64, 0x50, 0xd4, 0x84, 0x29, 0xa6, 0xfe, 0x2b, 0x82, 0xcb, 0x27, 0x13, 0x1c, 0xa8, + 0xc5, 0x49, 0x0e, 0xd5, 0xcb, 0xff, 0xd1, 0x00, 0x62, 0x35, 0xf2, 0xc9, 0xcc, 0x31, 0xd4, 0x84, + 0xb4, 0xea, 0xc4, 0xc9, 0x67, 0xed, 0xc4, 0x0a, 0x20, 0x46, 0xea, 0x4f, 0x13, 0x70, 0x61, 0x3b, + 0xa8, 0xde, 0x4f, 0x3e, 0x07, 0xdb, 0x30, 0x49, 0x5c, 0xe6, 0xdb, 0x82, 0x04, 0x1e, 0xf3, 0xcf, + 0x9f, 0x14, 0xf3, 0x63, 0x9c, 0x6a, 0xb8, 0xcc, 0x1f, 0xc6, 0x33, 0x20, 0xc0, 0x8a, 0xf1, 0xf1, + 0xcb, 0x24, 0xe4, 0x4f, 0x52, 0x45, 0x2f, 0x41, 0xd6, 0xf4, 0x89, 0x98, 0x08, 0x36, 0x19, 0x4d, + 0x34, 0xcc, 0xb9, 0x60, 0x5a, 0xed, 0x31, 0x3a, 0xf0, 0x53, 0x19, 0x4f, 0x2e, 0x2e, 0xfa, 0x6c, + 0xc7, 0xb0, 0xb9, 0x08, 0x41, 0xec, 0x32, 0x5b, 0x90, 0xb5, 0x5d, 0x9b, 0xd9, 0xb8, 0x67, 0xb4, + 0x71, 0x0f, 0xbb, 0x66, 0x70, 0x5c, 0x3d, 0xd7, 0x96, 0x30, 0xa7, 0x30, 0x6a, 0x12, 0x02, 0x35, + 0x60, 0x32, 0x40, 0x4b, 0x9d, 0x1f, 0x2d, 0xd0, 0x45, 0xd7, 0x61, 0x26, 0xbe, 0x31, 0x88, 0xa3, + 0x47, 0x4a, 0xcf, 0xc4, 0xf6, 0x85, 0xd3, 0x76, 0x9e, 0xf4, 0x53, 0x77, 0x1e, 0x75, 0xba, 0xfb, + 0x75, 0x12, 0xe6, 0x75, 0x62, 0xfd, 0xff, 0x87, 0x65, 0x13, 0x40, 0x96, 0x2a, 0xef, 0xa4, 0x2a, + 0x32, 0xcf, 0x50, 0xef, 0xd3, 0x12, 0xa4, 0x4e, 0xd9, 0xff, 0x2a, 0x42, 0x7f, 0x4d, 0xc0, 0x4c, + 0x3c, 0x42, 0x9f, 0xca, 0x4d, 0x0b, 0xad, 0x47, 0x6d, 0x2a, 0x25, 0xda, 0xd4, 0xcb, 0x27, 0xb5, + 0xa9, 0xb1, 0x6c, 0x3e, 0xa5, 0x3f, 0xfd, 0x2a, 0x09, 0xe9, 0x4d, 0xec, 0x63, 0x87, 0xa2, 0x8d, + 0xb1, 0x83, 0xac, 0xbc, 0x48, 0x5e, 0x1d, 0x4b, 0xe6, 0xba, 0x7a, 0x7b, 0x91, 0xb9, 0xfc, 0x8b, + 0x93, 0xce, 0xb1, 0x2f, 0xc2, 0x1c, 0xbf, 0x10, 0x87, 0x0e, 0x49, 0x72, 0x67, 0xc5, 0xbd, 0x36, + 0xf4, 0x9e, 0xa2, 0x22, 0x64, 0xb8, 0x58, 0xd4, 0x87, 0xb9, 0x0c, 0x38, 0x78, 0xbf, 0x21, 0x67, + 0xd0, 0x12, 0xa0, 0x6e, 0xf8, 0x2c, 0x61, 0x44, 0x44, 0x70, 0xb9, 0xf9, 0x68, 0x25, 0x10, 0x7f, + 0x1e, 0x80, 0x5b, 0x61, 0x58, 0xc4, 0xf5, 0x1c, 0x75, 0xab, 0x9b, 0xe6, 0x33, 0x75, 0x3e, 0x81, + 0x7e, 0xa4, 0xc9, 0xf3, 0xf0, 0x91, 0x6b, 0xb3, 0xba, 0x8e, 0x6c, 0x9d, 0xa1, 0x28, 0xfe, 0x7d, + 0x58, 0x2c, 0x0c, 0xb1, 0xd3, 0x5b, 0x2e, 0x1f, 0x83, 0x53, 0x3e, 0xee, 0x26, 0xcf, 0x0f, 0xce, + 0xa3, 0xd7, 0xee, 0xe5, 0x1b, 0x3c, 0xbd, 0x0f, 0x3e, 0x78, 0xef, 0xa6, 0xfa, 0xd2, 0x12, 0xb5, + 0xf6, 0xaa, 0xfb, 0xe1, 0x73, 0x9a, 0x8c, 0x09, 0x3f, 0xa9, 0xa2, 0x68, 0xd7, 0xd0, 0x09, 0xed, + 0xf3, 0x1b, 0x1f, 0xbf, 0x21, 0xc4, 0x4e, 0xf2, 0xda, 0xd3, 0x6f, 0x08, 0x91, 0xfe, 0xc8, 0x0d, + 0x21, 0x56, 0x53, 0x5f, 0x89, 0x9a, 0x76, 0x42, 0x85, 0x5c, 0x61, 0xb5, 0x31, 0x25, 0xb1, 0xab, + 0x86, 0x3d, 0x02, 0x11, 0x28, 0x89, 0x52, 0x9d, 0x28, 0xff, 0x49, 0x83, 0xab, 0x63, 0xe9, 0x17, + 0x9a, 0x6c, 0x02, 0xf2, 0x63, 0x8b, 0x22, 0x8c, 0x43, 0x65, 0xfa, 0xb3, 0x65, 0xf3, 0xbc, 0x3f, + 0xd6, 0xb9, 0x3f, 0x9e, 0xdd, 0x47, 0xb5, 0x9e, 0x3f, 0x68, 0x70, 0x31, 0x6e, 0x40, 0xe8, 0x4a, + 0x0b, 0x66, 0xe2, 0x9f, 0x56, 0x4e, 0xdc, 0x38, 0x8b, 0x13, 0x71, 0xfb, 0x47, 0x40, 0xd0, 0x4e, + 0x54, 0xe2, 0xf2, 0x1d, 0xef, 0xd6, 0x99, 0x49, 0x09, 0x0c, 0x3b, 0xb6, 0xd4, 0x65, 0x6c, 0xfe, + 0xa9, 0x41, 0x6a, 0xd3, 0xf3, 0x7a, 0xe8, 0x07, 0x30, 0xef, 0x7a, 0xcc, 0xe0, 0xe5, 0x40, 0x2c, + 0x43, 0x5d, 0xec, 0x65, 0xfb, 0x6c, 0x3c, 0x95, 0xab, 0x7f, 0x1c, 0x16, 0xc7, 0x35, 0x47, 0x09, + 0x54, 0xef, 0x47, 0xae, 0xc7, 0x6a, 0x42, 0x68, 0x4b, 0xde, 0xfd, 0x77, 0x61, 0x76, 0xf4, 0x73, + 0xb2, 0xc5, 0xae, 0x9c, 0xf6, 0xb9, 0xd9, 0x53, 0x3f, 0x35, 0xd3, 0x8e, 0x7d, 0x67, 0x79, 0x8a, + 0x47, 0xed, 0x5f, 0x3c, 0x72, 0x6f, 0x41, 0x2e, 0xec, 0x2f, 0xdb, 0xe2, 0xf1, 0x89, 0xf2, 0xd4, + 0x90, 0xef, 0x50, 0xc1, 0xe9, 0xbe, 0x14, 0x7f, 0x64, 0xc5, 0x6d, 0xd3, 0xae, 0x1c, 0xd1, 0x19, + 0xa1, 0x53, 0xe9, 0xde, 0xfc, 0x9d, 0x06, 0x10, 0x3d, 0x92, 0xa0, 0x57, 0xe0, 0x4a, 0x6d, 0x63, + 0xbd, 0x6e, 0xb4, 0xb6, 0x56, 0xb6, 0xb6, 0x5b, 0xc6, 0xf6, 0x7a, 0x6b, 0xb3, 0xb1, 0xda, 0xbc, + 0xd3, 0x6c, 0xd4, 0x73, 0x13, 0x85, 0xec, 0xc1, 0xbd, 0x52, 0x66, 0xdb, 0xa5, 0x7d, 0x62, 0xda, + 0xbb, 0x36, 0xb1, 0xd0, 0x67, 0xe1, 0xe2, 0xa8, 0x34, 0x1f, 0x35, 0xea, 0x39, 0xad, 0x30, 0x73, + 0x70, 0xaf, 0x34, 0x25, 0xcf, 0x89, 0xc4, 0x42, 0x8b, 0x70, 0x69, 0x5c, 0xae, 0xb9, 0xfe, 0x5a, + 0x2e, 0x51, 0x98, 0x3d, 0xb8, 0x57, 0x9a, 0x0e, 0x0f, 0x94, 0xa8, 0x0c, 0x28, 0x2e, 0xa9, 0xf0, + 0x92, 0x05, 0x38, 0xb8, 0x57, 0x4a, 0xcb, 0x28, 0x14, 0x52, 0x6f, 0xff, 0x66, 0x61, 0xe2, 0xe6, + 0x77, 0x01, 0x9a, 0xee, 0xae, 0x8f, 0x4d, 0x91, 0x6d, 0x05, 0xb8, 0xdc, 0x5c, 0xbf, 0xa3, 0xaf, + 0xac, 0x6e, 0x35, 0x37, 0xd6, 0x47, 0xcd, 0x3e, 0xb2, 0x56, 0xdf, 0xd8, 0xae, 0xbd, 0xd1, 0x30, + 0x5a, 0xcd, 0xd7, 0xd6, 0x73, 0x1a, 0xba, 0x02, 0x17, 0x46, 0xd6, 0xbe, 0xb1, 0xbe, 0xd5, 0x7c, + 0xb3, 0x91, 0x4b, 0xd4, 0xee, 0xbc, 0xff, 0x78, 0x41, 0x7b, 0xf8, 0x78, 0x41, 0xfb, 0xfb, 0xe3, + 0x05, 0xed, 0x9d, 0x27, 0x0b, 0x13, 0x0f, 0x9f, 0x2c, 0x4c, 0xfc, 0xf9, 0xc9, 0xc2, 0xc4, 0xb7, + 0x5e, 0xe9, 0xd8, 0xac, 0x3b, 0x68, 0x57, 0x4c, 0xcf, 0x51, 0xcf, 0xee, 0xd5, 0x63, 0x3b, 0x9e, + 0x78, 0xe7, 0x6e, 0xa7, 0xc5, 0x26, 0xf3, 0x85, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x2d, 0xe2, + 0x21, 0xe4, 0x5f, 0x18, 0x00, 0x00, } func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { @@ -1404,715 +1475,718 @@ func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_go func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 11322 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x69, 0x94, 0x1c, 0xd7, - 0x75, 0x18, 0x3c, 0xd5, 0x7b, 0xdf, 0xde, 0x6a, 0xde, 0x0c, 0x80, 0x46, 0x83, 0xc4, 0x0c, 0x8b, - 0x22, 0x09, 0x82, 0xe4, 0x80, 0x04, 0x09, 0x90, 0x1c, 0x48, 0xe2, 0xd7, 0xdd, 0xd3, 0x00, 0x1a, - 0x9c, 0x8d, 0xd5, 0x3d, 0xe0, 0x62, 0x5b, 0xe5, 0x9a, 0xea, 0x37, 0x3d, 0x45, 0x74, 0x57, 0xb5, - 0xba, 0xaa, 0xc1, 0x19, 0xfe, 0xf8, 0x8e, 0x1c, 0xd9, 0x89, 0x0c, 0x2f, 0x91, 0x97, 0x63, 0xcb, - 0x96, 0x60, 0x4b, 0x76, 0x6c, 0xc9, 0x4e, 0x9c, 0xd8, 0x96, 0xe2, 0x25, 0x3e, 0x71, 0xec, 0x9c, - 0x2c, 0xb6, 0x4f, 0x16, 0xc5, 0x3f, 0x12, 0x9f, 0x9c, 0x63, 0xc6, 0x96, 0x7c, 0x62, 0x45, 0x96, - 0x13, 0x2f, 0x72, 0xe2, 0x1c, 0x9d, 0xf8, 0xe4, 0xbc, 0xad, 0x96, 0x5e, 0xa6, 0x7b, 0x20, 0x52, - 0x76, 0x9c, 0xfc, 0x01, 0xba, 0xee, 0xbb, 0xf7, 0xbe, 0xf7, 0xee, 0xbb, 0xef, 0xbe, 0x7b, 0xef, - 0x5b, 0x06, 0x7e, 0xf7, 0x2a, 0x2c, 0xb7, 0x6d, 0xbb, 0xdd, 0xc1, 0x17, 0x7a, 0x7d, 0xdb, 0xb5, - 0x77, 0x07, 0x7b, 0x17, 0x5a, 0xd8, 0x31, 0xfa, 0x66, 0xcf, 0xb5, 0xfb, 0x2b, 0x14, 0x86, 0x0a, - 0x0c, 0x63, 0x45, 0x60, 0x28, 0x1b, 0x30, 0x7f, 0xd5, 0xec, 0xe0, 0x35, 0x0f, 0xb1, 0x81, 0x5d, - 0xf4, 0x1c, 0xc4, 0xf6, 0xcc, 0x0e, 0x2e, 0x4a, 0xcb, 0xd1, 0x73, 0x99, 0x8b, 0xef, 0x5a, 0x19, - 0x22, 0x5a, 0x09, 0x53, 0x6c, 0x13, 0xb0, 0x4a, 0x29, 0x94, 0xbf, 0x88, 0xc1, 0xc2, 0x98, 0x52, - 0x84, 0x20, 0x66, 0xe9, 0x5d, 0xc2, 0x51, 0x3a, 0x97, 0x56, 0xe9, 0x6f, 0x54, 0x84, 0x64, 0x4f, - 0x37, 0x6e, 0xe9, 0x6d, 0x5c, 0x8c, 0x50, 0xb0, 0xf8, 0x44, 0x67, 0x01, 0x5a, 0xb8, 0x87, 0xad, - 0x16, 0xb6, 0x8c, 0xc3, 0x62, 0x74, 0x39, 0x7a, 0x2e, 0xad, 0x06, 0x20, 0xe8, 0x31, 0x98, 0xef, - 0x0d, 0x76, 0x3b, 0xa6, 0xa1, 0x05, 0xd0, 0x60, 0x39, 0x7a, 0x2e, 0xae, 0xca, 0xac, 0x60, 0xcd, - 0x47, 0x7e, 0x04, 0x0a, 0x6f, 0x60, 0xfd, 0x56, 0x10, 0x35, 0x43, 0x51, 0xf3, 0x04, 0x1c, 0x40, - 0xac, 0x42, 0xb6, 0x8b, 0x1d, 0x47, 0x6f, 0x63, 0xcd, 0x3d, 0xec, 0xe1, 0x62, 0x8c, 0xf6, 0x7e, - 0x79, 0xa4, 0xf7, 0xc3, 0x3d, 0xcf, 0x70, 0xaa, 0xe6, 0x61, 0x0f, 0xa3, 0x32, 0xa4, 0xb1, 0x35, - 0xe8, 0x32, 0x0e, 0xf1, 0x09, 0xf2, 0xab, 0x59, 0x83, 0xee, 0x30, 0x97, 0x14, 0x21, 0xe3, 0x2c, - 0x92, 0x0e, 0xee, 0xdf, 0x36, 0x0d, 0x5c, 0x4c, 0x50, 0x06, 0x8f, 0x8c, 0x30, 0x68, 0xb0, 0xf2, - 0x61, 0x1e, 0x82, 0x0e, 0x55, 0x21, 0x8d, 0x0f, 0x5c, 0x6c, 0x39, 0xa6, 0x6d, 0x15, 0x93, 0x94, - 0xc9, 0x43, 0x63, 0x46, 0x11, 0x77, 0x5a, 0xc3, 0x2c, 0x7c, 0x3a, 0x74, 0x19, 0x92, 0x76, 0xcf, - 0x35, 0x6d, 0xcb, 0x29, 0xa6, 0x96, 0xa5, 0x73, 0x99, 0x8b, 0xf7, 0x8d, 0x55, 0x84, 0x2d, 0x86, - 0xa3, 0x0a, 0x64, 0x54, 0x07, 0xd9, 0xb1, 0x07, 0x7d, 0x03, 0x6b, 0x86, 0xdd, 0xc2, 0x9a, 0x69, - 0xed, 0xd9, 0xc5, 0x34, 0x65, 0xb0, 0x34, 0xda, 0x11, 0x8a, 0x58, 0xb5, 0x5b, 0xb8, 0x6e, 0xed, - 0xd9, 0x6a, 0xde, 0x09, 0x7d, 0xa3, 0x93, 0x90, 0x70, 0x0e, 0x2d, 0x57, 0x3f, 0x28, 0x66, 0xa9, - 0x86, 0xf0, 0x2f, 0xa2, 0x3a, 0xb8, 0x65, 0x92, 0xea, 0x8a, 0x39, 0xa6, 0x3a, 0xfc, 0x53, 0xf9, - 0xc5, 0x04, 0x14, 0x66, 0x51, 0xbe, 0x2b, 0x10, 0xdf, 0x23, 0xfd, 0x2f, 0x46, 0x8e, 0x23, 0x1d, - 0x46, 0x13, 0x16, 0x6f, 0xe2, 0x1e, 0xc5, 0x5b, 0x86, 0x8c, 0x85, 0x1d, 0x17, 0xb7, 0x98, 0xae, - 0x44, 0x67, 0xd4, 0x36, 0x60, 0x44, 0xa3, 0xca, 0x16, 0xbb, 0x27, 0x65, 0x7b, 0x05, 0x0a, 0x5e, - 0x93, 0xb4, 0xbe, 0x6e, 0xb5, 0x85, 0xd6, 0x5e, 0x98, 0xd6, 0x92, 0x95, 0x9a, 0xa0, 0x53, 0x09, - 0x99, 0x9a, 0xc7, 0xa1, 0x6f, 0xb4, 0x06, 0x60, 0x5b, 0xd8, 0xde, 0xd3, 0x5a, 0xd8, 0xe8, 0x14, - 0x53, 0x13, 0xa4, 0xb4, 0x45, 0x50, 0x46, 0xa4, 0x64, 0x33, 0xa8, 0xd1, 0x41, 0xcf, 0xfb, 0x4a, - 0x98, 0x9c, 0xa0, 0x43, 0x1b, 0x6c, 0xfa, 0x8d, 0xe8, 0xe1, 0x0e, 0xe4, 0xfb, 0x98, 0xcc, 0x08, - 0xdc, 0xe2, 0x3d, 0x4b, 0xd3, 0x46, 0xac, 0x4c, 0xed, 0x99, 0xca, 0xc9, 0x58, 0xc7, 0x72, 0xfd, - 0xe0, 0x27, 0x7a, 0x10, 0x3c, 0x80, 0x46, 0xd5, 0x0a, 0xa8, 0x7d, 0xca, 0x0a, 0xe0, 0xa6, 0xde, - 0xc5, 0xa5, 0x37, 0x21, 0x1f, 0x16, 0x0f, 0x5a, 0x84, 0xb8, 0xe3, 0xea, 0x7d, 0x97, 0x6a, 0x61, - 0x5c, 0x65, 0x1f, 0x48, 0x86, 0x28, 0xb6, 0x5a, 0xd4, 0xfe, 0xc5, 0x55, 0xf2, 0x13, 0xfd, 0x7f, - 0x7e, 0x87, 0xa3, 0xb4, 0xc3, 0x0f, 0x8f, 0x8e, 0x68, 0x88, 0xf3, 0x70, 0xbf, 0x4b, 0xcf, 0x42, - 0x2e, 0xd4, 0x81, 0x59, 0xab, 0x56, 0x7e, 0x2a, 0x06, 0x27, 0xc6, 0xf2, 0x46, 0xaf, 0xc0, 0xe2, - 0xc0, 0x32, 0x2d, 0x17, 0xf7, 0x7b, 0x7d, 0x4c, 0x54, 0x96, 0xd5, 0x55, 0xfc, 0xfd, 0xe4, 0x04, - 0xa5, 0xdb, 0x09, 0x62, 0x33, 0x2e, 0xea, 0xc2, 0x60, 0x14, 0x88, 0x5e, 0x85, 0x0c, 0xd1, 0x0f, - 0xbd, 0xaf, 0x53, 0x86, 0x6c, 0x36, 0x5e, 0x9c, 0xad, 0xcb, 0x2b, 0x6b, 0x3e, 0x65, 0x25, 0xfa, - 0x21, 0x29, 0xa2, 0x06, 0x79, 0xa1, 0x7d, 0xc8, 0xde, 0xc6, 0x7d, 0x73, 0xcf, 0x34, 0x18, 0x6f, - 0x22, 0xce, 0xfc, 0xc5, 0xe7, 0x66, 0xe4, 0x7d, 0x33, 0x40, 0xda, 0x70, 0x75, 0x17, 0xaf, 0xc2, - 0xce, 0xe6, 0xcd, 0x9a, 0x5a, 0xbf, 0x5a, 0xaf, 0xad, 0xa9, 0x21, 0xce, 0xa5, 0x4f, 0x4b, 0x90, - 0x09, 0xb4, 0x85, 0x98, 0x2d, 0x6b, 0xd0, 0xdd, 0xc5, 0x7d, 0x2e, 0x71, 0xfe, 0x85, 0xce, 0x40, - 0x7a, 0x6f, 0xd0, 0xe9, 0x30, 0xb5, 0x61, 0x6b, 0x5e, 0x8a, 0x00, 0x88, 0xca, 0x10, 0x2b, 0xc5, - 0x0d, 0x01, 0xb5, 0x52, 0xe4, 0x37, 0x7a, 0x10, 0x32, 0xa6, 0xa3, 0xf5, 0x71, 0x0f, 0xeb, 0x2e, - 0x6e, 0x15, 0x63, 0xcb, 0xd2, 0xb9, 0x54, 0x25, 0x52, 0x94, 0x54, 0x30, 0x1d, 0x95, 0x43, 0x51, - 0x09, 0x52, 0x42, 0xf7, 0x8a, 0x71, 0x82, 0xa1, 0x7a, 0xdf, 0xac, 0x8c, 0x53, 0x27, 0x44, 0x19, - 0xfb, 0x56, 0x9e, 0x81, 0xf9, 0x91, 0x4e, 0xa2, 0x02, 0x64, 0xd6, 0x6a, 0xd5, 0xf5, 0xb2, 0x5a, - 0x6e, 0xd6, 0xb7, 0x36, 0xe5, 0x39, 0x94, 0x87, 0x40, 0xbf, 0x65, 0xe9, 0x7c, 0x3a, 0xf5, 0x85, - 0xa4, 0xfc, 0x81, 0x0f, 0x7c, 0xe0, 0x03, 0x11, 0xe5, 0x57, 0x13, 0xb0, 0x38, 0xce, 0xca, 0x8d, - 0x35, 0xb8, 0xbe, 0x4c, 0xa2, 0x21, 0x99, 0x94, 0x21, 0xde, 0xd1, 0x77, 0x71, 0x87, 0x76, 0x2e, - 0x7f, 0xf1, 0xb1, 0x99, 0xec, 0xe8, 0xca, 0x3a, 0x21, 0x51, 0x19, 0x25, 0x7a, 0x2f, 0x97, 0x5c, - 0x9c, 0x72, 0x38, 0x3f, 0x1b, 0x07, 0x62, 0xfd, 0xb8, 0x94, 0xcf, 0x40, 0x9a, 0xfc, 0xcf, 0x86, - 0x25, 0xc1, 0x86, 0x85, 0x00, 0xe8, 0xb0, 0x94, 0x20, 0x45, 0x0d, 0x5b, 0x0b, 0x7b, 0x43, 0x26, - 0xbe, 0x89, 0x29, 0x68, 0xe1, 0x3d, 0x7d, 0xd0, 0x71, 0xb5, 0xdb, 0x7a, 0x67, 0x80, 0xa9, 0x89, - 0x4a, 0xab, 0x59, 0x0e, 0xbc, 0x49, 0x60, 0x68, 0x09, 0x32, 0xcc, 0x0e, 0x9a, 0x56, 0x0b, 0x1f, - 0xd0, 0x95, 0x30, 0xae, 0x32, 0xd3, 0x58, 0x27, 0x10, 0x52, 0xfd, 0xeb, 0x8e, 0x6d, 0x09, 0x63, - 0x42, 0xab, 0x20, 0x00, 0x5a, 0xfd, 0xb3, 0xc3, 0x8b, 0xf0, 0xfd, 0xe3, 0xbb, 0x37, 0x62, 0xfd, - 0x1e, 0x81, 0x02, 0xc5, 0x78, 0x9a, 0xcf, 0x55, 0xbd, 0x53, 0x9c, 0xa7, 0x0a, 0x90, 0x67, 0xe0, - 0x2d, 0x0e, 0x55, 0x7e, 0x2e, 0x02, 0x31, 0xba, 0x14, 0x14, 0x20, 0xd3, 0x7c, 0x75, 0xbb, 0xa6, - 0xad, 0x6d, 0xed, 0x54, 0xd6, 0x6b, 0xb2, 0x44, 0x86, 0x9e, 0x02, 0xae, 0xae, 0x6f, 0x95, 0x9b, - 0x72, 0xc4, 0xfb, 0xae, 0x6f, 0x36, 0x2f, 0x3f, 0x23, 0x47, 0x3d, 0x82, 0x1d, 0x06, 0x88, 0x05, - 0x11, 0x9e, 0xbe, 0x28, 0xc7, 0x91, 0x0c, 0x59, 0xc6, 0xa0, 0xfe, 0x4a, 0x6d, 0xed, 0xf2, 0x33, - 0x72, 0x22, 0x0c, 0x79, 0xfa, 0xa2, 0x9c, 0x44, 0x39, 0x48, 0x53, 0x48, 0x65, 0x6b, 0x6b, 0x5d, - 0x4e, 0x79, 0x3c, 0x1b, 0x4d, 0xb5, 0xbe, 0x79, 0x4d, 0x4e, 0x7b, 0x3c, 0xaf, 0xa9, 0x5b, 0x3b, - 0xdb, 0x32, 0x78, 0x1c, 0x36, 0x6a, 0x8d, 0x46, 0xf9, 0x5a, 0x4d, 0xce, 0x78, 0x18, 0x95, 0x57, - 0x9b, 0xb5, 0x86, 0x9c, 0x0d, 0x35, 0xeb, 0xe9, 0x8b, 0x72, 0xce, 0xab, 0xa2, 0xb6, 0xb9, 0xb3, - 0x21, 0xe7, 0xd1, 0x3c, 0xe4, 0x58, 0x15, 0xa2, 0x11, 0x85, 0x21, 0xd0, 0xe5, 0x67, 0x64, 0xd9, - 0x6f, 0x08, 0xe3, 0x32, 0x1f, 0x02, 0x5c, 0x7e, 0x46, 0x46, 0x4a, 0x15, 0xe2, 0x54, 0x0d, 0x11, - 0x82, 0xfc, 0x7a, 0xb9, 0x52, 0x5b, 0xd7, 0xb6, 0xb6, 0xc9, 0xa4, 0x29, 0xaf, 0xcb, 0x92, 0x0f, - 0x53, 0x6b, 0x2f, 0xed, 0xd4, 0xd5, 0xda, 0x9a, 0x1c, 0x09, 0xc2, 0xb6, 0x6b, 0xe5, 0x66, 0x6d, - 0x4d, 0x8e, 0x2a, 0x06, 0x2c, 0x8e, 0x5b, 0x02, 0xc7, 0x4e, 0xa1, 0x80, 0x2e, 0x44, 0x26, 0xe8, - 0x02, 0xe5, 0x35, 0xac, 0x0b, 0xca, 0xe7, 0x23, 0xb0, 0x30, 0xc6, 0x0d, 0x18, 0x5b, 0xc9, 0x0b, - 0x10, 0x67, 0xba, 0xcc, 0x4c, 0xf1, 0xa3, 0x63, 0xfd, 0x09, 0xaa, 0xd9, 0x23, 0xce, 0x11, 0xa5, - 0x0b, 0xba, 0x8d, 0xd1, 0x09, 0x6e, 0x23, 0x61, 0x31, 0xa2, 0xb0, 0xdf, 0x30, 0xb2, 0x5c, 0x33, - 0x8f, 0xe6, 0xf2, 0x2c, 0x1e, 0x0d, 0x85, 0x1d, 0x6f, 0xd9, 0x8e, 0x8f, 0x59, 0xb6, 0xaf, 0xc0, - 0xfc, 0x08, 0xa3, 0x99, 0x97, 0xcf, 0x0f, 0x4a, 0x50, 0x9c, 0x24, 0x9c, 0x29, 0x26, 0x31, 0x12, - 0x32, 0x89, 0x57, 0x86, 0x25, 0xf8, 0xc0, 0xe4, 0x41, 0x18, 0x19, 0xeb, 0x4f, 0x4a, 0x70, 0x72, - 0x7c, 0x78, 0x30, 0xb6, 0x0d, 0xef, 0x85, 0x44, 0x17, 0xbb, 0xfb, 0xb6, 0x70, 0x84, 0x1f, 0x1e, - 0xe3, 0x5e, 0x91, 0xe2, 0xe1, 0xc1, 0xe6, 0x54, 0x41, 0xff, 0x2c, 0x3a, 0xc9, 0xc7, 0x67, 0xad, - 0x19, 0x69, 0xe9, 0xb7, 0x46, 0xe0, 0xc4, 0x58, 0xe6, 0x63, 0x1b, 0x7a, 0x3f, 0x80, 0x69, 0xf5, - 0x06, 0x2e, 0x73, 0x76, 0x99, 0x25, 0x4e, 0x53, 0x08, 0x35, 0x5e, 0xc4, 0xca, 0x0e, 0x5c, 0xaf, - 0x9c, 0x2d, 0xa2, 0xc0, 0x40, 0x14, 0xe1, 0x39, 0xbf, 0xa1, 0x31, 0xda, 0xd0, 0xb3, 0x13, 0x7a, - 0x3a, 0xa2, 0x98, 0x4f, 0x82, 0x6c, 0x74, 0x4c, 0x6c, 0xb9, 0x9a, 0xe3, 0xf6, 0xb1, 0xde, 0x35, - 0xad, 0x36, 0x5b, 0x67, 0x57, 0xe3, 0x7b, 0x7a, 0xc7, 0xc1, 0x6a, 0x81, 0x15, 0x37, 0x44, 0x29, - 0xa1, 0xa0, 0x0a, 0xd4, 0x0f, 0x50, 0x24, 0x42, 0x14, 0xac, 0xd8, 0xa3, 0x50, 0xbe, 0x2b, 0x0d, - 0x99, 0x40, 0x30, 0x85, 0x1e, 0x80, 0xec, 0xeb, 0xfa, 0x6d, 0x5d, 0x13, 0x01, 0x32, 0x93, 0x44, - 0x86, 0xc0, 0xb6, 0x79, 0x90, 0xfc, 0x24, 0x2c, 0x52, 0x14, 0x7b, 0xe0, 0xe2, 0xbe, 0x66, 0x74, - 0x74, 0xc7, 0xa1, 0x42, 0x4b, 0x51, 0x54, 0x44, 0xca, 0xb6, 0x48, 0x51, 0x55, 0x94, 0xa0, 0x4b, - 0xb0, 0x40, 0x29, 0xba, 0x83, 0x8e, 0x6b, 0xf6, 0x3a, 0x58, 0x23, 0x21, 0xbb, 0x43, 0x97, 0x1c, - 0xaf, 0x65, 0xf3, 0x04, 0x63, 0x83, 0x23, 0x90, 0x16, 0x39, 0x68, 0x0d, 0xee, 0xa7, 0x64, 0x6d, - 0x6c, 0xe1, 0xbe, 0xee, 0x62, 0x0d, 0xbf, 0x7f, 0xa0, 0x77, 0x1c, 0x4d, 0xb7, 0x5a, 0xda, 0xbe, - 0xee, 0xec, 0x17, 0x17, 0x3d, 0xb7, 0xe4, 0x34, 0x41, 0xbc, 0xc6, 0xf1, 0x6a, 0x14, 0xad, 0x6c, - 0xb5, 0xae, 0xeb, 0xce, 0x3e, 0x5a, 0x85, 0x93, 0x94, 0x8b, 0xe3, 0xf6, 0x4d, 0xab, 0xad, 0x19, - 0xfb, 0xd8, 0xb8, 0xa5, 0x0d, 0xdc, 0xbd, 0xe7, 0x8a, 0x67, 0x82, 0xf5, 0xd3, 0x16, 0x36, 0x28, - 0x4e, 0x95, 0xa0, 0xec, 0xb8, 0x7b, 0xcf, 0xa1, 0x06, 0x64, 0xc9, 0x60, 0x74, 0xcd, 0x37, 0xb1, - 0xb6, 0x67, 0xf7, 0xe9, 0x1a, 0x9a, 0x1f, 0x63, 0x9a, 0x02, 0x12, 0x5c, 0xd9, 0xe2, 0x04, 0x1b, - 0x76, 0x0b, 0xaf, 0xc6, 0x1b, 0xdb, 0xb5, 0xda, 0x9a, 0x9a, 0x11, 0x5c, 0xae, 0xda, 0x7d, 0xa2, - 0x50, 0x6d, 0xdb, 0x13, 0x70, 0x86, 0x29, 0x54, 0xdb, 0x16, 0xe2, 0xbd, 0x04, 0x0b, 0x86, 0xc1, - 0xfa, 0x6c, 0x1a, 0x1a, 0x0f, 0xac, 0x9d, 0xa2, 0x1c, 0x12, 0x96, 0x61, 0x5c, 0x63, 0x08, 0x5c, - 0xc7, 0x1d, 0xf4, 0x3c, 0x9c, 0xf0, 0x85, 0x15, 0x24, 0x9c, 0x1f, 0xe9, 0xe5, 0x30, 0xe9, 0x25, - 0x58, 0xe8, 0x1d, 0x8e, 0x12, 0xa2, 0x50, 0x8d, 0xbd, 0xc3, 0x61, 0xb2, 0x67, 0x61, 0xb1, 0xb7, - 0xdf, 0x1b, 0xa5, 0x3b, 0x1f, 0xa4, 0x43, 0xbd, 0xfd, 0xde, 0x30, 0xe1, 0x43, 0x34, 0xcb, 0xd2, - 0xc7, 0x06, 0xf5, 0x0e, 0x4f, 0x05, 0xd1, 0x03, 0x05, 0x68, 0x05, 0x64, 0xc3, 0xd0, 0xb0, 0xa5, - 0xef, 0x76, 0xb0, 0xa6, 0xf7, 0xb1, 0xa5, 0x3b, 0xc5, 0x25, 0x8a, 0x1c, 0x73, 0xfb, 0x03, 0xac, - 0xe6, 0x0d, 0xa3, 0x46, 0x0b, 0xcb, 0xb4, 0x0c, 0x9d, 0x87, 0x79, 0x7b, 0xf7, 0x75, 0x83, 0x69, - 0xa4, 0xd6, 0xeb, 0xe3, 0x3d, 0xf3, 0xa0, 0xf8, 0x2e, 0x2a, 0xde, 0x02, 0x29, 0xa0, 0xfa, 0xb8, - 0x4d, 0xc1, 0xe8, 0x51, 0x90, 0x0d, 0x67, 0x5f, 0xef, 0xf7, 0xa8, 0x49, 0x76, 0x7a, 0xba, 0x81, - 0x8b, 0x0f, 0x31, 0x54, 0x06, 0xdf, 0x14, 0x60, 0x32, 0x23, 0x9c, 0x37, 0xcc, 0x3d, 0x57, 0x70, - 0x7c, 0x84, 0xcd, 0x08, 0x0a, 0xe3, 0xdc, 0xce, 0x81, 0x4c, 0x24, 0x11, 0xaa, 0xf8, 0x1c, 0x45, - 0xcb, 0xf7, 0xf6, 0x7b, 0xc1, 0x7a, 0x1f, 0x84, 0x1c, 0xc1, 0xf4, 0x2b, 0x7d, 0x94, 0x39, 0x6e, - 0xbd, 0xfd, 0x40, 0x8d, 0xcf, 0xc0, 0x49, 0x82, 0xd4, 0xc5, 0xae, 0xde, 0xd2, 0x5d, 0x3d, 0x80, - 0xfd, 0x38, 0xc5, 0x26, 0x62, 0xdf, 0xe0, 0x85, 0xa1, 0x76, 0xf6, 0x07, 0xbb, 0x87, 0x9e, 0x62, - 0x3d, 0xc1, 0xda, 0x49, 0x60, 0x42, 0xb5, 0xde, 0xb1, 0x68, 0x4a, 0x59, 0x85, 0x6c, 0x50, 0xef, - 0x51, 0x1a, 0x98, 0xe6, 0xcb, 0x12, 0x71, 0x82, 0xaa, 0x5b, 0x6b, 0xc4, 0x7d, 0x79, 0xad, 0x26, - 0x47, 0x88, 0x1b, 0xb5, 0x5e, 0x6f, 0xd6, 0x34, 0x75, 0x67, 0xb3, 0x59, 0xdf, 0xa8, 0xc9, 0xd1, - 0x80, 0x63, 0x7f, 0x23, 0x96, 0x7a, 0x58, 0x7e, 0x44, 0xf9, 0xa5, 0x28, 0xe4, 0xc3, 0xb1, 0x35, - 0x7a, 0x37, 0x9c, 0x12, 0x29, 0x32, 0x07, 0xbb, 0xda, 0x1b, 0x66, 0x9f, 0x4e, 0xc8, 0xae, 0xce, - 0x16, 0x47, 0x4f, 0x7f, 0x16, 0x39, 0x56, 0x03, 0xbb, 0x2f, 0x9b, 0x7d, 0x32, 0xdd, 0xba, 0xba, - 0x8b, 0xd6, 0x61, 0xc9, 0xb2, 0x35, 0xc7, 0xd5, 0xad, 0x96, 0xde, 0x6f, 0x69, 0x7e, 0x72, 0x52, - 0xd3, 0x0d, 0x03, 0x3b, 0x8e, 0xcd, 0x16, 0x42, 0x8f, 0xcb, 0x7d, 0x96, 0xdd, 0xe0, 0xc8, 0xfe, - 0x0a, 0x51, 0xe6, 0xa8, 0x43, 0xea, 0x1b, 0x9d, 0xa4, 0xbe, 0x67, 0x20, 0xdd, 0xd5, 0x7b, 0x1a, - 0xb6, 0xdc, 0xfe, 0x21, 0xf5, 0xcf, 0x53, 0x6a, 0xaa, 0xab, 0xf7, 0x6a, 0xe4, 0x1b, 0xdd, 0x84, - 0x87, 0x7d, 0x54, 0xad, 0x83, 0xdb, 0xba, 0x71, 0xa8, 0x51, 0x67, 0x9c, 0x26, 0x7a, 0x34, 0xc3, - 0xb6, 0xf6, 0x3a, 0xa6, 0xe1, 0x3a, 0xd4, 0x3e, 0x30, 0x1b, 0xa7, 0xf8, 0x14, 0xeb, 0x94, 0xe0, - 0x86, 0x63, 0x5b, 0xd4, 0x07, 0xaf, 0x0a, 0xec, 0x77, 0x6e, 0x84, 0xc3, 0xa3, 0x14, 0x93, 0xe3, - 0x37, 0x62, 0xa9, 0xb8, 0x9c, 0xb8, 0x11, 0x4b, 0x25, 0xe4, 0xe4, 0x8d, 0x58, 0x2a, 0x25, 0xa7, - 0x6f, 0xc4, 0x52, 0x69, 0x19, 0x94, 0x6f, 0x49, 0x43, 0x36, 0x18, 0x19, 0x90, 0x40, 0xcb, 0xa0, - 0x6b, 0xa3, 0x44, 0xad, 0xe7, 0x83, 0x47, 0xc6, 0x11, 0x2b, 0x55, 0xb2, 0x68, 0xae, 0x26, 0x98, - 0x1b, 0xae, 0x32, 0x4a, 0xe2, 0xb0, 0x10, 0xb5, 0xc6, 0xcc, 0xed, 0x49, 0xa9, 0xfc, 0x0b, 0x5d, - 0x83, 0xc4, 0xeb, 0x0e, 0xe5, 0x9d, 0xa0, 0xbc, 0xdf, 0x75, 0x34, 0xef, 0x1b, 0x0d, 0xca, 0x3c, - 0x7d, 0xa3, 0xa1, 0x6d, 0x6e, 0xa9, 0x1b, 0xe5, 0x75, 0x95, 0x93, 0xa3, 0xd3, 0x10, 0xeb, 0xe8, - 0x6f, 0x1e, 0x86, 0x97, 0x57, 0x0a, 0x42, 0x2b, 0x50, 0x18, 0x58, 0x2c, 0xea, 0x26, 0x43, 0x45, - 0xb0, 0x0a, 0x41, 0xac, 0xbc, 0x5f, 0xba, 0x4e, 0xf0, 0x67, 0x54, 0x8f, 0xd3, 0x10, 0x7b, 0x03, - 0xeb, 0xb7, 0xc2, 0x8b, 0x20, 0x05, 0xa1, 0x73, 0x90, 0x6d, 0xe1, 0xdd, 0x41, 0x5b, 0xeb, 0xe3, - 0x96, 0x6e, 0xb8, 0x61, 0xd3, 0x9f, 0xa1, 0x45, 0x2a, 0x2d, 0x41, 0x2f, 0x42, 0x9a, 0x8c, 0x91, - 0x45, 0xc7, 0x78, 0x9e, 0x8a, 0xe0, 0x89, 0xa3, 0x45, 0xc0, 0x87, 0x58, 0x10, 0xa9, 0x3e, 0x3d, - 0xba, 0x01, 0x09, 0x57, 0xef, 0xb7, 0xb1, 0x4b, 0x2d, 0x7f, 0x7e, 0x4c, 0xba, 0x6a, 0x0c, 0xa7, - 0x26, 0xa5, 0x20, 0x62, 0xa5, 0x3a, 0xca, 0x39, 0xa0, 0xeb, 0x90, 0x64, 0xbf, 0x9c, 0xe2, 0xc2, - 0x72, 0xf4, 0xf8, 0xcc, 0x54, 0x41, 0xfe, 0x0e, 0xda, 0xac, 0x0b, 0x10, 0xa7, 0xca, 0x86, 0x00, - 0xb8, 0xba, 0xc9, 0x73, 0x28, 0x05, 0xb1, 0xea, 0x96, 0x4a, 0xec, 0x96, 0x0c, 0x59, 0x06, 0xd5, - 0xb6, 0xeb, 0xb5, 0x6a, 0x4d, 0x8e, 0x28, 0x97, 0x20, 0xc1, 0x34, 0x88, 0xd8, 0x34, 0x4f, 0x87, - 0xe4, 0x39, 0xfe, 0xc9, 0x79, 0x48, 0xa2, 0x74, 0x67, 0xa3, 0x52, 0x53, 0xe5, 0x88, 0xb2, 0x03, - 0x85, 0x21, 0xa9, 0xa3, 0x13, 0x30, 0xaf, 0xd6, 0x9a, 0xb5, 0x4d, 0x12, 0xb5, 0x69, 0x3b, 0x9b, - 0x2f, 0x6e, 0x6e, 0xbd, 0xbc, 0x29, 0xcf, 0x85, 0xc1, 0xc2, 0x40, 0x4a, 0x68, 0x11, 0x64, 0x1f, - 0xdc, 0xd8, 0xda, 0x51, 0x69, 0x6b, 0xbe, 0x3d, 0x02, 0xf2, 0xb0, 0xd8, 0xd0, 0x29, 0x58, 0x68, - 0x96, 0xd5, 0x6b, 0xb5, 0xa6, 0xc6, 0x22, 0x51, 0x8f, 0xf5, 0x22, 0xc8, 0xc1, 0x82, 0xab, 0x75, - 0x1a, 0x68, 0x2f, 0xc1, 0x99, 0x20, 0xb4, 0xf6, 0x4a, 0xb3, 0xb6, 0xd9, 0xa0, 0x95, 0x97, 0x37, - 0xaf, 0x11, 0x6b, 0x3d, 0xc4, 0x4f, 0xc4, 0xbe, 0x51, 0xd2, 0xd4, 0x30, 0xbf, 0xda, 0xfa, 0x9a, - 0x1c, 0x1b, 0x06, 0x6f, 0x6d, 0xd6, 0xb6, 0xae, 0xca, 0xf1, 0xe1, 0xda, 0x69, 0x3c, 0x9c, 0x40, - 0x25, 0x38, 0x39, 0x0c, 0xd5, 0x6a, 0x9b, 0x4d, 0xf5, 0x55, 0x39, 0x39, 0x5c, 0x71, 0xa3, 0xa6, - 0xde, 0xac, 0x57, 0x6b, 0x72, 0x0a, 0x9d, 0x04, 0x14, 0x6e, 0x51, 0xf3, 0xfa, 0xd6, 0x9a, 0x9c, - 0x1e, 0xb1, 0x4f, 0x8a, 0x03, 0xd9, 0x60, 0x50, 0xfa, 0x35, 0x31, 0x8d, 0xca, 0x47, 0x22, 0x90, - 0x09, 0x04, 0x99, 0x24, 0x3a, 0xd0, 0x3b, 0x1d, 0xfb, 0x0d, 0x4d, 0xef, 0x98, 0xba, 0xc3, 0xad, - 0x17, 0x50, 0x50, 0x99, 0x40, 0x66, 0xb5, 0x16, 0xb3, 0xaf, 0x17, 0x89, 0xbf, 0x8a, 0xeb, 0x45, - 0x5c, 0x4e, 0x28, 0x3f, 0x24, 0x81, 0x3c, 0x1c, 0x3d, 0x0e, 0x75, 0x5f, 0x9a, 0xd4, 0xfd, 0xaf, - 0xc9, 0xd8, 0x7d, 0x4c, 0x82, 0x7c, 0x38, 0x64, 0x1c, 0x6a, 0xde, 0x03, 0x7f, 0xa9, 0xcd, 0xfb, - 0x9d, 0x08, 0xe4, 0x42, 0x81, 0xe2, 0xac, 0xad, 0x7b, 0x3f, 0xcc, 0x9b, 0x2d, 0xdc, 0xed, 0xd9, - 0x2e, 0xb6, 0x8c, 0x43, 0xad, 0x83, 0x6f, 0xe3, 0x4e, 0x51, 0xa1, 0x26, 0xfe, 0xc2, 0xd1, 0xa1, - 0xe8, 0x4a, 0xdd, 0xa7, 0x5b, 0x27, 0x64, 0xab, 0x0b, 0xf5, 0xb5, 0xda, 0xc6, 0xf6, 0x56, 0xb3, - 0xb6, 0x59, 0x7d, 0x55, 0x58, 0x17, 0x55, 0x36, 0x87, 0xd0, 0xde, 0x41, 0xa3, 0xbd, 0x0d, 0xf2, - 0x70, 0xa3, 0x88, 0xad, 0x18, 0xd3, 0x2c, 0x79, 0x0e, 0x2d, 0x40, 0x61, 0x73, 0x4b, 0x6b, 0xd4, - 0xd7, 0x6a, 0x5a, 0xed, 0xea, 0xd5, 0x5a, 0xb5, 0xd9, 0x60, 0xc9, 0x45, 0x0f, 0xbb, 0x29, 0x47, - 0x82, 0x22, 0xfe, 0xc1, 0x28, 0x2c, 0x8c, 0x69, 0x09, 0x2a, 0xf3, 0xb4, 0x00, 0xcb, 0x54, 0x3c, - 0x31, 0x4b, 0xeb, 0x57, 0x88, 0x63, 0xbe, 0xad, 0xf7, 0x5d, 0x9e, 0x45, 0x78, 0x14, 0x88, 0x94, - 0x2c, 0x97, 0xf8, 0x09, 0x7d, 0x9e, 0xb4, 0x65, 0xb9, 0x82, 0x82, 0x0f, 0x67, 0x79, 0xdb, 0xc7, - 0x01, 0xf5, 0x6c, 0xc7, 0x74, 0xcd, 0xdb, 0x58, 0x33, 0x2d, 0x91, 0xe1, 0x8d, 0x2d, 0x4b, 0xe7, - 0x62, 0xaa, 0x2c, 0x4a, 0xea, 0x96, 0xeb, 0x61, 0x5b, 0xb8, 0xad, 0x0f, 0x61, 0x13, 0x3f, 0x26, - 0xaa, 0xca, 0xa2, 0xc4, 0xc3, 0x7e, 0x00, 0xb2, 0x2d, 0x7b, 0x40, 0x02, 0x2a, 0x86, 0x47, 0xac, - 0x85, 0xa4, 0x66, 0x18, 0xcc, 0x43, 0xe1, 0xa1, 0xb2, 0x9f, 0x5a, 0xce, 0xaa, 0x19, 0x06, 0x63, - 0x28, 0x8f, 0x40, 0x41, 0x6f, 0xb7, 0xfb, 0x84, 0xb9, 0x60, 0xc4, 0x82, 0xff, 0xbc, 0x07, 0xa6, - 0x88, 0xa5, 0x1b, 0x90, 0x12, 0x72, 0x20, 0xfe, 0x30, 0x91, 0x84, 0xd6, 0x63, 0x19, 0xad, 0xc8, - 0xb9, 0xb4, 0x9a, 0xb2, 0x44, 0xe1, 0x03, 0x90, 0x35, 0x1d, 0xcd, 0xdf, 0xdb, 0x8c, 0x2c, 0x47, - 0xce, 0xa5, 0xd4, 0x8c, 0xe9, 0x78, 0x7b, 0x24, 0xca, 0x27, 0x23, 0x90, 0x0f, 0xef, 0xda, 0xa2, - 0x35, 0x48, 0x75, 0x6c, 0xbe, 0xc9, 0xc2, 0x8e, 0x0c, 0x9c, 0x9b, 0xb2, 0xd1, 0xbb, 0xb2, 0xce, - 0xf1, 0x55, 0x8f, 0xb2, 0xf4, 0x6f, 0x24, 0x48, 0x09, 0x30, 0x3a, 0x09, 0xb1, 0x9e, 0xee, 0xee, - 0x53, 0x76, 0xf1, 0x4a, 0x44, 0x96, 0x54, 0xfa, 0x4d, 0xe0, 0x4e, 0x4f, 0x67, 0xfb, 0x44, 0x1c, - 0x4e, 0xbe, 0xc9, 0xb8, 0x76, 0xb0, 0xde, 0xa2, 0x99, 0x05, 0xbb, 0xdb, 0xc5, 0x96, 0xeb, 0x88, - 0x71, 0xe5, 0xf0, 0x2a, 0x07, 0xa3, 0xc7, 0x60, 0xde, 0xed, 0xeb, 0x66, 0x27, 0x84, 0x1b, 0xa3, - 0xb8, 0xb2, 0x28, 0xf0, 0x90, 0x57, 0xe1, 0xb4, 0xe0, 0xdb, 0xc2, 0xae, 0x6e, 0xec, 0xe3, 0x96, - 0x4f, 0x94, 0xa0, 0x19, 0xc4, 0x53, 0x1c, 0x61, 0x8d, 0x97, 0x0b, 0x5a, 0xe5, 0xb3, 0x11, 0x98, - 0x17, 0xb9, 0x90, 0x96, 0x27, 0xac, 0x0d, 0x00, 0xdd, 0xb2, 0x6c, 0x37, 0x28, 0xae, 0x51, 0x55, - 0x1e, 0xa1, 0x5b, 0x29, 0x7b, 0x44, 0x6a, 0x80, 0x41, 0xe9, 0x0f, 0x24, 0x00, 0xbf, 0x68, 0xa2, - 0xdc, 0x96, 0x20, 0xc3, 0xf7, 0xe4, 0xe9, 0xc1, 0x0e, 0x96, 0x3e, 0x03, 0x06, 0xba, 0x6a, 0x76, - 0x68, 0x92, 0x73, 0x17, 0xb7, 0x4d, 0x8b, 0xef, 0xce, 0xb0, 0x0f, 0x91, 0xe4, 0x8c, 0xf9, 0xdb, - 0x93, 0x2a, 0xa4, 0x1c, 0xdc, 0xd5, 0x2d, 0xd7, 0x34, 0xf8, 0x7e, 0xcb, 0xe5, 0x63, 0x35, 0x7e, - 0xa5, 0xc1, 0xa9, 0x55, 0x8f, 0x8f, 0x72, 0x0e, 0x52, 0x02, 0x4a, 0x1c, 0xbf, 0xcd, 0xad, 0xcd, - 0x9a, 0x3c, 0x87, 0x92, 0x10, 0x6d, 0xd4, 0x9a, 0xb2, 0x44, 0x82, 0xd8, 0xf2, 0x7a, 0xbd, 0xdc, - 0x90, 0x23, 0x95, 0xff, 0x1f, 0x16, 0x0c, 0xbb, 0x3b, 0x5c, 0x61, 0x45, 0x1e, 0x4a, 0x20, 0x3a, - 0xd7, 0xa5, 0xd7, 0x9e, 0xe0, 0x48, 0x6d, 0xbb, 0xa3, 0x5b, 0xed, 0x15, 0xbb, 0xdf, 0xf6, 0x8f, - 0xc5, 0x90, 0x58, 0xc3, 0x09, 0x1c, 0x8e, 0xe9, 0xed, 0xfe, 0xb9, 0x24, 0xfd, 0x48, 0x24, 0x7a, - 0x6d, 0xbb, 0xf2, 0x93, 0x91, 0xd2, 0x35, 0x46, 0xb8, 0x2d, 0xba, 0xa3, 0xe2, 0xbd, 0x0e, 0x36, - 0x48, 0xe3, 0xe1, 0x0f, 0x1f, 0x83, 0xc5, 0xb6, 0xdd, 0xb6, 0x29, 0xa7, 0x0b, 0xe4, 0x17, 0x3f, - 0x57, 0x93, 0xf6, 0xa0, 0xa5, 0xa9, 0x87, 0x70, 0x56, 0x37, 0x61, 0x81, 0x23, 0x6b, 0x74, 0xfb, - 0x9e, 0xa5, 0x2a, 0xd0, 0x91, 0x79, 0xf2, 0xe2, 0xcf, 0xfc, 0x1e, 0xf5, 0x4a, 0xd4, 0x79, 0x4e, - 0x4a, 0xca, 0x58, 0x36, 0x63, 0x55, 0x85, 0x13, 0x21, 0x7e, 0xcc, 0x46, 0xe0, 0xfe, 0x14, 0x8e, - 0xff, 0x9c, 0x73, 0x5c, 0x08, 0x70, 0x6c, 0x70, 0xd2, 0xd5, 0x2a, 0xe4, 0x8e, 0xc3, 0xeb, 0x5f, - 0x70, 0x5e, 0x59, 0x1c, 0x64, 0x72, 0x0d, 0x0a, 0x94, 0x89, 0x31, 0x70, 0x5c, 0xbb, 0x4b, 0x0d, - 0xf0, 0xd1, 0x6c, 0xfe, 0xe5, 0xef, 0xb1, 0x49, 0x9b, 0x27, 0x64, 0x55, 0x8f, 0x6a, 0x75, 0x15, - 0xe8, 0x89, 0x85, 0x16, 0x36, 0x3a, 0x53, 0x38, 0xfc, 0x1a, 0x6f, 0x88, 0x87, 0xbf, 0x7a, 0x13, - 0x16, 0xc9, 0x6f, 0x6a, 0x1f, 0x83, 0x2d, 0x99, 0x9e, 0x54, 0x2f, 0xfe, 0xbb, 0x0f, 0x32, 0xbb, - 0xb0, 0xe0, 0x31, 0x08, 0xb4, 0x29, 0x30, 0x8a, 0x6d, 0xec, 0xba, 0xb8, 0xef, 0x68, 0x7a, 0x67, - 0x5c, 0xf3, 0x02, 0x59, 0xc9, 0xe2, 0x0f, 0x7c, 0x29, 0x3c, 0x8a, 0xd7, 0x18, 0x65, 0xb9, 0xd3, - 0x59, 0xdd, 0x81, 0x53, 0x63, 0xb4, 0x62, 0x06, 0x9e, 0x3f, 0xc8, 0x79, 0x2e, 0x8e, 0x68, 0x06, - 0x61, 0xbb, 0x0d, 0x02, 0xee, 0x8d, 0xe5, 0x0c, 0x3c, 0x3f, 0xca, 0x79, 0x22, 0x4e, 0x2b, 0x86, - 0x94, 0x70, 0xbc, 0x01, 0xf3, 0xb7, 0x71, 0x7f, 0xd7, 0x76, 0x78, 0x26, 0x78, 0x06, 0x76, 0x1f, - 0xe3, 0xec, 0x0a, 0x9c, 0x90, 0xa6, 0x86, 0x09, 0xaf, 0xe7, 0x21, 0xb5, 0xa7, 0x1b, 0x78, 0x06, - 0x16, 0x77, 0x39, 0x8b, 0x24, 0xc1, 0x27, 0xa4, 0x65, 0xc8, 0xb6, 0x6d, 0xbe, 0x44, 0x4e, 0x27, - 0xff, 0x21, 0x4e, 0x9e, 0x11, 0x34, 0x9c, 0x45, 0xcf, 0xee, 0x0d, 0x3a, 0x64, 0xfd, 0x9c, 0xce, - 0xe2, 0x87, 0x05, 0x0b, 0x41, 0xc3, 0x59, 0x1c, 0x43, 0xac, 0x1f, 0x17, 0x2c, 0x9c, 0x80, 0x3c, - 0x5f, 0x80, 0x8c, 0x6d, 0x75, 0x0e, 0x6d, 0x6b, 0x96, 0x46, 0x7c, 0x82, 0x73, 0x00, 0x4e, 0x42, - 0x18, 0x5c, 0x81, 0xf4, 0xac, 0x03, 0xf1, 0x63, 0x5f, 0x12, 0xd3, 0x43, 0x8c, 0xc0, 0x35, 0x28, - 0x08, 0x03, 0x65, 0xda, 0xd6, 0x0c, 0x2c, 0x7e, 0x9c, 0xb3, 0xc8, 0x07, 0xc8, 0x78, 0x37, 0x5c, - 0xec, 0xb8, 0x6d, 0x3c, 0x0b, 0x93, 0x4f, 0x8a, 0x6e, 0x70, 0x12, 0x2e, 0xca, 0x5d, 0x6c, 0x19, - 0xfb, 0xb3, 0x71, 0xf8, 0x94, 0x10, 0xa5, 0xa0, 0x21, 0x2c, 0xaa, 0x90, 0xeb, 0xea, 0x7d, 0x67, - 0x5f, 0xef, 0xcc, 0x34, 0x1c, 0x3f, 0xc1, 0x79, 0x64, 0x3d, 0x22, 0x2e, 0x91, 0x81, 0x75, 0x1c, - 0x36, 0x3f, 0x29, 0x24, 0x12, 0x20, 0xe3, 0x53, 0xcf, 0x71, 0x69, 0xda, 0xfc, 0x38, 0xdc, 0xfe, - 0xae, 0x98, 0x7a, 0x8c, 0x76, 0x23, 0xc8, 0xf1, 0x0a, 0xa4, 0x1d, 0xf3, 0xcd, 0x99, 0xd8, 0xfc, - 0x3d, 0x31, 0xd2, 0x94, 0x80, 0x10, 0xbf, 0x0a, 0xa7, 0xc7, 0x2e, 0x13, 0x33, 0x30, 0xfb, 0x29, - 0xce, 0xec, 0xe4, 0x98, 0xa5, 0x82, 0x9b, 0x84, 0xe3, 0xb2, 0xfc, 0xfb, 0xc2, 0x24, 0xe0, 0x21, - 0x5e, 0xdb, 0x24, 0x68, 0x71, 0xf4, 0xbd, 0xe3, 0x49, 0xed, 0x1f, 0x08, 0xa9, 0x31, 0xda, 0x90, - 0xd4, 0x9a, 0x70, 0x92, 0x73, 0x3c, 0xde, 0xb8, 0xfe, 0xb4, 0x30, 0xac, 0x8c, 0x7a, 0x27, 0x3c, - 0xba, 0x5f, 0x07, 0x25, 0x4f, 0x9c, 0xc2, 0x3b, 0x76, 0xb4, 0xae, 0xde, 0x9b, 0x81, 0xf3, 0xcf, - 0x70, 0xce, 0xc2, 0xe2, 0x7b, 0xee, 0xb5, 0xb3, 0xa1, 0xf7, 0x08, 0xf3, 0x57, 0xa0, 0x28, 0x98, - 0x0f, 0xac, 0x3e, 0x36, 0xec, 0xb6, 0x65, 0xbe, 0x89, 0x5b, 0x33, 0xb0, 0xfe, 0xd9, 0xa1, 0xa1, - 0xda, 0x09, 0x90, 0x13, 0xce, 0x75, 0x90, 0x3d, 0x5f, 0x45, 0x33, 0xbb, 0x3d, 0xbb, 0xef, 0x4e, - 0xe1, 0xf8, 0x69, 0x31, 0x52, 0x1e, 0x5d, 0x9d, 0x92, 0xad, 0xd6, 0x80, 0x9d, 0x25, 0x99, 0x55, - 0x25, 0x3f, 0xc3, 0x19, 0xe5, 0x7c, 0x2a, 0x6e, 0x38, 0x0c, 0xbb, 0xdb, 0xd3, 0xfb, 0xb3, 0xd8, - 0xbf, 0x7f, 0x28, 0x0c, 0x07, 0x27, 0xe1, 0x86, 0x83, 0x78, 0x74, 0x64, 0xb5, 0x9f, 0x81, 0xc3, - 0xcf, 0x09, 0xc3, 0x21, 0x68, 0x38, 0x0b, 0xe1, 0x30, 0xcc, 0xc0, 0xe2, 0xe7, 0x05, 0x0b, 0x41, - 0x43, 0x58, 0xbc, 0xe4, 0x2f, 0xb4, 0x7d, 0xdc, 0x36, 0x1d, 0x97, 0x1f, 0x06, 0x3b, 0x9a, 0xd5, - 0x2f, 0x7c, 0x29, 0xec, 0x84, 0xa9, 0x01, 0x52, 0x62, 0x89, 0xf8, 0x46, 0x0a, 0x0d, 0xd9, 0xa6, - 0x37, 0xec, 0x17, 0x85, 0x25, 0x0a, 0x90, 0x91, 0xb6, 0x05, 0x3c, 0x44, 0x22, 0x76, 0x83, 0x04, - 0x2a, 0x33, 0xb0, 0xfb, 0x47, 0x43, 0x8d, 0x6b, 0x08, 0x5a, 0xc2, 0x33, 0xe0, 0xff, 0x0c, 0xac, - 0x5b, 0xf8, 0x70, 0x26, 0xed, 0xfc, 0xa5, 0x21, 0xff, 0x67, 0x87, 0x51, 0x32, 0x1b, 0x52, 0x18, - 0xf2, 0xa7, 0xd0, 0xb4, 0xb3, 0x9e, 0xc5, 0x6f, 0xfa, 0x32, 0xef, 0x6f, 0xd8, 0x9d, 0x5a, 0x5d, - 0x27, 0x4a, 0x1e, 0x76, 0x7a, 0xa6, 0x33, 0xfb, 0xe0, 0x97, 0x3d, 0x3d, 0x0f, 0xf9, 0x3c, 0xab, - 0x57, 0x21, 0x17, 0x72, 0x78, 0xa6, 0xb3, 0xfa, 0x66, 0xce, 0x2a, 0x1b, 0xf4, 0x77, 0x56, 0x2f, - 0x41, 0x8c, 0x38, 0x2f, 0xd3, 0xc9, 0xbf, 0x85, 0x93, 0x53, 0xf4, 0xd5, 0xf7, 0x40, 0x4a, 0x38, - 0x2d, 0xd3, 0x49, 0xff, 0x26, 0x27, 0xf5, 0x48, 0x08, 0xb9, 0x70, 0x58, 0xa6, 0x93, 0xff, 0x2d, - 0x41, 0x2e, 0x48, 0x08, 0xf9, 0xec, 0x22, 0xfc, 0x95, 0x6f, 0x8b, 0xf1, 0x45, 0x47, 0xc8, 0xee, - 0x0a, 0x24, 0xb9, 0xa7, 0x32, 0x9d, 0xfa, 0x5b, 0x79, 0xe5, 0x82, 0x62, 0xf5, 0x59, 0x88, 0xcf, - 0x28, 0xf0, 0xef, 0xe0, 0xa4, 0x0c, 0x7f, 0xb5, 0x0a, 0x99, 0x80, 0x77, 0x32, 0x9d, 0xfc, 0x3b, - 0x39, 0x79, 0x90, 0x8a, 0x34, 0x9d, 0x7b, 0x27, 0xd3, 0x19, 0xfc, 0x6d, 0xd1, 0x74, 0x4e, 0x41, - 0xc4, 0x26, 0x1c, 0x93, 0xe9, 0xd4, 0x1f, 0x16, 0x52, 0x17, 0x24, 0xab, 0x2f, 0x40, 0xda, 0x5b, - 0x6c, 0xa6, 0xd3, 0x7f, 0x17, 0xa7, 0xf7, 0x69, 0x88, 0x04, 0x02, 0x8b, 0xdd, 0x74, 0x16, 0xdf, - 0x2d, 0x24, 0x10, 0xa0, 0x22, 0xd3, 0x68, 0xd8, 0x81, 0x99, 0xce, 0xe9, 0x7b, 0xc4, 0x34, 0x1a, - 0xf2, 0x5f, 0xc8, 0x68, 0x52, 0x9b, 0x3f, 0x9d, 0xc5, 0xf7, 0x8a, 0xd1, 0xa4, 0xf8, 0xa4, 0x19, - 0xc3, 0x1e, 0xc1, 0x74, 0x1e, 0xdf, 0x2f, 0x9a, 0x31, 0xe4, 0x10, 0xac, 0x6e, 0x03, 0x1a, 0xf5, - 0x06, 0xa6, 0xf3, 0xfb, 0x08, 0xe7, 0x37, 0x3f, 0xe2, 0x0c, 0xac, 0xbe, 0x0c, 0x27, 0xc7, 0x7b, - 0x02, 0xd3, 0xb9, 0xfe, 0xc0, 0x97, 0x87, 0x62, 0xb7, 0xa0, 0x23, 0xb0, 0xda, 0xf4, 0x97, 0x94, - 0xa0, 0x17, 0x30, 0x9d, 0xed, 0x0f, 0x7e, 0x39, 0x6c, 0xb8, 0x83, 0x4e, 0xc0, 0x6a, 0x19, 0xc0, - 0x5f, 0x80, 0xa7, 0xf3, 0xfa, 0x18, 0xe7, 0x15, 0x20, 0x22, 0x53, 0x83, 0xaf, 0xbf, 0xd3, 0xe9, - 0xef, 0x8a, 0xa9, 0xc1, 0x29, 0xc8, 0xd4, 0x10, 0x4b, 0xef, 0x74, 0xea, 0x1f, 0x12, 0x53, 0x43, - 0x90, 0x10, 0xcd, 0x0e, 0xac, 0x6e, 0xd3, 0x39, 0x7c, 0x42, 0x68, 0x76, 0x80, 0x6a, 0x75, 0x13, - 0xe6, 0x47, 0x16, 0xc4, 0xe9, 0xac, 0x7e, 0x84, 0xb3, 0x92, 0x87, 0xd7, 0xc3, 0xe0, 0xe2, 0xc5, - 0x17, 0xc3, 0xe9, 0xdc, 0x7e, 0x74, 0x68, 0xf1, 0xe2, 0x6b, 0xe1, 0xea, 0x15, 0x48, 0x59, 0x83, - 0x4e, 0x87, 0x4c, 0x1e, 0x74, 0xf4, 0x69, 0xdf, 0xe2, 0x7f, 0xf9, 0x0a, 0x97, 0x8e, 0x20, 0x58, - 0xbd, 0x04, 0x71, 0xdc, 0xdd, 0xc5, 0xad, 0x69, 0x94, 0x5f, 0xfc, 0x8a, 0x30, 0x98, 0x04, 0x7b, - 0xf5, 0x05, 0x00, 0x96, 0x1a, 0xa1, 0xdb, 0xf0, 0x53, 0x68, 0xff, 0xe0, 0x2b, 0xfc, 0x78, 0x9d, - 0x4f, 0xe2, 0x33, 0x60, 0x87, 0xf5, 0x8e, 0x66, 0xf0, 0xa5, 0x30, 0x03, 0x3a, 0x22, 0xcf, 0x43, - 0xf2, 0x75, 0xc7, 0xb6, 0x5c, 0xbd, 0x3d, 0x8d, 0xfa, 0x0f, 0x39, 0xb5, 0xc0, 0x27, 0x02, 0xeb, - 0xda, 0x7d, 0xec, 0xea, 0x6d, 0x67, 0x1a, 0xed, 0x7f, 0xe5, 0xb4, 0x1e, 0x01, 0x21, 0x36, 0x74, - 0xc7, 0x9d, 0xa5, 0xdf, 0xff, 0x4d, 0x10, 0x0b, 0x02, 0xd2, 0x68, 0xf2, 0xfb, 0x16, 0x3e, 0x9c, - 0x46, 0xfb, 0x47, 0xa2, 0xd1, 0x1c, 0x7f, 0xf5, 0x3d, 0x90, 0x26, 0x3f, 0xd9, 0x99, 0xd9, 0x29, - 0xc4, 0x7f, 0xcc, 0x89, 0x7d, 0x0a, 0x52, 0xb3, 0xe3, 0xb6, 0x5c, 0x73, 0xba, 0xb0, 0xff, 0x84, - 0x8f, 0xb4, 0xc0, 0x5f, 0x2d, 0x43, 0xc6, 0x71, 0x5b, 0xad, 0x01, 0xf7, 0x4f, 0xa7, 0x90, 0xff, - 0xe9, 0x57, 0xbc, 0x94, 0x85, 0x47, 0x43, 0x46, 0xfb, 0x8d, 0x5b, 0x6e, 0xcf, 0xa6, 0xfb, 0x2d, - 0xd3, 0x38, 0x7c, 0x99, 0x73, 0x08, 0x90, 0xac, 0x56, 0x21, 0x4b, 0xfa, 0x22, 0xee, 0x22, 0x4c, - 0x63, 0xf1, 0x67, 0x5c, 0x00, 0x21, 0xa2, 0xca, 0x37, 0xfe, 0xda, 0xe7, 0xce, 0x4a, 0x9f, 0xfd, - 0xdc, 0x59, 0xe9, 0x77, 0x3e, 0x77, 0x56, 0xfa, 0xf0, 0xe7, 0xcf, 0xce, 0x7d, 0xf6, 0xf3, 0x67, - 0xe7, 0x7e, 0xeb, 0xf3, 0x67, 0xe7, 0xc6, 0x67, 0x89, 0xe1, 0x9a, 0x7d, 0xcd, 0x66, 0xf9, 0xe1, - 0xd7, 0x1e, 0x6a, 0x9b, 0xee, 0xfe, 0x60, 0x77, 0xc5, 0xb0, 0xbb, 0x17, 0x0c, 0xdb, 0xe9, 0xda, - 0xce, 0x85, 0x70, 0x5e, 0x97, 0xfe, 0x82, 0xff, 0x25, 0x91, 0x98, 0x39, 0x9c, 0xce, 0xd5, 0xad, - 0xc3, 0x49, 0x97, 0x29, 0x2f, 0x43, 0xb4, 0x6c, 0x1d, 0xa2, 0xd3, 0xcc, 0xc0, 0x69, 0x83, 0x7e, - 0x87, 0x1f, 0xdc, 0x4c, 0x92, 0xef, 0x9d, 0x7e, 0x07, 0x2d, 0xfa, 0xa7, 0xab, 0xa5, 0x73, 0x59, - 0x7e, 0x64, 0xba, 0xf2, 0x9d, 0xd2, 0xf1, 0x7a, 0x92, 0x2a, 0x5b, 0x87, 0xb4, 0x23, 0xdb, 0xd2, - 0x6b, 0x8f, 0x4f, 0xcd, 0x73, 0xdf, 0xb2, 0xec, 0x37, 0x2c, 0xd2, 0xec, 0xde, 0xae, 0xc8, 0x71, - 0x9f, 0x1d, 0xce, 0x71, 0xbf, 0x8c, 0x3b, 0x9d, 0x17, 0x09, 0x5e, 0x93, 0x90, 0xec, 0x26, 0xd8, - 0x1d, 0x01, 0xf8, 0x9e, 0x08, 0x9c, 0x1d, 0x49, 0x67, 0x73, 0x25, 0x98, 0x24, 0x84, 0x55, 0x48, - 0xad, 0x09, 0xdd, 0x2a, 0x42, 0xd2, 0xc1, 0x86, 0x6d, 0xb5, 0x1c, 0x2a, 0x88, 0xa8, 0x2a, 0x3e, - 0x89, 0x20, 0x2c, 0xdd, 0xb2, 0x1d, 0x7e, 0xf4, 0x99, 0x7d, 0x54, 0x3e, 0x7a, 0x4c, 0x41, 0xe4, - 0x44, 0x4d, 0x42, 0x1a, 0x4f, 0xcd, 0x28, 0x0d, 0xd1, 0x89, 0x50, 0xe6, 0x7f, 0x56, 0xa9, 0x7c, - 0x7f, 0x04, 0x96, 0x86, 0xa5, 0x42, 0x66, 0x96, 0xe3, 0xea, 0xdd, 0xde, 0x24, 0xb1, 0x5c, 0x81, - 0x74, 0x53, 0xe0, 0x1c, 0x5b, 0x2e, 0x77, 0x8f, 0x29, 0x97, 0xbc, 0x57, 0x95, 0x10, 0xcc, 0xc5, - 0x19, 0x05, 0xe3, 0xf5, 0xe3, 0x9e, 0x24, 0xf3, 0x3f, 0x13, 0x70, 0x9a, 0x4d, 0x27, 0x8d, 0x4d, - 0x25, 0xf6, 0xc1, 0x65, 0x92, 0x0d, 0x16, 0x4d, 0xdf, 0x27, 0x51, 0x5e, 0x84, 0x85, 0x3a, 0xb1, - 0x16, 0x24, 0x0a, 0xf2, 0x77, 0x78, 0xc6, 0x9e, 0x0e, 0x5f, 0x0e, 0x39, 0xfc, 0x7c, 0x7f, 0x2b, - 0x08, 0x52, 0xbe, 0x49, 0x02, 0xb9, 0x61, 0xe8, 0x1d, 0xbd, 0xff, 0xd5, 0xb2, 0x42, 0xcf, 0x02, - 0xb0, 0xe3, 0x1e, 0xde, 0xc5, 0xcd, 0xfc, 0xc5, 0xe2, 0x4a, 0xb0, 0x73, 0x2b, 0xac, 0x26, 0x7a, - 0x84, 0x2a, 0x4d, 0x71, 0xc9, 0xcf, 0xf3, 0xaf, 0x00, 0xf8, 0x05, 0xe8, 0x0c, 0x9c, 0x6a, 0x54, - 0xcb, 0xeb, 0x65, 0x55, 0x1c, 0x12, 0x6a, 0x6c, 0xd7, 0xaa, 0xec, 0x9a, 0xd5, 0x1c, 0x3a, 0x09, - 0x28, 0x58, 0xe8, 0x1d, 0x6a, 0x3a, 0x01, 0xf3, 0x41, 0x38, 0xbb, 0xf3, 0x12, 0x21, 0x9e, 0xa2, - 0xd9, 0xed, 0x75, 0x30, 0xdd, 0x79, 0xd4, 0x4c, 0x21, 0xb5, 0xe9, 0x4e, 0xc8, 0xaf, 0xff, 0x7b, - 0x76, 0x0f, 0x62, 0xc1, 0x27, 0xf7, 0x64, 0xbe, 0xba, 0x0e, 0xf3, 0xba, 0x61, 0xe0, 0x5e, 0x88, - 0xe5, 0x14, 0x53, 0x4d, 0x18, 0xd2, 0xbd, 0x54, 0x4e, 0xe9, 0x73, 0x7b, 0x16, 0x12, 0x0e, 0xed, - 0xfd, 0x34, 0x16, 0xbf, 0xc1, 0x59, 0x70, 0xf4, 0x55, 0x0b, 0xe6, 0xd9, 0xbd, 0x3e, 0x1c, 0x68, - 0xc6, 0xd1, 0x79, 0x86, 0x7f, 0xfc, 0xe9, 0x27, 0xe9, 0xce, 0xea, 0x03, 0xe1, 0x61, 0x19, 0xa3, - 0x4e, 0xaa, 0xcc, 0x79, 0xfb, 0x0d, 0xc5, 0x90, 0x17, 0xf5, 0xf1, 0x06, 0x1f, 0x5d, 0xd9, 0x2f, - 0xf3, 0xca, 0xce, 0x8e, 0xd3, 0x81, 0x40, 0x4d, 0x39, 0xce, 0x95, 0x15, 0x54, 0x6a, 0x93, 0xe6, - 0xf4, 0x6b, 0x8f, 0x8d, 0xae, 0x4e, 0xec, 0xbf, 0x27, 0x28, 0xe7, 0x2b, 0xc1, 0x6a, 0xbc, 0xb9, - 0xf7, 0xd1, 0x18, 0xcc, 0xeb, 0x5d, 0xd3, 0xb2, 0x2f, 0xd0, 0x7f, 0xf9, 0x9c, 0x8b, 0xd3, 0x8f, - 0x19, 0x36, 0x25, 0x2f, 0xb3, 0xa9, 0x30, 0x5d, 0x63, 0xfe, 0xf8, 0xdb, 0x7f, 0x3c, 0xee, 0x4f, - 0x97, 0xd5, 0x0d, 0x90, 0xc5, 0x91, 0x60, 0x6c, 0x19, 0x76, 0x6b, 0xa6, 0x2c, 0xc5, 0x9f, 0x08, - 0x1e, 0x22, 0xbf, 0x55, 0xe3, 0xa4, 0xab, 0xef, 0x86, 0x94, 0xc7, 0x66, 0x9a, 0x67, 0x22, 0x98, - 0x78, 0x14, 0xc4, 0x2f, 0x61, 0x33, 0x73, 0x16, 0x2f, 0xf4, 0xcb, 0x82, 0x9e, 0xcd, 0xd0, 0x4d, - 0xd2, 0x9b, 0x6b, 0x90, 0x6f, 0xd9, 0x96, 0xab, 0xd9, 0x5d, 0xd3, 0xc5, 0xdd, 0x9e, 0x3b, 0xd5, - 0xaf, 0xfb, 0x33, 0xc6, 0x24, 0xa5, 0xe6, 0x08, 0xdd, 0x96, 0x20, 0x23, 0x2d, 0x61, 0xb7, 0xfe, - 0x66, 0x69, 0xc9, 0x7f, 0xf7, 0x5a, 0x42, 0x69, 0x48, 0x4b, 0xee, 0x49, 0x3b, 0x9c, 0xd6, 0x2d, - 0x6e, 0xcc, 0xdd, 0x03, 0xa6, 0x05, 0x9e, 0x76, 0x7c, 0x32, 0x0a, 0x67, 0x39, 0xf2, 0xae, 0xee, - 0xe0, 0x0b, 0xb7, 0x9f, 0xda, 0xc5, 0xae, 0xfe, 0xd4, 0x05, 0xc3, 0x36, 0xc5, 0x4a, 0xbe, 0xc0, - 0x8d, 0x35, 0x29, 0x5f, 0xe1, 0xe5, 0xa5, 0xb1, 0xdb, 0xdd, 0xa5, 0xc9, 0x46, 0xbe, 0x34, 0xaa, - 0x83, 0x4a, 0x07, 0x62, 0x55, 0xdb, 0xb4, 0xc8, 0xda, 0xd6, 0xc2, 0x96, 0xdd, 0xe5, 0xe6, 0x96, - 0x7d, 0xa0, 0xeb, 0x90, 0xd0, 0xbb, 0xf6, 0xc0, 0x72, 0x99, 0xa9, 0xad, 0x3c, 0xf9, 0x6b, 0x6f, - 0x2d, 0xcd, 0xfd, 0xc7, 0xb7, 0x96, 0x4e, 0x30, 0xb6, 0x4e, 0xeb, 0xd6, 0x8a, 0x69, 0x5f, 0xe8, - 0xea, 0xee, 0x3e, 0x99, 0xbe, 0xbf, 0xf9, 0x99, 0x27, 0x80, 0xd7, 0x57, 0xb7, 0xdc, 0x4f, 0xfd, - 0xfe, 0x4f, 0x9f, 0x97, 0x54, 0x4e, 0xbf, 0x1a, 0xfb, 0xc2, 0xc7, 0x97, 0x24, 0xa5, 0x07, 0xc9, - 0x35, 0x6c, 0x1c, 0x51, 0x61, 0x7d, 0xa8, 0xc2, 0xa7, 0x78, 0x85, 0x67, 0x46, 0x2b, 0x64, 0x07, - 0xf6, 0xd6, 0xb0, 0x11, 0xa8, 0x76, 0x0d, 0x1b, 0xe1, 0x1a, 0x2b, 0x6b, 0xbf, 0xf5, 0xbb, 0x67, - 0xe7, 0x3e, 0xf0, 0xb9, 0xb3, 0x73, 0x13, 0x87, 0x4c, 0x99, 0x3e, 0x64, 0xde, 0x48, 0xfd, 0x78, - 0x0c, 0xee, 0xa7, 0xf7, 0x4b, 0xfb, 0x5d, 0xd3, 0x72, 0x2f, 0x18, 0xfd, 0xc3, 0x9e, 0x6b, 0x93, - 0x89, 0x6b, 0xef, 0xf1, 0x81, 0x9a, 0xf7, 0x8b, 0x57, 0x58, 0xf1, 0xf8, 0x61, 0x52, 0xf6, 0x20, - 0xbe, 0x4d, 0xe8, 0x88, 0x20, 0x5c, 0xdb, 0xd5, 0x3b, 0xdc, 0xdb, 0x60, 0x1f, 0x04, 0xca, 0xee, - 0xa4, 0x46, 0x18, 0xd4, 0x14, 0xd7, 0x51, 0x3b, 0x58, 0xdf, 0x63, 0x57, 0x7b, 0xa2, 0xd4, 0x4d, - 0x4d, 0x11, 0x00, 0xbd, 0xc5, 0xb3, 0x08, 0x71, 0x7d, 0xc0, 0x0e, 0xcc, 0x44, 0x89, 0xff, 0x4a, - 0x3f, 0x94, 0x17, 0x21, 0xc9, 0xf7, 0xcd, 0x91, 0x0c, 0xd1, 0x5b, 0xf8, 0x90, 0xd6, 0x93, 0x55, - 0xc9, 0x4f, 0xb4, 0x02, 0x71, 0xda, 0x78, 0x7e, 0x67, 0xb1, 0xb8, 0x32, 0xd2, 0xfa, 0x15, 0xda, - 0x48, 0x95, 0xa1, 0x29, 0x37, 0x20, 0xb5, 0x66, 0x13, 0xed, 0x09, 0x73, 0x4b, 0x33, 0x6e, 0xb4, - 0xcd, 0xbd, 0x01, 0x1f, 0x3b, 0x95, 0x7d, 0xa0, 0x93, 0x90, 0x60, 0x57, 0xbd, 0xf8, 0xa1, 0x1f, - 0xfe, 0xa5, 0x54, 0x21, 0x49, 0x79, 0x6f, 0xf5, 0xbc, 0xeb, 0xd5, 0x52, 0xe0, 0x7a, 0x35, 0x67, - 0x1f, 0xf1, 0x1b, 0x8b, 0x20, 0xd6, 0xd2, 0x5d, 0x9d, 0xf7, 0x9b, 0xfe, 0x56, 0xde, 0x0b, 0x29, - 0xce, 0xc4, 0x41, 0x17, 0x21, 0x6a, 0xf7, 0x1c, 0x7e, 0x6c, 0xa7, 0x34, 0xa9, 0x2b, 0x5b, 0xbd, - 0x4a, 0x8c, 0x28, 0x95, 0x4a, 0x90, 0x2b, 0x9b, 0x13, 0xd5, 0xe2, 0x99, 0x90, 0x5a, 0x74, 0xb1, - 0xbb, 0xbb, 0xe7, 0xfa, 0x3f, 0xd8, 0x70, 0x8e, 0xa8, 0x82, 0xa7, 0x28, 0x77, 0x23, 0x70, 0x36, - 0x50, 0x7a, 0x1b, 0xf7, 0x1d, 0xd3, 0xb6, 0x98, 0x36, 0x71, 0x4d, 0x41, 0x81, 0x06, 0xf2, 0xf2, - 0x09, 0xaa, 0xf2, 0x1e, 0x88, 0x96, 0x7b, 0x3d, 0x54, 0x82, 0x14, 0xfd, 0x36, 0x6c, 0xa6, 0x2b, - 0x31, 0xd5, 0xfb, 0x26, 0x65, 0x8e, 0xbd, 0xe7, 0xbe, 0xa1, 0xf7, 0xbd, 0x9b, 0xd0, 0xe2, 0x5b, - 0x79, 0x1e, 0xd2, 0x55, 0xdb, 0x72, 0xb0, 0xe5, 0x0c, 0xa8, 0x0f, 0xbb, 0xdb, 0xb1, 0x8d, 0x5b, - 0x9c, 0x03, 0xfb, 0x20, 0xc2, 0xd6, 0x7b, 0x3d, 0x4a, 0x19, 0x53, 0xc9, 0x4f, 0x3e, 0x7b, 0xb6, - 0x26, 0x8a, 0xe7, 0xd2, 0xf1, 0xc4, 0xc3, 0x3b, 0xe8, 0x3b, 0xa3, 0x12, 0xdc, 0x37, 0x3a, 0x91, - 0x6e, 0xe1, 0x43, 0xe7, 0xb8, 0xf3, 0xe8, 0x15, 0x48, 0x6f, 0xd3, 0x67, 0x65, 0x5e, 0xc4, 0x87, - 0xa8, 0x04, 0x49, 0xdc, 0xba, 0x78, 0xe9, 0xd2, 0x53, 0xcf, 0x33, 0x2d, 0xbf, 0x3e, 0xa7, 0x0a, - 0x00, 0x3a, 0x0b, 0x69, 0x07, 0x1b, 0xbd, 0x8b, 0x97, 0x2e, 0xdf, 0x7a, 0x8a, 0xa9, 0xd5, 0xf5, - 0x39, 0xd5, 0x07, 0xad, 0xa6, 0x48, 0x8f, 0xbf, 0xf0, 0x89, 0x25, 0xa9, 0x12, 0x87, 0xa8, 0x33, - 0xe8, 0xbe, 0x63, 0xba, 0xf1, 0x47, 0x09, 0x58, 0x0e, 0x94, 0xb2, 0x45, 0xe1, 0xb6, 0xde, 0x31, - 0x5b, 0xba, 0xff, 0x18, 0x90, 0x1c, 0xe8, 0x3f, 0xc5, 0x98, 0x60, 0xed, 0x8f, 0x94, 0xa2, 0xf2, - 0xb3, 0x12, 0x64, 0x6f, 0x0a, 0xce, 0x0d, 0xec, 0xa2, 0x2b, 0x00, 0x5e, 0x4d, 0x62, 0xaa, 0x9c, - 0x59, 0x19, 0xae, 0x6b, 0xc5, 0xa3, 0x51, 0x03, 0xe8, 0xe8, 0x59, 0xaa, 0x80, 0x3d, 0xdb, 0xe1, - 0xb7, 0x62, 0xa7, 0x90, 0x7a, 0xc8, 0xe8, 0x71, 0x40, 0xd4, 0xaa, 0x69, 0xb7, 0x6d, 0xd7, 0xb4, - 0xda, 0x5a, 0xcf, 0x7e, 0x83, 0xbf, 0x35, 0x10, 0x55, 0x65, 0x5a, 0x72, 0x93, 0x16, 0x6c, 0x13, - 0x38, 0x69, 0x74, 0xda, 0xe3, 0x42, 0xc2, 0x31, 0xbd, 0xd5, 0xea, 0x63, 0xc7, 0xe1, 0x86, 0x4b, - 0x7c, 0xa2, 0x2b, 0x90, 0xec, 0x0d, 0x76, 0x35, 0x61, 0x25, 0x32, 0x17, 0xef, 0x1b, 0x37, 0xe7, - 0x85, 0x6e, 0xf0, 0x59, 0x9f, 0xe8, 0x0d, 0x76, 0x89, 0xa6, 0x3c, 0x00, 0xd9, 0x31, 0x8d, 0xc9, - 0xdc, 0xf6, 0xdb, 0x41, 0x5f, 0x32, 0xe2, 0x3d, 0xd0, 0x7a, 0x7d, 0xd3, 0xee, 0x9b, 0xee, 0x21, - 0x3d, 0x6e, 0x17, 0x55, 0x65, 0x51, 0xb0, 0xcd, 0xe1, 0xca, 0x2d, 0x28, 0x34, 0xa8, 0x9b, 0xee, - 0xb7, 0xfc, 0x92, 0xdf, 0x3e, 0x69, 0x7a, 0xfb, 0x26, 0xb6, 0x2c, 0x32, 0xd2, 0xb2, 0xf3, 0xff, - 0x41, 0x82, 0x4c, 0x85, 0x4c, 0xdc, 0xfa, 0xda, 0xd5, 0x8e, 0xde, 0x46, 0x4f, 0xc1, 0x89, 0xca, - 0xfa, 0x56, 0xf5, 0x45, 0xad, 0xbe, 0xa6, 0x5d, 0x5d, 0x2f, 0x5f, 0xf3, 0xcf, 0xf7, 0x96, 0x4e, - 0xde, 0xb9, 0xbb, 0x8c, 0x02, 0xb8, 0x3b, 0x16, 0x8d, 0x25, 0xd1, 0x05, 0x58, 0x0c, 0x93, 0x94, - 0x2b, 0x8d, 0xda, 0x66, 0x53, 0x96, 0x4a, 0x27, 0xee, 0xdc, 0x5d, 0x9e, 0x0f, 0x50, 0x94, 0x77, - 0x1d, 0x6c, 0xb9, 0xa3, 0x04, 0xd5, 0xad, 0x8d, 0x8d, 0x7a, 0x53, 0x8e, 0x8c, 0x10, 0x54, 0xed, - 0x6e, 0xd7, 0x74, 0xd1, 0xa3, 0x30, 0x1f, 0x26, 0xd8, 0xac, 0xaf, 0xcb, 0xd1, 0x12, 0xba, 0x73, - 0x77, 0x39, 0x1f, 0xc0, 0xde, 0x34, 0x3b, 0xa5, 0xd4, 0x87, 0x7e, 0xf4, 0xec, 0xdc, 0xa7, 0xfe, - 0xce, 0x59, 0xa9, 0xb2, 0x31, 0x71, 0xce, 0x3d, 0x7d, 0xbc, 0x39, 0x17, 0x5e, 0xb7, 0xbf, 0x72, - 0x5f, 0xc8, 0xdc, 0x70, 0x3f, 0x2c, 0x60, 0x8c, 0x67, 0x9d, 0x6e, 0xd3, 0x72, 0x0b, 0xa5, 0xa3, - 0xdd, 0x83, 0xd2, 0x94, 0x45, 0xa1, 0x34, 0xd5, 0x30, 0x28, 0xcf, 0x43, 0x6e, 0x5b, 0xef, 0xbb, - 0x0d, 0xec, 0x5e, 0xc7, 0x7a, 0x0b, 0xf7, 0xc3, 0xfe, 0x43, 0x4e, 0xf8, 0x0f, 0x08, 0x62, 0xd4, - 0x49, 0x60, 0xeb, 0x27, 0xfd, 0xad, 0xec, 0x43, 0x8c, 0x9e, 0x24, 0xf6, 0x7c, 0x0b, 0x4e, 0xc1, - 0x7c, 0x0b, 0xb2, 0x32, 0x1c, 0xba, 0xd8, 0x11, 0xe9, 0x2f, 0xfa, 0x81, 0x9e, 0x11, 0x1e, 0x42, - 0xf4, 0x68, 0x0f, 0x81, 0x4f, 0x2f, 0xee, 0x27, 0x74, 0x20, 0xc9, 0x87, 0xd8, 0x6b, 0x88, 0xe4, - 0x37, 0x04, 0x6d, 0x40, 0xa1, 0xa7, 0xf7, 0x5d, 0x7a, 0x4f, 0x71, 0x9f, 0xf6, 0x82, 0xcf, 0xe0, - 0xa5, 0x51, 0x7b, 0x12, 0xea, 0x2c, 0xaf, 0x25, 0xd7, 0x0b, 0x02, 0x95, 0xff, 0x1c, 0x83, 0x04, - 0x17, 0xc6, 0x7b, 0x20, 0xc9, 0xc5, 0xca, 0xe7, 0xdc, 0xfd, 0x2b, 0xa3, 0xcb, 0xec, 0x8a, 0xb7, - 0x1c, 0x72, 0x7e, 0x82, 0x06, 0x3d, 0x0c, 0x29, 0x63, 0x5f, 0x37, 0x2d, 0xcd, 0x6c, 0x71, 0x07, - 0x34, 0xf3, 0xb9, 0xb7, 0x96, 0x92, 0x55, 0x02, 0xab, 0xaf, 0xa9, 0x49, 0x5a, 0x58, 0x6f, 0x11, - 0x9f, 0x66, 0x1f, 0x9b, 0xed, 0x7d, 0x97, 0xdb, 0x0d, 0xfe, 0x85, 0x9e, 0x83, 0x18, 0x51, 0x08, - 0x7e, 0x8b, 0xbd, 0x34, 0x12, 0x59, 0x78, 0xa9, 0x9f, 0x4a, 0x8a, 0x54, 0xfc, 0xe1, 0xff, 0xb4, - 0x24, 0xa9, 0x94, 0x02, 0x55, 0x21, 0xd7, 0xd1, 0x1d, 0x57, 0xa3, 0xeb, 0x31, 0xa9, 0x3e, 0x4e, - 0x59, 0x9c, 0x1e, 0x15, 0x08, 0x17, 0x2c, 0x6f, 0x7a, 0x86, 0x50, 0x31, 0x50, 0x0b, 0x9d, 0x03, - 0x99, 0x32, 0x31, 0xe8, 0x0c, 0x64, 0x5e, 0x62, 0x82, 0xca, 0x3d, 0x4f, 0xe0, 0x6c, 0x62, 0x52, - 0x5f, 0xf1, 0x0c, 0xa4, 0xe9, 0xbd, 0x59, 0x8a, 0xc2, 0x8e, 0xaf, 0xa7, 0x08, 0x80, 0x16, 0x3e, - 0x02, 0x05, 0xdf, 0xea, 0x33, 0x94, 0x14, 0xe3, 0xe2, 0x83, 0x29, 0xe2, 0x93, 0xb0, 0x68, 0xe1, - 0x03, 0x7a, 0xa0, 0x3e, 0x84, 0x9d, 0xa6, 0xd8, 0x88, 0x94, 0xdd, 0x0c, 0x53, 0x3c, 0x04, 0x79, - 0x43, 0x08, 0x9f, 0xe1, 0x02, 0xc5, 0xcd, 0x79, 0x50, 0x8a, 0x76, 0x1a, 0x52, 0x7a, 0xaf, 0xc7, - 0x10, 0x32, 0xdc, 0xea, 0xf7, 0x7a, 0xb4, 0xe8, 0x3c, 0xcc, 0xd3, 0x3e, 0xf6, 0xb1, 0x33, 0xe8, - 0xb8, 0x9c, 0x49, 0x96, 0xe2, 0x14, 0x48, 0x81, 0xca, 0xe0, 0x14, 0xf7, 0x41, 0xc8, 0xe1, 0xdb, - 0x66, 0x0b, 0x5b, 0x06, 0x66, 0x78, 0x39, 0x8a, 0x97, 0x15, 0x40, 0x8a, 0xf4, 0x28, 0x78, 0xd6, - 0x5c, 0x13, 0x2b, 0x4d, 0x9e, 0xf1, 0x13, 0xf0, 0x32, 0x03, 0x2b, 0x45, 0x88, 0xad, 0xe9, 0xae, - 0x4e, 0xdc, 0x25, 0xf7, 0x80, 0x2d, 0x9f, 0x59, 0x95, 0xfc, 0x54, 0x7e, 0x3e, 0x0a, 0xb1, 0x9b, - 0xb6, 0x8b, 0xd1, 0xd3, 0x01, 0x57, 0x36, 0x3f, 0x4e, 0x9f, 0x1b, 0x66, 0xdb, 0xc2, 0xad, 0x0d, - 0xa7, 0x1d, 0x78, 0xe4, 0xc6, 0x57, 0xa7, 0x48, 0x48, 0x9d, 0x16, 0x21, 0xde, 0xb7, 0x07, 0x56, - 0x4b, 0x1c, 0xfc, 0xa6, 0x1f, 0xa8, 0x06, 0x29, 0x4f, 0x4b, 0x62, 0xd3, 0xb4, 0xa4, 0x40, 0xb4, - 0x84, 0xe8, 0x30, 0x07, 0xa8, 0xc9, 0x5d, 0xae, 0x2c, 0x15, 0x48, 0x7b, 0xc6, 0x8b, 0x6b, 0xdb, - 0x6c, 0x0a, 0xeb, 0x93, 0x91, 0x25, 0xd2, 0x1b, 0x7b, 0x4f, 0x78, 0x4c, 0xe3, 0x64, 0xaf, 0x80, - 0x4b, 0x2f, 0xa4, 0x56, 0xfc, 0xc1, 0x9d, 0x24, 0xed, 0x97, 0xaf, 0x56, 0xec, 0xd1, 0x9d, 0xfb, - 0x20, 0xed, 0x98, 0x6d, 0x4b, 0x77, 0x07, 0x7d, 0xcc, 0x35, 0xcf, 0x07, 0x90, 0x52, 0xff, 0x12, - 0x04, 0xd3, 0xb4, 0xc0, 0xcb, 0x6d, 0x17, 0x60, 0xc1, 0x7f, 0x33, 0xcd, 0xe7, 0xc2, 0xb4, 0x0c, - 0x79, 0x45, 0x0d, 0x51, 0xa2, 0xfc, 0x8a, 0x04, 0x09, 0xbe, 0x62, 0xf9, 0xc3, 0x20, 0x8d, 0x1f, - 0x86, 0xc8, 0xa4, 0x61, 0x88, 0xde, 0xfb, 0x30, 0x94, 0x01, 0xbc, 0x66, 0x3a, 0xfc, 0x59, 0x95, - 0x31, 0x6e, 0x15, 0x6b, 0x62, 0xc3, 0x6c, 0xf3, 0x79, 0x1f, 0x20, 0x52, 0x7e, 0x5b, 0x22, 0x1e, - 0x3e, 0x2f, 0x47, 0x65, 0xc8, 0x89, 0x76, 0x69, 0x7b, 0x1d, 0xbd, 0xcd, 0x55, 0xf1, 0xfe, 0x89, - 0x8d, 0x23, 0xab, 0xb0, 0x9a, 0xe1, 0xed, 0xa1, 0xfe, 0xc4, 0xd8, 0x61, 0x8d, 0x4c, 0x18, 0xd6, - 0x90, 0x1e, 0x45, 0xef, 0x4d, 0x8f, 0x42, 0x23, 0x1e, 0x1b, 0x1a, 0x71, 0xe5, 0x77, 0x25, 0xfe, - 0x62, 0x5b, 0x8b, 0xdd, 0xe0, 0xf8, 0xcb, 0x1a, 0xaa, 0xd7, 0xb8, 0x6e, 0xb5, 0x70, 0x4b, 0x1b, - 0x19, 0xb3, 0x07, 0x47, 0x39, 0x86, 0xdb, 0xec, 0x8f, 0x1d, 0x12, 0x5c, 0x1a, 0xfe, 0x18, 0x7e, - 0x26, 0x02, 0xf3, 0x23, 0xf8, 0x7f, 0xfd, 0xc6, 0x32, 0x3c, 0x7b, 0xe3, 0x33, 0xce, 0xde, 0xc4, - 0xc4, 0xd9, 0xfb, 0xe9, 0x08, 0x4d, 0x00, 0xf4, 0x6c, 0x47, 0xef, 0x7c, 0x2d, 0x6c, 0xef, 0x19, - 0x48, 0xf7, 0xec, 0x8e, 0xc6, 0x4a, 0xd8, 0xd5, 0x9b, 0x54, 0xcf, 0xee, 0xa8, 0x23, 0x6a, 0x16, - 0x7f, 0x9b, 0x0c, 0x73, 0xe2, 0x6d, 0x18, 0x84, 0xe4, 0xf0, 0x84, 0xea, 0x43, 0x96, 0x89, 0x82, - 0x7b, 0x4d, 0x4f, 0x12, 0x19, 0x50, 0x37, 0x4c, 0x1a, 0xf5, 0xf2, 0x58, 0xb3, 0x19, 0xa6, 0xca, - 0xf1, 0x08, 0x05, 0x73, 0x32, 0xc6, 0x65, 0x8e, 0x82, 0x16, 0x4b, 0xe5, 0x78, 0xca, 0xf7, 0x49, - 0x00, 0xeb, 0x44, 0xb2, 0xb4, 0xbf, 0xc4, 0xdf, 0x71, 0x68, 0x13, 0xb4, 0x50, 0xcd, 0x67, 0x27, - 0x0d, 0x1a, 0xaf, 0x3f, 0xeb, 0x04, 0xdb, 0x5d, 0x85, 0x9c, 0xaf, 0xdb, 0x0e, 0x16, 0x8d, 0x39, - 0x7b, 0x44, 0x54, 0xda, 0xc0, 0xae, 0x9a, 0xbd, 0x1d, 0xf8, 0x52, 0xfe, 0xa9, 0x04, 0x69, 0xda, - 0xa6, 0x0d, 0xec, 0xea, 0xa1, 0x31, 0x94, 0xee, 0x7d, 0x0c, 0xef, 0x07, 0x60, 0x6c, 0x1c, 0xf3, - 0x4d, 0xcc, 0x35, 0x2b, 0x4d, 0x21, 0x0d, 0xf3, 0x4d, 0x8c, 0x2e, 0x7b, 0x02, 0x8f, 0x1e, 0x2d, - 0x70, 0x11, 0xb5, 0x72, 0xb1, 0x9f, 0x82, 0x24, 0x7d, 0x53, 0xf4, 0xc0, 0xe1, 0x81, 0x68, 0xc2, - 0x1a, 0x74, 0x9b, 0x07, 0x8e, 0xf2, 0x3a, 0x24, 0x9b, 0x07, 0x2c, 0x9f, 0x78, 0x06, 0xd2, 0x7d, - 0xdb, 0xe6, 0xde, 0x1f, 0xf3, 0xba, 0x53, 0x04, 0x40, 0x9d, 0x1d, 0x91, 0x43, 0x8b, 0xf8, 0x39, - 0x34, 0x3f, 0x09, 0x18, 0x9d, 0x29, 0x09, 0x48, 0xa2, 0xcf, 0x5c, 0x68, 0x26, 0xa1, 0xc7, 0xe1, - 0x54, 0xa3, 0x7e, 0x6d, 0xb3, 0xb6, 0xa6, 0x6d, 0x34, 0xae, 0x0d, 0x5d, 0xab, 0x2f, 0x15, 0xee, - 0xdc, 0x5d, 0xce, 0xf0, 0xb0, 0x73, 0x12, 0xf6, 0xb6, 0x5a, 0xbb, 0xb9, 0xd5, 0xac, 0xc9, 0x12, - 0xc3, 0xde, 0xee, 0xe3, 0xdb, 0xb6, 0xcb, 0x1e, 0xed, 0x7d, 0x12, 0x4e, 0x8f, 0xc1, 0xf6, 0x82, - 0xcf, 0xf9, 0x3b, 0x77, 0x97, 0x73, 0xdb, 0x7d, 0xcc, 0xb4, 0x8c, 0x52, 0xac, 0x40, 0x71, 0x94, - 0x62, 0x6b, 0x7b, 0xab, 0x51, 0x5e, 0x97, 0x97, 0x4b, 0xf2, 0x9d, 0xbb, 0xcb, 0x59, 0x61, 0x32, - 0x08, 0xfe, 0x3b, 0x1f, 0x7d, 0x7e, 0x6b, 0x2a, 0x94, 0x35, 0x66, 0x71, 0x5d, 0x4f, 0xef, 0xeb, - 0xdd, 0xe3, 0x86, 0x9f, 0x53, 0x36, 0xfc, 0x95, 0x9f, 0x8d, 0x40, 0xc1, 0x0b, 0x6e, 0xb6, 0x69, - 0x0d, 0xe8, 0xe9, 0x60, 0xc6, 0x2f, 0x33, 0x71, 0xed, 0x60, 0xd8, 0x22, 0x21, 0xf8, 0x6e, 0x48, - 0x09, 0x27, 0x99, 0x4f, 0xaa, 0xe5, 0x31, 0xeb, 0x1b, 0xc7, 0xe0, 0xa4, 0x1e, 0x05, 0x7a, 0x01, - 0xd2, 0xde, 0x14, 0xf3, 0x9e, 0x49, 0x9b, 0x3c, 0x27, 0x39, 0xbd, 0x4f, 0x83, 0x9e, 0xf7, 0xc3, - 0xb8, 0xd8, 0xa4, 0xc0, 0xf0, 0x26, 0x43, 0xe0, 0xc4, 0x5e, 0x08, 0xf7, 0x24, 0xc4, 0xf4, 0x5d, - 0xc3, 0xe4, 0x06, 0xf8, 0xbe, 0x51, 0xba, 0x72, 0xa5, 0x5a, 0xe7, 0x44, 0x14, 0x53, 0xa9, 0xf3, - 0x64, 0x0a, 0x97, 0x17, 0x7d, 0x94, 0xe6, 0x40, 0x63, 0xb1, 0x30, 0xf3, 0x2e, 0x52, 0x5d, 0xfd, - 0xa0, 0x42, 0xc3, 0xe1, 0x53, 0x90, 0x24, 0x85, 0x6d, 0xfe, 0x50, 0x41, 0x54, 0x4d, 0x74, 0xf5, - 0x83, 0x6b, 0xba, 0x73, 0x23, 0x96, 0x8a, 0xca, 0x31, 0xe5, 0x27, 0x88, 0xa7, 0x12, 0x92, 0x0a, - 0x7a, 0x0c, 0x10, 0xa1, 0xd0, 0xdb, 0x58, 0x23, 0x53, 0x97, 0x8a, 0x57, 0xf0, 0x2d, 0x74, 0xf5, - 0x83, 0x72, 0x1b, 0x6f, 0x0e, 0xba, 0xb4, 0x01, 0x0e, 0xda, 0x00, 0x59, 0x20, 0x8b, 0x91, 0xe5, - 0xe2, 0x3f, 0x3d, 0xfa, 0x30, 0x2e, 0x47, 0x60, 0x0b, 0xc0, 0x47, 0xc8, 0x02, 0x90, 0x67, 0xfc, - 0xbc, 0x23, 0x1e, 0xa1, 0xae, 0x44, 0xc3, 0x5d, 0x51, 0x5e, 0x80, 0xc2, 0xd0, 0x08, 0x20, 0x05, - 0x72, 0x3c, 0x63, 0x45, 0xb7, 0xcf, 0x59, 0x84, 0x93, 0x56, 0x33, 0x2c, 0x33, 0x45, 0x8f, 0x13, - 0xac, 0xa6, 0x7e, 0xe1, 0xe3, 0x4b, 0x12, 0xdd, 0xcc, 0x79, 0x0c, 0x72, 0xa1, 0x31, 0x10, 0x59, - 0x64, 0xc9, 0xcf, 0x22, 0xfb, 0xc8, 0xaf, 0x41, 0x96, 0x18, 0x20, 0xdc, 0xe2, 0xb8, 0x0f, 0x43, - 0x81, 0x19, 0xc8, 0x61, 0x59, 0x33, 0x87, 0x67, 0x43, 0x08, 0x5c, 0x11, 0x1e, 0x50, 0x58, 0xec, - 0x19, 0x81, 0x75, 0x4d, 0x77, 0x94, 0x2d, 0x00, 0x7f, 0x50, 0x51, 0x19, 0xee, 0x27, 0xc6, 0x23, - 0x78, 0xdc, 0x93, 0x3f, 0x90, 0x15, 0xf2, 0x18, 0x4b, 0x04, 0xc9, 0x3f, 0xd2, 0xc9, 0x9e, 0xc9, - 0xba, 0x4e, 0x31, 0x2a, 0x2f, 0x7d, 0xea, 0x73, 0x67, 0xa5, 0x77, 0xc6, 0x16, 0x7c, 0xf7, 0xcb, - 0x70, 0x26, 0x50, 0x48, 0x14, 0x30, 0x94, 0x88, 0x2a, 0x04, 0xf4, 0x95, 0x14, 0x4e, 0x4b, 0x28, - 0x1d, 0x99, 0xff, 0x2d, 0x1d, 0x6d, 0x76, 0xa6, 0x67, 0x9b, 0xa6, 0xe7, 0xbb, 0xc6, 0x27, 0xe5, - 0xff, 0x49, 0x1a, 0x92, 0x2a, 0x7e, 0xff, 0x00, 0x3b, 0x2e, 0xba, 0x08, 0x31, 0x6c, 0xec, 0xdb, - 0xe3, 0x72, 0xa0, 0xa4, 0x83, 0x2b, 0x1c, 0xaf, 0x66, 0xec, 0xdb, 0xd7, 0xe7, 0x54, 0x8a, 0x8b, - 0x2e, 0x41, 0x7c, 0xaf, 0x33, 0xe0, 0xe9, 0xab, 0x21, 0x9b, 0x15, 0x24, 0xba, 0x4a, 0x90, 0xae, - 0xcf, 0xa9, 0x0c, 0x9b, 0x54, 0x45, 0x5f, 0x34, 0x8f, 0x1e, 0x5d, 0x55, 0xdd, 0xda, 0xa3, 0x55, - 0x11, 0x5c, 0x54, 0x01, 0x30, 0x2d, 0xd3, 0xd5, 0x68, 0x6a, 0x87, 0x5b, 0x8d, 0x07, 0x26, 0x53, - 0x9a, 0x2e, 0x4d, 0x06, 0x5d, 0x9f, 0x53, 0xd3, 0xa6, 0xf8, 0x20, 0xcd, 0x7d, 0xff, 0x00, 0xf7, - 0x0f, 0xb9, 0xb7, 0x36, 0xb1, 0xb9, 0x2f, 0x11, 0x24, 0xd2, 0x5c, 0x8a, 0x4d, 0x8c, 0x2c, 0x7b, - 0x6a, 0xcf, 0x3d, 0xe0, 0x0f, 0xc8, 0x2e, 0x4d, 0xa2, 0xa4, 0xef, 0xed, 0x35, 0x0f, 0xae, 0xcf, - 0xa9, 0x49, 0x83, 0xfd, 0x44, 0xcf, 0x79, 0x2e, 0x58, 0x66, 0xd4, 0xeb, 0x09, 0xd1, 0xb2, 0xb4, - 0xcf, 0x9c, 0x70, 0xc5, 0xd0, 0x26, 0xe4, 0x3b, 0xa6, 0xe3, 0x6a, 0x8e, 0xa5, 0xf7, 0x9c, 0x7d, - 0xdb, 0x75, 0x68, 0xfe, 0x24, 0x73, 0xf1, 0xa1, 0x49, 0x1c, 0xd6, 0x4d, 0xc7, 0x6d, 0x08, 0xe4, - 0xeb, 0x73, 0x6a, 0xae, 0x13, 0x04, 0x10, 0x7e, 0xf6, 0xde, 0x1e, 0xee, 0x7b, 0x0c, 0x69, 0x9e, - 0xe5, 0x08, 0x7e, 0x5b, 0x04, 0x5b, 0xd0, 0x13, 0x7e, 0x76, 0x10, 0x80, 0xbe, 0x0e, 0x16, 0x3a, - 0xb6, 0xde, 0xf2, 0xd8, 0x69, 0xc6, 0xfe, 0xc0, 0xba, 0x45, 0x93, 0x32, 0x99, 0x8b, 0x8f, 0x4e, - 0x6c, 0xa4, 0xad, 0xb7, 0x04, 0x8b, 0x2a, 0x21, 0xb8, 0x3e, 0xa7, 0xce, 0x77, 0x86, 0x81, 0xe8, - 0x7d, 0xb0, 0xa8, 0xf7, 0x7a, 0x9d, 0xc3, 0x61, 0xee, 0x05, 0xca, 0xfd, 0xfc, 0x24, 0xee, 0x65, - 0x42, 0x33, 0xcc, 0x1e, 0xe9, 0x23, 0x50, 0xd4, 0x04, 0xb9, 0xd7, 0xc7, 0xf4, 0xc6, 0x54, 0x8f, - 0x7b, 0x19, 0xf4, 0x75, 0xaa, 0xcc, 0xc5, 0x47, 0x26, 0xf1, 0xde, 0x66, 0xf8, 0xc2, 0x29, 0xb9, - 0x3e, 0xa7, 0x16, 0x7a, 0x61, 0x10, 0xe3, 0x6a, 0x1b, 0x98, 0x3e, 0x9e, 0xc7, 0xb9, 0xce, 0x4f, - 0xe3, 0x4a, 0xf1, 0xc3, 0x5c, 0x43, 0x20, 0x54, 0x83, 0x0c, 0x0b, 0x45, 0x35, 0x62, 0x0c, 0xe9, - 0x9b, 0x56, 0x99, 0x8b, 0xca, 0xc4, 0x19, 0x4a, 0x51, 0x6f, 0xda, 0x2e, 0xbe, 0x3e, 0xa7, 0x02, - 0xf6, 0xbe, 0x90, 0x0e, 0x27, 0xe8, 0xf3, 0x5e, 0x87, 0x5a, 0xd8, 0xf0, 0x16, 0x17, 0x28, 0xc3, - 0xc7, 0x26, 0x31, 0xa4, 0x2f, 0x5c, 0x1f, 0xde, 0x0c, 0xda, 0xe1, 0xeb, 0x73, 0xea, 0xc2, 0xed, - 0x51, 0x30, 0x51, 0xb1, 0x3d, 0xd3, 0xd2, 0x3b, 0xe6, 0x9b, 0x98, 0x2d, 0xa1, 0xf4, 0x61, 0xcb, - 0x23, 0x54, 0xec, 0x2a, 0xc7, 0xa6, 0x0b, 0x2b, 0x51, 0xb1, 0xbd, 0x20, 0xa0, 0x92, 0xe4, 0x67, - 0x3d, 0xbd, 0x87, 0xda, 0x92, 0x72, 0x8a, 0x3d, 0xce, 0x76, 0x23, 0x96, 0x02, 0x39, 0xa3, 0x3c, - 0x02, 0x99, 0x80, 0x61, 0x42, 0x45, 0x48, 0xf2, 0xd3, 0x30, 0xe2, 0xd4, 0x28, 0xff, 0x54, 0xf2, - 0x90, 0x0d, 0x1a, 0x23, 0xe5, 0xc3, 0x92, 0x47, 0x49, 0xdf, 0x94, 0x28, 0x86, 0x33, 0xd2, 0x69, - 0xdf, 0x53, 0x79, 0x50, 0x2c, 0x6d, 0xa2, 0x9c, 0x6d, 0xbf, 0x66, 0x29, 0x90, 0xaf, 0xac, 0x68, - 0x09, 0x32, 0xbd, 0x8b, 0x3d, 0x0f, 0x25, 0x4a, 0x51, 0xa0, 0x77, 0xb1, 0x27, 0x10, 0x1e, 0x80, - 0x2c, 0xe9, 0xb7, 0x16, 0xf4, 0x97, 0xd2, 0x6a, 0x86, 0xc0, 0x38, 0x8a, 0xf2, 0xaf, 0x22, 0x20, - 0x0f, 0x1b, 0x30, 0x2f, 0x55, 0x2d, 0x1d, 0x3b, 0x55, 0x7d, 0x7a, 0x38, 0x49, 0xee, 0xe7, 0xc5, - 0xd7, 0x41, 0xf6, 0xd3, 0xbb, 0x6c, 0xa9, 0x99, 0xec, 0xff, 0x0d, 0x39, 0xaa, 0x6a, 0xc1, 0x18, - 0xf2, 0x5c, 0xaf, 0x86, 0x36, 0x2b, 0xc5, 0x9f, 0xfc, 0x18, 0x1e, 0x70, 0xcf, 0x89, 0xd9, 0xe9, - 0xb5, 0x74, 0x17, 0x8b, 0xfc, 0x58, 0x60, 0xdf, 0xf2, 0x61, 0x28, 0xe8, 0xbd, 0x9e, 0xe6, 0xb8, - 0xba, 0x8b, 0xb9, 0xaf, 0xc1, 0x32, 0x0f, 0x39, 0xbd, 0xd7, 0xa3, 0x4f, 0xab, 0x33, 0x5f, 0xe3, - 0x21, 0xc8, 0x13, 0x9b, 0x6e, 0xea, 0x1d, 0xe1, 0x2a, 0x24, 0x98, 0x4b, 0xc2, 0xa1, 0xcc, 0x3b, - 0x50, 0x5a, 0xde, 0x88, 0x53, 0x7b, 0xee, 0xc5, 0x54, 0x52, 0x20, 0xa6, 0x42, 0xfc, 0xad, 0x0f, - 0x26, 0x1f, 0xf1, 0x3e, 0xca, 0xf8, 0x4d, 0x83, 0x45, 0x1a, 0x7f, 0xdd, 0x66, 0xc9, 0x92, 0x94, - 0xca, 0x3e, 0x14, 0x15, 0xf2, 0x61, 0xdb, 0x8f, 0xf2, 0x10, 0x71, 0x0f, 0x78, 0x2d, 0x11, 0xf7, - 0x80, 0x78, 0xba, 0xde, 0x7b, 0xbb, 0xf9, 0x31, 0xab, 0x1d, 0xa7, 0xf3, 0x73, 0x1d, 0x4a, 0x01, - 0x72, 0xa1, 0x35, 0x41, 0x39, 0x09, 0x8b, 0xe3, 0x4c, 0xbc, 0xb2, 0xef, 0xc1, 0x43, 0xa6, 0x1a, - 0x5d, 0x82, 0x94, 0x67, 0xe3, 0xc7, 0x44, 0xc7, 0xb4, 0x5a, 0x81, 0xac, 0x7a, 0xa8, 0xa1, 0x74, - 0x7e, 0x24, 0x94, 0xce, 0x57, 0xbe, 0x11, 0x8a, 0x93, 0xec, 0xf7, 0x50, 0x92, 0x2f, 0xe6, 0x09, - 0xec, 0x24, 0x24, 0xf8, 0xc3, 0x96, 0x11, 0xba, 0x81, 0xc5, 0xbf, 0x88, 0x20, 0x99, 0x2d, 0x8f, - 0xb2, 0x7d, 0x2d, 0xfa, 0xa1, 0x68, 0x70, 0x7a, 0xa2, 0x0d, 0x9f, 0xbc, 0x15, 0xc6, 0x18, 0xf1, - 0xad, 0x30, 0x43, 0x34, 0xc7, 0xa1, 0x7d, 0x15, 0x07, 0x59, 0xd8, 0x97, 0xf2, 0x91, 0x28, 0x9c, - 0x1c, 0x6f, 0xc9, 0xd1, 0x32, 0x64, 0x89, 0xdf, 0xea, 0x86, 0x5d, 0x5c, 0xe8, 0xea, 0x07, 0x4d, - 0xee, 0xdf, 0xf2, 0xad, 0x84, 0x88, 0xb7, 0x95, 0x80, 0x76, 0x60, 0xbe, 0x63, 0x1b, 0x7a, 0x47, - 0x0b, 0x6c, 0xe5, 0xf0, 0x49, 0xf4, 0xe0, 0x88, 0xb0, 0xc3, 0x29, 0x43, 0x62, 0x70, 0xb8, 0xfe, - 0x17, 0x28, 0x8f, 0x75, 0x6f, 0xd7, 0x07, 0xad, 0x41, 0xa6, 0x6b, 0x3a, 0xbb, 0x78, 0x5f, 0xbf, - 0x6d, 0xda, 0x7d, 0x3e, 0x9b, 0x46, 0x95, 0x66, 0xc3, 0xc7, 0x11, 0x3b, 0x4c, 0x01, 0xb2, 0xc0, - 0x90, 0xc4, 0xc7, 0x6e, 0x7c, 0x25, 0x8e, 0x6d, 0x4d, 0x26, 0xed, 0x21, 0x25, 0x27, 0xee, 0x21, - 0x8d, 0xdb, 0xb0, 0x49, 0x8d, 0xdf, 0xb0, 0xf9, 0x50, 0x70, 0x68, 0xc2, 0x6b, 0xdf, 0xc8, 0x1e, - 0x0e, 0x6a, 0xc0, 0x22, 0xa7, 0x6f, 0x85, 0x64, 0x3f, 0xe6, 0xa8, 0x03, 0x9b, 0x5f, 0xc3, 0x32, - 0x47, 0x82, 0x7c, 0xb2, 0xd8, 0xa3, 0xf7, 0x26, 0x76, 0xb1, 0x89, 0x1a, 0x0b, 0x6c, 0xa2, 0xfe, - 0x1f, 0x36, 0x14, 0x2f, 0xc0, 0xfc, 0x88, 0x1f, 0x31, 0x76, 0x73, 0x78, 0x42, 0x42, 0x56, 0xf9, - 0x98, 0x04, 0xa5, 0xc9, 0x8e, 0xc3, 0x58, 0x56, 0xc7, 0xca, 0x7d, 0x4f, 0x32, 0xcf, 0x0f, 0x41, - 0x7e, 0xc8, 0xad, 0x61, 0xa3, 0x90, 0x0b, 0x05, 0x90, 0xca, 0x37, 0x47, 0x3d, 0x9b, 0x19, 0xf2, - 0x3d, 0xc6, 0x28, 0xda, 0x4b, 0xb0, 0xd0, 0xc2, 0x86, 0xd9, 0xba, 0x57, 0x3d, 0x9b, 0xe7, 0xd4, - 0xff, 0x4f, 0xcd, 0x46, 0xd5, 0xec, 0x7b, 0x01, 0x52, 0x2a, 0x76, 0x7a, 0xc4, 0x95, 0x40, 0x15, - 0x48, 0xe3, 0x03, 0x03, 0xf7, 0x5c, 0xff, 0x3c, 0xc0, 0x38, 0xef, 0x96, 0x61, 0xd7, 0x04, 0x26, - 0x89, 0xed, 0x3c, 0x32, 0xf4, 0x34, 0x0f, 0x5f, 0x27, 0x47, 0xa2, 0x9c, 0x3c, 0x18, 0xbf, 0x5e, - 0x16, 0xf1, 0x6b, 0x74, 0x62, 0x68, 0xc6, 0xa8, 0x86, 0x02, 0xd8, 0xa7, 0x79, 0x00, 0x1b, 0x9b, - 0x52, 0x59, 0x28, 0x82, 0xad, 0x86, 0x22, 0xd8, 0xc4, 0x94, 0x6e, 0x4e, 0x08, 0x61, 0x2f, 0x8b, - 0x10, 0x36, 0x39, 0xa5, 0xc5, 0x43, 0x31, 0xec, 0x7b, 0x02, 0x31, 0x6c, 0x7a, 0x34, 0x51, 0x18, - 0x22, 0x1d, 0x13, 0xc4, 0x3e, 0xef, 0x05, 0xb1, 0xd9, 0x89, 0x01, 0x30, 0x27, 0x1e, 0x8e, 0x62, - 0xb7, 0x46, 0xa2, 0xd8, 0x1c, 0xff, 0x9b, 0x4c, 0x93, 0x58, 0x4c, 0x09, 0x63, 0xb7, 0x46, 0xc2, - 0xd8, 0xfc, 0x14, 0x86, 0x53, 0xe2, 0xd8, 0xaf, 0x1f, 0x1f, 0xc7, 0x4e, 0x8e, 0x34, 0x79, 0x33, - 0x67, 0x0b, 0x64, 0xb5, 0x09, 0x81, 0xac, 0x3c, 0x31, 0xe8, 0x62, 0xec, 0x67, 0x8e, 0x64, 0x77, - 0xc6, 0x44, 0xb2, 0x2c, 0xe6, 0x3c, 0x37, 0x91, 0xf9, 0x0c, 0xa1, 0xec, 0xce, 0x98, 0x50, 0x16, - 0x4d, 0x65, 0x3b, 0x35, 0x96, 0xbd, 0x1a, 0x8e, 0x65, 0x17, 0x26, 0x38, 0x4c, 0xfe, 0x6c, 0x9f, - 0x10, 0xcc, 0xee, 0x4e, 0x0a, 0x66, 0x59, 0xc0, 0xf9, 0xf8, 0x44, 0x8e, 0xc7, 0x88, 0x66, 0xb7, - 0x46, 0xa2, 0xd9, 0x13, 0x53, 0x34, 0x6d, 0xf6, 0x70, 0x96, 0xbd, 0x38, 0xce, 0xde, 0x1a, 0x07, - 0x39, 0x73, 0x23, 0x96, 0xca, 0xc8, 0x59, 0xe5, 0x51, 0xb2, 0xfa, 0x0e, 0xd9, 0x39, 0xe2, 0xe6, - 0xe2, 0x7e, 0xdf, 0xee, 0x8b, 0x23, 0xf8, 0xf4, 0x43, 0x39, 0x47, 0xc2, 0x1b, 0xdf, 0xa6, 0x1d, - 0x11, 0xfa, 0xd2, 0x70, 0x22, 0x60, 0xc7, 0x94, 0x5f, 0x90, 0x7c, 0x5a, 0x1a, 0xfc, 0x06, 0x43, - 0xa3, 0x34, 0x0f, 0x8d, 0x02, 0x01, 0x71, 0x24, 0x1c, 0x10, 0x2f, 0x41, 0x86, 0x84, 0x09, 0x43, - 0xb1, 0xae, 0xde, 0xf3, 0x62, 0x5d, 0x71, 0xf6, 0x87, 0x85, 0xcd, 0x7c, 0x59, 0x62, 0x1b, 0x61, - 0x05, 0xef, 0x1c, 0x14, 0x8b, 0xd2, 0xd0, 0x13, 0xb0, 0x10, 0xc0, 0xf5, 0xc2, 0x0f, 0x16, 0xf8, - 0xc9, 0x1e, 0x76, 0x99, 0xc7, 0x21, 0xff, 0x4c, 0xf2, 0x25, 0xe4, 0x07, 0xc9, 0xe3, 0xe2, 0x59, - 0xe9, 0x6d, 0x8a, 0x67, 0x23, 0xf7, 0x1c, 0xcf, 0x06, 0xc3, 0xa9, 0x68, 0x38, 0x9c, 0xfa, 0x1f, - 0x92, 0x3f, 0x26, 0x5e, 0x74, 0x6a, 0xd8, 0x2d, 0xcc, 0x03, 0x1c, 0xfa, 0x9b, 0xb8, 0x24, 0x1d, - 0xbb, 0xcd, 0xc3, 0x18, 0xf2, 0x93, 0x60, 0x79, 0x0b, 0x4f, 0x9a, 0xaf, 0x2b, 0x5e, 0x6c, 0x14, - 0x0f, 0x5e, 0x41, 0xe0, 0xe7, 0xf2, 0x13, 0xfe, 0xb9, 0x7c, 0xef, 0xde, 0x6c, 0x32, 0x70, 0x6f, - 0x16, 0x3d, 0x07, 0x69, 0x9a, 0xa7, 0xd6, 0xec, 0x9e, 0xf8, 0xf3, 0x58, 0x67, 0x26, 0x9f, 0xc9, - 0x77, 0xe8, 0x69, 0x61, 0x76, 0x8e, 0xdf, 0xf7, 0x38, 0xd2, 0x21, 0x8f, 0xe3, 0x3e, 0x48, 0x93, - 0xd6, 0xb3, 0x3f, 0xf3, 0x00, 0xfc, 0xd2, 0xb5, 0x00, 0x28, 0x3f, 0x19, 0x81, 0xc2, 0xd0, 0x42, - 0x33, 0xb6, 0xef, 0xe3, 0x76, 0x40, 0x67, 0x93, 0xc7, 0x59, 0x80, 0xb6, 0xee, 0x68, 0x6f, 0xe8, - 0x96, 0xcb, 0xff, 0x9a, 0x5b, 0x54, 0x0d, 0x40, 0x50, 0x09, 0x52, 0xe4, 0x6b, 0xe0, 0xf0, 0xbf, - 0xe7, 0x16, 0x55, 0xbd, 0x6f, 0x74, 0x1d, 0x12, 0xf8, 0x36, 0x7d, 0x98, 0x94, 0x3d, 0xef, 0x7b, - 0x72, 0x34, 0x92, 0x23, 0xc5, 0x95, 0x22, 0x19, 0xec, 0x2f, 0xbe, 0xb5, 0x24, 0x33, 0xec, 0xc7, - 0xbd, 0xbb, 0x4e, 0x2a, 0xa7, 0x0f, 0x4b, 0x21, 0x35, 0x24, 0x05, 0x9a, 0xc2, 0xca, 0x8a, 0xc8, - 0x94, 0xc8, 0x94, 0x1d, 0x4f, 0x56, 0x73, 0x5d, 0xdc, 0xed, 0xd9, 0x76, 0x47, 0x63, 0x73, 0xbc, - 0x0c, 0xf9, 0xf0, 0xba, 0xca, 0xfe, 0x04, 0x93, 0xab, 0x9b, 0x96, 0x16, 0x72, 0x82, 0xb3, 0x0c, - 0xc8, 0xe6, 0xd4, 0x8d, 0x58, 0x4a, 0x92, 0x23, 0x37, 0x62, 0xa9, 0x88, 0x1c, 0x55, 0xb6, 0xe1, - 0xc4, 0xd8, 0x75, 0x15, 0x3d, 0x0b, 0x69, 0x7f, 0x49, 0x66, 0x27, 0xcc, 0x8f, 0x48, 0x12, 0xf8, - 0xb8, 0xca, 0x2f, 0x4b, 0x3e, 0xcb, 0x70, 0xda, 0xa1, 0x06, 0x09, 0x76, 0xdc, 0x8f, 0x1f, 0xed, - 0x78, 0x62, 0xb6, 0x15, 0x79, 0x85, 0x9d, 0x05, 0x54, 0x39, 0xb1, 0xf2, 0x3e, 0x48, 0x30, 0x08, - 0xca, 0x40, 0xd2, 0x7f, 0x02, 0x19, 0x20, 0x51, 0xae, 0x56, 0x6b, 0xdb, 0xe2, 0x3d, 0xd3, 0xca, - 0x96, 0xda, 0x94, 0x23, 0x04, 0xac, 0xd6, 0x6e, 0xd4, 0xaa, 0x4d, 0x39, 0x8a, 0xe6, 0x21, 0xc7, - 0x7e, 0x6b, 0x57, 0xb7, 0xd4, 0x8d, 0x72, 0x53, 0x8e, 0x05, 0x40, 0x8d, 0xda, 0xe6, 0x5a, 0x4d, - 0x95, 0xe3, 0xca, 0x53, 0x70, 0x7a, 0xe2, 0x1a, 0xee, 0xe7, 0x14, 0xa4, 0x40, 0x4e, 0x41, 0xf9, - 0x48, 0x84, 0x04, 0x35, 0x93, 0x16, 0x66, 0x74, 0x63, 0xa8, 0xe3, 0x17, 0x8f, 0xb1, 0xaa, 0x0f, - 0xf5, 0x9e, 0xc4, 0x31, 0x7d, 0xbc, 0x87, 0x5d, 0x63, 0x9f, 0x39, 0x0a, 0xcc, 0x02, 0xe5, 0xd4, - 0x1c, 0x87, 0x52, 0x22, 0x87, 0xa1, 0xbd, 0x8e, 0x0d, 0x57, 0x63, 0x4a, 0xe4, 0xf0, 0xbf, 0xf1, - 0x9b, 0x63, 0xd0, 0x06, 0x03, 0x2a, 0xdf, 0x78, 0x2c, 0x59, 0xa6, 0x21, 0xae, 0xd6, 0x9a, 0xea, - 0xab, 0x72, 0x14, 0x21, 0xc8, 0xd3, 0x9f, 0x5a, 0x63, 0xb3, 0xbc, 0xdd, 0xb8, 0xbe, 0x45, 0x64, - 0xb9, 0x00, 0x05, 0x21, 0x4b, 0x01, 0x8c, 0x2b, 0x8f, 0xc1, 0xa9, 0x09, 0x5e, 0xc5, 0x98, 0xf3, - 0x97, 0x9f, 0x90, 0x82, 0xd8, 0x61, 0xcf, 0x60, 0x0b, 0x12, 0x8e, 0xab, 0xbb, 0x03, 0x87, 0x0b, - 0xf1, 0xd9, 0x59, 0xdd, 0x8c, 0x15, 0xf1, 0xa3, 0x41, 0xc9, 0x55, 0xce, 0x46, 0xb9, 0x04, 0xf9, - 0x70, 0xc9, 0x64, 0x19, 0xf8, 0x4a, 0x14, 0x51, 0xae, 0x00, 0x1a, 0xf5, 0x3e, 0xc6, 0x84, 0x97, - 0xd2, 0xb8, 0xf0, 0xf2, 0xc7, 0x24, 0x38, 0x73, 0x84, 0xa7, 0x81, 0x5e, 0x1a, 0xea, 0xe4, 0xf3, - 0xc7, 0xf1, 0x53, 0xd8, 0x1f, 0xd4, 0x3c, 0x1c, 0xea, 0xe6, 0xd3, 0x90, 0x0d, 0xc2, 0x67, 0xeb, - 0xe4, 0x17, 0x23, 0xfe, 0x24, 0x0e, 0xc7, 0xc1, 0xbe, 0x09, 0x94, 0xbe, 0x4a, 0x13, 0xf8, 0x6e, - 0x00, 0xf7, 0x40, 0x1c, 0x00, 0xe6, 0xeb, 0xe8, 0xfd, 0x63, 0x52, 0x63, 0xd8, 0x68, 0x1e, 0xf0, - 0x49, 0x90, 0x76, 0xf9, 0x2f, 0x07, 0x35, 0x82, 0x49, 0x81, 0x01, 0x5d, 0x63, 0x1d, 0xef, 0x2f, - 0xfc, 0xce, 0xb6, 0x18, 0xfb, 0xc9, 0x03, 0x06, 0x76, 0xd0, 0xab, 0x70, 0x6a, 0xc8, 0x51, 0xf0, - 0x58, 0xc7, 0x66, 0xf5, 0x17, 0x4e, 0x84, 0xfd, 0x05, 0xc1, 0x3a, 0xb8, 0xda, 0xc7, 0xc3, 0xab, - 0xfd, 0xab, 0x00, 0x7e, 0x72, 0xc0, 0x3f, 0xb1, 0x26, 0x05, 0x4f, 0xac, 0x5d, 0x82, 0x38, 0xd1, - 0x24, 0x21, 0xa7, 0x51, 0x53, 0x4c, 0x34, 0x21, 0x90, 0x5c, 0x60, 0xd8, 0x8a, 0x09, 0x68, 0x34, - 0xb7, 0x38, 0xa1, 0x8a, 0xf7, 0x84, 0xab, 0x78, 0x60, 0x62, 0x96, 0x72, 0x7c, 0x55, 0x6f, 0x42, - 0x9c, 0x8e, 0xfc, 0xd8, 0x6b, 0x80, 0xdf, 0x00, 0xa0, 0xbb, 0x6e, 0xdf, 0xdc, 0x1d, 0xf8, 0x15, - 0x2c, 0x8d, 0xd7, 0x9c, 0xb2, 0xc0, 0xab, 0xdc, 0xc7, 0x55, 0x68, 0xd1, 0x27, 0x0d, 0xa8, 0x51, - 0x80, 0xa1, 0xb2, 0x09, 0xf9, 0x30, 0xed, 0xf8, 0x6b, 0x8d, 0xfe, 0xbb, 0x20, 0x69, 0xe1, 0xdf, - 0x78, 0xde, 0x11, 0x7f, 0xab, 0x87, 0x7e, 0x28, 0x7f, 0x21, 0x41, 0x36, 0xa8, 0x78, 0x6f, 0xb3, - 0x0b, 0x72, 0xff, 0x18, 0x17, 0x24, 0xdd, 0xd6, 0x9d, 0x97, 0x99, 0x07, 0x72, 0x7a, 0xc4, 0x03, - 0x49, 0xb6, 0x75, 0x67, 0xe7, 0x6b, 0xe8, 0x80, 0x28, 0xdf, 0x22, 0x41, 0xca, 0xeb, 0xfc, 0x11, - 0xa7, 0x74, 0xfd, 0xcb, 0xad, 0x5e, 0xd6, 0x9d, 0xed, 0x6f, 0x44, 0xbd, 0xfd, 0x8d, 0x2b, 0xde, - 0xe2, 0x37, 0x29, 0x1d, 0x12, 0x94, 0xb4, 0x38, 0x29, 0xc7, 0xd7, 0xfa, 0x2b, 0xb3, 0xdd, 0x21, - 0x5b, 0x84, 0x78, 0xf0, 0xfe, 0x17, 0xfb, 0x50, 0x5a, 0x81, 0xa3, 0x31, 0x6c, 0x1a, 0x06, 0x2f, - 0x9b, 0x49, 0xc7, 0xbe, 0x6c, 0xe6, 0xd5, 0x12, 0x09, 0xd6, 0xf2, 0x3d, 0x12, 0xa4, 0xc4, 0x8c, - 0x40, 0xef, 0x0d, 0x1e, 0x99, 0x12, 0x7b, 0x72, 0x13, 0xad, 0x11, 0xe7, 0x1f, 0x38, 0x31, 0x35, - 0x72, 0x52, 0x38, 0x7a, 0xdc, 0x93, 0xc2, 0xdc, 0xaf, 0xfb, 0x53, 0x09, 0xe4, 0xe1, 0xf9, 0xfa, - 0x55, 0xb7, 0x6e, 0x74, 0x91, 0x8b, 0x8e, 0x59, 0xe4, 0x26, 0x1d, 0xff, 0x8d, 0x4d, 0x3a, 0xfe, - 0x3b, 0xda, 0xeb, 0xf8, 0x3d, 0xf6, 0xfa, 0x83, 0x11, 0xc8, 0x04, 0x92, 0xa3, 0xe8, 0x99, 0xd0, - 0x51, 0xe2, 0xe5, 0xa3, 0x12, 0xa9, 0x81, 0xb3, 0xc4, 0x21, 0x31, 0x45, 0x8e, 0x2f, 0xa6, 0xb7, - 0xff, 0x5a, 0xd1, 0xf8, 0x9b, 0x97, 0xf1, 0x09, 0x37, 0x2f, 0xff, 0x86, 0x04, 0x29, 0xcf, 0xe9, - 0x3e, 0xee, 0xee, 0xdb, 0x49, 0x48, 0x70, 0xbf, 0x92, 0x6d, 0xbf, 0xf1, 0xaf, 0xb1, 0x49, 0xe5, - 0x12, 0xa4, 0xc4, 0x9f, 0xee, 0xe3, 0x6b, 0x9a, 0xf7, 0x7d, 0xfe, 0x79, 0xc8, 0x04, 0x76, 0x2e, - 0x89, 0x61, 0xdc, 0xac, 0xbd, 0x2c, 0xcf, 0x95, 0x92, 0x77, 0xee, 0x2e, 0x47, 0x37, 0xf1, 0x1b, - 0x64, 0x36, 0xab, 0xb5, 0xea, 0xf5, 0x5a, 0xf5, 0x45, 0x59, 0x2a, 0x65, 0xee, 0xdc, 0x5d, 0x4e, - 0xaa, 0x98, 0xe6, 0x13, 0xcf, 0xbf, 0x08, 0x85, 0xa1, 0x81, 0x09, 0x3b, 0x2d, 0x08, 0xf2, 0x6b, - 0x3b, 0xdb, 0xeb, 0xf5, 0x6a, 0xb9, 0x59, 0xd3, 0xd8, 0x81, 0x53, 0x74, 0x0a, 0x16, 0xd6, 0xeb, - 0xd7, 0xae, 0x37, 0xb5, 0xea, 0x7a, 0xbd, 0xb6, 0xd9, 0xd4, 0xca, 0xcd, 0x66, 0xb9, 0xfa, 0xa2, - 0x1c, 0xb9, 0x78, 0x37, 0x03, 0xb1, 0x72, 0xa5, 0x5a, 0x47, 0x55, 0x88, 0xd1, 0x44, 0xc8, 0x91, - 0x47, 0x97, 0x4a, 0x47, 0x67, 0x86, 0xd1, 0x55, 0x88, 0xd3, 0x1c, 0x09, 0x3a, 0xfa, 0x2c, 0x53, - 0x69, 0x4a, 0xaa, 0x98, 0x34, 0x86, 0xce, 0xc8, 0x23, 0x0f, 0x37, 0x95, 0x8e, 0xce, 0x1c, 0xa3, - 0x75, 0x48, 0x8a, 0x10, 0x79, 0xda, 0x89, 0xa3, 0xd2, 0xd4, 0x74, 0x2e, 0xe9, 0x1a, 0x4b, 0x35, - 0x1c, 0x7d, 0xee, 0xa9, 0x34, 0x25, 0xa7, 0x8c, 0xea, 0xde, 0x45, 0x9c, 0x29, 0x47, 0x99, 0x4a, - 0xd3, 0xb2, 0xc4, 0x48, 0x85, 0xb4, 0x9f, 0xc4, 0x99, 0x7e, 0x9a, 0xab, 0x34, 0x43, 0xba, 0x1c, - 0xbd, 0x0f, 0x72, 0xe1, 0x40, 0x77, 0xb6, 0xe3, 0x52, 0xa5, 0x19, 0xf3, 0xd1, 0x84, 0x7f, 0x38, - 0xea, 0x9d, 0xed, 0xf8, 0x54, 0x69, 0xc6, 0xf4, 0x34, 0x7a, 0x1d, 0xe6, 0x47, 0xa3, 0xd2, 0xd9, - 0x4f, 0x53, 0x95, 0x8e, 0x91, 0xb0, 0x46, 0x5d, 0x40, 0x63, 0xa2, 0xd9, 0x63, 0x1c, 0xae, 0x2a, - 0x1d, 0x27, 0x7f, 0x8d, 0x5a, 0x50, 0x18, 0x0e, 0x11, 0x67, 0x3d, 0x6c, 0x55, 0x9a, 0x39, 0x97, - 0xcd, 0x6a, 0x09, 0x87, 0x96, 0xb3, 0x1e, 0xbe, 0x2a, 0xcd, 0x9c, 0xda, 0x46, 0x3b, 0x00, 0x81, - 0xe8, 0x70, 0x86, 0xc3, 0x58, 0xa5, 0x59, 0x92, 0xdc, 0xa8, 0x07, 0x0b, 0xe3, 0xc2, 0xc6, 0xe3, - 0x9c, 0xcd, 0x2a, 0x1d, 0x2b, 0xf7, 0x4d, 0xf4, 0x39, 0x1c, 0x00, 0xce, 0x76, 0x56, 0xab, 0x34, - 0x63, 0x12, 0xbc, 0x52, 0x9e, 0x78, 0x40, 0xf7, 0x91, 0x23, 0x0f, 0xe8, 0xfa, 0x47, 0x6e, 0xbd, - 0x43, 0xb9, 0xff, 0xf6, 0x02, 0xbc, 0x8b, 0x3f, 0xfd, 0xe2, 0xb8, 0xfa, 0x2d, 0xd3, 0x6a, 0x7b, - 0x6f, 0xf0, 0xf0, 0x6f, 0x7e, 0x3a, 0xf7, 0x24, 0x7f, 0x67, 0x46, 0x40, 0xa7, 0xbc, 0xc4, 0x33, - 0xf1, 0x79, 0xc2, 0x69, 0x07, 0xf9, 0xa7, 0x9f, 0xbb, 0x3d, 0xe2, 0x95, 0x9f, 0x29, 0x6f, 0x09, - 0x8d, 0x79, 0x05, 0xa8, 0x74, 0xe4, 0xe5, 0xf8, 0xd2, 0x51, 0x07, 0x96, 0x89, 0x17, 0x9b, 0xbf, - 0x6e, 0x3a, 0xae, 0xdd, 0x37, 0x0d, 0xbd, 0x43, 0x97, 0x97, 0x2b, 0xb3, 0x5e, 0x27, 0xaa, 0xa4, - 0x89, 0xbb, 0xc2, 0x1f, 0x0a, 0xe2, 0x57, 0x5c, 0xd6, 0x20, 0x71, 0x5b, 0xef, 0xb0, 0xcb, 0x3c, - 0xc1, 0x57, 0xc2, 0x86, 0x65, 0x1e, 0xf0, 0xa3, 0x82, 0x5c, 0x18, 0xad, 0xf2, 0x7d, 0xf4, 0x22, - 0x44, 0xb7, 0x6b, 0x3a, 0x44, 0x17, 0x55, 0x1a, 0x48, 0xdf, 0x80, 0x58, 0x5f, 0x77, 0x79, 0x78, - 0x59, 0xb9, 0x7c, 0xec, 0x97, 0x85, 0x58, 0x0d, 0x94, 0x07, 0x7a, 0x09, 0x52, 0x5d, 0xfd, 0x40, - 0xa3, 0xfc, 0x22, 0x5f, 0x15, 0xbf, 0x64, 0x57, 0x3f, 0x20, 0xed, 0x43, 0xef, 0x83, 0x02, 0x61, - 0x69, 0xec, 0xeb, 0x56, 0x1b, 0x33, 0xce, 0xd1, 0xaf, 0x8a, 0x73, 0xae, 0xab, 0x1f, 0x54, 0x29, - 0x37, 0xc2, 0x9f, 0xbf, 0xc0, 0xf4, 0xab, 0x12, 0xcf, 0x19, 0x50, 0xc1, 0x20, 0x1d, 0x64, 0xc3, - 0xfb, 0xa2, 0x95, 0x8a, 0x0d, 0x8e, 0x47, 0x26, 0xc9, 0x7d, 0x48, 0xac, 0x95, 0x1c, 0x69, 0xde, - 0x67, 0xdf, 0x5a, 0x92, 0x58, 0xad, 0x05, 0x63, 0x44, 0xec, 0x19, 0x96, 0x0a, 0xd1, 0xa8, 0x0f, - 0x1b, 0x99, 0xea, 0xc3, 0xe6, 0x84, 0x0f, 0xcb, 0x18, 0x02, 0xa3, 0x26, 0xe5, 0xbc, 0x0f, 0x9f, - 0x92, 0x20, 0xb3, 0x16, 0x78, 0xf3, 0xaf, 0x08, 0xc9, 0xae, 0x6d, 0x99, 0xb7, 0x70, 0xdf, 0xdb, - 0xa1, 0x62, 0x9f, 0xc4, 0xcf, 0x64, 0x7f, 0x3a, 0xce, 0x3d, 0x14, 0xcf, 0xe2, 0x88, 0x6f, 0x42, - 0xf5, 0x06, 0xde, 0x75, 0x4c, 0x21, 0x67, 0x55, 0x7c, 0xa2, 0x47, 0x41, 0x76, 0xb0, 0x31, 0xe8, - 0x9b, 0xee, 0xa1, 0x66, 0xd8, 0x96, 0xab, 0x1b, 0x2e, 0x8f, 0xc2, 0x0b, 0x02, 0x5e, 0x65, 0x60, - 0xc2, 0xa4, 0x85, 0x5d, 0xdd, 0xec, 0xb0, 0x23, 0x85, 0x69, 0x55, 0x7c, 0xf2, 0xa6, 0xde, 0x49, - 0x06, 0xe3, 0xd0, 0x2a, 0xc8, 0x76, 0x0f, 0xf7, 0x43, 0xc7, 0x51, 0x98, 0x36, 0x16, 0x7f, 0xf3, - 0x33, 0x4f, 0x2c, 0x72, 0x81, 0xf3, 0xa3, 0x0c, 0xec, 0x89, 0x7b, 0xb5, 0x20, 0x28, 0xc4, 0x39, - 0x95, 0x57, 0x43, 0x7b, 0x52, 0x83, 0x5d, 0xff, 0xfd, 0x93, 0xc5, 0x11, 0xa1, 0x96, 0xad, 0xc3, - 0x4a, 0xf1, 0x37, 0x7c, 0xd6, 0x7e, 0x9c, 0xfa, 0x22, 0x3e, 0x0c, 0x6e, 0x50, 0x51, 0x36, 0xc4, - 0x85, 0x7f, 0x5d, 0x37, 0x3b, 0xe2, 0xaf, 0x6c, 0xaa, 0xfc, 0x0b, 0xad, 0x7a, 0xc9, 0xc5, 0x18, - 0x8d, 0x87, 0x94, 0x49, 0xba, 0x51, 0xb1, 0xad, 0x56, 0x38, 0x8b, 0x88, 0xaa, 0x90, 0x70, 0xed, - 0x5b, 0xd8, 0xe2, 0x02, 0xaa, 0x3c, 0x76, 0x8c, 0x27, 0xc4, 0x54, 0x4e, 0x8a, 0xbe, 0x1e, 0xe4, - 0x16, 0xee, 0xe0, 0x36, 0xbb, 0xe8, 0xb7, 0xaf, 0xf7, 0x31, 0xbb, 0x66, 0x7e, 0x4f, 0x0f, 0x84, - 0x15, 0x3c, 0x56, 0x0d, 0xca, 0x09, 0x6d, 0x87, 0x5f, 0x95, 0x4c, 0xf2, 0xad, 0xe3, 0x09, 0x7d, - 0x0c, 0x68, 0x5e, 0xd0, 0xf2, 0x84, 0x5e, 0xa1, 0x7c, 0x14, 0xe4, 0x81, 0xb5, 0x6b, 0x5b, 0xf4, - 0x8f, 0xd3, 0xf1, 0x28, 0x2a, 0xc5, 0xf6, 0x29, 0x3d, 0x38, 0xdf, 0xa7, 0xdc, 0x86, 0xbc, 0x8f, - 0x4a, 0x67, 0x48, 0xfa, 0xb8, 0x33, 0x24, 0xe7, 0x31, 0x20, 0x28, 0x68, 0x03, 0xc0, 0x9f, 0x83, - 0x74, 0xa3, 0x2c, 0x33, 0x79, 0xc4, 0xfc, 0xd9, 0x1c, 0xec, 0x4c, 0x80, 0x01, 0xfa, 0x3a, 0x58, - 0xe8, 0x9a, 0x96, 0xe6, 0xe0, 0xce, 0x9e, 0xc6, 0x25, 0x47, 0xf8, 0x66, 0x8e, 0x3f, 0x9a, 0xf3, - 0x5d, 0xd3, 0x6a, 0xe0, 0xce, 0xde, 0x9a, 0xc7, 0x05, 0xbd, 0x1b, 0xce, 0xf8, 0xbd, 0xb7, 0x2d, - 0x6d, 0xdf, 0xee, 0xb4, 0xb4, 0x3e, 0xde, 0xd3, 0x0c, 0xfa, 0x08, 0x5c, 0x96, 0xca, 0xec, 0x94, - 0x87, 0xb2, 0x65, 0x5d, 0xb7, 0x3b, 0x2d, 0x15, 0xef, 0x55, 0x49, 0x31, 0x7a, 0x10, 0xfc, 0xae, - 0x6b, 0x66, 0xcb, 0x29, 0xe6, 0x96, 0xa3, 0xe7, 0x62, 0x6a, 0xd6, 0x03, 0xd6, 0x5b, 0xce, 0x6a, - 0xea, 0x43, 0x1f, 0x5f, 0x9a, 0xfb, 0xc2, 0xc7, 0x97, 0xe6, 0x94, 0xab, 0xf4, 0x31, 0x24, 0x3e, - 0x8f, 0xb0, 0x83, 0x2e, 0x43, 0x5a, 0x17, 0x1f, 0xec, 0xaa, 0xd3, 0x11, 0xf3, 0xd0, 0x47, 0x55, - 0x7e, 0x42, 0x82, 0xc4, 0xda, 0xcd, 0x6d, 0xdd, 0xec, 0xa3, 0x1a, 0xcc, 0xfb, 0x8a, 0x39, 0xeb, - 0x94, 0xf6, 0x75, 0x59, 0xcc, 0xe9, 0xcd, 0x49, 0x07, 0xd5, 0xd2, 0x95, 0x07, 0x7e, 0xf3, 0x33, - 0x4f, 0xdc, 0xcf, 0xd9, 0xdc, 0x1c, 0x3a, 0xb3, 0x26, 0xf8, 0x0d, 0x9f, 0x65, 0x0b, 0xf4, 0xf9, - 0x06, 0x24, 0x59, 0x53, 0x1d, 0xf4, 0x02, 0xc4, 0x7b, 0xe4, 0x07, 0xcf, 0xbf, 0x9f, 0x9d, 0xa8, - 0xe0, 0x14, 0x3f, 0xa8, 0x0e, 0x8c, 0x4e, 0xf9, 0xb6, 0x08, 0xc0, 0xda, 0xcd, 0x9b, 0xcd, 0xbe, - 0xd9, 0xeb, 0x60, 0xf7, 0xed, 0xea, 0xfb, 0x0e, 0x9c, 0x08, 0x5c, 0xe2, 0xed, 0x1b, 0xc7, 0xef, - 0xff, 0x82, 0x7f, 0x9f, 0xb7, 0x6f, 0x8c, 0x65, 0xdb, 0x72, 0x5c, 0x8f, 0x6d, 0xf4, 0xf8, 0x6c, - 0xd7, 0x1c, 0x77, 0x54, 0xb2, 0xaf, 0x40, 0xc6, 0x17, 0x86, 0x83, 0xea, 0x90, 0x72, 0xf9, 0x6f, - 0x2e, 0x60, 0x65, 0xb2, 0x80, 0x05, 0x59, 0x50, 0xc8, 0x1e, 0xb9, 0xf2, 0xe7, 0x12, 0x40, 0x60, - 0x8e, 0xfc, 0xd5, 0xd4, 0x31, 0x12, 0xae, 0x73, 0x4b, 0x1c, 0xbd, 0xe7, 0xa7, 0x1a, 0x19, 0x83, - 0x80, 0x50, 0xbf, 0x23, 0x02, 0x0b, 0x3b, 0x62, 0xf6, 0xfe, 0xd5, 0x97, 0xc1, 0x0e, 0x24, 0xb1, - 0xe5, 0xf6, 0x4d, 0x6f, 0x07, 0xe9, 0xc9, 0x49, 0x63, 0x3e, 0xa6, 0x53, 0x35, 0xcb, 0xed, 0x1f, - 0x06, 0x35, 0x40, 0xf0, 0x0a, 0xc8, 0xe3, 0xa3, 0x51, 0x28, 0x4e, 0x22, 0x45, 0x8f, 0x40, 0xc1, - 0xe8, 0x63, 0x0a, 0x08, 0xdf, 0x6d, 0xcc, 0x0b, 0x30, 0x5f, 0x63, 0x54, 0x20, 0x5e, 0x19, 0x51, - 0x2e, 0x82, 0x7a, 0x6f, 0x6e, 0x58, 0xde, 0xe7, 0x40, 0x57, 0x99, 0x26, 0x14, 0xc4, 0x65, 0x89, - 0x5d, 0xbd, 0xa3, 0x5b, 0x86, 0x70, 0x57, 0x8f, 0xb5, 0x24, 0x88, 0x0b, 0x17, 0x15, 0xc6, 0x02, - 0xd5, 0x20, 0x29, 0xb8, 0xc5, 0x8e, 0xcf, 0x4d, 0xd0, 0xa2, 0x07, 0x20, 0x1b, 0x5c, 0x18, 0xa8, - 0xeb, 0x11, 0x53, 0x33, 0x81, 0x75, 0x61, 0xda, 0xca, 0x93, 0x38, 0x72, 0xe5, 0xe1, 0xde, 0xdd, - 0x0f, 0x47, 0x61, 0x5e, 0xc5, 0xad, 0xbf, 0xfe, 0xc3, 0xb2, 0x0d, 0xc0, 0xa6, 0x2a, 0xb1, 0xa4, - 0x7c, 0x64, 0xee, 0x61, 0xbe, 0xa7, 0x19, 0x93, 0x35, 0xc7, 0xfd, 0x5a, 0x8d, 0xd0, 0x6f, 0x47, - 0x20, 0x1b, 0x1c, 0xa1, 0xff, 0x2b, 0x17, 0x2d, 0xb4, 0xe9, 0x9b, 0x29, 0x76, 0xef, 0xe3, 0xd1, - 0x49, 0x66, 0x6a, 0x44, 0x9b, 0xa7, 0xd8, 0xa7, 0x8f, 0x45, 0x21, 0xc1, 0x4f, 0xb7, 0x6d, 0x8d, - 0x38, 0xb2, 0xd2, 0xb4, 0x9b, 0xeb, 0x39, 0x71, 0x73, 0x7d, 0xac, 0x1f, 0xfb, 0x10, 0xe4, 0x49, - 0x40, 0x1c, 0x3a, 0x32, 0x27, 0x9d, 0xcb, 0xd1, 0xb8, 0xd6, 0x3f, 0x20, 0x8e, 0x96, 0x20, 0x43, - 0xd0, 0x7c, 0x3b, 0x4c, 0x70, 0xa0, 0xab, 0x1f, 0xd4, 0x18, 0x04, 0x3d, 0x01, 0x68, 0xdf, 0x4b, - 0x50, 0x68, 0xbe, 0x20, 0x08, 0xde, 0xbc, 0x5f, 0x22, 0xd0, 0xef, 0x07, 0x20, 0xad, 0xd0, 0xd8, - 0xeb, 0xc4, 0xfc, 0xed, 0x67, 0x02, 0x59, 0xa3, 0x2f, 0x14, 0x7f, 0xb3, 0xc4, 0xfc, 0xe1, 0xa1, - 0xb0, 0x99, 0x87, 0x23, 0xcd, 0x19, 0x26, 0xc5, 0x9f, 0xbc, 0xb5, 0x54, 0x3a, 0xd4, 0xbb, 0x9d, - 0x55, 0x65, 0x0c, 0x1f, 0x65, 0x5c, 0x24, 0x4f, 0x1c, 0xe7, 0x70, 0xd8, 0xbd, 0xfa, 0x2e, 0xa2, - 0xde, 0x77, 0x7e, 0xff, 0xa7, 0xcf, 0x9f, 0x09, 0x3c, 0x56, 0x7c, 0xe0, 0xa5, 0xaf, 0xd8, 0x98, - 0x10, 0x4f, 0x15, 0xf9, 0xab, 0x86, 0x77, 0x2e, 0x7e, 0x03, 0x20, 0xe0, 0xc9, 0x4b, 0x47, 0x47, - 0x08, 0x3e, 0x7d, 0x28, 0x42, 0x08, 0xcc, 0xa9, 0xf7, 0xfa, 0x46, 0x5b, 0x3c, 0x56, 0x30, 0xe6, - 0xb9, 0xea, 0x95, 0xaa, 0x6d, 0x86, 0x58, 0x08, 0x22, 0x3a, 0x55, 0xe7, 0x94, 0x7f, 0x2d, 0xc1, - 0xe9, 0x11, 0xf5, 0xf3, 0x9a, 0x6c, 0x00, 0xea, 0x07, 0x0a, 0xe9, 0x30, 0x8a, 0xad, 0xd8, 0x7b, - 0xd3, 0xe6, 0xf9, 0xfe, 0x88, 0xe5, 0x7e, 0x7b, 0x56, 0x1f, 0x6e, 0x7a, 0x7e, 0x5d, 0x82, 0xc5, - 0x60, 0x03, 0xbc, 0xae, 0x34, 0x20, 0x1b, 0xac, 0x9a, 0x77, 0xe2, 0x5d, 0xb3, 0x74, 0x22, 0xd8, - 0xfe, 0x10, 0x13, 0x74, 0xd3, 0x9f, 0xe2, 0x2c, 0x6f, 0xf6, 0xd4, 0xcc, 0x42, 0x11, 0x0d, 0x1b, - 0x3b, 0xd5, 0xd9, 0xd8, 0xfc, 0x81, 0x04, 0xb1, 0x6d, 0xdb, 0xee, 0xa0, 0xf7, 0xc3, 0xbc, 0x65, - 0xbb, 0x1a, 0x99, 0x0e, 0xb8, 0xa5, 0xf1, 0xc0, 0x9e, 0x99, 0xcf, 0xda, 0x91, 0xb2, 0xfa, 0xe2, - 0x5b, 0x4b, 0xa3, 0x94, 0xe3, 0x1e, 0x0c, 0x2f, 0x58, 0xb6, 0x5b, 0xa1, 0x48, 0x4d, 0x16, 0xfb, - 0xef, 0x41, 0x2e, 0x5c, 0x1d, 0x33, 0xb1, 0xe5, 0x69, 0xd5, 0xe5, 0xa6, 0x56, 0x95, 0xdd, 0x0d, - 0xd4, 0xc3, 0xde, 0xff, 0xfd, 0x23, 0x32, 0x72, 0xaf, 0x82, 0x7c, 0x73, 0xf8, 0x80, 0x4f, 0x0d, - 0x92, 0xe2, 0x40, 0x8f, 0x34, 0xe3, 0x59, 0xa1, 0xa0, 0x38, 0x39, 0xed, 0xf9, 0x9f, 0x93, 0x00, - 0xfc, 0x24, 0x09, 0x7a, 0x1c, 0x4e, 0x55, 0xb6, 0x36, 0xd7, 0xb4, 0x46, 0xb3, 0xdc, 0xdc, 0x69, - 0x84, 0xff, 0xcc, 0x84, 0x78, 0x38, 0xc7, 0xe9, 0x61, 0xc3, 0xdc, 0x33, 0x71, 0x0b, 0x3d, 0x0c, - 0x8b, 0x61, 0x6c, 0xf2, 0x55, 0x5b, 0x93, 0xa5, 0x52, 0xf6, 0xce, 0xdd, 0xe5, 0x14, 0xf3, 0x13, - 0x71, 0x0b, 0x9d, 0x83, 0x13, 0xa3, 0x78, 0xf5, 0xcd, 0x6b, 0x72, 0xa4, 0x94, 0xbb, 0x73, 0x77, - 0x39, 0xed, 0x39, 0x94, 0x48, 0x01, 0x14, 0xc4, 0xe4, 0xfc, 0xa2, 0x25, 0xb8, 0x73, 0x77, 0x39, - 0xc1, 0x46, 0xa1, 0x14, 0xfb, 0xd0, 0x8f, 0x9e, 0x9d, 0x3b, 0xff, 0x0d, 0x00, 0x75, 0x6b, 0xaf, - 0xaf, 0xd3, 0xbf, 0xb5, 0x8e, 0x4a, 0x70, 0xb2, 0xbe, 0x79, 0x55, 0x2d, 0x57, 0x9b, 0xf5, 0xad, - 0xcd, 0xa1, 0xbf, 0x8e, 0x11, 0x2e, 0x5b, 0xdb, 0xda, 0xa9, 0xac, 0xd7, 0xb4, 0x46, 0xfd, 0xda, - 0x26, 0xdb, 0x6c, 0x0d, 0x95, 0xbd, 0xbc, 0xd9, 0xac, 0x6f, 0xd4, 0xe4, 0x48, 0xe5, 0xea, 0xc4, - 0x64, 0xfe, 0xe3, 0x47, 0x3e, 0xcf, 0xee, 0x5b, 0xbc, 0x50, 0x46, 0xff, 0x7f, 0x07, 0x00, 0x00, - 0xff, 0xff, 0x96, 0x68, 0xe4, 0xd9, 0x71, 0xa1, 0x00, 0x00, + // 11373 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x90, 0x1c, 0xd7, + 0x75, 0x18, 0xbc, 0x3d, 0x33, 0x3b, 0x8f, 0x33, 0xaf, 0xde, 0xbb, 0x0b, 0x60, 0x30, 0x20, 0xb1, + 0xcb, 0xa6, 0x48, 0x82, 0x20, 0xb9, 0x20, 0x41, 0x02, 0x24, 0x17, 0x92, 0xf8, 0xcd, 0xcc, 0x0e, + 0x80, 0x01, 0xf7, 0xc5, 0x9e, 0x59, 0xf0, 0x61, 0x5b, 0xed, 0xde, 0x9e, 0xbb, 0xbb, 0x4d, 0xcc, + 0x74, 0xb7, 0xa6, 0x7b, 0xc0, 0x5d, 0xfe, 0xf8, 0x4a, 0xfe, 0x64, 0x7f, 0x9f, 0x04, 0x3f, 0x3e, + 0xf9, 0x51, 0xb6, 0x6c, 0x09, 0xb6, 0x64, 0xc7, 0x96, 0xec, 0xc4, 0x89, 0x6d, 0x29, 0x7e, 0xc4, + 0x15, 0xc7, 0x4e, 0xe5, 0x61, 0xbb, 0x92, 0x94, 0xe2, 0x1f, 0x89, 0x2b, 0x55, 0xa6, 0x6d, 0xc9, + 0x15, 0x2b, 0xb2, 0x9c, 0xf8, 0x21, 0x27, 0x4e, 0xa9, 0xe2, 0x4a, 0xdd, 0x57, 0x3f, 0xe6, 0xb1, + 0x33, 0x0b, 0x91, 0xb2, 0xe3, 0xe4, 0x0f, 0x30, 0x7d, 0xee, 0x39, 0xe7, 0xde, 0x7b, 0xee, 0xb9, + 0xe7, 0x9e, 0x73, 0xee, 0x63, 0xe1, 0xf7, 0xaf, 0xc2, 0xd2, 0x9e, 0x6d, 0xef, 0x75, 0xf0, 0x05, + 0xa7, 0x67, 0x7b, 0xf6, 0x4e, 0x7f, 0xf7, 0x42, 0x1b, 0xbb, 0x46, 0xcf, 0x74, 0x3c, 0xbb, 0xb7, + 0x4c, 0x61, 0xa8, 0xc8, 0x30, 0x96, 0x05, 0x86, 0xb2, 0x0e, 0x73, 0x57, 0xcd, 0x0e, 0x5e, 0xf5, + 0x11, 0x9b, 0xd8, 0x43, 0xcf, 0x41, 0x62, 0xd7, 0xec, 0xe0, 0x92, 0xb4, 0x14, 0x3f, 0x97, 0xbd, + 0xf8, 0xae, 0xe5, 0x01, 0xa2, 0xe5, 0x28, 0xc5, 0x16, 0x01, 0xab, 0x94, 0x42, 0xf9, 0xab, 0x04, + 0xcc, 0x8f, 0x28, 0x45, 0x08, 0x12, 0x96, 0xde, 0x25, 0x1c, 0xa5, 0x73, 0x19, 0x95, 0xfe, 0x46, + 0x25, 0x48, 0x39, 0xba, 0x71, 0x4b, 0xdf, 0xc3, 0xa5, 0x18, 0x05, 0x8b, 0x4f, 0x74, 0x16, 0xa0, + 0x8d, 0x1d, 0x6c, 0xb5, 0xb1, 0x65, 0x1c, 0x96, 0xe2, 0x4b, 0xf1, 0x73, 0x19, 0x35, 0x04, 0x41, + 0x8f, 0xc1, 0x9c, 0xd3, 0xdf, 0xe9, 0x98, 0x86, 0x16, 0x42, 0x83, 0xa5, 0xf8, 0xb9, 0x59, 0x55, + 0x66, 0x05, 0xab, 0x01, 0xf2, 0x23, 0x50, 0x7c, 0x03, 0xeb, 0xb7, 0xc2, 0xa8, 0x59, 0x8a, 0x5a, + 0x20, 0xe0, 0x10, 0x62, 0x0d, 0x72, 0x5d, 0xec, 0xba, 0xfa, 0x1e, 0xd6, 0xbc, 0x43, 0x07, 0x97, + 0x12, 0xb4, 0xf7, 0x4b, 0x43, 0xbd, 0x1f, 0xec, 0x79, 0x96, 0x53, 0xb5, 0x0e, 0x1d, 0x8c, 0x2a, + 0x90, 0xc1, 0x56, 0xbf, 0xcb, 0x38, 0xcc, 0x8e, 0x91, 0x5f, 0xdd, 0xea, 0x77, 0x07, 0xb9, 0xa4, + 0x09, 0x19, 0x67, 0x91, 0x72, 0x71, 0xef, 0xb6, 0x69, 0xe0, 0x52, 0x92, 0x32, 0x78, 0x64, 0x88, + 0x41, 0x93, 0x95, 0x0f, 0xf2, 0x10, 0x74, 0xa8, 0x06, 0x19, 0x7c, 0xe0, 0x61, 0xcb, 0x35, 0x6d, + 0xab, 0x94, 0xa2, 0x4c, 0x1e, 0x1a, 0x31, 0x8a, 0xb8, 0xd3, 0x1e, 0x64, 0x11, 0xd0, 0xa1, 0xcb, + 0x90, 0xb2, 0x1d, 0xcf, 0xb4, 0x2d, 0xb7, 0x94, 0x5e, 0x92, 0xce, 0x65, 0x2f, 0xde, 0x37, 0x52, + 0x11, 0x36, 0x19, 0x8e, 0x2a, 0x90, 0x51, 0x03, 0x64, 0xd7, 0xee, 0xf7, 0x0c, 0xac, 0x19, 0x76, + 0x1b, 0x6b, 0xa6, 0xb5, 0x6b, 0x97, 0x32, 0x94, 0xc1, 0xe2, 0x70, 0x47, 0x28, 0x62, 0xcd, 0x6e, + 0xe3, 0x86, 0xb5, 0x6b, 0xab, 0x05, 0x37, 0xf2, 0x8d, 0x4e, 0x42, 0xd2, 0x3d, 0xb4, 0x3c, 0xfd, + 0xa0, 0x94, 0xa3, 0x1a, 0xc2, 0xbf, 0x88, 0xea, 0xe0, 0xb6, 0x49, 0xaa, 0x2b, 0xe5, 0x99, 0xea, + 0xf0, 0x4f, 0xe5, 0x97, 0x92, 0x50, 0x9c, 0x46, 0xf9, 0xae, 0xc0, 0xec, 0x2e, 0xe9, 0x7f, 0x29, + 0x76, 0x1c, 0xe9, 0x30, 0x9a, 0xa8, 0x78, 0x93, 0xf7, 0x28, 0xde, 0x0a, 0x64, 0x2d, 0xec, 0x7a, + 0xb8, 0xcd, 0x74, 0x25, 0x3e, 0xa5, 0xb6, 0x01, 0x23, 0x1a, 0x56, 0xb6, 0xc4, 0x3d, 0x29, 0xdb, + 0x2b, 0x50, 0xf4, 0x9b, 0xa4, 0xf5, 0x74, 0x6b, 0x4f, 0x68, 0xed, 0x85, 0x49, 0x2d, 0x59, 0xae, + 0x0b, 0x3a, 0x95, 0x90, 0xa9, 0x05, 0x1c, 0xf9, 0x46, 0xab, 0x00, 0xb6, 0x85, 0xed, 0x5d, 0xad, + 0x8d, 0x8d, 0x4e, 0x29, 0x3d, 0x46, 0x4a, 0x9b, 0x04, 0x65, 0x48, 0x4a, 0x36, 0x83, 0x1a, 0x1d, + 0xf4, 0x7c, 0xa0, 0x84, 0xa9, 0x31, 0x3a, 0xb4, 0xce, 0xa6, 0xdf, 0x90, 0x1e, 0x6e, 0x43, 0xa1, + 0x87, 0xc9, 0x8c, 0xc0, 0x6d, 0xde, 0xb3, 0x0c, 0x6d, 0xc4, 0xf2, 0xc4, 0x9e, 0xa9, 0x9c, 0x8c, + 0x75, 0x2c, 0xdf, 0x0b, 0x7f, 0xa2, 0x07, 0xc1, 0x07, 0x68, 0x54, 0xad, 0x80, 0xda, 0xa7, 0x9c, + 0x00, 0x6e, 0xe8, 0x5d, 0x5c, 0x7e, 0x13, 0x0a, 0x51, 0xf1, 0xa0, 0x05, 0x98, 0x75, 0x3d, 0xbd, + 0xe7, 0x51, 0x2d, 0x9c, 0x55, 0xd9, 0x07, 0x92, 0x21, 0x8e, 0xad, 0x36, 0xb5, 0x7f, 0xb3, 0x2a, + 0xf9, 0x89, 0xfe, 0xaf, 0xa0, 0xc3, 0x71, 0xda, 0xe1, 0x87, 0x87, 0x47, 0x34, 0xc2, 0x79, 0xb0, + 0xdf, 0xe5, 0x67, 0x21, 0x1f, 0xe9, 0xc0, 0xb4, 0x55, 0x2b, 0x3f, 0x9d, 0x80, 0x13, 0x23, 0x79, + 0xa3, 0x57, 0x60, 0xa1, 0x6f, 0x99, 0x96, 0x87, 0x7b, 0x4e, 0x0f, 0x13, 0x95, 0x65, 0x75, 0x95, + 0xfe, 0x30, 0x35, 0x46, 0xe9, 0xb6, 0xc3, 0xd8, 0x8c, 0x8b, 0x3a, 0xdf, 0x1f, 0x06, 0xa2, 0x57, + 0x21, 0x4b, 0xf4, 0x43, 0xef, 0xe9, 0x94, 0x21, 0x9b, 0x8d, 0x17, 0xa7, 0xeb, 0xf2, 0xf2, 0x6a, + 0x40, 0x59, 0x8d, 0x7f, 0x48, 0x8a, 0xa9, 0x61, 0x5e, 0x68, 0x1f, 0x72, 0xb7, 0x71, 0xcf, 0xdc, + 0x35, 0x0d, 0xc6, 0x9b, 0x88, 0xb3, 0x70, 0xf1, 0xb9, 0x29, 0x79, 0xdf, 0x0c, 0x91, 0x36, 0x3d, + 0xdd, 0xc3, 0x2b, 0xb0, 0xbd, 0x71, 0xb3, 0xae, 0x36, 0xae, 0x36, 0xea, 0xab, 0x6a, 0x84, 0x73, + 0xf9, 0x33, 0x12, 0x64, 0x43, 0x6d, 0x21, 0x66, 0xcb, 0xea, 0x77, 0x77, 0x70, 0x8f, 0x4b, 0x9c, + 0x7f, 0xa1, 0x33, 0x90, 0xd9, 0xed, 0x77, 0x3a, 0x4c, 0x6d, 0xd8, 0x9a, 0x97, 0x26, 0x00, 0xa2, + 0x32, 0xc4, 0x4a, 0x71, 0x43, 0x40, 0xad, 0x14, 0xf9, 0x8d, 0x1e, 0x84, 0xac, 0xe9, 0x6a, 0x3d, + 0xec, 0x60, 0xdd, 0xc3, 0xed, 0x52, 0x62, 0x49, 0x3a, 0x97, 0xae, 0xc6, 0x4a, 0x92, 0x0a, 0xa6, + 0xab, 0x72, 0x28, 0x2a, 0x43, 0x5a, 0xe8, 0x5e, 0x69, 0x96, 0x60, 0xa8, 0xfe, 0x37, 0x2b, 0xe3, + 0xd4, 0x49, 0x51, 0xc6, 0xbe, 0x95, 0x67, 0x60, 0x6e, 0xa8, 0x93, 0xa8, 0x08, 0xd9, 0xd5, 0x7a, + 0x6d, 0xad, 0xa2, 0x56, 0x5a, 0x8d, 0xcd, 0x0d, 0x79, 0x06, 0x15, 0x20, 0xd4, 0x6f, 0x59, 0x3a, + 0x9f, 0x49, 0x7f, 0x31, 0x25, 0x7f, 0xe0, 0x03, 0x1f, 0xf8, 0x40, 0x4c, 0xf9, 0xb5, 0x24, 0x2c, + 0x8c, 0xb2, 0x72, 0x23, 0x0d, 0x6e, 0x20, 0x93, 0x78, 0x44, 0x26, 0x15, 0x98, 0xed, 0xe8, 0x3b, + 0xb8, 0x43, 0x3b, 0x57, 0xb8, 0xf8, 0xd8, 0x54, 0x76, 0x74, 0x79, 0x8d, 0x90, 0xa8, 0x8c, 0x12, + 0xbd, 0x97, 0x4b, 0x6e, 0x96, 0x72, 0x38, 0x3f, 0x1d, 0x07, 0x62, 0xfd, 0xb8, 0x94, 0xcf, 0x40, + 0x86, 0xfc, 0xcf, 0x86, 0x25, 0xc9, 0x86, 0x85, 0x00, 0xe8, 0xb0, 0x94, 0x21, 0x4d, 0x0d, 0x5b, + 0x1b, 0xfb, 0x43, 0x26, 0xbe, 0x89, 0x29, 0x68, 0xe3, 0x5d, 0xbd, 0xdf, 0xf1, 0xb4, 0xdb, 0x7a, + 0xa7, 0x8f, 0xa9, 0x89, 0xca, 0xa8, 0x39, 0x0e, 0xbc, 0x49, 0x60, 0x68, 0x11, 0xb2, 0xcc, 0x0e, + 0x9a, 0x56, 0x1b, 0x1f, 0xd0, 0x95, 0x70, 0x56, 0x65, 0xa6, 0xb1, 0x41, 0x20, 0xa4, 0xfa, 0xd7, + 0x5d, 0xdb, 0x12, 0xc6, 0x84, 0x56, 0x41, 0x00, 0xb4, 0xfa, 0x67, 0x07, 0x17, 0xe1, 0xfb, 0x47, + 0x77, 0x6f, 0xc8, 0xfa, 0x3d, 0x02, 0x45, 0x8a, 0xf1, 0x34, 0x9f, 0xab, 0x7a, 0xa7, 0x34, 0x47, + 0x15, 0xa0, 0xc0, 0xc0, 0x9b, 0x1c, 0xaa, 0xfc, 0x7c, 0x0c, 0x12, 0x74, 0x29, 0x28, 0x42, 0xb6, + 0xf5, 0xea, 0x56, 0x5d, 0x5b, 0xdd, 0xdc, 0xae, 0xae, 0xd5, 0x65, 0x89, 0x0c, 0x3d, 0x05, 0x5c, + 0x5d, 0xdb, 0xac, 0xb4, 0xe4, 0x98, 0xff, 0xdd, 0xd8, 0x68, 0x5d, 0x7e, 0x46, 0x8e, 0xfb, 0x04, + 0xdb, 0x0c, 0x90, 0x08, 0x23, 0x3c, 0x7d, 0x51, 0x9e, 0x45, 0x32, 0xe4, 0x18, 0x83, 0xc6, 0x2b, + 0xf5, 0xd5, 0xcb, 0xcf, 0xc8, 0xc9, 0x28, 0xe4, 0xe9, 0x8b, 0x72, 0x0a, 0xe5, 0x21, 0x43, 0x21, + 0xd5, 0xcd, 0xcd, 0x35, 0x39, 0xed, 0xf3, 0x6c, 0xb6, 0xd4, 0xc6, 0xc6, 0x35, 0x39, 0xe3, 0xf3, + 0xbc, 0xa6, 0x6e, 0x6e, 0x6f, 0xc9, 0xe0, 0x73, 0x58, 0xaf, 0x37, 0x9b, 0x95, 0x6b, 0x75, 0x39, + 0xeb, 0x63, 0x54, 0x5f, 0x6d, 0xd5, 0x9b, 0x72, 0x2e, 0xd2, 0xac, 0xa7, 0x2f, 0xca, 0x79, 0xbf, + 0x8a, 0xfa, 0xc6, 0xf6, 0xba, 0x5c, 0x40, 0x73, 0x90, 0x67, 0x55, 0x88, 0x46, 0x14, 0x07, 0x40, + 0x97, 0x9f, 0x91, 0xe5, 0xa0, 0x21, 0x8c, 0xcb, 0x5c, 0x04, 0x70, 0xf9, 0x19, 0x19, 0x29, 0x35, + 0x98, 0xa5, 0x6a, 0x88, 0x10, 0x14, 0xd6, 0x2a, 0xd5, 0xfa, 0x9a, 0xb6, 0xb9, 0x45, 0x26, 0x4d, + 0x65, 0x4d, 0x96, 0x02, 0x98, 0x5a, 0x7f, 0x69, 0xbb, 0xa1, 0xd6, 0x57, 0xe5, 0x58, 0x18, 0xb6, + 0x55, 0xaf, 0xb4, 0xea, 0xab, 0x72, 0x5c, 0x31, 0x60, 0x61, 0xd4, 0x12, 0x38, 0x72, 0x0a, 0x85, + 0x74, 0x21, 0x36, 0x46, 0x17, 0x28, 0xaf, 0x41, 0x5d, 0x50, 0xbe, 0x10, 0x83, 0xf9, 0x11, 0x6e, + 0xc0, 0xc8, 0x4a, 0x5e, 0x80, 0x59, 0xa6, 0xcb, 0xcc, 0x14, 0x3f, 0x3a, 0xd2, 0x9f, 0xa0, 0x9a, + 0x3d, 0xe4, 0x1c, 0x51, 0xba, 0xb0, 0xdb, 0x18, 0x1f, 0xe3, 0x36, 0x12, 0x16, 0x43, 0x0a, 0xfb, + 0x4d, 0x43, 0xcb, 0x35, 0xf3, 0x68, 0x2e, 0x4f, 0xe3, 0xd1, 0x50, 0xd8, 0xf1, 0x96, 0xed, 0xd9, + 0x11, 0xcb, 0xf6, 0x15, 0x98, 0x1b, 0x62, 0x34, 0xf5, 0xf2, 0xf9, 0x41, 0x09, 0x4a, 0xe3, 0x84, + 0x33, 0xc1, 0x24, 0xc6, 0x22, 0x26, 0xf1, 0xca, 0xa0, 0x04, 0x1f, 0x18, 0x3f, 0x08, 0x43, 0x63, + 0xfd, 0x29, 0x09, 0x4e, 0x8e, 0x0e, 0x0f, 0x46, 0xb6, 0xe1, 0xbd, 0x90, 0xec, 0x62, 0x6f, 0xdf, + 0x16, 0x8e, 0xf0, 0xc3, 0x23, 0xdc, 0x2b, 0x52, 0x3c, 0x38, 0xd8, 0x9c, 0x2a, 0xec, 0x9f, 0xc5, + 0xc7, 0xf9, 0xf8, 0xac, 0x35, 0x43, 0x2d, 0xfd, 0x70, 0x0c, 0x4e, 0x8c, 0x64, 0x3e, 0xb2, 0xa1, + 0xf7, 0x03, 0x98, 0x96, 0xd3, 0xf7, 0x98, 0xb3, 0xcb, 0x2c, 0x71, 0x86, 0x42, 0xa8, 0xf1, 0x22, + 0x56, 0xb6, 0xef, 0xf9, 0xe5, 0x6c, 0x11, 0x05, 0x06, 0xa2, 0x08, 0xcf, 0x05, 0x0d, 0x4d, 0xd0, + 0x86, 0x9e, 0x1d, 0xd3, 0xd3, 0x21, 0xc5, 0x7c, 0x12, 0x64, 0xa3, 0x63, 0x62, 0xcb, 0xd3, 0x5c, + 0xaf, 0x87, 0xf5, 0xae, 0x69, 0xed, 0xb1, 0x75, 0x76, 0x65, 0x76, 0x57, 0xef, 0xb8, 0x58, 0x2d, + 0xb2, 0xe2, 0xa6, 0x28, 0x25, 0x14, 0x54, 0x81, 0x7a, 0x21, 0x8a, 0x64, 0x84, 0x82, 0x15, 0xfb, + 0x14, 0xca, 0x77, 0x67, 0x20, 0x1b, 0x0a, 0xa6, 0xd0, 0x03, 0x90, 0x7b, 0x5d, 0xbf, 0xad, 0x6b, + 0x22, 0x40, 0x66, 0x92, 0xc8, 0x12, 0xd8, 0x16, 0x0f, 0x92, 0x9f, 0x84, 0x05, 0x8a, 0x62, 0xf7, + 0x3d, 0xdc, 0xd3, 0x8c, 0x8e, 0xee, 0xba, 0x54, 0x68, 0x69, 0x8a, 0x8a, 0x48, 0xd9, 0x26, 0x29, + 0xaa, 0x89, 0x12, 0x74, 0x09, 0xe6, 0x29, 0x45, 0xb7, 0xdf, 0xf1, 0x4c, 0xa7, 0x83, 0x35, 0x12, + 0xb2, 0xbb, 0x74, 0xc9, 0xf1, 0x5b, 0x36, 0x47, 0x30, 0xd6, 0x39, 0x02, 0x69, 0x91, 0x8b, 0x56, + 0xe1, 0x7e, 0x4a, 0xb6, 0x87, 0x2d, 0xdc, 0xd3, 0x3d, 0xac, 0xe1, 0xf7, 0xf7, 0xf5, 0x8e, 0xab, + 0xe9, 0x56, 0x5b, 0xdb, 0xd7, 0xdd, 0xfd, 0xd2, 0x82, 0xef, 0x96, 0x9c, 0x26, 0x88, 0xd7, 0x38, + 0x5e, 0x9d, 0xa2, 0x55, 0xac, 0xf6, 0x75, 0xdd, 0xdd, 0x47, 0x2b, 0x70, 0x92, 0x72, 0x71, 0xbd, + 0x9e, 0x69, 0xed, 0x69, 0xc6, 0x3e, 0x36, 0x6e, 0x69, 0x7d, 0x6f, 0xf7, 0xb9, 0xd2, 0x99, 0x70, + 0xfd, 0xb4, 0x85, 0x4d, 0x8a, 0x53, 0x23, 0x28, 0xdb, 0xde, 0xee, 0x73, 0xa8, 0x09, 0x39, 0x32, + 0x18, 0x5d, 0xf3, 0x4d, 0xac, 0xed, 0xda, 0x3d, 0xba, 0x86, 0x16, 0x46, 0x98, 0xa6, 0x90, 0x04, + 0x97, 0x37, 0x39, 0xc1, 0xba, 0xdd, 0xc6, 0x2b, 0xb3, 0xcd, 0xad, 0x7a, 0x7d, 0x55, 0xcd, 0x0a, + 0x2e, 0x57, 0xed, 0x1e, 0x51, 0xa8, 0x3d, 0xdb, 0x17, 0x70, 0x96, 0x29, 0xd4, 0x9e, 0x2d, 0xc4, + 0x7b, 0x09, 0xe6, 0x0d, 0x83, 0xf5, 0xd9, 0x34, 0x34, 0x1e, 0x58, 0xbb, 0x25, 0x39, 0x22, 0x2c, + 0xc3, 0xb8, 0xc6, 0x10, 0xb8, 0x8e, 0xbb, 0xe8, 0x79, 0x38, 0x11, 0x08, 0x2b, 0x4c, 0x38, 0x37, + 0xd4, 0xcb, 0x41, 0xd2, 0x4b, 0x30, 0xef, 0x1c, 0x0e, 0x13, 0xa2, 0x48, 0x8d, 0xce, 0xe1, 0x20, + 0xd9, 0xb3, 0xb0, 0xe0, 0xec, 0x3b, 0xc3, 0x74, 0xe7, 0xc3, 0x74, 0xc8, 0xd9, 0x77, 0x06, 0x09, + 0x1f, 0xa2, 0x59, 0x96, 0x1e, 0x36, 0xa8, 0x77, 0x78, 0x2a, 0x8c, 0x1e, 0x2a, 0x40, 0xcb, 0x20, + 0x1b, 0x86, 0x86, 0x2d, 0x7d, 0xa7, 0x83, 0x35, 0xbd, 0x87, 0x2d, 0xdd, 0x2d, 0x2d, 0x52, 0xe4, + 0x84, 0xd7, 0xeb, 0x63, 0xb5, 0x60, 0x18, 0x75, 0x5a, 0x58, 0xa1, 0x65, 0xe8, 0x3c, 0xcc, 0xd9, + 0x3b, 0xaf, 0x1b, 0x4c, 0x23, 0x35, 0xa7, 0x87, 0x77, 0xcd, 0x83, 0xd2, 0xbb, 0xa8, 0x78, 0x8b, + 0xa4, 0x80, 0xea, 0xe3, 0x16, 0x05, 0xa3, 0x47, 0x41, 0x36, 0xdc, 0x7d, 0xbd, 0xe7, 0x50, 0x93, + 0xec, 0x3a, 0xba, 0x81, 0x4b, 0x0f, 0x31, 0x54, 0x06, 0xdf, 0x10, 0x60, 0x32, 0x23, 0xdc, 0x37, + 0xcc, 0x5d, 0x4f, 0x70, 0x7c, 0x84, 0xcd, 0x08, 0x0a, 0xe3, 0xdc, 0xce, 0x81, 0x4c, 0x24, 0x11, + 0xa9, 0xf8, 0x1c, 0x45, 0x2b, 0x38, 0xfb, 0x4e, 0xb8, 0xde, 0x07, 0x21, 0x4f, 0x30, 0x83, 0x4a, + 0x1f, 0x65, 0x8e, 0x9b, 0xb3, 0x1f, 0xaa, 0xf1, 0x19, 0x38, 0x49, 0x90, 0xba, 0xd8, 0xd3, 0xdb, + 0xba, 0xa7, 0x87, 0xb0, 0x1f, 0xa7, 0xd8, 0x44, 0xec, 0xeb, 0xbc, 0x30, 0xd2, 0xce, 0x5e, 0x7f, + 0xe7, 0xd0, 0x57, 0xac, 0x27, 0x58, 0x3b, 0x09, 0x4c, 0xa8, 0xd6, 0x3b, 0x16, 0x4d, 0x29, 0x2b, + 0x90, 0x0b, 0xeb, 0x3d, 0xca, 0x00, 0xd3, 0x7c, 0x59, 0x22, 0x4e, 0x50, 0x6d, 0x73, 0x95, 0xb8, + 0x2f, 0xaf, 0xd5, 0xe5, 0x18, 0x71, 0xa3, 0xd6, 0x1a, 0xad, 0xba, 0xa6, 0x6e, 0x6f, 0xb4, 0x1a, + 0xeb, 0x75, 0x39, 0x1e, 0x72, 0xec, 0x6f, 0x24, 0xd2, 0x0f, 0xcb, 0x8f, 0x28, 0xbf, 0x1c, 0x87, + 0x42, 0x34, 0xb6, 0x46, 0xef, 0x86, 0x53, 0x22, 0x45, 0xe6, 0x62, 0x4f, 0x7b, 0xc3, 0xec, 0xd1, + 0x09, 0xd9, 0xd5, 0xd9, 0xe2, 0xe8, 0xeb, 0xcf, 0x02, 0xc7, 0x6a, 0x62, 0xef, 0x65, 0xb3, 0x47, + 0xa6, 0x5b, 0x57, 0xf7, 0xd0, 0x1a, 0x2c, 0x5a, 0xb6, 0xe6, 0x7a, 0xba, 0xd5, 0xd6, 0x7b, 0x6d, + 0x2d, 0x48, 0x4e, 0x6a, 0xba, 0x61, 0x60, 0xd7, 0xb5, 0xd9, 0x42, 0xe8, 0x73, 0xb9, 0xcf, 0xb2, + 0x9b, 0x1c, 0x39, 0x58, 0x21, 0x2a, 0x1c, 0x75, 0x40, 0x7d, 0xe3, 0xe3, 0xd4, 0xf7, 0x0c, 0x64, + 0xba, 0xba, 0xa3, 0x61, 0xcb, 0xeb, 0x1d, 0x52, 0xff, 0x3c, 0xad, 0xa6, 0xbb, 0xba, 0x53, 0x27, + 0xdf, 0xe8, 0x26, 0x3c, 0x1c, 0xa0, 0x6a, 0x1d, 0xbc, 0xa7, 0x1b, 0x87, 0x1a, 0x75, 0xc6, 0x69, + 0xa2, 0x47, 0x33, 0x6c, 0x6b, 0xb7, 0x63, 0x1a, 0x9e, 0x4b, 0xed, 0x03, 0xb3, 0x71, 0x4a, 0x40, + 0xb1, 0x46, 0x09, 0x6e, 0xb8, 0xb6, 0x45, 0x7d, 0xf0, 0x9a, 0xc0, 0x7e, 0xe7, 0x46, 0x38, 0x3a, + 0x4a, 0x09, 0x79, 0xf6, 0x46, 0x22, 0x3d, 0x2b, 0x27, 0x6f, 0x24, 0xd2, 0x49, 0x39, 0x75, 0x23, + 0x91, 0x4e, 0xcb, 0x99, 0x1b, 0x89, 0x74, 0x46, 0x06, 0xe5, 0xdb, 0x32, 0x90, 0x0b, 0x47, 0x06, + 0x24, 0xd0, 0x32, 0xe8, 0xda, 0x28, 0x51, 0xeb, 0xf9, 0xe0, 0x91, 0x71, 0xc4, 0x72, 0x8d, 0x2c, + 0x9a, 0x2b, 0x49, 0xe6, 0x86, 0xab, 0x8c, 0x92, 0x38, 0x2c, 0x44, 0xad, 0x31, 0x73, 0x7b, 0xd2, + 0x2a, 0xff, 0x42, 0xd7, 0x20, 0xf9, 0xba, 0x4b, 0x79, 0x27, 0x29, 0xef, 0x77, 0x1d, 0xcd, 0xfb, + 0x46, 0x93, 0x32, 0xcf, 0xdc, 0x68, 0x6a, 0x1b, 0x9b, 0xea, 0x7a, 0x65, 0x4d, 0xe5, 0xe4, 0xe8, + 0x34, 0x24, 0x3a, 0xfa, 0x9b, 0x87, 0xd1, 0xe5, 0x95, 0x82, 0xd0, 0x32, 0x14, 0xfb, 0x16, 0x8b, + 0xba, 0xc9, 0x50, 0x11, 0xac, 0x62, 0x18, 0xab, 0x10, 0x94, 0xae, 0x11, 0xfc, 0x29, 0xd5, 0xe3, + 0x34, 0x24, 0xde, 0xc0, 0xfa, 0xad, 0xe8, 0x22, 0x48, 0x41, 0xe8, 0x1c, 0xe4, 0xda, 0x78, 0xa7, + 0xbf, 0xa7, 0xf5, 0x70, 0x5b, 0x37, 0xbc, 0xa8, 0xe9, 0xcf, 0xd2, 0x22, 0x95, 0x96, 0xa0, 0x17, + 0x21, 0x43, 0xc6, 0xc8, 0xa2, 0x63, 0x3c, 0x47, 0x45, 0xf0, 0xc4, 0xd1, 0x22, 0xe0, 0x43, 0x2c, + 0x88, 0xd4, 0x80, 0x1e, 0xdd, 0x80, 0xa4, 0xa7, 0xf7, 0xf6, 0xb0, 0x47, 0x2d, 0x7f, 0x61, 0x44, + 0xba, 0x6a, 0x04, 0xa7, 0x16, 0xa5, 0x20, 0x62, 0xa5, 0x3a, 0xca, 0x39, 0xa0, 0xeb, 0x90, 0x62, + 0xbf, 0xdc, 0xd2, 0xfc, 0x52, 0xfc, 0xf8, 0xcc, 0x54, 0x41, 0xfe, 0x0e, 0xda, 0xac, 0x0b, 0x30, + 0x4b, 0x95, 0x0d, 0x01, 0x70, 0x75, 0x93, 0x67, 0x50, 0x1a, 0x12, 0xb5, 0x4d, 0x95, 0xd8, 0x2d, + 0x19, 0x72, 0x0c, 0xaa, 0x6d, 0x35, 0xea, 0xb5, 0xba, 0x1c, 0x53, 0x2e, 0x41, 0x92, 0x69, 0x10, + 0xb1, 0x69, 0xbe, 0x0e, 0xc9, 0x33, 0xfc, 0x93, 0xf3, 0x90, 0x44, 0xe9, 0xf6, 0x7a, 0xb5, 0xae, + 0xca, 0x31, 0x65, 0x1b, 0x8a, 0x03, 0x52, 0x47, 0x27, 0x60, 0x4e, 0xad, 0xb7, 0xea, 0x1b, 0x24, + 0x6a, 0xd3, 0xb6, 0x37, 0x5e, 0xdc, 0xd8, 0x7c, 0x79, 0x43, 0x9e, 0x89, 0x82, 0x85, 0x81, 0x94, + 0xd0, 0x02, 0xc8, 0x01, 0xb8, 0xb9, 0xb9, 0xad, 0xd2, 0xd6, 0x7c, 0x47, 0x0c, 0xe4, 0x41, 0xb1, + 0xa1, 0x53, 0x30, 0xdf, 0xaa, 0xa8, 0xd7, 0xea, 0x2d, 0x8d, 0x45, 0xa2, 0x3e, 0xeb, 0x05, 0x90, + 0xc3, 0x05, 0x57, 0x1b, 0x34, 0xd0, 0x5e, 0x84, 0x33, 0x61, 0x68, 0xfd, 0x95, 0x56, 0x7d, 0xa3, + 0x49, 0x2b, 0xaf, 0x6c, 0x5c, 0x23, 0xd6, 0x7a, 0x80, 0x9f, 0x88, 0x7d, 0xe3, 0xa4, 0xa9, 0x51, + 0x7e, 0xf5, 0xb5, 0x55, 0x39, 0x31, 0x08, 0xde, 0xdc, 0xa8, 0x6f, 0x5e, 0x95, 0x67, 0x07, 0x6b, + 0xa7, 0xf1, 0x70, 0x12, 0x95, 0xe1, 0xe4, 0x20, 0x54, 0xab, 0x6f, 0xb4, 0xd4, 0x57, 0xe5, 0xd4, + 0x60, 0xc5, 0xcd, 0xba, 0x7a, 0xb3, 0x51, 0xab, 0xcb, 0x69, 0x74, 0x12, 0x50, 0xb4, 0x45, 0xad, + 0xeb, 0x9b, 0xab, 0x72, 0x66, 0xc8, 0x3e, 0x29, 0x2e, 0xe4, 0xc2, 0x41, 0xe9, 0xd7, 0xc5, 0x34, + 0x2a, 0x1f, 0x8d, 0x41, 0x36, 0x14, 0x64, 0x92, 0xe8, 0x40, 0xef, 0x74, 0xec, 0x37, 0x34, 0xbd, + 0x63, 0xea, 0x2e, 0xb7, 0x5e, 0x40, 0x41, 0x15, 0x02, 0x99, 0xd6, 0x5a, 0x4c, 0xbf, 0x5e, 0x24, + 0xff, 0x26, 0xae, 0x17, 0xb3, 0x72, 0x52, 0xf9, 0x61, 0x09, 0xe4, 0xc1, 0xe8, 0x71, 0xa0, 0xfb, + 0xd2, 0xb8, 0xee, 0x7f, 0x5d, 0xc6, 0xee, 0xe3, 0x12, 0x14, 0xa2, 0x21, 0xe3, 0x40, 0xf3, 0x1e, + 0xf8, 0x6b, 0x6d, 0xde, 0xef, 0xc5, 0x20, 0x1f, 0x09, 0x14, 0xa7, 0x6d, 0xdd, 0xfb, 0x61, 0xce, + 0x6c, 0xe3, 0xae, 0x63, 0x7b, 0xd8, 0x32, 0x0e, 0xb5, 0x0e, 0xbe, 0x8d, 0x3b, 0x25, 0x85, 0x9a, + 0xf8, 0x0b, 0x47, 0x87, 0xa2, 0xcb, 0x8d, 0x80, 0x6e, 0x8d, 0x90, 0xad, 0xcc, 0x37, 0x56, 0xeb, + 0xeb, 0x5b, 0x9b, 0xad, 0xfa, 0x46, 0xed, 0x55, 0x61, 0x5d, 0x54, 0xd9, 0x1c, 0x40, 0x7b, 0x07, + 0x8d, 0xf6, 0x16, 0xc8, 0x83, 0x8d, 0x22, 0xb6, 0x62, 0x44, 0xb3, 0xe4, 0x19, 0x34, 0x0f, 0xc5, + 0x8d, 0x4d, 0xad, 0xd9, 0x58, 0xad, 0x6b, 0xf5, 0xab, 0x57, 0xeb, 0xb5, 0x56, 0x93, 0x25, 0x17, + 0x7d, 0xec, 0x96, 0x1c, 0x0b, 0x8b, 0xf8, 0x87, 0xe2, 0x30, 0x3f, 0xa2, 0x25, 0xa8, 0xc2, 0xd3, + 0x02, 0x2c, 0x53, 0xf1, 0xc4, 0x34, 0xad, 0x5f, 0x26, 0x8e, 0xf9, 0x96, 0xde, 0xf3, 0x78, 0x16, + 0xe1, 0x51, 0x20, 0x52, 0xb2, 0x3c, 0xe2, 0x27, 0xf4, 0x78, 0xd2, 0x96, 0xe5, 0x0a, 0x8a, 0x01, + 0x9c, 0xe5, 0x6d, 0x1f, 0x07, 0xe4, 0xd8, 0xae, 0xe9, 0x99, 0xb7, 0xb1, 0x66, 0x5a, 0x22, 0xc3, + 0x9b, 0x58, 0x92, 0xce, 0x25, 0x54, 0x59, 0x94, 0x34, 0x2c, 0xcf, 0xc7, 0xb6, 0xf0, 0x9e, 0x3e, + 0x80, 0x4d, 0xfc, 0x98, 0xb8, 0x2a, 0x8b, 0x12, 0x1f, 0xfb, 0x01, 0xc8, 0xb5, 0xed, 0x3e, 0x09, + 0xa8, 0x18, 0x1e, 0xb1, 0x16, 0x92, 0x9a, 0x65, 0x30, 0x1f, 0x85, 0x87, 0xca, 0x41, 0x6a, 0x39, + 0xa7, 0x66, 0x19, 0x8c, 0xa1, 0x3c, 0x02, 0x45, 0x7d, 0x6f, 0xaf, 0x47, 0x98, 0x0b, 0x46, 0x2c, + 0xf8, 0x2f, 0xf8, 0x60, 0x8a, 0x58, 0xbe, 0x01, 0x69, 0x21, 0x07, 0xe2, 0x0f, 0x13, 0x49, 0x68, + 0x0e, 0xcb, 0x68, 0xc5, 0xce, 0x65, 0xd4, 0xb4, 0x25, 0x0a, 0x1f, 0x80, 0x9c, 0xe9, 0x6a, 0xc1, + 0xde, 0x66, 0x6c, 0x29, 0x76, 0x2e, 0xad, 0x66, 0x4d, 0xd7, 0xdf, 0x23, 0x51, 0x3e, 0x15, 0x83, + 0x42, 0x74, 0xd7, 0x16, 0xad, 0x42, 0xba, 0x63, 0xf3, 0x4d, 0x16, 0x76, 0x64, 0xe0, 0xdc, 0x84, + 0x8d, 0xde, 0xe5, 0x35, 0x8e, 0xaf, 0xfa, 0x94, 0xe5, 0x7f, 0x23, 0x41, 0x5a, 0x80, 0xd1, 0x49, + 0x48, 0x38, 0xba, 0xb7, 0x4f, 0xd9, 0xcd, 0x56, 0x63, 0xb2, 0xa4, 0xd2, 0x6f, 0x02, 0x77, 0x1d, + 0x9d, 0xed, 0x13, 0x71, 0x38, 0xf9, 0x26, 0xe3, 0xda, 0xc1, 0x7a, 0x9b, 0x66, 0x16, 0xec, 0x6e, + 0x17, 0x5b, 0x9e, 0x2b, 0xc6, 0x95, 0xc3, 0x6b, 0x1c, 0x8c, 0x1e, 0x83, 0x39, 0xaf, 0xa7, 0x9b, + 0x9d, 0x08, 0x6e, 0x82, 0xe2, 0xca, 0xa2, 0xc0, 0x47, 0x5e, 0x81, 0xd3, 0x82, 0x6f, 0x1b, 0x7b, + 0xba, 0xb1, 0x8f, 0xdb, 0x01, 0x51, 0x92, 0x66, 0x10, 0x4f, 0x71, 0x84, 0x55, 0x5e, 0x2e, 0x68, + 0x95, 0xcf, 0xc5, 0x60, 0x4e, 0xe4, 0x42, 0xda, 0xbe, 0xb0, 0xd6, 0x01, 0x74, 0xcb, 0xb2, 0xbd, + 0xb0, 0xb8, 0x86, 0x55, 0x79, 0x88, 0x6e, 0xb9, 0xe2, 0x13, 0xa9, 0x21, 0x06, 0xe5, 0x3f, 0x92, + 0x00, 0x82, 0xa2, 0xb1, 0x72, 0x5b, 0x84, 0x2c, 0xdf, 0x93, 0xa7, 0x07, 0x3b, 0x58, 0xfa, 0x0c, + 0x18, 0xe8, 0xaa, 0xd9, 0xa1, 0x49, 0xce, 0x1d, 0xbc, 0x67, 0x5a, 0x7c, 0x77, 0x86, 0x7d, 0x88, + 0x24, 0x67, 0x22, 0xd8, 0x9e, 0x54, 0x21, 0xed, 0xe2, 0xae, 0x6e, 0x79, 0xa6, 0xc1, 0xf7, 0x5b, + 0x2e, 0x1f, 0xab, 0xf1, 0xcb, 0x4d, 0x4e, 0xad, 0xfa, 0x7c, 0x94, 0x73, 0x90, 0x16, 0x50, 0xe2, + 0xf8, 0x6d, 0x6c, 0x6e, 0xd4, 0xe5, 0x19, 0x94, 0x82, 0x78, 0xb3, 0xde, 0x92, 0x25, 0x12, 0xc4, + 0x56, 0xd6, 0x1a, 0x95, 0xa6, 0x1c, 0xab, 0xfe, 0xdf, 0x30, 0x6f, 0xd8, 0xdd, 0xc1, 0x0a, 0xab, + 0xf2, 0x40, 0x02, 0xd1, 0xbd, 0x2e, 0xbd, 0xf6, 0x04, 0x47, 0xda, 0xb3, 0x3b, 0xba, 0xb5, 0xb7, + 0x6c, 0xf7, 0xf6, 0x82, 0x63, 0x31, 0x24, 0xd6, 0x70, 0x43, 0x87, 0x63, 0x9c, 0x9d, 0xbf, 0x94, + 0xa4, 0x1f, 0x8d, 0xc5, 0xaf, 0x6d, 0x55, 0x7f, 0x2a, 0x56, 0xbe, 0xc6, 0x08, 0xb7, 0x44, 0x77, + 0x54, 0xbc, 0xdb, 0xc1, 0x06, 0x69, 0x3c, 0xfc, 0xf1, 0x63, 0xb0, 0xb0, 0x67, 0xef, 0xd9, 0x94, + 0xd3, 0x05, 0xf2, 0x8b, 0x9f, 0xab, 0xc9, 0xf8, 0xd0, 0xf2, 0xc4, 0x43, 0x38, 0x2b, 0x1b, 0x30, + 0xcf, 0x91, 0x35, 0xba, 0x7d, 0xcf, 0x52, 0x15, 0xe8, 0xc8, 0x3c, 0x79, 0xe9, 0x67, 0xff, 0x80, + 0x7a, 0x25, 0xea, 0x1c, 0x27, 0x25, 0x65, 0x2c, 0x9b, 0xb1, 0xa2, 0xc2, 0x89, 0x08, 0x3f, 0x66, + 0x23, 0x70, 0x6f, 0x02, 0xc7, 0x7f, 0xce, 0x39, 0xce, 0x87, 0x38, 0x36, 0x39, 0xe9, 0x4a, 0x0d, + 0xf2, 0xc7, 0xe1, 0xf5, 0x2f, 0x38, 0xaf, 0x1c, 0x0e, 0x33, 0xb9, 0x06, 0x45, 0xca, 0xc4, 0xe8, + 0xbb, 0x9e, 0xdd, 0xa5, 0x06, 0xf8, 0x68, 0x36, 0xff, 0xf2, 0x0f, 0xd8, 0xa4, 0x2d, 0x10, 0xb2, + 0x9a, 0x4f, 0xb5, 0xb2, 0x02, 0xf4, 0xc4, 0x42, 0x1b, 0x1b, 0x9d, 0x09, 0x1c, 0x7e, 0x9d, 0x37, + 0xc4, 0xc7, 0x5f, 0xb9, 0x09, 0x0b, 0xe4, 0x37, 0xb5, 0x8f, 0xe1, 0x96, 0x4c, 0x4e, 0xaa, 0x97, + 0xfe, 0xed, 0x07, 0x99, 0x5d, 0x98, 0xf7, 0x19, 0x84, 0xda, 0x14, 0x1a, 0xc5, 0x3d, 0xec, 0x79, + 0xb8, 0xe7, 0x6a, 0x7a, 0x67, 0x54, 0xf3, 0x42, 0x59, 0xc9, 0xd2, 0x0f, 0x7e, 0x39, 0x3a, 0x8a, + 0xd7, 0x18, 0x65, 0xa5, 0xd3, 0x59, 0xd9, 0x86, 0x53, 0x23, 0xb4, 0x62, 0x0a, 0x9e, 0x3f, 0xc4, + 0x79, 0x2e, 0x0c, 0x69, 0x06, 0x61, 0xbb, 0x05, 0x02, 0xee, 0x8f, 0xe5, 0x14, 0x3c, 0x3f, 0xc6, + 0x79, 0x22, 0x4e, 0x2b, 0x86, 0x94, 0x70, 0xbc, 0x01, 0x73, 0xb7, 0x71, 0x6f, 0xc7, 0x76, 0x79, + 0x26, 0x78, 0x0a, 0x76, 0x1f, 0xe7, 0xec, 0x8a, 0x9c, 0x90, 0xa6, 0x86, 0x09, 0xaf, 0xe7, 0x21, + 0xbd, 0xab, 0x1b, 0x78, 0x0a, 0x16, 0x77, 0x39, 0x8b, 0x14, 0xc1, 0x27, 0xa4, 0x15, 0xc8, 0xed, + 0xd9, 0x7c, 0x89, 0x9c, 0x4c, 0xfe, 0xc3, 0x9c, 0x3c, 0x2b, 0x68, 0x38, 0x0b, 0xc7, 0x76, 0xfa, + 0x1d, 0xb2, 0x7e, 0x4e, 0x66, 0xf1, 0x23, 0x82, 0x85, 0xa0, 0xe1, 0x2c, 0x8e, 0x21, 0xd6, 0x4f, + 0x08, 0x16, 0x6e, 0x48, 0x9e, 0x2f, 0x40, 0xd6, 0xb6, 0x3a, 0x87, 0xb6, 0x35, 0x4d, 0x23, 0x3e, + 0xc9, 0x39, 0x00, 0x27, 0x21, 0x0c, 0xae, 0x40, 0x66, 0xda, 0x81, 0xf8, 0xf1, 0x2f, 0x8b, 0xe9, + 0x21, 0x46, 0xe0, 0x1a, 0x14, 0x85, 0x81, 0x32, 0x6d, 0x6b, 0x0a, 0x16, 0x3f, 0xc1, 0x59, 0x14, + 0x42, 0x64, 0xbc, 0x1b, 0x1e, 0x76, 0xbd, 0x3d, 0x3c, 0x0d, 0x93, 0x4f, 0x89, 0x6e, 0x70, 0x12, + 0x2e, 0xca, 0x1d, 0x6c, 0x19, 0xfb, 0xd3, 0x71, 0xf8, 0xb4, 0x10, 0xa5, 0xa0, 0x21, 0x2c, 0x6a, + 0x90, 0xef, 0xea, 0x3d, 0x77, 0x5f, 0xef, 0x4c, 0x35, 0x1c, 0x3f, 0xc9, 0x79, 0xe4, 0x7c, 0x22, + 0x2e, 0x91, 0xbe, 0x75, 0x1c, 0x36, 0x3f, 0x25, 0x24, 0x12, 0x22, 0xe3, 0x53, 0xcf, 0xf5, 0x68, + 0xda, 0xfc, 0x38, 0xdc, 0xfe, 0xae, 0x98, 0x7a, 0x8c, 0x76, 0x3d, 0xcc, 0xf1, 0x0a, 0x64, 0x5c, + 0xf3, 0xcd, 0xa9, 0xd8, 0xfc, 0x3d, 0x31, 0xd2, 0x94, 0x80, 0x10, 0xbf, 0x0a, 0xa7, 0x47, 0x2e, + 0x13, 0x53, 0x30, 0xfb, 0x69, 0xce, 0xec, 0xe4, 0x88, 0xa5, 0x82, 0x9b, 0x84, 0xe3, 0xb2, 0xfc, + 0xfb, 0xc2, 0x24, 0xe0, 0x01, 0x5e, 0x5b, 0x24, 0x68, 0x71, 0xf5, 0xdd, 0xe3, 0x49, 0xed, 0x1f, + 0x08, 0xa9, 0x31, 0xda, 0x88, 0xd4, 0x5a, 0x70, 0x92, 0x73, 0x3c, 0xde, 0xb8, 0xfe, 0x8c, 0x30, + 0xac, 0x8c, 0x7a, 0x3b, 0x3a, 0xba, 0xdf, 0x00, 0x65, 0x5f, 0x9c, 0xc2, 0x3b, 0x76, 0xb5, 0xae, + 0xee, 0x4c, 0xc1, 0xf9, 0x67, 0x39, 0x67, 0x61, 0xf1, 0x7d, 0xf7, 0xda, 0x5d, 0xd7, 0x1d, 0xc2, + 0xfc, 0x15, 0x28, 0x09, 0xe6, 0x7d, 0xab, 0x87, 0x0d, 0x7b, 0xcf, 0x32, 0xdf, 0xc4, 0xed, 0x29, + 0x58, 0xff, 0xdc, 0xc0, 0x50, 0x6d, 0x87, 0xc8, 0x09, 0xe7, 0x06, 0xc8, 0xbe, 0xaf, 0xa2, 0x99, + 0x5d, 0xc7, 0xee, 0x79, 0x13, 0x38, 0x7e, 0x46, 0x8c, 0x94, 0x4f, 0xd7, 0xa0, 0x64, 0x2b, 0x75, + 0x60, 0x67, 0x49, 0xa6, 0x55, 0xc9, 0xcf, 0x72, 0x46, 0xf9, 0x80, 0x8a, 0x1b, 0x0e, 0xc3, 0xee, + 0x3a, 0x7a, 0x6f, 0x1a, 0xfb, 0xf7, 0x0f, 0x85, 0xe1, 0xe0, 0x24, 0xdc, 0x70, 0x10, 0x8f, 0x8e, + 0xac, 0xf6, 0x53, 0x70, 0xf8, 0x79, 0x61, 0x38, 0x04, 0x0d, 0x67, 0x21, 0x1c, 0x86, 0x29, 0x58, + 0xfc, 0x82, 0x60, 0x21, 0x68, 0x08, 0x8b, 0x97, 0x82, 0x85, 0xb6, 0x87, 0xf7, 0x4c, 0xd7, 0xe3, + 0x87, 0xc1, 0x8e, 0x66, 0xf5, 0x8b, 0x5f, 0x8e, 0x3a, 0x61, 0x6a, 0x88, 0x94, 0x58, 0x22, 0xbe, + 0x91, 0x42, 0x43, 0xb6, 0xc9, 0x0d, 0xfb, 0x25, 0x61, 0x89, 0x42, 0x64, 0xa4, 0x6d, 0x21, 0x0f, + 0x91, 0x88, 0xdd, 0x20, 0x81, 0xca, 0x14, 0xec, 0xfe, 0xd1, 0x40, 0xe3, 0x9a, 0x82, 0x96, 0xf0, + 0x0c, 0xf9, 0x3f, 0x7d, 0xeb, 0x16, 0x3e, 0x9c, 0x4a, 0x3b, 0x7f, 0x79, 0xc0, 0xff, 0xd9, 0x66, + 0x94, 0xcc, 0x86, 0x14, 0x07, 0xfc, 0x29, 0x34, 0xe9, 0xac, 0x67, 0xe9, 0x5b, 0xbe, 0xc2, 0xfb, + 0x1b, 0x75, 0xa7, 0x56, 0xd6, 0x88, 0x92, 0x47, 0x9d, 0x9e, 0xc9, 0xcc, 0x3e, 0xf8, 0x15, 0x5f, + 0xcf, 0x23, 0x3e, 0xcf, 0xca, 0x55, 0xc8, 0x47, 0x1c, 0x9e, 0xc9, 0xac, 0xbe, 0x95, 0xb3, 0xca, + 0x85, 0xfd, 0x9d, 0x95, 0x4b, 0x90, 0x20, 0xce, 0xcb, 0x64, 0xf2, 0x6f, 0xe3, 0xe4, 0x14, 0x7d, + 0xe5, 0x3d, 0x90, 0x16, 0x4e, 0xcb, 0x64, 0xd2, 0xff, 0x97, 0x93, 0xfa, 0x24, 0x84, 0x5c, 0x38, + 0x2c, 0x93, 0xc9, 0xff, 0x3f, 0x41, 0x2e, 0x48, 0x08, 0xf9, 0xf4, 0x22, 0xfc, 0xd5, 0x6f, 0x4f, + 0xf0, 0x45, 0x47, 0xc8, 0xee, 0x0a, 0xa4, 0xb8, 0xa7, 0x32, 0x99, 0xfa, 0xc3, 0xbc, 0x72, 0x41, + 0xb1, 0xf2, 0x2c, 0xcc, 0x4e, 0x29, 0xf0, 0xef, 0xe4, 0xa4, 0x0c, 0x7f, 0xa5, 0x06, 0xd9, 0x90, + 0x77, 0x32, 0x99, 0xfc, 0xbb, 0x38, 0x79, 0x98, 0x8a, 0x34, 0x9d, 0x7b, 0x27, 0x93, 0x19, 0xfc, + 0xff, 0xa2, 0xe9, 0x9c, 0x82, 0x88, 0x4d, 0x38, 0x26, 0x93, 0xa9, 0x3f, 0x22, 0xa4, 0x2e, 0x48, + 0x56, 0x5e, 0x80, 0x8c, 0xbf, 0xd8, 0x4c, 0xa6, 0xff, 0x6e, 0x4e, 0x1f, 0xd0, 0x10, 0x09, 0x84, + 0x16, 0xbb, 0xc9, 0x2c, 0xbe, 0x47, 0x48, 0x20, 0x44, 0x45, 0xa6, 0xd1, 0xa0, 0x03, 0x33, 0x99, + 0xd3, 0xf7, 0x8a, 0x69, 0x34, 0xe0, 0xbf, 0x90, 0xd1, 0xa4, 0x36, 0x7f, 0x32, 0x8b, 0xef, 0x13, + 0xa3, 0x49, 0xf1, 0x49, 0x33, 0x06, 0x3d, 0x82, 0xc9, 0x3c, 0x7e, 0x40, 0x34, 0x63, 0xc0, 0x21, + 0x58, 0xd9, 0x02, 0x34, 0xec, 0x0d, 0x4c, 0xe6, 0xf7, 0x51, 0xce, 0x6f, 0x6e, 0xc8, 0x19, 0x58, + 0x79, 0x19, 0x4e, 0x8e, 0xf6, 0x04, 0x26, 0x73, 0xfd, 0xc1, 0xaf, 0x0c, 0xc4, 0x6e, 0x61, 0x47, + 0x60, 0xa5, 0x15, 0x2c, 0x29, 0x61, 0x2f, 0x60, 0x32, 0xdb, 0x1f, 0xfa, 0x4a, 0xd4, 0x70, 0x87, + 0x9d, 0x80, 0x95, 0x0a, 0x40, 0xb0, 0x00, 0x4f, 0xe6, 0xf5, 0x71, 0xce, 0x2b, 0x44, 0x44, 0xa6, + 0x06, 0x5f, 0x7f, 0x27, 0xd3, 0xdf, 0x15, 0x53, 0x83, 0x53, 0x90, 0xa9, 0x21, 0x96, 0xde, 0xc9, + 0xd4, 0x3f, 0x2c, 0xa6, 0x86, 0x20, 0x21, 0x9a, 0x1d, 0x5a, 0xdd, 0x26, 0x73, 0xf8, 0xa4, 0xd0, + 0xec, 0x10, 0xd5, 0xca, 0x06, 0xcc, 0x0d, 0x2d, 0x88, 0x93, 0x59, 0xfd, 0x28, 0x67, 0x25, 0x0f, + 0xae, 0x87, 0xe1, 0xc5, 0x8b, 0x2f, 0x86, 0x93, 0xb9, 0xfd, 0xd8, 0xc0, 0xe2, 0xc5, 0xd7, 0xc2, + 0x95, 0x2b, 0x90, 0xb6, 0xfa, 0x9d, 0x0e, 0x99, 0x3c, 0xe8, 0xe8, 0xd3, 0xbe, 0xa5, 0xff, 0xf4, + 0x55, 0x2e, 0x1d, 0x41, 0xb0, 0x72, 0x09, 0x66, 0x71, 0x77, 0x07, 0xb7, 0x27, 0x51, 0x7e, 0xe9, + 0xab, 0xc2, 0x60, 0x12, 0xec, 0x95, 0x17, 0x00, 0x58, 0x6a, 0x84, 0x6e, 0xc3, 0x4f, 0xa0, 0xfd, + 0xa3, 0xaf, 0xf2, 0xe3, 0x75, 0x01, 0x49, 0xc0, 0x80, 0x1d, 0xd6, 0x3b, 0x9a, 0xc1, 0x97, 0xa3, + 0x0c, 0xe8, 0x88, 0x3c, 0x0f, 0xa9, 0xd7, 0x5d, 0xdb, 0xf2, 0xf4, 0xbd, 0x49, 0xd4, 0x7f, 0xcc, + 0xa9, 0x05, 0x3e, 0x11, 0x58, 0xd7, 0xee, 0x61, 0x4f, 0xdf, 0x73, 0x27, 0xd1, 0xfe, 0x67, 0x4e, + 0xeb, 0x13, 0x10, 0x62, 0x43, 0x77, 0xbd, 0x69, 0xfa, 0xfd, 0x5f, 0x04, 0xb1, 0x20, 0x20, 0x8d, + 0x26, 0xbf, 0x6f, 0xe1, 0xc3, 0x49, 0xb4, 0x7f, 0x22, 0x1a, 0xcd, 0xf1, 0x57, 0xde, 0x03, 0x19, + 0xf2, 0x93, 0x9d, 0x99, 0x9d, 0x40, 0xfc, 0xa7, 0x9c, 0x38, 0xa0, 0x20, 0x35, 0xbb, 0x5e, 0xdb, + 0x33, 0x27, 0x0b, 0xfb, 0xcf, 0xf8, 0x48, 0x0b, 0xfc, 0x95, 0x0a, 0x64, 0x5d, 0xaf, 0xdd, 0xee, + 0x73, 0xff, 0x74, 0x02, 0xf9, 0x9f, 0x7f, 0xd5, 0x4f, 0x59, 0xf8, 0x34, 0x64, 0xb4, 0xdf, 0xb8, + 0xe5, 0x39, 0x36, 0xdd, 0x6f, 0x99, 0xc4, 0xe1, 0x2b, 0x9c, 0x43, 0x88, 0x64, 0xa5, 0x06, 0x39, + 0xd2, 0x17, 0x71, 0x17, 0x61, 0x12, 0x8b, 0xbf, 0xe0, 0x02, 0x88, 0x10, 0x55, 0xbf, 0xf9, 0xd7, + 0x3f, 0x7f, 0x56, 0xfa, 0xdc, 0xe7, 0xcf, 0x4a, 0xbf, 0xf7, 0xf9, 0xb3, 0xd2, 0x47, 0xbe, 0x70, + 0x76, 0xe6, 0x73, 0x5f, 0x38, 0x3b, 0xf3, 0xdb, 0x5f, 0x38, 0x3b, 0x33, 0x3a, 0x4b, 0x0c, 0xd7, + 0xec, 0x6b, 0x36, 0xcb, 0x0f, 0xbf, 0xf6, 0xd0, 0x9e, 0xe9, 0xed, 0xf7, 0x77, 0x96, 0x0d, 0xbb, + 0x7b, 0xc1, 0xb0, 0xdd, 0xae, 0xed, 0x5e, 0x88, 0xe6, 0x75, 0xe9, 0x2f, 0xf8, 0x1f, 0x12, 0x89, + 0x99, 0xa3, 0xe9, 0x5c, 0xdd, 0x3a, 0x1c, 0x77, 0x99, 0xf2, 0x32, 0xc4, 0x2b, 0xd6, 0x21, 0x3a, + 0xcd, 0x0c, 0x9c, 0xd6, 0xef, 0x75, 0xf8, 0xc1, 0xcd, 0x14, 0xf9, 0xde, 0xee, 0x75, 0xd0, 0x42, + 0x70, 0xba, 0x5a, 0x3a, 0x97, 0xe3, 0x47, 0xa6, 0xab, 0xdf, 0x25, 0x1d, 0xaf, 0x27, 0xe9, 0x8a, + 0x75, 0x48, 0x3b, 0xb2, 0x25, 0xbd, 0xf6, 0xf8, 0xc4, 0x3c, 0xf7, 0x2d, 0xcb, 0x7e, 0xc3, 0x22, + 0xcd, 0x76, 0x76, 0x44, 0x8e, 0xfb, 0xec, 0x60, 0x8e, 0xfb, 0x65, 0xdc, 0xe9, 0xbc, 0x48, 0xf0, + 0x5a, 0x84, 0x64, 0x27, 0xc9, 0xee, 0x08, 0xc0, 0xf7, 0xc6, 0xe0, 0xec, 0x50, 0x3a, 0x9b, 0x2b, + 0xc1, 0x38, 0x21, 0xac, 0x40, 0x7a, 0x55, 0xe8, 0x56, 0x09, 0x52, 0x2e, 0x36, 0x6c, 0xab, 0xed, + 0x52, 0x41, 0xc4, 0x55, 0xf1, 0x49, 0x04, 0x61, 0xe9, 0x96, 0xed, 0xf2, 0xa3, 0xcf, 0xec, 0xa3, + 0xfa, 0xb1, 0x63, 0x0a, 0x22, 0x2f, 0x6a, 0x12, 0xd2, 0x78, 0x6a, 0x4a, 0x69, 0x88, 0x4e, 0x44, + 0x32, 0xff, 0xd3, 0x4a, 0xe5, 0x07, 0x62, 0xb0, 0x38, 0x28, 0x15, 0x32, 0xb3, 0x5c, 0x4f, 0xef, + 0x3a, 0xe3, 0xc4, 0x72, 0x05, 0x32, 0x2d, 0x81, 0x73, 0x6c, 0xb9, 0xdc, 0x3d, 0xa6, 0x5c, 0x0a, + 0x7e, 0x55, 0x42, 0x30, 0x17, 0xa7, 0x14, 0x8c, 0xdf, 0x8f, 0x7b, 0x92, 0xcc, 0x7f, 0x4f, 0xc2, + 0x69, 0x36, 0x9d, 0x34, 0x36, 0x95, 0xd8, 0x07, 0x97, 0x49, 0x2e, 0x5c, 0x34, 0x79, 0x9f, 0x44, + 0x79, 0x11, 0xe6, 0x1b, 0xc4, 0x5a, 0x90, 0x28, 0x28, 0xd8, 0xe1, 0x19, 0x79, 0x3a, 0x7c, 0x29, + 0xe2, 0xf0, 0xf3, 0xfd, 0xad, 0x30, 0x48, 0xf9, 0x16, 0x09, 0xe4, 0xa6, 0xa1, 0x77, 0xf4, 0xde, + 0xd7, 0xca, 0x0a, 0x3d, 0x0b, 0xc0, 0x8e, 0x7b, 0xf8, 0x17, 0x37, 0x0b, 0x17, 0x4b, 0xcb, 0xe1, + 0xce, 0x2d, 0xb3, 0x9a, 0xe8, 0x11, 0xaa, 0x0c, 0xc5, 0x25, 0x3f, 0xcf, 0xbf, 0x02, 0x10, 0x14, + 0xa0, 0x33, 0x70, 0xaa, 0x59, 0xab, 0xac, 0x55, 0x54, 0x71, 0x48, 0xa8, 0xb9, 0x55, 0xaf, 0xb1, + 0x6b, 0x56, 0x33, 0xe8, 0x24, 0xa0, 0x70, 0xa1, 0x7f, 0xa8, 0xe9, 0x04, 0xcc, 0x85, 0xe1, 0xec, + 0xce, 0x4b, 0x8c, 0x78, 0x8a, 0x66, 0xd7, 0xe9, 0x60, 0xba, 0xf3, 0xa8, 0x99, 0x42, 0x6a, 0x93, + 0x9d, 0x90, 0xdf, 0xf8, 0x77, 0xec, 0x1e, 0xc4, 0x7c, 0x40, 0xee, 0xcb, 0x7c, 0x65, 0x0d, 0xe6, + 0x74, 0xc3, 0xc0, 0x4e, 0x84, 0xe5, 0x04, 0x53, 0x4d, 0x18, 0xd2, 0xbd, 0x54, 0x4e, 0x19, 0x70, + 0x7b, 0x16, 0x92, 0x2e, 0xed, 0xfd, 0x24, 0x16, 0xbf, 0xc9, 0x59, 0x70, 0xf4, 0x15, 0x0b, 0xe6, + 0xd8, 0xbd, 0x3e, 0x1c, 0x6a, 0xc6, 0xd1, 0x79, 0x86, 0x7f, 0xfc, 0x99, 0x27, 0xe9, 0xce, 0xea, + 0x03, 0xd1, 0x61, 0x19, 0xa1, 0x4e, 0xaa, 0xcc, 0x79, 0x07, 0x0d, 0xc5, 0x50, 0x10, 0xf5, 0xf1, + 0x06, 0x1f, 0x5d, 0xd9, 0xaf, 0xf0, 0xca, 0xce, 0x8e, 0xd2, 0x81, 0x50, 0x4d, 0x79, 0xce, 0x95, + 0x15, 0x54, 0xeb, 0xe3, 0xe6, 0xf4, 0x6b, 0x8f, 0x0d, 0xaf, 0x4e, 0xec, 0xbf, 0x27, 0x28, 0xe7, + 0x2b, 0xe1, 0x6a, 0xfc, 0xb9, 0xf7, 0xb1, 0x04, 0xcc, 0xe9, 0x5d, 0xd3, 0xb2, 0x2f, 0xd0, 0x7f, + 0xf9, 0x9c, 0x9b, 0xa5, 0x1f, 0x53, 0x6c, 0x4a, 0x5e, 0x66, 0x53, 0x61, 0xb2, 0xc6, 0xfc, 0xe9, + 0x77, 0xfc, 0xc4, 0x6c, 0x30, 0x5d, 0x56, 0xd6, 0x41, 0x16, 0x47, 0x82, 0xb1, 0x65, 0xd8, 0xed, + 0xa9, 0xb2, 0x14, 0x7f, 0x26, 0x78, 0x88, 0xfc, 0x56, 0x9d, 0x93, 0xae, 0xbc, 0x1b, 0xd2, 0x3e, + 0x9b, 0x49, 0x9e, 0x89, 0x60, 0xe2, 0x53, 0x10, 0xbf, 0x84, 0xcd, 0xcc, 0x69, 0xbc, 0xd0, 0xaf, + 0x08, 0x7a, 0x36, 0x43, 0x37, 0x48, 0x6f, 0xae, 0x41, 0xa1, 0x6d, 0x5b, 0x9e, 0x66, 0x77, 0x4d, + 0x0f, 0x77, 0x1d, 0x6f, 0xa2, 0x5f, 0xf7, 0x17, 0x8c, 0x49, 0x5a, 0xcd, 0x13, 0xba, 0x4d, 0x41, + 0x46, 0x5a, 0xc2, 0x6e, 0xfd, 0x4d, 0xd3, 0x92, 0xff, 0xea, 0xb7, 0x84, 0xd2, 0x90, 0x96, 0xdc, + 0x93, 0x76, 0xb8, 0xed, 0x5b, 0xdc, 0x98, 0x7b, 0x07, 0x4c, 0x0b, 0x7c, 0xed, 0xf8, 0x54, 0x1c, + 0xce, 0x72, 0xe4, 0x1d, 0xdd, 0xc5, 0x17, 0x6e, 0x3f, 0xb5, 0x83, 0x3d, 0xfd, 0xa9, 0x0b, 0x86, + 0x6d, 0x8a, 0x95, 0x7c, 0x9e, 0x1b, 0x6b, 0x52, 0xbe, 0xcc, 0xcb, 0xcb, 0x23, 0xb7, 0xbb, 0xcb, + 0xe3, 0x8d, 0x7c, 0x79, 0x58, 0x07, 0x95, 0x0e, 0x24, 0x6a, 0xb6, 0x69, 0x91, 0xb5, 0xad, 0x8d, + 0x2d, 0xbb, 0xcb, 0xcd, 0x2d, 0xfb, 0x40, 0xd7, 0x21, 0xa9, 0x77, 0xed, 0xbe, 0xe5, 0x31, 0x53, + 0x5b, 0x7d, 0xf2, 0xd7, 0xdf, 0x5a, 0x9c, 0xf9, 0x0f, 0x6f, 0x2d, 0x9e, 0x60, 0x6c, 0xdd, 0xf6, + 0xad, 0x65, 0xd3, 0xbe, 0xd0, 0xd5, 0xbd, 0x7d, 0x32, 0x7d, 0x7f, 0xeb, 0xb3, 0x4f, 0x00, 0xaf, + 0xaf, 0x61, 0x79, 0x9f, 0xfe, 0xc3, 0x9f, 0x39, 0x2f, 0xa9, 0x9c, 0x7e, 0x25, 0xf1, 0xc5, 0x4f, + 0x2c, 0x4a, 0x8a, 0x03, 0xa9, 0x55, 0x6c, 0x1c, 0x51, 0x61, 0x63, 0xa0, 0xc2, 0xa7, 0x78, 0x85, + 0x67, 0x86, 0x2b, 0x64, 0x07, 0xf6, 0x56, 0xb1, 0x11, 0xaa, 0x76, 0x15, 0x1b, 0xd1, 0x1a, 0xab, + 0xab, 0xbf, 0xfd, 0xfb, 0x67, 0x67, 0x3e, 0xf0, 0xf9, 0xb3, 0x33, 0x63, 0x87, 0x4c, 0x99, 0x3c, + 0x64, 0xfe, 0x48, 0xfd, 0x44, 0x02, 0xee, 0xa7, 0xf7, 0x4b, 0x7b, 0x5d, 0xd3, 0xf2, 0x2e, 0x18, + 0xbd, 0x43, 0xc7, 0xb3, 0xc9, 0xc4, 0xb5, 0x77, 0xf9, 0x40, 0xcd, 0x05, 0xc5, 0xcb, 0xac, 0x78, + 0xf4, 0x30, 0x29, 0xbb, 0x30, 0xbb, 0x45, 0xe8, 0x88, 0x20, 0x3c, 0xdb, 0xd3, 0x3b, 0xdc, 0xdb, + 0x60, 0x1f, 0x04, 0xca, 0xee, 0xa4, 0xc6, 0x18, 0xd4, 0x14, 0xd7, 0x51, 0x3b, 0x58, 0xdf, 0x65, + 0x57, 0x7b, 0xe2, 0xd4, 0x4d, 0x4d, 0x13, 0x00, 0xbd, 0xc5, 0xb3, 0x00, 0xb3, 0x7a, 0x9f, 0x1d, + 0x98, 0x89, 0x13, 0xff, 0x95, 0x7e, 0x28, 0x2f, 0x42, 0x8a, 0xef, 0x9b, 0x23, 0x19, 0xe2, 0xb7, + 0xf0, 0x21, 0xad, 0x27, 0xa7, 0x92, 0x9f, 0x68, 0x19, 0x66, 0x69, 0xe3, 0xf9, 0x9d, 0xc5, 0xd2, + 0xf2, 0x50, 0xeb, 0x97, 0x69, 0x23, 0x55, 0x86, 0xa6, 0xdc, 0x80, 0xf4, 0xaa, 0x4d, 0xb4, 0x27, + 0xca, 0x2d, 0xc3, 0xb8, 0xd1, 0x36, 0x3b, 0x7d, 0x3e, 0x76, 0x2a, 0xfb, 0x40, 0x27, 0x21, 0xc9, + 0xae, 0x7a, 0xf1, 0x43, 0x3f, 0xfc, 0x4b, 0xa9, 0x41, 0x8a, 0xf2, 0xde, 0x74, 0xfc, 0xeb, 0xd5, + 0x52, 0xe8, 0x7a, 0x35, 0x67, 0x1f, 0x0b, 0x1a, 0x8b, 0x20, 0xd1, 0xd6, 0x3d, 0x9d, 0xf7, 0x9b, + 0xfe, 0x56, 0xde, 0x0b, 0x69, 0xce, 0xc4, 0x45, 0x17, 0x21, 0x6e, 0x3b, 0x2e, 0x3f, 0xb6, 0x53, + 0x1e, 0xd7, 0x95, 0x4d, 0xa7, 0x9a, 0x20, 0x4a, 0xa5, 0x12, 0xe4, 0xea, 0xc6, 0x58, 0xb5, 0x78, + 0x26, 0xa2, 0x16, 0x5d, 0xec, 0xed, 0xec, 0x7a, 0xc1, 0x0f, 0x36, 0x9c, 0x43, 0xaa, 0xe0, 0x2b, + 0xca, 0xdd, 0x18, 0x9c, 0x0d, 0x95, 0xde, 0xc6, 0x3d, 0xd7, 0xb4, 0x2d, 0xa6, 0x4d, 0x5c, 0x53, + 0x50, 0xa8, 0x81, 0xbc, 0x7c, 0x8c, 0xaa, 0xbc, 0x07, 0xe2, 0x15, 0xc7, 0x41, 0x65, 0x48, 0xd3, + 0x6f, 0xc3, 0x66, 0xba, 0x92, 0x50, 0xfd, 0x6f, 0x52, 0xe6, 0xda, 0xbb, 0xde, 0x1b, 0x7a, 0xcf, + 0xbf, 0x09, 0x2d, 0xbe, 0x95, 0xe7, 0x21, 0x53, 0xb3, 0x2d, 0x17, 0x5b, 0x6e, 0x9f, 0xfa, 0xb0, + 0x3b, 0x1d, 0xdb, 0xb8, 0xc5, 0x39, 0xb0, 0x0f, 0x22, 0x6c, 0xdd, 0x71, 0x28, 0x65, 0x42, 0x25, + 0x3f, 0xf9, 0xec, 0xd9, 0x1c, 0x2b, 0x9e, 0x4b, 0xc7, 0x13, 0x0f, 0xef, 0x60, 0xe0, 0x8c, 0x4a, + 0x70, 0xdf, 0xf0, 0x44, 0xba, 0x85, 0x0f, 0xdd, 0xe3, 0xce, 0xa3, 0x57, 0x20, 0xb3, 0x45, 0x9f, + 0x95, 0x79, 0x11, 0x1f, 0xa2, 0x32, 0xa4, 0x70, 0xfb, 0xe2, 0xa5, 0x4b, 0x4f, 0x3d, 0xcf, 0xb4, + 0xfc, 0xfa, 0x8c, 0x2a, 0x00, 0xe8, 0x2c, 0x64, 0x5c, 0x6c, 0x38, 0x17, 0x2f, 0x5d, 0xbe, 0xf5, + 0x14, 0x53, 0xab, 0xeb, 0x33, 0x6a, 0x00, 0x5a, 0x49, 0x93, 0x1e, 0x7f, 0xf1, 0x93, 0x8b, 0x52, + 0x75, 0x16, 0xe2, 0x6e, 0xbf, 0xfb, 0x8e, 0xe9, 0xc6, 0x9f, 0x24, 0x61, 0x29, 0x54, 0xca, 0x16, + 0x85, 0xdb, 0x7a, 0xc7, 0x6c, 0xeb, 0xc1, 0x63, 0x40, 0x72, 0xa8, 0xff, 0x14, 0x63, 0x8c, 0xb5, + 0x3f, 0x52, 0x8a, 0xca, 0xcf, 0x49, 0x90, 0xbb, 0x29, 0x38, 0x37, 0xb1, 0x87, 0xae, 0x00, 0xf8, + 0x35, 0x89, 0xa9, 0x72, 0x66, 0x79, 0xb0, 0xae, 0x65, 0x9f, 0x46, 0x0d, 0xa1, 0xa3, 0x67, 0xa9, + 0x02, 0x3a, 0xb6, 0xcb, 0x6f, 0xc5, 0x4e, 0x20, 0xf5, 0x91, 0xd1, 0xe3, 0x80, 0xa8, 0x55, 0xd3, + 0x6e, 0xdb, 0x9e, 0x69, 0xed, 0x69, 0x8e, 0xfd, 0x06, 0x7f, 0x6b, 0x20, 0xae, 0xca, 0xb4, 0xe4, + 0x26, 0x2d, 0xd8, 0x22, 0x70, 0xd2, 0xe8, 0x8c, 0xcf, 0x85, 0x84, 0x63, 0x7a, 0xbb, 0xdd, 0xc3, + 0xae, 0xcb, 0x0d, 0x97, 0xf8, 0x44, 0x57, 0x20, 0xe5, 0xf4, 0x77, 0x34, 0x61, 0x25, 0xb2, 0x17, + 0xef, 0x1b, 0x35, 0xe7, 0x85, 0x6e, 0xf0, 0x59, 0x9f, 0x74, 0xfa, 0x3b, 0x44, 0x53, 0x1e, 0x80, + 0xdc, 0x88, 0xc6, 0x64, 0x6f, 0x07, 0xed, 0xa0, 0x2f, 0x19, 0xf1, 0x1e, 0x68, 0x4e, 0xcf, 0xb4, + 0x7b, 0xa6, 0x77, 0x48, 0x8f, 0xdb, 0xc5, 0x55, 0x59, 0x14, 0x6c, 0x71, 0xb8, 0x72, 0x0b, 0x8a, + 0x4d, 0xea, 0xa6, 0x07, 0x2d, 0xbf, 0x14, 0xb4, 0x4f, 0x9a, 0xdc, 0xbe, 0xb1, 0x2d, 0x8b, 0x0d, + 0xb5, 0xec, 0xfc, 0xbf, 0x97, 0x20, 0x5b, 0x25, 0x13, 0xb7, 0xb1, 0x7a, 0xb5, 0xa3, 0xef, 0xa1, + 0xa7, 0xe0, 0x44, 0x75, 0x6d, 0xb3, 0xf6, 0xa2, 0xd6, 0x58, 0xd5, 0xae, 0xae, 0x55, 0xae, 0x05, + 0xe7, 0x7b, 0xcb, 0x27, 0xef, 0xdc, 0x5d, 0x42, 0x21, 0xdc, 0x6d, 0x8b, 0xc6, 0x92, 0xe8, 0x02, + 0x2c, 0x44, 0x49, 0x2a, 0xd5, 0x66, 0x7d, 0xa3, 0x25, 0x4b, 0xe5, 0x13, 0x77, 0xee, 0x2e, 0xcd, + 0x85, 0x28, 0x2a, 0x3b, 0x2e, 0xb6, 0xbc, 0x61, 0x82, 0xda, 0xe6, 0xfa, 0x7a, 0xa3, 0x25, 0xc7, + 0x86, 0x08, 0x6a, 0x76, 0xb7, 0x6b, 0x7a, 0xe8, 0x51, 0x98, 0x8b, 0x12, 0x6c, 0x34, 0xd6, 0xe4, + 0x78, 0x19, 0xdd, 0xb9, 0xbb, 0x54, 0x08, 0x61, 0x6f, 0x98, 0x9d, 0x72, 0xfa, 0x43, 0x3f, 0x76, + 0x76, 0xe6, 0xd3, 0x7f, 0xe7, 0xac, 0x54, 0x5d, 0x1f, 0x3b, 0xe7, 0x9e, 0x3e, 0xde, 0x9c, 0x8b, + 0xae, 0xdb, 0x5f, 0xbd, 0x2f, 0x62, 0x6e, 0xb8, 0x1f, 0x16, 0x32, 0xc6, 0xd3, 0x4e, 0xb7, 0x49, + 0xb9, 0x85, 0xf2, 0xd1, 0xee, 0x41, 0x79, 0xc2, 0xa2, 0x50, 0x9e, 0x68, 0x18, 0x94, 0xe7, 0x21, + 0xbf, 0xa5, 0xf7, 0xbc, 0x26, 0xf6, 0xae, 0x63, 0xbd, 0x8d, 0x7b, 0x51, 0xff, 0x21, 0x2f, 0xfc, + 0x07, 0x04, 0x09, 0xea, 0x24, 0xb0, 0xf5, 0x93, 0xfe, 0x56, 0xf6, 0x21, 0x41, 0x4f, 0x12, 0xfb, + 0xbe, 0x05, 0xa7, 0x60, 0xbe, 0x05, 0x59, 0x19, 0x0e, 0x3d, 0xec, 0x8a, 0xf4, 0x17, 0xfd, 0x40, + 0xcf, 0x08, 0x0f, 0x21, 0x7e, 0xb4, 0x87, 0xc0, 0xa7, 0x17, 0xf7, 0x13, 0x3a, 0x90, 0xe2, 0x43, + 0xec, 0x37, 0x44, 0x0a, 0x1a, 0x82, 0xd6, 0xa1, 0xe8, 0xe8, 0x3d, 0x8f, 0xde, 0x53, 0xdc, 0xa7, + 0xbd, 0xe0, 0x33, 0x78, 0x71, 0xd8, 0x9e, 0x44, 0x3a, 0xcb, 0x6b, 0xc9, 0x3b, 0x61, 0xa0, 0xf2, + 0x1f, 0x13, 0x90, 0xe4, 0xc2, 0x78, 0x0f, 0xa4, 0xb8, 0x58, 0xf9, 0x9c, 0xbb, 0x7f, 0x79, 0x78, + 0x99, 0x5d, 0xf6, 0x97, 0x43, 0xce, 0x4f, 0xd0, 0xa0, 0x87, 0x21, 0x6d, 0xec, 0xeb, 0xa6, 0xa5, + 0x99, 0x6d, 0xee, 0x80, 0x66, 0x3f, 0xff, 0xd6, 0x62, 0xaa, 0x46, 0x60, 0x8d, 0x55, 0x35, 0x45, + 0x0b, 0x1b, 0x6d, 0xe2, 0xd3, 0xec, 0x63, 0x73, 0x6f, 0xdf, 0xe3, 0x76, 0x83, 0x7f, 0xa1, 0xe7, + 0x20, 0x41, 0x14, 0x82, 0xdf, 0x62, 0x2f, 0x0f, 0x45, 0x16, 0x7e, 0xea, 0xa7, 0x9a, 0x26, 0x15, + 0x7f, 0xe4, 0x77, 0x17, 0x25, 0x95, 0x52, 0xa0, 0x1a, 0xe4, 0x3b, 0xba, 0xeb, 0x69, 0x74, 0x3d, + 0x26, 0xd5, 0xcf, 0x52, 0x16, 0xa7, 0x87, 0x05, 0xc2, 0x05, 0xcb, 0x9b, 0x9e, 0x25, 0x54, 0x0c, + 0xd4, 0x46, 0xe7, 0x40, 0xa6, 0x4c, 0x0c, 0x3a, 0x03, 0x99, 0x97, 0x98, 0xa4, 0x72, 0x2f, 0x10, + 0x38, 0x9b, 0x98, 0xd4, 0x57, 0x3c, 0x03, 0x19, 0x7a, 0x6f, 0x96, 0xa2, 0xb0, 0xe3, 0xeb, 0x69, + 0x02, 0xa0, 0x85, 0x8f, 0x40, 0x31, 0xb0, 0xfa, 0x0c, 0x25, 0xcd, 0xb8, 0x04, 0x60, 0x8a, 0xf8, + 0x24, 0x2c, 0x58, 0xf8, 0x80, 0x1e, 0xa8, 0x8f, 0x60, 0x67, 0x28, 0x36, 0x22, 0x65, 0x37, 0xa3, + 0x14, 0x0f, 0x41, 0xc1, 0x10, 0xc2, 0x67, 0xb8, 0x40, 0x71, 0xf3, 0x3e, 0x94, 0xa2, 0x9d, 0x86, + 0xb4, 0xee, 0x38, 0x0c, 0x21, 0xcb, 0xad, 0xbe, 0xe3, 0xd0, 0xa2, 0xf3, 0x30, 0x47, 0xfb, 0xd8, + 0xc3, 0x6e, 0xbf, 0xe3, 0x71, 0x26, 0x39, 0x8a, 0x53, 0x24, 0x05, 0x2a, 0x83, 0x53, 0xdc, 0x07, + 0x21, 0x8f, 0x6f, 0x9b, 0x6d, 0x6c, 0x19, 0x98, 0xe1, 0xe5, 0x29, 0x5e, 0x4e, 0x00, 0x29, 0xd2, + 0xa3, 0xe0, 0x5b, 0x73, 0x4d, 0xac, 0x34, 0x05, 0xc6, 0x4f, 0xc0, 0x2b, 0x0c, 0xac, 0x94, 0x20, + 0xb1, 0xaa, 0x7b, 0x3a, 0x71, 0x97, 0xbc, 0x03, 0xb6, 0x7c, 0xe6, 0x54, 0xf2, 0x53, 0xf9, 0x85, + 0x38, 0x24, 0x6e, 0xda, 0x1e, 0x46, 0x4f, 0x87, 0x5c, 0xd9, 0xc2, 0x28, 0x7d, 0x6e, 0x9a, 0x7b, + 0x16, 0x6e, 0xaf, 0xbb, 0x7b, 0xa1, 0x47, 0x6e, 0x02, 0x75, 0x8a, 0x45, 0xd4, 0x69, 0x01, 0x66, + 0x7b, 0x76, 0xdf, 0x6a, 0x8b, 0x83, 0xdf, 0xf4, 0x03, 0xd5, 0x21, 0xed, 0x6b, 0x49, 0x62, 0x92, + 0x96, 0x14, 0x89, 0x96, 0x10, 0x1d, 0xe6, 0x00, 0x35, 0xb5, 0xc3, 0x95, 0xa5, 0x0a, 0x19, 0xdf, + 0x78, 0x71, 0x6d, 0x9b, 0x4e, 0x61, 0x03, 0x32, 0xb2, 0x44, 0xfa, 0x63, 0xef, 0x0b, 0x8f, 0x69, + 0x9c, 0xec, 0x17, 0x70, 0xe9, 0x45, 0xd4, 0x8a, 0x3f, 0xb8, 0x93, 0xa2, 0xfd, 0x0a, 0xd4, 0x8a, + 0x3d, 0xba, 0x73, 0x1f, 0x64, 0x5c, 0x73, 0xcf, 0xd2, 0xbd, 0x7e, 0x0f, 0x73, 0xcd, 0x0b, 0x00, + 0xa4, 0x34, 0xb8, 0x04, 0xc1, 0x34, 0x2d, 0xf4, 0x72, 0xdb, 0x05, 0x98, 0x0f, 0xde, 0x4c, 0x0b, + 0xb8, 0x30, 0x2d, 0x43, 0x7e, 0x51, 0x53, 0x94, 0x28, 0xbf, 0x2a, 0x41, 0x92, 0xaf, 0x58, 0xc1, + 0x30, 0x48, 0xa3, 0x87, 0x21, 0x36, 0x6e, 0x18, 0xe2, 0xf7, 0x3e, 0x0c, 0x15, 0x00, 0xbf, 0x99, + 0x2e, 0x7f, 0x56, 0x65, 0x84, 0x5b, 0xc5, 0x9a, 0xd8, 0x34, 0xf7, 0xf8, 0xbc, 0x0f, 0x11, 0x29, + 0xbf, 0x23, 0x11, 0x0f, 0x9f, 0x97, 0xa3, 0x0a, 0xe4, 0x45, 0xbb, 0xb4, 0xdd, 0x8e, 0xbe, 0xc7, + 0x55, 0xf1, 0xfe, 0xb1, 0x8d, 0x23, 0xab, 0xb0, 0x9a, 0xe5, 0xed, 0xa1, 0xfe, 0xc4, 0xc8, 0x61, + 0x8d, 0x8d, 0x19, 0xd6, 0x88, 0x1e, 0xc5, 0xef, 0x4d, 0x8f, 0x22, 0x23, 0x9e, 0x18, 0x18, 0x71, + 0xe5, 0xf7, 0x25, 0xfe, 0x62, 0x5b, 0x9b, 0xdd, 0xe0, 0xf8, 0xeb, 0x1a, 0xaa, 0xd7, 0xb8, 0x6e, + 0xb5, 0x71, 0x5b, 0x1b, 0x1a, 0xb3, 0x07, 0x87, 0x39, 0x46, 0xdb, 0x1c, 0x8c, 0x1d, 0x12, 0x5c, + 0x9a, 0xc1, 0x18, 0x7e, 0x36, 0x06, 0x73, 0x43, 0xf8, 0x7f, 0xfb, 0xc6, 0x32, 0x3a, 0x7b, 0x67, + 0xa7, 0x9c, 0xbd, 0xc9, 0xb1, 0xb3, 0xf7, 0x33, 0x31, 0x9a, 0x00, 0x70, 0x6c, 0x57, 0xef, 0x7c, + 0x3d, 0x6c, 0xef, 0x19, 0xc8, 0x38, 0x76, 0x47, 0x63, 0x25, 0xec, 0xea, 0x4d, 0xda, 0xb1, 0x3b, + 0xea, 0x90, 0x9a, 0xcd, 0xbe, 0x4d, 0x86, 0x39, 0xf9, 0x36, 0x0c, 0x42, 0x6a, 0x70, 0x42, 0xf5, + 0x20, 0xc7, 0x44, 0xc1, 0xbd, 0xa6, 0x27, 0x89, 0x0c, 0xa8, 0x1b, 0x26, 0x0d, 0x7b, 0x79, 0xac, + 0xd9, 0x0c, 0x53, 0xe5, 0x78, 0x84, 0x82, 0x39, 0x19, 0xa3, 0x32, 0x47, 0x61, 0x8b, 0xa5, 0x72, + 0x3c, 0xe5, 0xfb, 0x25, 0x80, 0x35, 0x22, 0x59, 0xda, 0x5f, 0xe2, 0xef, 0xb8, 0xb4, 0x09, 0x5a, + 0xa4, 0xe6, 0xb3, 0xe3, 0x06, 0x8d, 0xd7, 0x9f, 0x73, 0xc3, 0xed, 0xae, 0x41, 0x3e, 0xd0, 0x6d, + 0x17, 0x8b, 0xc6, 0x9c, 0x3d, 0x22, 0x2a, 0x6d, 0x62, 0x4f, 0xcd, 0xdd, 0x0e, 0x7d, 0x29, 0xff, + 0x54, 0x82, 0x0c, 0x6d, 0xd3, 0x3a, 0xf6, 0xf4, 0xc8, 0x18, 0x4a, 0xf7, 0x3e, 0x86, 0xf7, 0x03, + 0x30, 0x36, 0xae, 0xf9, 0x26, 0xe6, 0x9a, 0x95, 0xa1, 0x90, 0xa6, 0xf9, 0x26, 0x46, 0x97, 0x7d, + 0x81, 0xc7, 0x8f, 0x16, 0xb8, 0x88, 0x5a, 0xb9, 0xd8, 0x4f, 0x41, 0x8a, 0xbe, 0x29, 0x7a, 0xe0, + 0xf2, 0x40, 0x34, 0x69, 0xf5, 0xbb, 0xad, 0x03, 0x57, 0x79, 0x1d, 0x52, 0xad, 0x03, 0x96, 0x4f, + 0x3c, 0x03, 0x99, 0x9e, 0x6d, 0x73, 0xef, 0x8f, 0x79, 0xdd, 0x69, 0x02, 0xa0, 0xce, 0x8e, 0xc8, + 0xa1, 0xc5, 0x82, 0x1c, 0x5a, 0x90, 0x04, 0x8c, 0x4f, 0x95, 0x04, 0x24, 0xd1, 0x67, 0x3e, 0x32, + 0x93, 0xd0, 0xe3, 0x70, 0xaa, 0xd9, 0xb8, 0xb6, 0x51, 0x5f, 0xd5, 0xd6, 0x9b, 0xd7, 0x06, 0xae, + 0xd5, 0x97, 0x8b, 0x77, 0xee, 0x2e, 0x65, 0x79, 0xd8, 0x39, 0x0e, 0x7b, 0x4b, 0xad, 0xdf, 0xdc, + 0x6c, 0xd5, 0x65, 0x89, 0x61, 0x6f, 0xf5, 0xf0, 0x6d, 0xdb, 0x63, 0x8f, 0xf6, 0x3e, 0x09, 0xa7, + 0x47, 0x60, 0xfb, 0xc1, 0xe7, 0xdc, 0x9d, 0xbb, 0x4b, 0xf9, 0xad, 0x1e, 0x66, 0x5a, 0x46, 0x29, + 0x96, 0xa1, 0x34, 0x4c, 0xb1, 0xb9, 0xb5, 0xd9, 0xac, 0xac, 0xc9, 0x4b, 0x65, 0xf9, 0xce, 0xdd, + 0xa5, 0x9c, 0x30, 0x19, 0x04, 0xff, 0x9d, 0x8f, 0x3e, 0x3f, 0x9c, 0x8e, 0x64, 0x8d, 0x59, 0x5c, + 0xe7, 0xe8, 0x3d, 0xbd, 0x7b, 0xdc, 0xf0, 0x73, 0xc2, 0x86, 0xbf, 0xf2, 0x73, 0x31, 0x28, 0xfa, + 0xc1, 0xcd, 0x16, 0xad, 0x01, 0x3d, 0x1d, 0xce, 0xf8, 0x65, 0xc7, 0xae, 0x1d, 0x0c, 0x5b, 0x24, + 0x04, 0xdf, 0x0d, 0x69, 0xe1, 0x24, 0xf3, 0x49, 0xb5, 0x34, 0x62, 0x7d, 0xe3, 0x18, 0x9c, 0xd4, + 0xa7, 0x40, 0x2f, 0x40, 0xc6, 0x9f, 0x62, 0xfe, 0x33, 0x69, 0xe3, 0xe7, 0x24, 0xa7, 0x0f, 0x68, + 0xd0, 0xf3, 0x41, 0x18, 0x97, 0x18, 0x17, 0x18, 0xde, 0x64, 0x08, 0x9c, 0xd8, 0x0f, 0xe1, 0x9e, + 0x84, 0x84, 0xbe, 0x63, 0x98, 0xdc, 0x00, 0xdf, 0x37, 0x4c, 0x57, 0xa9, 0xd6, 0x1a, 0x9c, 0x88, + 0x62, 0x2a, 0x0d, 0x9e, 0x4c, 0xe1, 0xf2, 0xa2, 0x8f, 0xd2, 0x1c, 0x68, 0x2c, 0x16, 0x66, 0xde, + 0x45, 0xba, 0xab, 0x1f, 0x54, 0x69, 0x38, 0x7c, 0x0a, 0x52, 0xa4, 0x70, 0x8f, 0x3f, 0x54, 0x10, + 0x57, 0x93, 0x5d, 0xfd, 0xe0, 0x9a, 0xee, 0xde, 0x48, 0xa4, 0xe3, 0x72, 0x42, 0xf9, 0x49, 0xe2, + 0xa9, 0x44, 0xa4, 0x82, 0x1e, 0x03, 0x44, 0x28, 0xf4, 0x3d, 0xac, 0x91, 0xa9, 0x4b, 0xc5, 0x2b, + 0xf8, 0x16, 0xbb, 0xfa, 0x41, 0x65, 0x0f, 0x6f, 0xf4, 0xbb, 0xb4, 0x01, 0x2e, 0x5a, 0x07, 0x59, + 0x20, 0x8b, 0x91, 0xe5, 0xe2, 0x3f, 0x3d, 0xfc, 0x30, 0x2e, 0x47, 0x60, 0x0b, 0xc0, 0x47, 0xc9, + 0x02, 0x50, 0x60, 0xfc, 0xfc, 0x23, 0x1e, 0x91, 0xae, 0xc4, 0xa3, 0x5d, 0x51, 0x5e, 0x80, 0xe2, + 0xc0, 0x08, 0x20, 0x05, 0xf2, 0x3c, 0x63, 0x45, 0xb7, 0xcf, 0x59, 0x84, 0x93, 0x51, 0xb3, 0x2c, + 0x33, 0x45, 0x8f, 0x13, 0xac, 0xa4, 0x7f, 0xf1, 0x13, 0x8b, 0x12, 0xdd, 0xcc, 0x79, 0x0c, 0xf2, + 0x91, 0x31, 0x10, 0x59, 0x64, 0x29, 0xc8, 0x22, 0x07, 0xc8, 0xaf, 0x41, 0x8e, 0x18, 0x20, 0xdc, + 0xe6, 0xb8, 0x0f, 0x43, 0x91, 0x19, 0xc8, 0x41, 0x59, 0x33, 0x87, 0x67, 0x5d, 0x08, 0x5c, 0x11, + 0x1e, 0x50, 0x54, 0xec, 0x59, 0x81, 0x75, 0x4d, 0x77, 0x95, 0x4d, 0x80, 0x60, 0x50, 0x51, 0x05, + 0xee, 0x27, 0xc6, 0x23, 0x7c, 0xdc, 0x93, 0x3f, 0x90, 0x15, 0xf1, 0x18, 0xcb, 0x04, 0x29, 0x38, + 0xd2, 0xc9, 0x9e, 0xc9, 0xba, 0x4e, 0x31, 0xaa, 0x2f, 0x7d, 0xfa, 0xf3, 0x67, 0xa5, 0x77, 0xc6, + 0x16, 0x7c, 0xcf, 0xcb, 0x70, 0x26, 0x54, 0x48, 0x14, 0x30, 0x92, 0x88, 0x2a, 0x86, 0xf4, 0x95, + 0x14, 0x4e, 0x4a, 0x28, 0x1d, 0x99, 0xff, 0x2d, 0x1f, 0x6d, 0x76, 0x26, 0x67, 0x9b, 0x26, 0xe7, + 0xbb, 0x46, 0x27, 0xe5, 0xff, 0x49, 0x06, 0x52, 0x2a, 0x7e, 0x7f, 0x1f, 0xbb, 0x1e, 0xba, 0x08, + 0x09, 0x6c, 0xec, 0xdb, 0xa3, 0x72, 0xa0, 0xa4, 0x83, 0xcb, 0x1c, 0xaf, 0x6e, 0xec, 0xdb, 0xd7, + 0x67, 0x54, 0x8a, 0x8b, 0x2e, 0xc1, 0xec, 0x6e, 0xa7, 0xcf, 0xd3, 0x57, 0x03, 0x36, 0x2b, 0x4c, + 0x74, 0x95, 0x20, 0x5d, 0x9f, 0x51, 0x19, 0x36, 0xa9, 0x8a, 0xbe, 0x68, 0x1e, 0x3f, 0xba, 0xaa, + 0x86, 0xb5, 0x4b, 0xab, 0x22, 0xb8, 0xa8, 0x0a, 0x60, 0x5a, 0xa6, 0xa7, 0xd1, 0xd4, 0x0e, 0xb7, + 0x1a, 0x0f, 0x8c, 0xa7, 0x34, 0x3d, 0x9a, 0x0c, 0xba, 0x3e, 0xa3, 0x66, 0x4c, 0xf1, 0x41, 0x9a, + 0xfb, 0xfe, 0x3e, 0xee, 0x1d, 0x72, 0x6f, 0x6d, 0x6c, 0x73, 0x5f, 0x22, 0x48, 0xa4, 0xb9, 0x14, + 0x9b, 0x18, 0x59, 0xf6, 0xd4, 0x9e, 0x77, 0xc0, 0x1f, 0x90, 0x5d, 0x1c, 0x47, 0x49, 0xdf, 0xdb, + 0x6b, 0x1d, 0x5c, 0x9f, 0x51, 0x53, 0x06, 0xfb, 0x89, 0x9e, 0xf3, 0x5d, 0xb0, 0xec, 0xb0, 0xd7, + 0x13, 0xa1, 0x65, 0x69, 0x9f, 0x19, 0xe1, 0x8a, 0xa1, 0x0d, 0x28, 0x74, 0x4c, 0xd7, 0xd3, 0x5c, + 0x4b, 0x77, 0xdc, 0x7d, 0xdb, 0x73, 0x69, 0xfe, 0x24, 0x7b, 0xf1, 0xa1, 0x71, 0x1c, 0xd6, 0x4c, + 0xd7, 0x6b, 0x0a, 0xe4, 0xeb, 0x33, 0x6a, 0xbe, 0x13, 0x06, 0x10, 0x7e, 0xf6, 0xee, 0x2e, 0xee, + 0xf9, 0x0c, 0x69, 0x9e, 0xe5, 0x08, 0x7e, 0x9b, 0x04, 0x5b, 0xd0, 0x13, 0x7e, 0x76, 0x18, 0x80, + 0xbe, 0x01, 0xe6, 0x3b, 0xb6, 0xde, 0xf6, 0xd9, 0x69, 0xc6, 0x7e, 0xdf, 0xba, 0x45, 0x93, 0x32, + 0xd9, 0x8b, 0x8f, 0x8e, 0x6d, 0xa4, 0xad, 0xb7, 0x05, 0x8b, 0x1a, 0x21, 0xb8, 0x3e, 0xa3, 0xce, + 0x75, 0x06, 0x81, 0xe8, 0x7d, 0xb0, 0xa0, 0x3b, 0x4e, 0xe7, 0x70, 0x90, 0x7b, 0x91, 0x72, 0x3f, + 0x3f, 0x8e, 0x7b, 0x85, 0xd0, 0x0c, 0xb2, 0x47, 0xfa, 0x10, 0x14, 0xb5, 0x40, 0x76, 0x7a, 0x98, + 0xde, 0x98, 0x72, 0xb8, 0x97, 0x41, 0x5f, 0xa7, 0xca, 0x5e, 0x7c, 0x64, 0x1c, 0xef, 0x2d, 0x86, + 0x2f, 0x9c, 0x92, 0xeb, 0x33, 0x6a, 0xd1, 0x89, 0x82, 0x18, 0x57, 0xdb, 0xc0, 0xf4, 0xf1, 0x3c, + 0xce, 0x75, 0x6e, 0x12, 0x57, 0x8a, 0x1f, 0xe5, 0x1a, 0x01, 0xa1, 0x3a, 0x64, 0x59, 0x28, 0xaa, + 0x11, 0x63, 0x48, 0xdf, 0xb4, 0xca, 0x5e, 0x54, 0xc6, 0xce, 0x50, 0x8a, 0x7a, 0xd3, 0xf6, 0xf0, + 0xf5, 0x19, 0x15, 0xb0, 0xff, 0x85, 0x74, 0x38, 0x41, 0x9f, 0xf7, 0x3a, 0xd4, 0xa2, 0x86, 0xb7, + 0x34, 0x4f, 0x19, 0x3e, 0x36, 0x8e, 0x21, 0x7d, 0xe1, 0xfa, 0xf0, 0x66, 0xd8, 0x0e, 0x5f, 0x9f, + 0x51, 0xe7, 0x6f, 0x0f, 0x83, 0x89, 0x8a, 0xed, 0x9a, 0x96, 0xde, 0x31, 0xdf, 0xc4, 0x6c, 0x09, + 0xa5, 0x0f, 0x5b, 0x1e, 0xa1, 0x62, 0x57, 0x39, 0x36, 0x5d, 0x58, 0x89, 0x8a, 0xed, 0x86, 0x01, + 0xd5, 0x14, 0x3f, 0xeb, 0xe9, 0x3f, 0xd4, 0x96, 0x92, 0xd3, 0xec, 0x71, 0xb6, 0x1b, 0x89, 0x34, + 0xc8, 0x59, 0xe5, 0x11, 0xc8, 0x86, 0x0c, 0x13, 0x2a, 0x41, 0x8a, 0x9f, 0x86, 0x11, 0xa7, 0x46, + 0xf9, 0xa7, 0x52, 0x80, 0x5c, 0xd8, 0x18, 0x29, 0x1f, 0x91, 0x7c, 0x4a, 0xfa, 0xa6, 0x44, 0x29, + 0x9a, 0x91, 0xce, 0x04, 0x9e, 0xca, 0x83, 0x62, 0x69, 0x13, 0xe5, 0x6c, 0xfb, 0x35, 0x47, 0x81, + 0x7c, 0x65, 0x45, 0x8b, 0x90, 0x75, 0x2e, 0x3a, 0x3e, 0x4a, 0x9c, 0xa2, 0x80, 0x73, 0xd1, 0x11, + 0x08, 0x0f, 0x40, 0x8e, 0xf4, 0x5b, 0x0b, 0xfb, 0x4b, 0x19, 0x35, 0x4b, 0x60, 0x1c, 0x45, 0xf9, + 0x57, 0x31, 0x90, 0x07, 0x0d, 0x98, 0x9f, 0xaa, 0x96, 0x8e, 0x9d, 0xaa, 0x3e, 0x3d, 0x98, 0x24, + 0x0f, 0xf2, 0xe2, 0x6b, 0x20, 0x07, 0xe9, 0x5d, 0xb6, 0xd4, 0x8c, 0xf7, 0xff, 0x06, 0x1c, 0x55, + 0xb5, 0x68, 0x0c, 0x78, 0xae, 0x57, 0x23, 0x9b, 0x95, 0xe2, 0x4f, 0x7e, 0x0c, 0x0e, 0xb8, 0xef, + 0xc4, 0x6c, 0x3b, 0x6d, 0xdd, 0xc3, 0x22, 0x3f, 0x16, 0xda, 0xb7, 0x7c, 0x18, 0x8a, 0xba, 0xe3, + 0x68, 0xae, 0xa7, 0x7b, 0x98, 0xfb, 0x1a, 0x2c, 0xf3, 0x90, 0xd7, 0x1d, 0x87, 0x3e, 0xad, 0xce, + 0x7c, 0x8d, 0x87, 0xa0, 0x40, 0x6c, 0xba, 0xa9, 0x77, 0x84, 0xab, 0x90, 0x64, 0x2e, 0x09, 0x87, + 0x32, 0xef, 0x40, 0x69, 0xfb, 0x23, 0x4e, 0xed, 0xb9, 0x1f, 0x53, 0x49, 0xa1, 0x98, 0x0a, 0xf1, + 0xb7, 0x3e, 0x98, 0x7c, 0xc4, 0xfb, 0x28, 0xa3, 0x37, 0x0d, 0x16, 0x68, 0xfc, 0x75, 0x9b, 0x25, + 0x4b, 0xd2, 0x2a, 0xfb, 0x50, 0x54, 0x28, 0x44, 0x6d, 0x3f, 0x2a, 0x40, 0xcc, 0x3b, 0xe0, 0xb5, + 0xc4, 0xbc, 0x03, 0xe2, 0xe9, 0xfa, 0xef, 0xed, 0x16, 0x46, 0xac, 0x76, 0x9c, 0x2e, 0xc8, 0x75, + 0x28, 0x45, 0xc8, 0x47, 0xd6, 0x04, 0xe5, 0x24, 0x2c, 0x8c, 0x32, 0xf1, 0xca, 0xbe, 0x0f, 0x8f, + 0x98, 0x6a, 0x74, 0x09, 0xd2, 0xbe, 0x8d, 0x1f, 0x11, 0x1d, 0xd3, 0x6a, 0x05, 0xb2, 0xea, 0xa3, + 0x46, 0xd2, 0xf9, 0xb1, 0x48, 0x3a, 0x5f, 0xf9, 0x66, 0x28, 0x8d, 0xb3, 0xdf, 0x03, 0x49, 0xbe, + 0x84, 0x2f, 0xb0, 0x93, 0x90, 0xe4, 0x0f, 0x5b, 0xc6, 0xe8, 0x06, 0x16, 0xff, 0x22, 0x82, 0x64, + 0xb6, 0x3c, 0xce, 0xf6, 0xb5, 0xe8, 0x87, 0xa2, 0xc1, 0xe9, 0xb1, 0x36, 0x7c, 0xfc, 0x56, 0x18, + 0x63, 0xc4, 0xb7, 0xc2, 0x0c, 0xd1, 0x1c, 0x97, 0xf6, 0x55, 0x1c, 0x64, 0x61, 0x5f, 0xca, 0x47, + 0xe3, 0x70, 0x72, 0xb4, 0x25, 0x47, 0x4b, 0x90, 0x23, 0x7e, 0xab, 0x17, 0x75, 0x71, 0xa1, 0xab, + 0x1f, 0xb4, 0xb8, 0x7f, 0xcb, 0xb7, 0x12, 0x62, 0xfe, 0x56, 0x02, 0xda, 0x86, 0xb9, 0x8e, 0x6d, + 0xe8, 0x1d, 0x2d, 0xb4, 0x95, 0xc3, 0x27, 0xd1, 0x83, 0x43, 0xc2, 0x8e, 0xa6, 0x0c, 0x89, 0xc1, + 0xe1, 0xfa, 0x5f, 0xa4, 0x3c, 0xd6, 0xfc, 0x5d, 0x1f, 0xb4, 0x0a, 0xd9, 0xae, 0xe9, 0xee, 0xe0, + 0x7d, 0xfd, 0xb6, 0x69, 0xf7, 0xf8, 0x6c, 0x1a, 0x56, 0x9a, 0xf5, 0x00, 0x47, 0xec, 0x30, 0x85, + 0xc8, 0x42, 0x43, 0x32, 0x3b, 0x72, 0xe3, 0x2b, 0x79, 0x6c, 0x6b, 0x32, 0x6e, 0x0f, 0x29, 0x35, + 0x76, 0x0f, 0x69, 0xd4, 0x86, 0x4d, 0x7a, 0xf4, 0x86, 0xcd, 0x87, 0xc2, 0x43, 0x13, 0x5d, 0xfb, + 0x86, 0xf6, 0x70, 0x50, 0x13, 0x16, 0x38, 0x7d, 0x3b, 0x22, 0xfb, 0x11, 0x47, 0x1d, 0xd8, 0xfc, + 0x1a, 0x94, 0x39, 0x12, 0xe4, 0xe3, 0xc5, 0x1e, 0xbf, 0x37, 0xb1, 0x8b, 0x4d, 0xd4, 0x44, 0x68, + 0x13, 0xf5, 0x7f, 0xb1, 0xa1, 0x78, 0x01, 0xe6, 0x86, 0xfc, 0x88, 0x91, 0x9b, 0xc3, 0x63, 0x12, + 0xb2, 0xca, 0xc7, 0x25, 0x28, 0x8f, 0x77, 0x1c, 0x46, 0xb2, 0x3a, 0x56, 0xee, 0x7b, 0x9c, 0x79, + 0x7e, 0x08, 0x0a, 0x03, 0x6e, 0x0d, 0x1b, 0x85, 0x7c, 0x24, 0x80, 0x54, 0xbe, 0x35, 0xee, 0xdb, + 0xcc, 0x88, 0xef, 0x31, 0x42, 0xd1, 0x5e, 0x82, 0xf9, 0x36, 0x36, 0xcc, 0xf6, 0xbd, 0xea, 0xd9, + 0x1c, 0xa7, 0xfe, 0x3f, 0x6a, 0x36, 0xac, 0x66, 0xdf, 0x07, 0x90, 0x56, 0xb1, 0xeb, 0x10, 0x57, + 0x02, 0x55, 0x21, 0x83, 0x0f, 0x0c, 0xec, 0x78, 0xc1, 0x79, 0x80, 0x51, 0xde, 0x2d, 0xc3, 0xae, + 0x0b, 0x4c, 0x12, 0xdb, 0xf9, 0x64, 0xe8, 0x69, 0x1e, 0xbe, 0x8e, 0x8f, 0x44, 0x39, 0x79, 0x38, + 0x7e, 0xbd, 0x2c, 0xe2, 0xd7, 0xf8, 0xd8, 0xd0, 0x8c, 0x51, 0x0d, 0x04, 0xb0, 0x4f, 0xf3, 0x00, + 0x36, 0x31, 0xa1, 0xb2, 0x48, 0x04, 0x5b, 0x8b, 0x44, 0xb0, 0xc9, 0x09, 0xdd, 0x1c, 0x13, 0xc2, + 0x5e, 0x16, 0x21, 0x6c, 0x6a, 0x42, 0x8b, 0x07, 0x62, 0xd8, 0xf7, 0x84, 0x62, 0xd8, 0xcc, 0x70, + 0xa2, 0x30, 0x42, 0x3a, 0x22, 0x88, 0x7d, 0xde, 0x0f, 0x62, 0x73, 0x63, 0x03, 0x60, 0x4e, 0x3c, + 0x18, 0xc5, 0x6e, 0x0e, 0x45, 0xb1, 0x79, 0xfe, 0x37, 0x99, 0xc6, 0xb1, 0x98, 0x10, 0xc6, 0x6e, + 0x0e, 0x85, 0xb1, 0x85, 0x09, 0x0c, 0x27, 0xc4, 0xb1, 0xdf, 0x38, 0x3a, 0x8e, 0x1d, 0x1f, 0x69, + 0xf2, 0x66, 0x4e, 0x17, 0xc8, 0x6a, 0x63, 0x02, 0x59, 0x79, 0x6c, 0xd0, 0xc5, 0xd8, 0x4f, 0x1d, + 0xc9, 0x6e, 0x8f, 0x88, 0x64, 0x59, 0xcc, 0x79, 0x6e, 0x2c, 0xf3, 0x29, 0x42, 0xd9, 0xed, 0x11, + 0xa1, 0x2c, 0x9a, 0xc8, 0x76, 0x62, 0x2c, 0x7b, 0x35, 0x1a, 0xcb, 0xce, 0x8f, 0x71, 0x98, 0x82, + 0xd9, 0x3e, 0x26, 0x98, 0xdd, 0x19, 0x17, 0xcc, 0xb2, 0x80, 0xf3, 0xf1, 0xb1, 0x1c, 0x8f, 0x11, + 0xcd, 0x6e, 0x0e, 0x45, 0xb3, 0x27, 0x26, 0x68, 0xda, 0xf4, 0xe1, 0x2c, 0x7b, 0x71, 0x9c, 0xbd, + 0x35, 0x0e, 0x72, 0xf6, 0x46, 0x22, 0x9d, 0x95, 0x73, 0xca, 0xa3, 0x64, 0xf5, 0x1d, 0xb0, 0x73, + 0xc4, 0xcd, 0xc5, 0xbd, 0x9e, 0xdd, 0x13, 0x47, 0xf0, 0xe9, 0x87, 0x72, 0x8e, 0x84, 0x37, 0x81, + 0x4d, 0x3b, 0x22, 0xf4, 0xa5, 0xe1, 0x44, 0xc8, 0x8e, 0x29, 0xbf, 0x28, 0x05, 0xb4, 0x34, 0xf8, + 0x0d, 0x87, 0x46, 0x19, 0x1e, 0x1a, 0x85, 0x02, 0xe2, 0x58, 0x34, 0x20, 0x5e, 0x84, 0x2c, 0x09, + 0x13, 0x06, 0x62, 0x5d, 0xdd, 0xf1, 0x63, 0x5d, 0x71, 0xf6, 0x87, 0x85, 0xcd, 0x7c, 0x59, 0x62, + 0x1b, 0x61, 0x45, 0xff, 0x1c, 0x14, 0x8b, 0xd2, 0xd0, 0x13, 0x30, 0x1f, 0xc2, 0xf5, 0xc3, 0x0f, + 0x16, 0xf8, 0xc9, 0x3e, 0x76, 0x85, 0xc7, 0x21, 0xff, 0x4c, 0x0a, 0x24, 0x14, 0x04, 0xc9, 0xa3, + 0xe2, 0x59, 0xe9, 0x6d, 0x8a, 0x67, 0x63, 0xf7, 0x1c, 0xcf, 0x86, 0xc3, 0xa9, 0x78, 0x34, 0x9c, + 0xfa, 0x6f, 0x52, 0x30, 0x26, 0x7e, 0x74, 0x6a, 0xd8, 0x6d, 0xcc, 0x03, 0x1c, 0xfa, 0x9b, 0xb8, + 0x24, 0x1d, 0x7b, 0x8f, 0x87, 0x31, 0xe4, 0x27, 0xc1, 0xf2, 0x17, 0x9e, 0x0c, 0x5f, 0x57, 0xfc, + 0xd8, 0x68, 0x36, 0x7c, 0x05, 0x81, 0x9f, 0xcb, 0x4f, 0x06, 0xe7, 0xf2, 0xfd, 0x7b, 0xb3, 0xa9, + 0xd0, 0xbd, 0x59, 0xf4, 0x1c, 0x64, 0x68, 0x9e, 0x5a, 0xb3, 0x1d, 0xf1, 0xe7, 0xb1, 0xce, 0x8c, + 0x3f, 0x93, 0xef, 0xd2, 0xd3, 0xc2, 0xec, 0x1c, 0x7f, 0xe0, 0x71, 0x64, 0x22, 0x1e, 0xc7, 0x7d, + 0x90, 0x21, 0xad, 0x67, 0x7f, 0xe6, 0x01, 0xf8, 0xa5, 0x6b, 0x01, 0x50, 0x7e, 0x2a, 0x06, 0xc5, + 0x81, 0x85, 0x66, 0x64, 0xdf, 0x47, 0xed, 0x80, 0x4e, 0x27, 0x8f, 0xb3, 0x00, 0x7b, 0xba, 0xab, + 0xbd, 0xa1, 0x5b, 0x1e, 0xff, 0x6b, 0x6e, 0x71, 0x35, 0x04, 0x41, 0x65, 0x48, 0x93, 0xaf, 0xbe, + 0xcb, 0xff, 0x9e, 0x5b, 0x5c, 0xf5, 0xbf, 0xd1, 0x75, 0x48, 0xe2, 0xdb, 0xf4, 0x61, 0x52, 0xf6, + 0xbc, 0xef, 0xc9, 0xe1, 0x48, 0x8e, 0x14, 0x57, 0x4b, 0x64, 0xb0, 0xbf, 0xf4, 0xd6, 0xa2, 0xcc, + 0xb0, 0x1f, 0xf7, 0xef, 0x3a, 0xa9, 0x9c, 0x3e, 0x2a, 0x85, 0xf4, 0x80, 0x14, 0x68, 0x0a, 0x2b, + 0x27, 0x22, 0x53, 0x22, 0x53, 0x76, 0x3c, 0x59, 0xcd, 0x77, 0x71, 0xd7, 0xb1, 0xed, 0x8e, 0xc6, + 0xe6, 0x78, 0x05, 0x0a, 0xd1, 0x75, 0x95, 0xfd, 0x09, 0x26, 0x4f, 0x37, 0x2d, 0x2d, 0xe2, 0x04, + 0xe7, 0x18, 0x90, 0xcd, 0xa9, 0x1b, 0x89, 0xb4, 0x24, 0xc7, 0x6e, 0x24, 0xd2, 0x31, 0x39, 0xae, + 0x6c, 0xc1, 0x89, 0x91, 0xeb, 0x2a, 0x7a, 0x16, 0x32, 0xc1, 0x92, 0xcc, 0x4e, 0x98, 0x1f, 0x91, + 0x24, 0x08, 0x70, 0x95, 0x5f, 0x91, 0x02, 0x96, 0xd1, 0xb4, 0x43, 0x1d, 0x92, 0xec, 0xb8, 0x1f, + 0x3f, 0xda, 0xf1, 0xc4, 0x74, 0x2b, 0xf2, 0x32, 0x3b, 0x0b, 0xa8, 0x72, 0x62, 0xe5, 0x7d, 0x90, + 0x64, 0x10, 0x94, 0x85, 0x54, 0xf0, 0x04, 0x32, 0x40, 0xb2, 0x52, 0xab, 0xd5, 0xb7, 0xc4, 0x7b, + 0xa6, 0xd5, 0x4d, 0xb5, 0x25, 0xc7, 0x08, 0x58, 0xad, 0xdf, 0xa8, 0xd7, 0x5a, 0x72, 0x1c, 0xcd, + 0x41, 0x9e, 0xfd, 0xd6, 0xae, 0x6e, 0xaa, 0xeb, 0x95, 0x96, 0x9c, 0x08, 0x81, 0x9a, 0xf5, 0x8d, + 0xd5, 0xba, 0x2a, 0xcf, 0x2a, 0x4f, 0xc1, 0xe9, 0xb1, 0x6b, 0x78, 0x90, 0x53, 0x90, 0x42, 0x39, + 0x05, 0xe5, 0xa3, 0x31, 0x12, 0xd4, 0x8c, 0x5b, 0x98, 0xd1, 0x8d, 0x81, 0x8e, 0x5f, 0x3c, 0xc6, + 0xaa, 0x3e, 0xd0, 0x7b, 0x12, 0xc7, 0xf4, 0xf0, 0x2e, 0xf6, 0x8c, 0x7d, 0xe6, 0x28, 0x30, 0x0b, + 0x94, 0x57, 0xf3, 0x1c, 0x4a, 0x89, 0x5c, 0x86, 0xf6, 0x3a, 0x36, 0x3c, 0x8d, 0x29, 0x91, 0xcb, + 0xff, 0xc6, 0x6f, 0x9e, 0x41, 0x9b, 0x0c, 0xa8, 0x7c, 0xf3, 0xb1, 0x64, 0x99, 0x81, 0x59, 0xb5, + 0xde, 0x52, 0x5f, 0x95, 0xe3, 0x08, 0x41, 0x81, 0xfe, 0xd4, 0x9a, 0x1b, 0x95, 0xad, 0xe6, 0xf5, + 0x4d, 0x22, 0xcb, 0x79, 0x28, 0x0a, 0x59, 0x0a, 0xe0, 0xac, 0xf2, 0x18, 0x9c, 0x1a, 0xe3, 0x55, + 0x8c, 0x38, 0x7f, 0xf9, 0x49, 0x29, 0x8c, 0x1d, 0xf5, 0x0c, 0x36, 0x21, 0xe9, 0x7a, 0xba, 0xd7, + 0x77, 0xb9, 0x10, 0x9f, 0x9d, 0xd6, 0xcd, 0x58, 0x16, 0x3f, 0x9a, 0x94, 0x5c, 0xe5, 0x6c, 0x94, + 0x4b, 0x50, 0x88, 0x96, 0x8c, 0x97, 0x41, 0xa0, 0x44, 0x31, 0xe5, 0x0a, 0xa0, 0x61, 0xef, 0x63, + 0x44, 0x78, 0x29, 0x8d, 0x0a, 0x2f, 0x7f, 0x5c, 0x82, 0x33, 0x47, 0x78, 0x1a, 0xe8, 0xa5, 0x81, + 0x4e, 0x3e, 0x7f, 0x1c, 0x3f, 0x85, 0xfd, 0x41, 0xcd, 0xc3, 0x81, 0x6e, 0x3e, 0x0d, 0xb9, 0x30, + 0x7c, 0xba, 0x4e, 0x7e, 0x29, 0x16, 0x4c, 0xe2, 0x68, 0x1c, 0x1c, 0x98, 0x40, 0xe9, 0x6b, 0x34, + 0x81, 0xef, 0x06, 0xf0, 0x0e, 0xc4, 0x01, 0x60, 0xbe, 0x8e, 0xde, 0x3f, 0x22, 0x35, 0x86, 0x8d, + 0xd6, 0x01, 0x9f, 0x04, 0x19, 0x8f, 0xff, 0x72, 0x51, 0x33, 0x9c, 0x14, 0xe8, 0xd3, 0x35, 0xd6, + 0xf5, 0xff, 0xc2, 0xef, 0x74, 0x8b, 0x71, 0x90, 0x3c, 0x60, 0x60, 0x17, 0xbd, 0x0a, 0xa7, 0x06, + 0x1c, 0x05, 0x9f, 0x75, 0x62, 0x5a, 0x7f, 0xe1, 0x44, 0xd4, 0x5f, 0x10, 0xac, 0xc3, 0xab, 0xfd, + 0x6c, 0x74, 0xb5, 0x7f, 0x15, 0x20, 0x48, 0x0e, 0x04, 0x27, 0xd6, 0xa4, 0xf0, 0x89, 0xb5, 0x4b, + 0x30, 0x4b, 0x34, 0x49, 0xc8, 0x69, 0xd8, 0x14, 0x13, 0x4d, 0x08, 0x25, 0x17, 0x18, 0xb6, 0x62, + 0x02, 0x1a, 0xce, 0x2d, 0x8e, 0xa9, 0xe2, 0x3d, 0xd1, 0x2a, 0x1e, 0x18, 0x9b, 0xa5, 0x1c, 0x5d, + 0xd5, 0x9b, 0x30, 0x4b, 0x47, 0x7e, 0xe4, 0x35, 0xc0, 0x6f, 0x02, 0xd0, 0x3d, 0xaf, 0x67, 0xee, + 0xf4, 0x83, 0x0a, 0x16, 0x47, 0x6b, 0x4e, 0x45, 0xe0, 0x55, 0xef, 0xe3, 0x2a, 0xb4, 0x10, 0x90, + 0x86, 0xd4, 0x28, 0xc4, 0x50, 0xd9, 0x80, 0x42, 0x94, 0x76, 0xf4, 0xb5, 0xc6, 0xe0, 0x5d, 0x90, + 0x8c, 0xf0, 0x6f, 0x7c, 0xef, 0x88, 0xbf, 0xd5, 0x43, 0x3f, 0x94, 0xbf, 0x92, 0x20, 0x17, 0x56, + 0xbc, 0xb7, 0xd9, 0x05, 0xb9, 0x7f, 0x84, 0x0b, 0x92, 0xd9, 0xd3, 0xdd, 0x97, 0x99, 0x07, 0x72, + 0x7a, 0xc8, 0x03, 0x49, 0xed, 0xe9, 0xee, 0xf6, 0xd7, 0xd1, 0x01, 0x51, 0xbe, 0x4d, 0x82, 0xb4, + 0xdf, 0xf9, 0x23, 0x4e, 0xe9, 0x06, 0x97, 0x5b, 0xfd, 0xac, 0x3b, 0xdb, 0xdf, 0x88, 0xfb, 0xfb, + 0x1b, 0x57, 0xfc, 0xc5, 0x6f, 0x5c, 0x3a, 0x24, 0x2c, 0x69, 0x71, 0x52, 0x8e, 0xaf, 0xf5, 0x57, + 0xa6, 0xbb, 0x43, 0xb6, 0x00, 0xb3, 0xe1, 0xfb, 0x5f, 0xec, 0x43, 0x69, 0x87, 0x8e, 0xc6, 0xb0, + 0x69, 0x18, 0xbe, 0x6c, 0x26, 0x1d, 0xfb, 0xb2, 0x99, 0x5f, 0x4b, 0x2c, 0x5c, 0xcb, 0xf7, 0x4a, + 0x90, 0x16, 0x33, 0x02, 0xbd, 0x37, 0x7c, 0x64, 0x4a, 0xec, 0xc9, 0x8d, 0xb5, 0x46, 0x9c, 0x7f, + 0xe8, 0xc4, 0xd4, 0xd0, 0x49, 0xe1, 0xf8, 0x71, 0x4f, 0x0a, 0x73, 0xbf, 0xee, 0xcf, 0x25, 0x90, + 0x07, 0xe7, 0xeb, 0xd7, 0xdc, 0xba, 0xe1, 0x45, 0x2e, 0x3e, 0x62, 0x91, 0x1b, 0x77, 0xfc, 0x37, + 0x31, 0xee, 0xf8, 0xef, 0x70, 0xaf, 0x67, 0xef, 0xb1, 0xd7, 0x1f, 0x8c, 0x41, 0x36, 0x94, 0x1c, + 0x45, 0xcf, 0x44, 0x8e, 0x12, 0x2f, 0x1d, 0x95, 0x48, 0x0d, 0x9d, 0x25, 0x8e, 0x88, 0x29, 0x76, + 0x7c, 0x31, 0xbd, 0xfd, 0xd7, 0x8a, 0x46, 0xdf, 0xbc, 0x9c, 0x1d, 0x73, 0xf3, 0xf2, 0xff, 0x91, + 0x20, 0xed, 0x3b, 0xdd, 0xc7, 0xdd, 0x7d, 0x3b, 0x09, 0x49, 0xee, 0x57, 0xb2, 0xed, 0x37, 0xfe, + 0x35, 0x32, 0xa9, 0x5c, 0x86, 0xb4, 0xf8, 0xd3, 0x7d, 0x7c, 0x4d, 0xf3, 0xbf, 0xcf, 0x3f, 0x0f, + 0xd9, 0xd0, 0xce, 0x25, 0x31, 0x8c, 0x1b, 0xf5, 0x97, 0xe5, 0x99, 0x72, 0xea, 0xce, 0xdd, 0xa5, + 0xf8, 0x06, 0x7e, 0x83, 0xcc, 0x66, 0xb5, 0x5e, 0xbb, 0x5e, 0xaf, 0xbd, 0x28, 0x4b, 0xe5, 0xec, + 0x9d, 0xbb, 0x4b, 0x29, 0x15, 0xd3, 0x7c, 0xe2, 0xf9, 0x17, 0xa1, 0x38, 0x30, 0x30, 0x51, 0xa7, + 0x05, 0x41, 0x61, 0x75, 0x7b, 0x6b, 0xad, 0x51, 0xab, 0xb4, 0xea, 0x1a, 0x3b, 0x70, 0x8a, 0x4e, + 0xc1, 0xfc, 0x5a, 0xe3, 0xda, 0xf5, 0x96, 0x56, 0x5b, 0x6b, 0xd4, 0x37, 0x5a, 0x5a, 0xa5, 0xd5, + 0xaa, 0xd4, 0x5e, 0x94, 0x63, 0x17, 0xef, 0x66, 0x21, 0x51, 0xa9, 0xd6, 0x1a, 0xa8, 0x06, 0x09, + 0x9a, 0x08, 0x39, 0xf2, 0xe8, 0x52, 0xf9, 0xe8, 0xcc, 0x30, 0xba, 0x0a, 0xb3, 0x34, 0x47, 0x82, + 0x8e, 0x3e, 0xcb, 0x54, 0x9e, 0x90, 0x2a, 0x26, 0x8d, 0xa1, 0x33, 0xf2, 0xc8, 0xc3, 0x4d, 0xe5, + 0xa3, 0x33, 0xc7, 0x68, 0x0d, 0x52, 0x22, 0x44, 0x9e, 0x74, 0xe2, 0xa8, 0x3c, 0x31, 0x9d, 0x4b, + 0xba, 0xc6, 0x52, 0x0d, 0x47, 0x9f, 0x7b, 0x2a, 0x4f, 0xc8, 0x29, 0xa3, 0x86, 0x7f, 0x11, 0x67, + 0xc2, 0x51, 0xa6, 0xf2, 0xa4, 0x2c, 0x31, 0x52, 0x21, 0x13, 0x24, 0x71, 0x26, 0x9f, 0xe6, 0x2a, + 0x4f, 0x91, 0x2e, 0x47, 0xef, 0x83, 0x7c, 0x34, 0xd0, 0x9d, 0xee, 0xb8, 0x54, 0x79, 0xca, 0x7c, + 0x34, 0xe1, 0x1f, 0x8d, 0x7a, 0xa7, 0x3b, 0x3e, 0x55, 0x9e, 0x32, 0x3d, 0x8d, 0x5e, 0x87, 0xb9, + 0xe1, 0xa8, 0x74, 0xfa, 0xd3, 0x54, 0xe5, 0x63, 0x24, 0xac, 0x51, 0x17, 0xd0, 0x88, 0x68, 0xf6, + 0x18, 0x87, 0xab, 0xca, 0xc7, 0xc9, 0x5f, 0xa3, 0x36, 0x14, 0x07, 0x43, 0xc4, 0x69, 0x0f, 0x5b, + 0x95, 0xa7, 0xce, 0x65, 0xb3, 0x5a, 0xa2, 0xa1, 0xe5, 0xb4, 0x87, 0xaf, 0xca, 0x53, 0xa7, 0xb6, + 0xd1, 0x36, 0x40, 0x28, 0x3a, 0x9c, 0xe2, 0x30, 0x56, 0x79, 0x9a, 0x24, 0x37, 0x72, 0x60, 0x7e, + 0x54, 0xd8, 0x78, 0x9c, 0xb3, 0x59, 0xe5, 0x63, 0xe5, 0xbe, 0x89, 0x3e, 0x47, 0x03, 0xc0, 0xe9, + 0xce, 0x6a, 0x95, 0xa7, 0x4c, 0x82, 0x57, 0x2b, 0x63, 0x0f, 0xe8, 0x3e, 0x72, 0xe4, 0x01, 0xdd, + 0xe0, 0xc8, 0xad, 0x7f, 0x28, 0xf7, 0x77, 0x9f, 0x84, 0x77, 0xf1, 0xa7, 0x5f, 0x5c, 0x4f, 0xbf, + 0x65, 0x5a, 0x7b, 0xfe, 0x1b, 0x3c, 0xfc, 0x9b, 0x9f, 0xce, 0x3d, 0xc9, 0xdf, 0x99, 0x11, 0xd0, + 0x09, 0x2f, 0xf1, 0x8c, 0x7d, 0x9e, 0x70, 0xd2, 0x41, 0xfe, 0xc9, 0xe7, 0x6e, 0x8f, 0x78, 0xe5, + 0x67, 0xc2, 0x5b, 0x42, 0x23, 0x5e, 0x01, 0x2a, 0x1f, 0x79, 0x39, 0xbe, 0x7c, 0xd4, 0x81, 0x65, + 0xe5, 0x07, 0x24, 0x28, 0x5c, 0x37, 0x5d, 0xcf, 0xee, 0x99, 0x86, 0xde, 0xa1, 0xcb, 0xcb, 0x95, + 0x69, 0xaf, 0x13, 0x55, 0x33, 0xc4, 0x5d, 0xe1, 0x0f, 0x05, 0xf1, 0x2b, 0x2e, 0xab, 0x90, 0xbc, + 0xad, 0x77, 0xd8, 0x65, 0x9e, 0xf0, 0x2b, 0x61, 0x83, 0x32, 0x0f, 0xf9, 0x51, 0x61, 0x2e, 0x8c, + 0x76, 0x25, 0x56, 0x92, 0x94, 0x0f, 0x4b, 0x20, 0x07, 0x2d, 0x53, 0xb1, 0x61, 0xf7, 0xda, 0x34, + 0x14, 0x70, 0x9c, 0xd0, 0x49, 0x01, 0xf1, 0x49, 0x5d, 0x3e, 0xb3, 0x8b, 0x7d, 0xbf, 0x6d, 0xbc, + 0x93, 0x95, 0x08, 0x39, 0x58, 0xc4, 0xb3, 0xf5, 0xb3, 0x09, 0xa1, 0x8c, 0x7c, 0x70, 0x31, 0x89, + 0x46, 0xea, 0xdf, 0x4f, 0x2f, 0x66, 0x74, 0xbb, 0xa6, 0x4b, 0xe6, 0x86, 0x4a, 0x03, 0xfb, 0x1b, + 0x90, 0xe8, 0xe9, 0x1e, 0x0f, 0x77, 0xab, 0x97, 0x8f, 0xfd, 0xd2, 0x11, 0xeb, 0x31, 0xe5, 0x81, + 0x5e, 0x82, 0x74, 0x57, 0x3f, 0xd0, 0x28, 0xbf, 0xd8, 0xd7, 0xc4, 0x2f, 0xd5, 0xd5, 0x0f, 0x48, + 0xfb, 0xd0, 0xfb, 0xa0, 0x48, 0x58, 0x1a, 0xfb, 0xba, 0xb5, 0x87, 0x19, 0xe7, 0xf8, 0xd7, 0xc4, + 0x39, 0xdf, 0xd5, 0x0f, 0x6a, 0x94, 0x1b, 0xe1, 0xcf, 0x5f, 0x84, 0xfa, 0x35, 0x89, 0xe7, 0x30, + 0xa8, 0x60, 0x90, 0x0e, 0xb2, 0xe1, 0x7f, 0xd1, 0x4a, 0xc5, 0x86, 0xcb, 0x23, 0xe3, 0xf4, 0x60, + 0x40, 0xac, 0xd5, 0x3c, 0x69, 0xde, 0xe7, 0xde, 0x5a, 0x94, 0x58, 0xad, 0x45, 0x63, 0x48, 0xec, + 0x59, 0x96, 0x9a, 0xd1, 0xa6, 0x1c, 0xee, 0xbc, 0xf0, 0xa9, 0x19, 0x43, 0x60, 0xd4, 0xa4, 0x9c, + 0xf7, 0xe1, 0xd3, 0x12, 0x64, 0x57, 0x43, 0x6f, 0x10, 0x96, 0x20, 0xd5, 0xb5, 0x2d, 0xf3, 0x16, + 0xee, 0xf9, 0x3b, 0x66, 0xec, 0x93, 0xf8, 0xbd, 0xec, 0x4f, 0xd9, 0x79, 0x87, 0xe2, 0x99, 0x1e, + 0xf1, 0x4d, 0xa8, 0xde, 0xc0, 0x3b, 0xae, 0x29, 0xe4, 0xac, 0x8a, 0x4f, 0xf4, 0x28, 0xc8, 0x2e, + 0x36, 0xfa, 0x3d, 0xd3, 0x3b, 0xd4, 0x0c, 0xdb, 0xf2, 0x74, 0xc3, 0xe3, 0x59, 0x81, 0xa2, 0x80, + 0xd7, 0x18, 0x98, 0x30, 0x69, 0x63, 0x4f, 0x37, 0x3b, 0xec, 0x88, 0x63, 0x46, 0x15, 0x9f, 0xbc, + 0xa9, 0x77, 0x52, 0xe1, 0xb8, 0xb8, 0x06, 0xb2, 0xed, 0xe0, 0x5e, 0xe4, 0x78, 0x0c, 0xd3, 0xc6, + 0xd2, 0x6f, 0x7d, 0xf6, 0x89, 0x05, 0x2e, 0x70, 0x7e, 0xb4, 0x82, 0x3d, 0xb9, 0xaf, 0x16, 0x05, + 0x85, 0x38, 0x37, 0xf3, 0x6a, 0x64, 0x8f, 0xac, 0xbf, 0x13, 0xbc, 0xc7, 0xb2, 0x30, 0x24, 0xd4, + 0x8a, 0x75, 0x58, 0x2d, 0xfd, 0x66, 0xc0, 0x3a, 0x88, 0x9b, 0x5f, 0xc4, 0x87, 0xe1, 0x0d, 0x33, + 0xca, 0x86, 0x84, 0x14, 0xaf, 0xeb, 0x66, 0x47, 0xfc, 0xd5, 0x4f, 0x95, 0x7f, 0xa1, 0x15, 0x3f, + 0xd9, 0x99, 0xa0, 0xf1, 0x99, 0x32, 0x4e, 0x37, 0xaa, 0xb6, 0xd5, 0x8e, 0x66, 0x35, 0x51, 0x0d, + 0x92, 0x9e, 0x7d, 0x0b, 0x5b, 0x5c, 0x40, 0xd5, 0xc7, 0x8e, 0xf1, 0xa4, 0x99, 0xca, 0x49, 0xd1, + 0x37, 0x82, 0xdc, 0xc6, 0x1d, 0xbc, 0xc7, 0x2e, 0x1e, 0xee, 0xeb, 0x3d, 0xcc, 0xae, 0xbd, 0xdf, + 0xd3, 0x83, 0x65, 0x45, 0x9f, 0x55, 0x93, 0x72, 0x42, 0x5b, 0xd1, 0x57, 0x2e, 0x53, 0x7c, 0x2b, + 0x7b, 0x4c, 0x1f, 0x43, 0x9a, 0x17, 0xb6, 0x84, 0x91, 0x57, 0x31, 0x1f, 0x05, 0xb9, 0x6f, 0xed, + 0xd8, 0x16, 0xfd, 0x63, 0x79, 0x3c, 0xaa, 0x4b, 0xb3, 0x7d, 0x53, 0x1f, 0xce, 0xf7, 0x4d, 0xb7, + 0xa0, 0x10, 0xa0, 0xd2, 0x19, 0x92, 0x39, 0xee, 0x0c, 0xc9, 0xfb, 0x0c, 0x08, 0x0a, 0x5a, 0x07, + 0x08, 0xe6, 0x20, 0xdd, 0xb8, 0xcb, 0x8e, 0x1f, 0xb1, 0x60, 0x36, 0x87, 0x3b, 0x13, 0x62, 0x80, + 0xbe, 0x01, 0xe6, 0xbb, 0xa6, 0xa5, 0xb9, 0xb8, 0xb3, 0xab, 0x71, 0xc9, 0x11, 0xbe, 0xd9, 0xe3, + 0x8f, 0xe6, 0x5c, 0xd7, 0xb4, 0x9a, 0xb8, 0xb3, 0xbb, 0xea, 0x73, 0x41, 0xef, 0x86, 0x33, 0x41, + 0xef, 0x6d, 0x4b, 0xdb, 0xb7, 0x3b, 0x6d, 0xad, 0x87, 0x77, 0x35, 0x83, 0x3e, 0x4a, 0x97, 0xa3, + 0x32, 0x3b, 0xe5, 0xa3, 0x6c, 0x5a, 0xd7, 0xed, 0x4e, 0x5b, 0xc5, 0xbb, 0x35, 0x52, 0x8c, 0x1e, + 0x84, 0xa0, 0xeb, 0x9a, 0xd9, 0x76, 0x4b, 0xf9, 0xa5, 0xf8, 0xb9, 0x84, 0x9a, 0xf3, 0x81, 0x8d, + 0xb6, 0xbb, 0x92, 0xfe, 0xd0, 0x27, 0x16, 0x67, 0xbe, 0xf8, 0x89, 0xc5, 0x19, 0xe5, 0x2a, 0x7d, + 0x9c, 0x89, 0xcf, 0x23, 0xec, 0xa2, 0xcb, 0x90, 0xd1, 0xc5, 0x07, 0xbb, 0x7a, 0x75, 0xc4, 0x3c, + 0x0c, 0x50, 0x95, 0x9f, 0x94, 0x20, 0xb9, 0x7a, 0x73, 0x4b, 0x37, 0x7b, 0xa8, 0x0e, 0x73, 0x81, + 0x62, 0x4e, 0x3b, 0xa5, 0x03, 0x5d, 0x16, 0x73, 0x7a, 0x63, 0xdc, 0xc1, 0xb9, 0x4c, 0xf5, 0x81, + 0xdf, 0xfa, 0xec, 0x13, 0xf7, 0x73, 0x36, 0x37, 0x07, 0xce, 0xd0, 0x09, 0x7e, 0x83, 0x67, 0xeb, + 0x42, 0x7d, 0xbe, 0x01, 0x29, 0xd6, 0x54, 0x17, 0xbd, 0x00, 0xb3, 0x0e, 0xf9, 0xc1, 0xf7, 0x03, + 0xce, 0x8e, 0x55, 0x70, 0x8a, 0x1f, 0x56, 0x07, 0x46, 0xa7, 0x7c, 0x7b, 0x0c, 0x60, 0xf5, 0xe6, + 0xcd, 0x56, 0xcf, 0x74, 0x3a, 0xd8, 0x7b, 0xbb, 0xfa, 0xbe, 0x0d, 0x27, 0x42, 0x97, 0x8a, 0x7b, + 0xc6, 0xf1, 0xfb, 0x3f, 0x1f, 0xdc, 0x2f, 0xee, 0x19, 0x23, 0xd9, 0xb6, 0x5d, 0xcf, 0x67, 0x1b, + 0x3f, 0x3e, 0xdb, 0x55, 0xd7, 0x1b, 0x96, 0xec, 0x2b, 0x90, 0x0d, 0x84, 0xe1, 0xa2, 0x06, 0xa4, + 0x3d, 0xfe, 0x9b, 0x0b, 0x58, 0x19, 0x2f, 0x60, 0x41, 0x16, 0x16, 0xb2, 0x4f, 0xae, 0xfc, 0xa5, + 0x04, 0x10, 0x9a, 0x23, 0x7f, 0x33, 0x75, 0x0c, 0x35, 0x20, 0xc9, 0x2d, 0x71, 0xfc, 0x9e, 0x9f, + 0x8e, 0x64, 0x0c, 0x42, 0x42, 0xfd, 0xce, 0x18, 0xcc, 0x6f, 0x8b, 0xd9, 0xfb, 0x37, 0x5f, 0x06, + 0xdb, 0x90, 0xc2, 0x96, 0xd7, 0x33, 0xfd, 0x1d, 0xad, 0x27, 0xc7, 0x8d, 0xf9, 0x88, 0x4e, 0xd5, + 0x2d, 0xaf, 0x77, 0x18, 0xd6, 0x00, 0xc1, 0x2b, 0x24, 0x8f, 0x8f, 0xc5, 0xa1, 0x34, 0x8e, 0x14, + 0x3d, 0x02, 0x45, 0xa3, 0x87, 0x29, 0x20, 0x7a, 0xd7, 0xb2, 0x20, 0xc0, 0x7c, 0x8d, 0x51, 0x81, + 0x78, 0x65, 0x44, 0xb9, 0x08, 0xea, 0xbd, 0xb9, 0x61, 0x85, 0x80, 0x03, 0x5d, 0x65, 0x5a, 0x50, + 0x14, 0x97, 0x37, 0x76, 0xf4, 0x8e, 0x6e, 0x19, 0xc2, 0x5d, 0x3d, 0xd6, 0x92, 0x20, 0x2e, 0x80, + 0x54, 0x19, 0x0b, 0x54, 0x87, 0x94, 0xe0, 0x96, 0x38, 0x3e, 0x37, 0x41, 0x8b, 0x1e, 0x80, 0x5c, + 0x78, 0x61, 0xa0, 0xae, 0x47, 0x42, 0xcd, 0x86, 0xd6, 0x85, 0x49, 0x2b, 0x4f, 0xf2, 0xc8, 0x95, + 0x87, 0x7b, 0x77, 0x3f, 0x12, 0x87, 0x39, 0x15, 0xb7, 0xff, 0xf6, 0x0f, 0xcb, 0x16, 0x00, 0x9b, + 0xaa, 0xc4, 0x92, 0xf2, 0x91, 0xb9, 0x87, 0xf9, 0x9e, 0x61, 0x4c, 0x56, 0x5d, 0xef, 0xeb, 0x35, + 0x42, 0xbf, 0x13, 0x83, 0x5c, 0x78, 0x84, 0xfe, 0xb7, 0x5c, 0xb4, 0xd0, 0x46, 0x60, 0xa6, 0xd8, + 0x3d, 0x94, 0x47, 0xc7, 0x99, 0xa9, 0x21, 0x6d, 0x9e, 0x60, 0x9f, 0x3e, 0x1e, 0x87, 0x24, 0x3f, + 0x6d, 0xb7, 0x39, 0xe4, 0xc8, 0x4a, 0x93, 0x6e, 0xd2, 0xe7, 0xc5, 0x4d, 0xfa, 0x91, 0x7e, 0xec, + 0x43, 0x50, 0x20, 0x01, 0x71, 0xe4, 0x08, 0x9f, 0x74, 0x2e, 0x4f, 0xe3, 0xda, 0xe0, 0xc0, 0x3a, + 0x5a, 0x84, 0x2c, 0x41, 0x0b, 0xec, 0x30, 0xc1, 0x81, 0xae, 0x7e, 0x50, 0x67, 0x10, 0xf4, 0x04, + 0xa0, 0x7d, 0x3f, 0x2d, 0xa1, 0x05, 0x82, 0x20, 0x78, 0x73, 0x41, 0x89, 0x40, 0xbf, 0x1f, 0x80, + 0xb4, 0x42, 0x63, 0xaf, 0x25, 0xf3, 0xb7, 0xa8, 0x09, 0x64, 0x95, 0xbe, 0x98, 0xfc, 0xad, 0x12, + 0xf3, 0x87, 0x07, 0xc2, 0x66, 0x1e, 0x8e, 0xb4, 0xa6, 0x98, 0x14, 0x7f, 0xf6, 0xd6, 0x62, 0xf9, + 0x50, 0xef, 0x76, 0x56, 0x94, 0x11, 0x7c, 0x94, 0x51, 0x91, 0x3c, 0x71, 0x9c, 0xa3, 0x61, 0xf7, + 0xca, 0xbb, 0x88, 0x7a, 0xdf, 0xf9, 0xc3, 0x9f, 0x39, 0x7f, 0x26, 0xf4, 0x78, 0xf2, 0x81, 0x9f, + 0x4e, 0x63, 0x63, 0x42, 0x3c, 0x55, 0x14, 0xac, 0x1a, 0xfe, 0x39, 0xfd, 0x75, 0x80, 0x90, 0x27, + 0x2f, 0x1d, 0x1d, 0x21, 0x04, 0xf4, 0x91, 0x08, 0x21, 0x34, 0xa7, 0xde, 0x1b, 0x18, 0x6d, 0xf1, + 0x78, 0xc2, 0x88, 0xe7, 0xb3, 0x97, 0x6b, 0xb6, 0x19, 0x61, 0x21, 0x88, 0xe8, 0x54, 0x9d, 0x51, + 0xfe, 0xb5, 0x04, 0xa7, 0x87, 0xd4, 0xcf, 0x6f, 0xb2, 0x01, 0xa8, 0x17, 0x2a, 0xa4, 0xc3, 0x28, + 0xb6, 0x86, 0xef, 0x4d, 0x9b, 0xe7, 0x7a, 0x43, 0x96, 0xfb, 0xed, 0x59, 0x7d, 0xb8, 0xe9, 0xf9, + 0x0d, 0x09, 0x16, 0xc2, 0x0d, 0xf0, 0xbb, 0xd2, 0x84, 0x5c, 0xb8, 0x6a, 0xde, 0x89, 0x77, 0x4d, + 0xd3, 0x89, 0x70, 0xfb, 0x23, 0x4c, 0xd0, 0xcd, 0x60, 0x8a, 0xb3, 0x3c, 0xde, 0x53, 0x53, 0x0b, + 0x45, 0x34, 0x6c, 0xe4, 0x54, 0x67, 0x63, 0xf3, 0x47, 0x12, 0x24, 0xb6, 0x6c, 0xbb, 0x83, 0xde, + 0x0f, 0x73, 0x96, 0xed, 0x69, 0x64, 0x3a, 0xe0, 0xb6, 0xc6, 0x03, 0x7b, 0x66, 0x3e, 0xeb, 0x47, + 0xca, 0xea, 0x4b, 0x6f, 0x2d, 0x0e, 0x53, 0x8e, 0x7a, 0xc0, 0xbc, 0x68, 0xd9, 0x5e, 0x95, 0x22, + 0xb5, 0x58, 0xec, 0xbf, 0x0b, 0xf9, 0x68, 0x75, 0xcc, 0xc4, 0x56, 0x26, 0x55, 0x97, 0x9f, 0x58, + 0x55, 0x6e, 0x27, 0x54, 0x0f, 0x7b, 0x8f, 0xf8, 0x4f, 0xc8, 0xc8, 0xbd, 0x0a, 0xf2, 0xcd, 0xc1, + 0x03, 0x47, 0x75, 0x48, 0x89, 0x03, 0x46, 0xd2, 0x94, 0x67, 0x97, 0xc2, 0xe2, 0xe4, 0xb4, 0xe7, + 0x7f, 0x5e, 0x02, 0x08, 0x92, 0x24, 0xe8, 0x71, 0x38, 0x55, 0xdd, 0xdc, 0x58, 0xd5, 0x9a, 0xad, + 0x4a, 0x6b, 0xbb, 0x19, 0xfd, 0xb3, 0x17, 0xe2, 0x21, 0x1f, 0xd7, 0xc1, 0x86, 0xb9, 0x6b, 0xe2, + 0x36, 0x7a, 0x18, 0x16, 0xa2, 0xd8, 0xe4, 0xab, 0xbe, 0x2a, 0x4b, 0xe5, 0xdc, 0x9d, 0xbb, 0x4b, + 0x69, 0xe6, 0x27, 0xe2, 0x36, 0x3a, 0x07, 0x27, 0x86, 0xf1, 0x1a, 0x1b, 0xd7, 0xe4, 0x58, 0x39, + 0x7f, 0xe7, 0xee, 0x52, 0xc6, 0x77, 0x28, 0x91, 0x02, 0x28, 0x8c, 0xc9, 0xf9, 0xc5, 0xcb, 0x70, + 0xe7, 0xee, 0x52, 0x92, 0x8d, 0x42, 0x39, 0xf1, 0xa1, 0x1f, 0x3b, 0x3b, 0x73, 0xfe, 0x9b, 0x00, + 0x1a, 0xd6, 0x6e, 0x4f, 0xa7, 0x7f, 0xfb, 0x1d, 0x95, 0xe1, 0x64, 0x63, 0xe3, 0xaa, 0x5a, 0xa9, + 0xb5, 0x1a, 0x9b, 0x1b, 0x03, 0x7f, 0xad, 0x23, 0x5a, 0xb6, 0xba, 0xb9, 0x5d, 0x5d, 0xab, 0x6b, + 0xcd, 0xc6, 0xb5, 0x0d, 0xb6, 0xf9, 0x1b, 0x29, 0x7b, 0x79, 0xa3, 0xd5, 0x58, 0xaf, 0xcb, 0xb1, + 0xea, 0xd5, 0xb1, 0x9b, 0x0b, 0x8f, 0x1f, 0xf9, 0x5c, 0x7c, 0x60, 0xf1, 0x22, 0x3b, 0x0c, 0xff, + 0x33, 0x00, 0x00, 0xff, 0xff, 0xfa, 0x45, 0x24, 0x0f, 0x01, 0xa2, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) @@ -2439,6 +2513,53 @@ func (m *HistoricalInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *HistoricalRecord) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HistoricalRecord) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *HistoricalRecord) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ValidatorHash) > 0 { + i -= len(m.ValidatorHash) + copy(dAtA[i:], m.ValidatorHash) + i = encodeVarintStaking(dAtA, i, uint64(len(m.ValidatorHash))) + i-- + dAtA[i] = 0x1a + } + if m.Time != nil { + n2, err2 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(*m.Time, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(*m.Time):]) + if err2 != nil { + return 0, err2 + } + i -= n2 + i = encodeVarintStaking(dAtA, i, uint64(n2)) + i-- + dAtA[i] = 0x12 + } + if len(m.Apphash) > 0 { + i -= len(m.Apphash) + copy(dAtA[i:], m.Apphash) + i = encodeVarintStaking(dAtA, i, uint64(len(m.Apphash))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *CommissionRates) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -2512,12 +2633,12 @@ func (m *Commission) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - n2, err2 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UpdateTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UpdateTime):]) - if err2 != nil { - return 0, err2 + n3, err3 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UpdateTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UpdateTime):]) + if err3 != nil { + return 0, err3 } - i -= n2 - i = encodeVarintStaking(dAtA, i, uint64(n2)) + i -= n3 + i = encodeVarintStaking(dAtA, i, uint64(n3)) i-- dAtA[i] = 0x12 { @@ -2612,20 +2733,20 @@ func (m *Validator) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.UnbondingIds) > 0 { - dAtA5 := make([]byte, len(m.UnbondingIds)*10) - var j4 int + dAtA6 := make([]byte, len(m.UnbondingIds)*10) + var j5 int for _, num := range m.UnbondingIds { for num >= 1<<7 { - dAtA5[j4] = uint8(uint64(num)&0x7f | 0x80) + dAtA6[j5] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j4++ + j5++ } - dAtA5[j4] = uint8(num) - j4++ + dAtA6[j5] = uint8(num) + j5++ } - i -= j4 - copy(dAtA[i:], dAtA5[:j4]) - i = encodeVarintStaking(dAtA, i, uint64(j4)) + i -= j5 + copy(dAtA[i:], dAtA6[:j5]) + i = encodeVarintStaking(dAtA, i, uint64(j5)) i-- dAtA[i] = 0x6a } @@ -2654,12 +2775,12 @@ func (m *Validator) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x52 - n7, err7 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingTime):]) - if err7 != nil { - return 0, err7 + n8, err8 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingTime):]) + if err8 != nil { + return 0, err8 } - i -= n7 - i = encodeVarintStaking(dAtA, i, uint64(n7)) + i -= n8 + i = encodeVarintStaking(dAtA, i, uint64(n8)) i-- dAtA[i] = 0x4a if m.UnbondingHeight != 0 { @@ -3069,12 +3190,12 @@ func (m *UnbondingDelegationEntry) MarshalToSizedBuffer(dAtA []byte) (int, error } i-- dAtA[i] = 0x1a - n10, err10 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):]) - if err10 != nil { - return 0, err10 + n11, err11 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):]) + if err11 != nil { + return 0, err11 } - i -= n10 - i = encodeVarintStaking(dAtA, i, uint64(n10)) + i -= n11 + i = encodeVarintStaking(dAtA, i, uint64(n11)) i-- dAtA[i] = 0x12 if m.CreationHeight != 0 { @@ -3135,12 +3256,12 @@ func (m *RedelegationEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x1a - n11, err11 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):]) - if err11 != nil { - return 0, err11 + n12, err12 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):]) + if err12 != nil { + return 0, err12 } - i -= n11 - i = encodeVarintStaking(dAtA, i, uint64(n11)) + i -= n12 + i = encodeVarintStaking(dAtA, i, uint64(n12)) i-- dAtA[i] = 0x12 if m.CreationHeight != 0 { @@ -3261,12 +3382,12 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x10 } - n12, err12 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.UnbondingTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingTime):]) - if err12 != nil { - return 0, err12 + n13, err13 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.UnbondingTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingTime):]) + if err13 != nil { + return 0, err13 } - i -= n12 - i = encodeVarintStaking(dAtA, i, uint64(n12)) + i -= n13 + i = encodeVarintStaking(dAtA, i, uint64(n13)) i-- dAtA[i] = 0xa return len(dAtA) - i, nil @@ -3513,6 +3634,27 @@ func (m *HistoricalInfo) Size() (n int) { return n } +func (m *HistoricalRecord) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Apphash) + if l > 0 { + n += 1 + l + sovStaking(uint64(l)) + } + if m.Time != nil { + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(*m.Time) + n += 1 + l + sovStaking(uint64(l)) + } + l = len(m.ValidatorHash) + if l > 0 { + n += 1 + l + sovStaking(uint64(l)) + } + return n +} + func (m *CommissionRates) Size() (n int) { if m == nil { return 0 @@ -4038,6 +4180,160 @@ func (m *HistoricalInfo) Unmarshal(dAtA []byte) error { } return nil } +func (m *HistoricalRecord) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStaking + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HistoricalRecord: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HistoricalRecord: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Apphash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStaking + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthStaking + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthStaking + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Apphash = append(m.Apphash[:0], dAtA[iNdEx:postIndex]...) + if m.Apphash == nil { + m.Apphash = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStaking + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthStaking + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthStaking + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Time == nil { + m.Time = new(time.Time) + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(m.Time, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorHash", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowStaking + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthStaking + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthStaking + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ValidatorHash = append(m.ValidatorHash[:0], dAtA[iNdEx:postIndex]...) + if m.ValidatorHash == nil { + m.ValidatorHash = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipStaking(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthStaking + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *CommissionRates) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0