From 9c0dd8bdf13a6a2009c716a4cc2b89dad48abf58 Mon Sep 17 00:00:00 2001 From: unknown unknown Date: Tue, 19 Sep 2023 10:17:56 +0200 Subject: [PATCH 1/5] add genesis --- api/cosmos/accounts/v1/genesis.pulsar.go | 1950 +++++++++++++++++ proto/cosmos/accounts/v1/genesis.proto | 20 + x/accounts/account_test.go | 26 +- x/accounts/genesis.go | 94 + x/accounts/genesis_test.go | 61 + .../internal/implementation/account_test.go | 2 +- x/accounts/internal/implementation/context.go | 5 +- .../internal/implementation/context_test.go | 4 +- x/accounts/keeper.go | 7 + x/accounts/v1/genesis.pb.go | 877 ++++++++ 10 files changed, 3041 insertions(+), 5 deletions(-) create mode 100644 api/cosmos/accounts/v1/genesis.pulsar.go create mode 100644 proto/cosmos/accounts/v1/genesis.proto create mode 100644 x/accounts/genesis.go create mode 100644 x/accounts/genesis_test.go create mode 100644 x/accounts/v1/genesis.pb.go diff --git a/api/cosmos/accounts/v1/genesis.pulsar.go b/api/cosmos/accounts/v1/genesis.pulsar.go new file mode 100644 index 000000000000..bd0a78ff512f --- /dev/null +++ b/api/cosmos/accounts/v1/genesis.pulsar.go @@ -0,0 +1,1950 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package accountsv1 + +import ( + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_GenesisState_2_list)(nil) + +type _GenesisState_2_list struct { + list *[]*GenesisState_GenesisAccount +} + +func (x *_GenesisState_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_GenesisState_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_GenesisState_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*GenesisState_GenesisAccount) + (*x.list)[i] = concreteValue +} + +func (x *_GenesisState_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*GenesisState_GenesisAccount) + *x.list = append(*x.list, concreteValue) +} + +func (x *_GenesisState_2_list) AppendMutable() protoreflect.Value { + v := new(GenesisState_GenesisAccount) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_2_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_GenesisState_2_list) NewElement() protoreflect.Value { + v := new(GenesisState_GenesisAccount) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_2_list) IsValid() bool { + return x.list != nil +} + +var ( + md_GenesisState protoreflect.MessageDescriptor + fd_GenesisState_account_number protoreflect.FieldDescriptor + fd_GenesisState_accounts protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_accounts_v1_genesis_proto_init() + md_GenesisState = File_cosmos_accounts_v1_genesis_proto.Messages().ByName("GenesisState") + fd_GenesisState_account_number = md_GenesisState.Fields().ByName("account_number") + fd_GenesisState_accounts = md_GenesisState.Fields().ByName("accounts") +} + +var _ protoreflect.Message = (*fastReflection_GenesisState)(nil) + +type fastReflection_GenesisState GenesisState + +func (x *GenesisState) ProtoReflect() protoreflect.Message { + return (*fastReflection_GenesisState)(x) +} + +func (x *GenesisState) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_accounts_v1_genesis_proto_msgTypes[0] + 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_GenesisState_messageType fastReflection_GenesisState_messageType +var _ protoreflect.MessageType = fastReflection_GenesisState_messageType{} + +type fastReflection_GenesisState_messageType struct{} + +func (x fastReflection_GenesisState_messageType) Zero() protoreflect.Message { + return (*fastReflection_GenesisState)(nil) +} +func (x fastReflection_GenesisState_messageType) New() protoreflect.Message { + return new(fastReflection_GenesisState) +} +func (x fastReflection_GenesisState_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisState +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_GenesisState) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisState +} + +// 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_GenesisState) Type() protoreflect.MessageType { + return _fastReflection_GenesisState_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_GenesisState) New() protoreflect.Message { + return new(fastReflection_GenesisState) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_GenesisState) Interface() protoreflect.ProtoMessage { + return (*GenesisState)(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_GenesisState) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.AccountNumber != uint64(0) { + value := protoreflect.ValueOfUint64(x.AccountNumber) + if !f(fd_GenesisState_account_number, value) { + return + } + } + if len(x.Accounts) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_2_list{list: &x.Accounts}) + if !f(fd_GenesisState_accounts, 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_GenesisState) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.account_number": + return x.AccountNumber != uint64(0) + case "cosmos.accounts.v1.GenesisState.accounts": + return len(x.Accounts) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState 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_GenesisState) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.account_number": + x.AccountNumber = uint64(0) + case "cosmos.accounts.v1.GenesisState.accounts": + x.Accounts = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState 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_GenesisState) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.accounts.v1.GenesisState.account_number": + value := x.AccountNumber + return protoreflect.ValueOfUint64(value) + case "cosmos.accounts.v1.GenesisState.accounts": + if len(x.Accounts) == 0 { + return protoreflect.ValueOfList(&_GenesisState_2_list{}) + } + listValue := &_GenesisState_2_list{list: &x.Accounts} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState 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_GenesisState) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.account_number": + x.AccountNumber = value.Uint() + case "cosmos.accounts.v1.GenesisState.accounts": + lv := value.List() + clv := lv.(*_GenesisState_2_list) + x.Accounts = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState 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_GenesisState) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.accounts": + if x.Accounts == nil { + x.Accounts = []*GenesisState_GenesisAccount{} + } + value := &_GenesisState_2_list{list: &x.Accounts} + return protoreflect.ValueOfList(value) + case "cosmos.accounts.v1.GenesisState.account_number": + panic(fmt.Errorf("field account_number of message cosmos.accounts.v1.GenesisState is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState 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_GenesisState) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.account_number": + return protoreflect.ValueOfUint64(uint64(0)) + case "cosmos.accounts.v1.GenesisState.accounts": + list := []*GenesisState_GenesisAccount{} + return protoreflect.ValueOfList(&_GenesisState_2_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState 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_GenesisState) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.accounts.v1.GenesisState", 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_GenesisState) 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_GenesisState) 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_GenesisState) 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_GenesisState) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*GenesisState) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.AccountNumber != 0 { + n += 1 + runtime.Sov(uint64(x.AccountNumber)) + } + if len(x.Accounts) > 0 { + for _, e := range x.Accounts { + l = options.Size(e) + 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().(*GenesisState) + 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.Accounts) > 0 { + for iNdEx := len(x.Accounts) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.Accounts[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + } + if x.AccountNumber != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.AccountNumber)) + i-- + dAtA[i] = 0x8 + } + 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().(*GenesisState) + 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: GenesisState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AccountNumber", wireType) + } + x.AccountNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.AccountNumber |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Accounts", 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 + } + x.Accounts = append(x.Accounts, &GenesisState_GenesisAccount{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Accounts[len(x.Accounts)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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 _ protoreflect.List = (*_GenesisState_GenesisAccount_3_list)(nil) + +type _GenesisState_GenesisAccount_3_list struct { + list *[]*GenesisState_GenesisAccount_KVPair +} + +func (x *_GenesisState_GenesisAccount_3_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_GenesisState_GenesisAccount_3_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_GenesisState_GenesisAccount_3_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*GenesisState_GenesisAccount_KVPair) + (*x.list)[i] = concreteValue +} + +func (x *_GenesisState_GenesisAccount_3_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*GenesisState_GenesisAccount_KVPair) + *x.list = append(*x.list, concreteValue) +} + +func (x *_GenesisState_GenesisAccount_3_list) AppendMutable() protoreflect.Value { + v := new(GenesisState_GenesisAccount_KVPair) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_GenesisAccount_3_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_GenesisState_GenesisAccount_3_list) NewElement() protoreflect.Value { + v := new(GenesisState_GenesisAccount_KVPair) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_GenesisState_GenesisAccount_3_list) IsValid() bool { + return x.list != nil +} + +var ( + md_GenesisState_GenesisAccount protoreflect.MessageDescriptor + fd_GenesisState_GenesisAccount_address protoreflect.FieldDescriptor + fd_GenesisState_GenesisAccount_account_type protoreflect.FieldDescriptor + fd_GenesisState_GenesisAccount_state protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_accounts_v1_genesis_proto_init() + md_GenesisState_GenesisAccount = File_cosmos_accounts_v1_genesis_proto.Messages().ByName("GenesisState").Messages().ByName("GenesisAccount") + fd_GenesisState_GenesisAccount_address = md_GenesisState_GenesisAccount.Fields().ByName("address") + fd_GenesisState_GenesisAccount_account_type = md_GenesisState_GenesisAccount.Fields().ByName("account_type") + fd_GenesisState_GenesisAccount_state = md_GenesisState_GenesisAccount.Fields().ByName("state") +} + +var _ protoreflect.Message = (*fastReflection_GenesisState_GenesisAccount)(nil) + +type fastReflection_GenesisState_GenesisAccount GenesisState_GenesisAccount + +func (x *GenesisState_GenesisAccount) ProtoReflect() protoreflect.Message { + return (*fastReflection_GenesisState_GenesisAccount)(x) +} + +func (x *GenesisState_GenesisAccount) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_accounts_v1_genesis_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_GenesisState_GenesisAccount_messageType fastReflection_GenesisState_GenesisAccount_messageType +var _ protoreflect.MessageType = fastReflection_GenesisState_GenesisAccount_messageType{} + +type fastReflection_GenesisState_GenesisAccount_messageType struct{} + +func (x fastReflection_GenesisState_GenesisAccount_messageType) Zero() protoreflect.Message { + return (*fastReflection_GenesisState_GenesisAccount)(nil) +} +func (x fastReflection_GenesisState_GenesisAccount_messageType) New() protoreflect.Message { + return new(fastReflection_GenesisState_GenesisAccount) +} +func (x fastReflection_GenesisState_GenesisAccount_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisState_GenesisAccount +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_GenesisState_GenesisAccount) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisState_GenesisAccount +} + +// 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_GenesisState_GenesisAccount) Type() protoreflect.MessageType { + return _fastReflection_GenesisState_GenesisAccount_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_GenesisState_GenesisAccount) New() protoreflect.Message { + return new(fastReflection_GenesisState_GenesisAccount) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_GenesisState_GenesisAccount) Interface() protoreflect.ProtoMessage { + return (*GenesisState_GenesisAccount)(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_GenesisState_GenesisAccount) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Address != "" { + value := protoreflect.ValueOfString(x.Address) + if !f(fd_GenesisState_GenesisAccount_address, value) { + return + } + } + if x.AccountType != "" { + value := protoreflect.ValueOfString(x.AccountType) + if !f(fd_GenesisState_GenesisAccount_account_type, value) { + return + } + } + if len(x.State) != 0 { + value := protoreflect.ValueOfList(&_GenesisState_GenesisAccount_3_list{list: &x.State}) + if !f(fd_GenesisState_GenesisAccount_state, 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_GenesisState_GenesisAccount) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": + return x.Address != "" + case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": + return x.AccountType != "" + case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": + return len(x.State) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount 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_GenesisState_GenesisAccount) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": + x.Address = "" + case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": + x.AccountType = "" + case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": + x.State = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount 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_GenesisState_GenesisAccount) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": + value := x.Address + return protoreflect.ValueOfString(value) + case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": + value := x.AccountType + return protoreflect.ValueOfString(value) + case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": + if len(x.State) == 0 { + return protoreflect.ValueOfList(&_GenesisState_GenesisAccount_3_list{}) + } + listValue := &_GenesisState_GenesisAccount_3_list{list: &x.State} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount 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_GenesisState_GenesisAccount) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": + x.Address = value.Interface().(string) + case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": + x.AccountType = value.Interface().(string) + case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": + lv := value.List() + clv := lv.(*_GenesisState_GenesisAccount_3_list) + x.State = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount 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_GenesisState_GenesisAccount) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": + if x.State == nil { + x.State = []*GenesisState_GenesisAccount_KVPair{} + } + value := &_GenesisState_GenesisAccount_3_list{list: &x.State} + return protoreflect.ValueOfList(value) + case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": + panic(fmt.Errorf("field address of message cosmos.accounts.v1.GenesisState.GenesisAccount is not mutable")) + case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": + panic(fmt.Errorf("field account_type of message cosmos.accounts.v1.GenesisState.GenesisAccount is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount 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_GenesisState_GenesisAccount) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": + return protoreflect.ValueOfString("") + case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": + return protoreflect.ValueOfString("") + case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": + list := []*GenesisState_GenesisAccount_KVPair{} + return protoreflect.ValueOfList(&_GenesisState_GenesisAccount_3_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount 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_GenesisState_GenesisAccount) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.accounts.v1.GenesisState.GenesisAccount", 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_GenesisState_GenesisAccount) 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_GenesisState_GenesisAccount) 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_GenesisState_GenesisAccount) 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_GenesisState_GenesisAccount) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*GenesisState_GenesisAccount) + 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.Address) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.AccountType) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if len(x.State) > 0 { + for _, e := range x.State { + l = options.Size(e) + 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().(*GenesisState_GenesisAccount) + 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.State) > 0 { + for iNdEx := len(x.State) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.State[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + } + if len(x.AccountType) > 0 { + i -= len(x.AccountType) + copy(dAtA[i:], x.AccountType) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.AccountType))) + i-- + dAtA[i] = 0x12 + } + if len(x.Address) > 0 { + i -= len(x.Address) + copy(dAtA[i:], x.Address) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Address))) + 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().(*GenesisState_GenesisAccount) + 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: GenesisState_GenesisAccount: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState_GenesisAccount: 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 Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field AccountType", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.AccountType = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field State", 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 + } + x.State = append(x.State, &GenesisState_GenesisAccount_KVPair{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.State[len(x.State)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + 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_GenesisState_GenesisAccount_KVPair protoreflect.MessageDescriptor + fd_GenesisState_GenesisAccount_KVPair_key protoreflect.FieldDescriptor + fd_GenesisState_GenesisAccount_KVPair_value protoreflect.FieldDescriptor +) + +func init() { + file_cosmos_accounts_v1_genesis_proto_init() + md_GenesisState_GenesisAccount_KVPair = File_cosmos_accounts_v1_genesis_proto.Messages().ByName("GenesisState").Messages().ByName("GenesisAccount").Messages().ByName("KVPair") + fd_GenesisState_GenesisAccount_KVPair_key = md_GenesisState_GenesisAccount_KVPair.Fields().ByName("key") + fd_GenesisState_GenesisAccount_KVPair_value = md_GenesisState_GenesisAccount_KVPair.Fields().ByName("value") +} + +var _ protoreflect.Message = (*fastReflection_GenesisState_GenesisAccount_KVPair)(nil) + +type fastReflection_GenesisState_GenesisAccount_KVPair GenesisState_GenesisAccount_KVPair + +func (x *GenesisState_GenesisAccount_KVPair) ProtoReflect() protoreflect.Message { + return (*fastReflection_GenesisState_GenesisAccount_KVPair)(x) +} + +func (x *GenesisState_GenesisAccount_KVPair) slowProtoReflect() protoreflect.Message { + mi := &file_cosmos_accounts_v1_genesis_proto_msgTypes[2] + 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_GenesisState_GenesisAccount_KVPair_messageType fastReflection_GenesisState_GenesisAccount_KVPair_messageType +var _ protoreflect.MessageType = fastReflection_GenesisState_GenesisAccount_KVPair_messageType{} + +type fastReflection_GenesisState_GenesisAccount_KVPair_messageType struct{} + +func (x fastReflection_GenesisState_GenesisAccount_KVPair_messageType) Zero() protoreflect.Message { + return (*fastReflection_GenesisState_GenesisAccount_KVPair)(nil) +} +func (x fastReflection_GenesisState_GenesisAccount_KVPair_messageType) New() protoreflect.Message { + return new(fastReflection_GenesisState_GenesisAccount_KVPair) +} +func (x fastReflection_GenesisState_GenesisAccount_KVPair_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisState_GenesisAccount_KVPair +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisState_GenesisAccount_KVPair +} + +// 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_GenesisState_GenesisAccount_KVPair) Type() protoreflect.MessageType { + return _fastReflection_GenesisState_GenesisAccount_KVPair_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_GenesisState_GenesisAccount_KVPair) New() protoreflect.Message { + return new(fastReflection_GenesisState_GenesisAccount_KVPair) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Interface() protoreflect.ProtoMessage { + return (*GenesisState_GenesisAccount_KVPair)(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_GenesisState_GenesisAccount_KVPair) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.Key) != 0 { + value := protoreflect.ValueOfBytes(x.Key) + if !f(fd_GenesisState_GenesisAccount_KVPair_key, value) { + return + } + } + if len(x.Value) != 0 { + value := protoreflect.ValueOfBytes(x.Value) + if !f(fd_GenesisState_GenesisAccount_KVPair_value, 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_GenesisState_GenesisAccount_KVPair) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": + return len(x.Key) != 0 + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": + return len(x.Value) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair 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_GenesisState_GenesisAccount_KVPair) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": + x.Key = nil + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": + x.Value = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair 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_GenesisState_GenesisAccount_KVPair) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": + value := x.Key + return protoreflect.ValueOfBytes(value) + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": + value := x.Value + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair 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_GenesisState_GenesisAccount_KVPair) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": + x.Key = value.Bytes() + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": + x.Value = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair 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_GenesisState_GenesisAccount_KVPair) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": + panic(fmt.Errorf("field key of message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair is not mutable")) + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": + panic(fmt.Errorf("field value of message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair 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_GenesisState_GenesisAccount_KVPair) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": + return protoreflect.ValueOfBytes(nil) + case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + } + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair 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_GenesisState_GenesisAccount_KVPair) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair", 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_GenesisState_GenesisAccount_KVPair) 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_GenesisState_GenesisAccount_KVPair) 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_GenesisState_GenesisAccount_KVPair) 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_GenesisState_GenesisAccount_KVPair) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*GenesisState_GenesisAccount_KVPair) + 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.Key) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.Value) + 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().(*GenesisState_GenesisAccount_KVPair) + 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.Value) > 0 { + i -= len(x.Value) + copy(dAtA[i:], x.Value) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Value))) + i-- + dAtA[i] = 0x12 + } + if len(x.Key) > 0 { + i -= len(x.Key) + copy(dAtA[i:], x.Key) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Key))) + 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().(*GenesisState_GenesisAccount_KVPair) + 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: GenesisState_GenesisAccount_KVPair: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState_GenesisAccount_KVPair: 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 Key", 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.Key = append(x.Key[:0], dAtA[iNdEx:postIndex]...) + if x.Key == nil { + x.Key = []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 Value", 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.Value = append(x.Value[:0], dAtA[iNdEx:postIndex]...) + if x.Value == nil { + x.Value = []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, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: cosmos/accounts/v1/genesis.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// GenesisState defines the accounts' module's genesis state. +type GenesisState struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AccountNumber uint64 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + Accounts []*GenesisState_GenesisAccount `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty"` +} + +func (x *GenesisState) Reset() { + *x = GenesisState{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_accounts_v1_genesis_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenesisState) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenesisState) ProtoMessage() {} + +// Deprecated: Use GenesisState.ProtoReflect.Descriptor instead. +func (*GenesisState) Descriptor() ([]byte, []int) { + return file_cosmos_accounts_v1_genesis_proto_rawDescGZIP(), []int{0} +} + +func (x *GenesisState) GetAccountNumber() uint64 { + if x != nil { + return x.AccountNumber + } + return 0 +} + +func (x *GenesisState) GetAccounts() []*GenesisState_GenesisAccount { + if x != nil { + return x.Accounts + } + return nil +} + +type GenesisState_GenesisAccount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + AccountType string `protobuf:"bytes,2,opt,name=account_type,json=accountType,proto3" json:"account_type,omitempty"` + State []*GenesisState_GenesisAccount_KVPair `protobuf:"bytes,3,rep,name=state,proto3" json:"state,omitempty"` +} + +func (x *GenesisState_GenesisAccount) Reset() { + *x = GenesisState_GenesisAccount{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_accounts_v1_genesis_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenesisState_GenesisAccount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenesisState_GenesisAccount) ProtoMessage() {} + +// Deprecated: Use GenesisState_GenesisAccount.ProtoReflect.Descriptor instead. +func (*GenesisState_GenesisAccount) Descriptor() ([]byte, []int) { + return file_cosmos_accounts_v1_genesis_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *GenesisState_GenesisAccount) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *GenesisState_GenesisAccount) GetAccountType() string { + if x != nil { + return x.AccountType + } + return "" +} + +func (x *GenesisState_GenesisAccount) GetState() []*GenesisState_GenesisAccount_KVPair { + if x != nil { + return x.State + } + return nil +} + +type GenesisState_GenesisAccount_KVPair struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *GenesisState_GenesisAccount_KVPair) Reset() { + *x = GenesisState_GenesisAccount_KVPair{} + if protoimpl.UnsafeEnabled { + mi := &file_cosmos_accounts_v1_genesis_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenesisState_GenesisAccount_KVPair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenesisState_GenesisAccount_KVPair) ProtoMessage() {} + +// Deprecated: Use GenesisState_GenesisAccount_KVPair.ProtoReflect.Descriptor instead. +func (*GenesisState_GenesisAccount_KVPair) Descriptor() ([]byte, []int) { + return file_cosmos_accounts_v1_genesis_proto_rawDescGZIP(), []int{0, 0, 0} +} + +func (x *GenesisState_GenesisAccount_KVPair) GetKey() []byte { + if x != nil { + return x.Key + } + return nil +} + +func (x *GenesisState_GenesisAccount_KVPair) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +var File_cosmos_accounts_v1_genesis_proto protoreflect.FileDescriptor + +var file_cosmos_accounts_v1_genesis_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x22, 0xd2, 0x02, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, + 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4b, + 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0xcd, 0x01, 0x0a, 0x0e, + 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x6e, + 0x65, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x4b, 0x56, 0x50, 0x61, + 0x69, 0x72, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x30, 0x0a, 0x06, 0x4b, 0x56, 0x50, + 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0xc0, 0x01, 0x0a, 0x16, + 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, 0x12, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x3a, 0x3a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_cosmos_accounts_v1_genesis_proto_rawDescOnce sync.Once + file_cosmos_accounts_v1_genesis_proto_rawDescData = file_cosmos_accounts_v1_genesis_proto_rawDesc +) + +func file_cosmos_accounts_v1_genesis_proto_rawDescGZIP() []byte { + file_cosmos_accounts_v1_genesis_proto_rawDescOnce.Do(func() { + file_cosmos_accounts_v1_genesis_proto_rawDescData = protoimpl.X.CompressGZIP(file_cosmos_accounts_v1_genesis_proto_rawDescData) + }) + return file_cosmos_accounts_v1_genesis_proto_rawDescData +} + +var file_cosmos_accounts_v1_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_cosmos_accounts_v1_genesis_proto_goTypes = []interface{}{ + (*GenesisState)(nil), // 0: cosmos.accounts.v1.GenesisState + (*GenesisState_GenesisAccount)(nil), // 1: cosmos.accounts.v1.GenesisState.GenesisAccount + (*GenesisState_GenesisAccount_KVPair)(nil), // 2: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair +} +var file_cosmos_accounts_v1_genesis_proto_depIdxs = []int32{ + 1, // 0: cosmos.accounts.v1.GenesisState.accounts:type_name -> cosmos.accounts.v1.GenesisState.GenesisAccount + 2, // 1: cosmos.accounts.v1.GenesisState.GenesisAccount.state:type_name -> cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_cosmos_accounts_v1_genesis_proto_init() } +func file_cosmos_accounts_v1_genesis_proto_init() { + if File_cosmos_accounts_v1_genesis_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_cosmos_accounts_v1_genesis_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisState); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_accounts_v1_genesis_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisState_GenesisAccount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_cosmos_accounts_v1_genesis_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenesisState_GenesisAccount_KVPair); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cosmos_accounts_v1_genesis_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_cosmos_accounts_v1_genesis_proto_goTypes, + DependencyIndexes: file_cosmos_accounts_v1_genesis_proto_depIdxs, + MessageInfos: file_cosmos_accounts_v1_genesis_proto_msgTypes, + }.Build() + File_cosmos_accounts_v1_genesis_proto = out.File + file_cosmos_accounts_v1_genesis_proto_rawDesc = nil + file_cosmos_accounts_v1_genesis_proto_goTypes = nil + file_cosmos_accounts_v1_genesis_proto_depIdxs = nil +} diff --git a/proto/cosmos/accounts/v1/genesis.proto b/proto/cosmos/accounts/v1/genesis.proto new file mode 100644 index 000000000000..db98da839550 --- /dev/null +++ b/proto/cosmos/accounts/v1/genesis.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; + +package cosmos.accounts.v1; + +option go_package = "cosmossdk.io/x/accounts/v1"; + +// GenesisState defines the accounts' module's genesis state. +message GenesisState { + uint64 account_number = 1; + repeated GenesisAccount accounts = 2; + message GenesisAccount { + string address = 1; + string account_type = 2; + repeated KVPair state = 3; + message KVPair { + bytes key = 1; + bytes value = 2; + } + } +} \ No newline at end of file diff --git a/x/accounts/account_test.go b/x/accounts/account_test.go index 02af5e7b6236..e855d7ad58c8 100644 --- a/x/accounts/account_test.go +++ b/x/accounts/account_test.go @@ -9,12 +9,21 @@ import ( bankv1beta1 "cosmossdk.io/api/cosmos/bank/v1beta1" basev1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" + "cosmossdk.io/collections" "cosmossdk.io/x/accounts/internal/implementation" ) var _ implementation.Account = (*TestAccount)(nil) -type TestAccount struct{} +func NewTestAccount(sb *collections.SchemaBuilder) *TestAccount { + return &TestAccount{ + Counter: collections.NewSequence(sb, collections.NewPrefix(0), "counter"), + } +} + +type TestAccount struct { + Counter collections.Sequence +} func (t TestAccount) RegisterInitHandler(builder *implementation.InitBuilder) { implementation.RegisterInitHandler(builder, func(ctx context.Context, _ *emptypb.Empty) (*emptypb.Empty, error) { @@ -62,6 +71,11 @@ func (t TestAccount) RegisterExecuteHandlers(builder *implementation.ExecuteBuil return &emptypb.Empty{}, nil }) + + // genesis testing + implementation.RegisterExecuteHandler(builder, func(ctx context.Context, req *wrapperspb.UInt64Value) (*emptypb.Empty, error) { + return new(emptypb.Empty), t.Counter.Set(ctx, req.Value) + }) } func (t TestAccount) RegisterQueryHandlers(builder *implementation.QueryBuilder) { @@ -90,4 +104,14 @@ func (t TestAccount) RegisterQueryHandlers(builder *implementation.QueryBuilder) } return wrapperspb.Int64(amt), nil }) + + // genesis testing; DoubleValue does not make sense as a request type for this query, but empty is already taken + // and this is only used for testing. + implementation.RegisterQueryHandler(builder, func(ctx context.Context, _ *wrapperspb.DoubleValue) (*wrapperspb.UInt64Value, error) { + v, err := t.Counter.Peek(ctx) + if err != nil { + return nil, err + } + return &wrapperspb.UInt64Value{Value: v}, nil + }) } diff --git a/x/accounts/genesis.go b/x/accounts/genesis.go new file mode 100644 index 000000000000..d57688801d3a --- /dev/null +++ b/x/accounts/genesis.go @@ -0,0 +1,94 @@ +package accounts + +import ( + "context" + "fmt" + + "cosmossdk.io/collections" + v1 "cosmossdk.io/x/accounts/v1" +) + +func (k Keeper) ExportState(ctx context.Context) (*v1.GenesisState, error) { + genState := &v1.GenesisState{} + + // get account number + accountNumber, err := k.AccountNumber.Peek(ctx) + if err != nil { + return nil, err + } + + genState.AccountNumber = accountNumber + + err = k.AccountsByType.Walk(ctx, nil, func(key []byte, value string) (stop bool, err error) { + accState, err := k.exportAccount(ctx, key, value) + if err != nil { + return true, err + } + genState.Accounts = append(genState.Accounts, accState) + return false, nil + }) + if err != nil { + return nil, err + } + + return genState, nil +} + +func (k Keeper) exportAccount(ctx context.Context, addr []byte, accType string) (*v1.GenesisState_GenesisAccount, error) { + addrString, err := k.addressCodec.BytesToString(addr) + if err != nil { + return nil, err + } + account := &v1.GenesisState_GenesisAccount{ + Address: addrString, + AccountType: accType, + } + rng := new(collections.Range[[]byte]). + Prefix(addr) + err = k.AccountsState.Walk(ctx, rng, func(key, value []byte) (stop bool, err error) { + account.State = append(account.State, &v1.GenesisState_GenesisAccount_KVPair{ + Key: key, + Value: value, + }) + return false, nil + }) + if err != nil { + return nil, err + } + return account, nil +} + +func (k Keeper) ImportState(ctx context.Context, genState *v1.GenesisState) error { + err := k.AccountNumber.Set(ctx, genState.AccountNumber) + if err != nil { + return err + } + + // import accounts + for _, acc := range genState.Accounts { + err = k.importAccount(ctx, acc) + if err != nil { + return fmt.Errorf("%w: %s", err, acc.Address) + } + } + return nil +} + +func (k Keeper) importAccount(ctx context.Context, acc *v1.GenesisState_GenesisAccount) error { + // TODO: maybe check if impl exists? + addrBytes, err := k.addressCodec.StringToBytes(acc.Address) + if err != nil { + return err + } + err = k.AccountsByType.Set(ctx, addrBytes, acc.AccountType) + if err != nil { + return err + } + for _, kv := range acc.State { + err = k.AccountsState.Set(ctx, kv.Key, kv.Value) + if err != nil { + return err + } + } + return nil +} diff --git a/x/accounts/genesis_test.go b/x/accounts/genesis_test.go new file mode 100644 index 000000000000..981029f4e893 --- /dev/null +++ b/x/accounts/genesis_test.go @@ -0,0 +1,61 @@ +package accounts + +import ( + "context" + "testing" + + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/emptypb" + "google.golang.org/protobuf/types/known/wrapperspb" + + bankv1beta1 "cosmossdk.io/api/cosmos/bank/v1beta1" + "cosmossdk.io/collections" + "cosmossdk.io/collections/colltest" + "cosmossdk.io/x/accounts/internal/implementation" +) + +func TestGenesis(t *testing.T) { + sb := collections.NewSchemaBuilderFromAccessor(implementation.OpenKVStore) + acc := NewTestAccount(sb) + + k, ctx := newKeeper(t, map[string]implementation.Account{ + "test": acc, + }) + k.queryModuleFunc = func(ctx context.Context, _ proto.Message) (proto.Message, error) { + return &bankv1beta1.QueryBalanceResponse{}, nil + } + + // we init two accounts of the same type + + // we set counter to 10 + _, addr1, err := k.Init(ctx, "test", []byte("sender"), &emptypb.Empty{}) + require.NoError(t, err) + _, err = k.Execute(ctx, addr1, []byte("sender"), &wrapperspb.UInt64Value{Value: 10}) + require.NoError(t, err) + + // we set counter to 20 + _, addr2, err := k.Init(ctx, "test", []byte("sender"), &emptypb.Empty{}) + require.NoError(t, err) + _, err = k.Execute(ctx, addr2, []byte("sender"), &wrapperspb.UInt64Value{Value: 20}) + require.NoError(t, err) + + // export state + state, err := k.ExportState(ctx) + require.NoError(t, err) + + // reset state + _, ctx = colltest.MockStore() + err = k.ImportState(ctx, state) + require.NoError(t, err) + + // if genesis import went fine, we should be able to query the accounts + // and get the expected values. + resp, err := k.Query(ctx, addr1, &wrapperspb.DoubleValue{}) + require.NoError(t, err) + require.Equal(t, &wrapperspb.UInt64Value{Value: 10}, resp) + + resp, err = k.Query(ctx, addr2, &wrapperspb.DoubleValue{}) + require.NoError(t, err) + require.Equal(t, &wrapperspb.UInt64Value{Value: 20}, resp) +} diff --git a/x/accounts/internal/implementation/account_test.go b/x/accounts/internal/implementation/account_test.go index 4f4fe5e0b491..7654ea1d261c 100644 --- a/x/accounts/internal/implementation/account_test.go +++ b/x/accounts/internal/implementation/account_test.go @@ -46,7 +46,7 @@ func (t TestAccount) RegisterExecuteHandlers(builder *ExecuteBuilder) { }) } -func (TestAccount) RegisterQueryHandlers(builder *QueryBuilder) { +func (t TestAccount) RegisterQueryHandlers(builder *QueryBuilder) { RegisterQueryHandler(builder, func(_ context.Context, req *wrapperspb.StringValue) (*wrapperspb.StringValue, error) { return &wrapperspb.StringValue{Value: req.Value + "query-echo"}, nil }) diff --git a/x/accounts/internal/implementation/context.go b/x/accounts/internal/implementation/context.go index fe3bb8e26d8c..041f97e4a0c1 100644 --- a/x/accounts/internal/implementation/context.go +++ b/x/accounts/internal/implementation/context.go @@ -8,12 +8,15 @@ import ( "google.golang.org/protobuf/proto" + "cosmossdk.io/collections" "cosmossdk.io/core/store" "cosmossdk.io/x/accounts/internal/prefixstore" ) var errUnauthorized = errors.New("unauthorized") +var AccountStatePrefix = collections.NewPrefix(255) + type contextKey struct{} type contextValue struct { @@ -41,7 +44,7 @@ func MakeAccountContext( moduleQuery func(ctx context.Context, msg proto.Message) (proto.Message, error), ) context.Context { return context.WithValue(ctx, contextKey{}, contextValue{ - store: prefixstore.New(storeSvc.OpenKVStore(ctx), accountAddr), + store: prefixstore.New(storeSvc.OpenKVStore(ctx), append(AccountStatePrefix, accountAddr...)), sender: sender, whoami: accountAddr, originalContext: ctx, diff --git a/x/accounts/internal/implementation/context_test.go b/x/accounts/internal/implementation/context_test.go index a82df04dee7f..39f40e97e589 100644 --- a/x/accounts/internal/implementation/context_test.go +++ b/x/accounts/internal/implementation/context_test.go @@ -38,8 +38,8 @@ func TestMakeAccountContext(t *testing.T) { // this store is the global x/accounts module store. store := storeService.OpenKVStore(originalContext) - // now we want the value to be store in the following accounts prefix (accountAddr + itemPrefix) - value, err := store.Get(append(accountAddr, itemPrefix...)) + // now we want the value to be store in the following accounts prefix (AccountsStatePrefix + accountAddr + itemPrefix) + value, err := store.Get(append(AccountStatePrefix, append(accountAddr, itemPrefix...)...)) require.NoError(t, err) require.Equal(t, []byte{0, 0, 0, 0, 0, 0, 3, 232}, value) diff --git a/x/accounts/keeper.go b/x/accounts/keeper.go index 040fcb00425c..4ffeb81f2362 100644 --- a/x/accounts/keeper.go +++ b/x/accounts/keeper.go @@ -43,6 +43,7 @@ func NewKeeper( Schema: collections.Schema{}, AccountNumber: collections.NewSequence(sb, AccountNumberKey, "account_number"), AccountsByType: collections.NewMap(sb, AccountTypeKeyPrefix, "accounts_by_type", collections.BytesKey, collections.StringValue), + AccountsState: collections.NewMap(sb, implementation.AccountStatePrefix, "accounts_state", collections.BytesKey, collections.BytesValue), } // make accounts implementation @@ -77,6 +78,12 @@ type Keeper struct { AccountNumber collections.Sequence // AccountsByType maps account address to their implementation. AccountsByType collections.Map[[]byte, string] + + // AccountsState keeps track of the state of each account. + // NOTE: this is only used for genesis import and export. + // Contracts set and get their own state but this helps providing a nice mapping + // between: (contract address, contract state key) => contract state value. + AccountsState collections.Map[[]byte, []byte] } // Init creates a new account of the given type. diff --git a/x/accounts/v1/genesis.pb.go b/x/accounts/v1/genesis.pb.go new file mode 100644 index 000000000000..a98191c94be5 --- /dev/null +++ b/x/accounts/v1/genesis.pb.go @@ -0,0 +1,877 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: cosmos/accounts/v1/genesis.proto + +package v1 + +import ( + fmt "fmt" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +// GenesisState defines the accounts' module's genesis state. +type GenesisState struct { + AccountNumber uint64 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + Accounts []*GenesisState_GenesisAccount `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty"` +} + +func (m *GenesisState) Reset() { *m = GenesisState{} } +func (m *GenesisState) String() string { return proto.CompactTextString(m) } +func (*GenesisState) ProtoMessage() {} +func (*GenesisState) Descriptor() ([]byte, []int) { + return fileDescriptor_409859d32eae9438, []int{0} +} +func (m *GenesisState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GenesisState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GenesisState.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 *GenesisState) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenesisState.Merge(m, src) +} +func (m *GenesisState) XXX_Size() int { + return m.Size() +} +func (m *GenesisState) XXX_DiscardUnknown() { + xxx_messageInfo_GenesisState.DiscardUnknown(m) +} + +var xxx_messageInfo_GenesisState proto.InternalMessageInfo + +func (m *GenesisState) GetAccountNumber() uint64 { + if m != nil { + return m.AccountNumber + } + return 0 +} + +func (m *GenesisState) GetAccounts() []*GenesisState_GenesisAccount { + if m != nil { + return m.Accounts + } + return nil +} + +type GenesisState_GenesisAccount struct { + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + AccountType string `protobuf:"bytes,2,opt,name=account_type,json=accountType,proto3" json:"account_type,omitempty"` + State []*GenesisState_GenesisAccount_KVPair `protobuf:"bytes,3,rep,name=state,proto3" json:"state,omitempty"` +} + +func (m *GenesisState_GenesisAccount) Reset() { *m = GenesisState_GenesisAccount{} } +func (m *GenesisState_GenesisAccount) String() string { return proto.CompactTextString(m) } +func (*GenesisState_GenesisAccount) ProtoMessage() {} +func (*GenesisState_GenesisAccount) Descriptor() ([]byte, []int) { + return fileDescriptor_409859d32eae9438, []int{0, 0} +} +func (m *GenesisState_GenesisAccount) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GenesisState_GenesisAccount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GenesisState_GenesisAccount.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 *GenesisState_GenesisAccount) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenesisState_GenesisAccount.Merge(m, src) +} +func (m *GenesisState_GenesisAccount) XXX_Size() int { + return m.Size() +} +func (m *GenesisState_GenesisAccount) XXX_DiscardUnknown() { + xxx_messageInfo_GenesisState_GenesisAccount.DiscardUnknown(m) +} + +var xxx_messageInfo_GenesisState_GenesisAccount proto.InternalMessageInfo + +func (m *GenesisState_GenesisAccount) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +func (m *GenesisState_GenesisAccount) GetAccountType() string { + if m != nil { + return m.AccountType + } + return "" +} + +func (m *GenesisState_GenesisAccount) GetState() []*GenesisState_GenesisAccount_KVPair { + if m != nil { + return m.State + } + return nil +} + +type GenesisState_GenesisAccount_KVPair struct { + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *GenesisState_GenesisAccount_KVPair) Reset() { *m = GenesisState_GenesisAccount_KVPair{} } +func (m *GenesisState_GenesisAccount_KVPair) String() string { return proto.CompactTextString(m) } +func (*GenesisState_GenesisAccount_KVPair) ProtoMessage() {} +func (*GenesisState_GenesisAccount_KVPair) Descriptor() ([]byte, []int) { + return fileDescriptor_409859d32eae9438, []int{0, 0, 0} +} +func (m *GenesisState_GenesisAccount_KVPair) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GenesisState_GenesisAccount_KVPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GenesisState_GenesisAccount_KVPair.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 *GenesisState_GenesisAccount_KVPair) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenesisState_GenesisAccount_KVPair.Merge(m, src) +} +func (m *GenesisState_GenesisAccount_KVPair) XXX_Size() int { + return m.Size() +} +func (m *GenesisState_GenesisAccount_KVPair) XXX_DiscardUnknown() { + xxx_messageInfo_GenesisState_GenesisAccount_KVPair.DiscardUnknown(m) +} + +var xxx_messageInfo_GenesisState_GenesisAccount_KVPair proto.InternalMessageInfo + +func (m *GenesisState_GenesisAccount_KVPair) GetKey() []byte { + if m != nil { + return m.Key + } + return nil +} + +func (m *GenesisState_GenesisAccount_KVPair) GetValue() []byte { + if m != nil { + return m.Value + } + return nil +} + +func init() { + proto.RegisterType((*GenesisState)(nil), "cosmos.accounts.v1.GenesisState") + proto.RegisterType((*GenesisState_GenesisAccount)(nil), "cosmos.accounts.v1.GenesisState.GenesisAccount") + proto.RegisterType((*GenesisState_GenesisAccount_KVPair)(nil), "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair") +} + +func init() { proto.RegisterFile("cosmos/accounts/v1/genesis.proto", fileDescriptor_409859d32eae9438) } + +var fileDescriptor_409859d32eae9438 = []byte{ + // 286 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0xce, 0x2f, 0xce, + 0xcd, 0x2f, 0xd6, 0x4f, 0x4c, 0x4e, 0xce, 0x2f, 0xcd, 0x2b, 0x29, 0xd6, 0x2f, 0x33, 0xd4, 0x4f, + 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x82, 0xa8, + 0xd0, 0x83, 0xa9, 0xd0, 0x2b, 0x33, 0x54, 0xba, 0xc4, 0xc4, 0xc5, 0xe3, 0x0e, 0x51, 0x15, 0x5c, + 0x92, 0x58, 0x92, 0x2a, 0xa4, 0xca, 0xc5, 0x07, 0x95, 0x8f, 0xcf, 0x2b, 0xcd, 0x4d, 0x4a, 0x2d, + 0x92, 0x60, 0x54, 0x60, 0xd4, 0x60, 0x09, 0xe2, 0x85, 0x8a, 0xfa, 0x81, 0x05, 0x85, 0xbc, 0xb9, + 0x38, 0x60, 0xc6, 0x48, 0x30, 0x29, 0x30, 0x6b, 0x70, 0x1b, 0xe9, 0xeb, 0x61, 0x1a, 0xaf, 0x87, + 0x6c, 0x34, 0x8c, 0xe3, 0x08, 0x91, 0x0f, 0x82, 0x1b, 0x20, 0x75, 0x96, 0x91, 0x8b, 0x0f, 0x55, + 0x52, 0x48, 0x82, 0x8b, 0x3d, 0x31, 0x25, 0xa5, 0x28, 0xb5, 0xb8, 0x18, 0x6c, 0x3f, 0x67, 0x10, + 0x8c, 0x2b, 0xa4, 0xc8, 0xc5, 0x03, 0x73, 0x60, 0x49, 0x65, 0x41, 0xaa, 0x04, 0x13, 0x58, 0x9a, + 0x1b, 0x2a, 0x16, 0x52, 0x59, 0x90, 0x2a, 0xe4, 0xc3, 0xc5, 0x5a, 0x0c, 0xb2, 0x51, 0x82, 0x19, + 0xec, 0x32, 0x33, 0x12, 0x5d, 0xa6, 0xe7, 0x1d, 0x16, 0x90, 0x98, 0x59, 0x14, 0x04, 0x31, 0x44, + 0xca, 0x80, 0x8b, 0x0d, 0x22, 0x20, 0x24, 0xc0, 0xc5, 0x9c, 0x9d, 0x5a, 0x09, 0x76, 0x10, 0x4f, + 0x10, 0x88, 0x29, 0x24, 0xc2, 0xc5, 0x5a, 0x96, 0x98, 0x53, 0x0a, 0x71, 0x05, 0x4f, 0x10, 0x84, + 0xe3, 0x64, 0x72, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, + 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x52, 0x10, 0x97, + 0x14, 0xa7, 0x64, 0xeb, 0x65, 0xe6, 0xeb, 0x57, 0x20, 0x47, 0x56, 0x12, 0x1b, 0x38, 0x96, 0x8c, + 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x96, 0xa4, 0x16, 0xbf, 0xc9, 0x01, 0x00, 0x00, +} + +func (m *GenesisState) 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 *GenesisState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Accounts) > 0 { + for iNdEx := len(m.Accounts) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Accounts[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.AccountNumber != 0 { + i = encodeVarintGenesis(dAtA, i, uint64(m.AccountNumber)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *GenesisState_GenesisAccount) 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 *GenesisState_GenesisAccount) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GenesisState_GenesisAccount) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.State) > 0 { + for iNdEx := len(m.State) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.State[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.AccountType) > 0 { + i -= len(m.AccountType) + copy(dAtA[i:], m.AccountType) + i = encodeVarintGenesis(dAtA, i, uint64(len(m.AccountType))) + i-- + dAtA[i] = 0x12 + } + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintGenesis(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *GenesisState_GenesisAccount_KVPair) 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 *GenesisState_GenesisAccount_KVPair) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GenesisState_GenesisAccount_KVPair) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintGenesis(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0x12 + } + if len(m.Key) > 0 { + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintGenesis(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintGenesis(dAtA []byte, offset int, v uint64) int { + offset -= sovGenesis(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *GenesisState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AccountNumber != 0 { + n += 1 + sovGenesis(uint64(m.AccountNumber)) + } + if len(m.Accounts) > 0 { + for _, e := range m.Accounts { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } + return n +} + +func (m *GenesisState_GenesisAccount) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + if l > 0 { + n += 1 + l + sovGenesis(uint64(l)) + } + l = len(m.AccountType) + if l > 0 { + n += 1 + l + sovGenesis(uint64(l)) + } + if len(m.State) > 0 { + for _, e := range m.State { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } + return n +} + +func (m *GenesisState_GenesisAccount_KVPair) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + if l > 0 { + n += 1 + l + sovGenesis(uint64(l)) + } + l = len(m.Value) + if l > 0 { + n += 1 + l + sovGenesis(uint64(l)) + } + return n +} + +func sovGenesis(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGenesis(x uint64) (n int) { + return sovGenesis(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *GenesisState) 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 ErrIntOverflowGenesis + } + 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: GenesisState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenesisState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountNumber", wireType) + } + m.AccountNumber = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AccountNumber |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Accounts", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Accounts = append(m.Accounts, &GenesisState_GenesisAccount{}) + if err := m.Accounts[len(m.Accounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenesis(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenesis + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenesisState_GenesisAccount) 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 ErrIntOverflowGenesis + } + 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: GenesisAccount: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenesisAccount: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AccountType", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AccountType = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.State = append(m.State, &GenesisState_GenesisAccount_KVPair{}) + if err := m.State[len(m.State)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenesis(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenesis + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GenesisState_GenesisAccount_KVPair) 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 ErrIntOverflowGenesis + } + 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: KVPair: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KVPair: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = append(m.Key[:0], dAtA[iNdEx:postIndex]...) + if m.Key == nil { + m.Key = []byte{} + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthGenesis + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = append(m.Value[:0], dAtA[iNdEx:postIndex]...) + if m.Value == nil { + m.Value = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenesis(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenesis + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenesis(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenesis + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenesis + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenesis + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthGenesis + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGenesis + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGenesis + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGenesis = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenesis = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGenesis = fmt.Errorf("proto: unexpected end of group") +) From 2f656000def1f17230a4216ff2d2212c030c502a Mon Sep 17 00:00:00 2001 From: unknown unknown Date: Tue, 19 Sep 2023 10:19:31 +0200 Subject: [PATCH 2/5] doc --- x/accounts/keeper.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/accounts/keeper.go b/x/accounts/keeper.go index 4ffeb81f2362..323cb469eab6 100644 --- a/x/accounts/keeper.go +++ b/x/accounts/keeper.go @@ -82,7 +82,7 @@ type Keeper struct { // AccountsState keeps track of the state of each account. // NOTE: this is only used for genesis import and export. // Contracts set and get their own state but this helps providing a nice mapping - // between: (contract address, contract state key) => contract state value. + // between: (account address, account state key) => account state value. AccountsState collections.Map[[]byte, []byte] } From d4712f5932df32840b10e1e6de16855d021b732c Mon Sep 17 00:00:00 2001 From: unknown unknown Date: Thu, 21 Sep 2023 13:37:05 +0200 Subject: [PATCH 3/5] flatten structure --- api/cosmos/accounts/v1/genesis.pulsar.go | 524 +++--- proto/cosmos/accounts/v1/genesis.proto | 33 +- x/accounts/genesis.go | 8 +- x/accounts/v1/genesis.pb.go | 153 +- x/staking/types/staking.pb.go | 1408 +++++++++-------- .../aminojson/internal/testpb/test.proto | 2 +- 6 files changed, 1082 insertions(+), 1046 deletions(-) diff --git a/api/cosmos/accounts/v1/genesis.pulsar.go b/api/cosmos/accounts/v1/genesis.pulsar.go index bd0a78ff512f..ead7efaf846a 100644 --- a/api/cosmos/accounts/v1/genesis.pulsar.go +++ b/api/cosmos/accounts/v1/genesis.pulsar.go @@ -15,7 +15,7 @@ import ( var _ protoreflect.List = (*_GenesisState_2_list)(nil) type _GenesisState_2_list struct { - list *[]*GenesisState_GenesisAccount + list *[]*GenesisAccount } func (x *_GenesisState_2_list) Len() int { @@ -31,18 +31,18 @@ func (x *_GenesisState_2_list) Get(i int) protoreflect.Value { func (x *_GenesisState_2_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*GenesisState_GenesisAccount) + concreteValue := valueUnwrapped.Interface().(*GenesisAccount) (*x.list)[i] = concreteValue } func (x *_GenesisState_2_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*GenesisState_GenesisAccount) + concreteValue := valueUnwrapped.Interface().(*GenesisAccount) *x.list = append(*x.list, concreteValue) } func (x *_GenesisState_2_list) AppendMutable() protoreflect.Value { - v := new(GenesisState_GenesisAccount) + v := new(GenesisAccount) *x.list = append(*x.list, v) return protoreflect.ValueOfMessage(v.ProtoReflect()) } @@ -55,7 +55,7 @@ func (x *_GenesisState_2_list) Truncate(n int) { } func (x *_GenesisState_2_list) NewElement() protoreflect.Value { - v := new(GenesisState_GenesisAccount) + v := new(GenesisAccount) return protoreflect.ValueOfMessage(v.ProtoReflect()) } @@ -265,7 +265,7 @@ func (x *fastReflection_GenesisState) Mutable(fd protoreflect.FieldDescriptor) p switch fd.FullName() { case "cosmos.accounts.v1.GenesisState.accounts": if x.Accounts == nil { - x.Accounts = []*GenesisState_GenesisAccount{} + x.Accounts = []*GenesisAccount{} } value := &_GenesisState_2_list{list: &x.Accounts} return protoreflect.ValueOfList(value) @@ -287,7 +287,7 @@ func (x *fastReflection_GenesisState) NewField(fd protoreflect.FieldDescriptor) case "cosmos.accounts.v1.GenesisState.account_number": return protoreflect.ValueOfUint64(uint64(0)) case "cosmos.accounts.v1.GenesisState.accounts": - list := []*GenesisState_GenesisAccount{} + list := []*GenesisAccount{} return protoreflect.ValueOfList(&_GenesisState_2_list{list: &list}) default: if fd.IsExtension() { @@ -514,7 +514,7 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.Accounts = append(x.Accounts, &GenesisState_GenesisAccount{}) + x.Accounts = append(x.Accounts, &GenesisAccount{}) if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Accounts[len(x.Accounts)-1]); err != nil { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } @@ -554,81 +554,81 @@ func (x *fastReflection_GenesisState) ProtoMethods() *protoiface.Methods { } } -var _ protoreflect.List = (*_GenesisState_GenesisAccount_3_list)(nil) +var _ protoreflect.List = (*_GenesisAccount_3_list)(nil) -type _GenesisState_GenesisAccount_3_list struct { - list *[]*GenesisState_GenesisAccount_KVPair +type _GenesisAccount_3_list struct { + list *[]*KVPair } -func (x *_GenesisState_GenesisAccount_3_list) Len() int { +func (x *_GenesisAccount_3_list) Len() int { if x.list == nil { return 0 } return len(*x.list) } -func (x *_GenesisState_GenesisAccount_3_list) Get(i int) protoreflect.Value { +func (x *_GenesisAccount_3_list) Get(i int) protoreflect.Value { return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) } -func (x *_GenesisState_GenesisAccount_3_list) Set(i int, value protoreflect.Value) { +func (x *_GenesisAccount_3_list) Set(i int, value protoreflect.Value) { valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*GenesisState_GenesisAccount_KVPair) + concreteValue := valueUnwrapped.Interface().(*KVPair) (*x.list)[i] = concreteValue } -func (x *_GenesisState_GenesisAccount_3_list) Append(value protoreflect.Value) { +func (x *_GenesisAccount_3_list) Append(value protoreflect.Value) { valueUnwrapped := value.Message() - concreteValue := valueUnwrapped.Interface().(*GenesisState_GenesisAccount_KVPair) + concreteValue := valueUnwrapped.Interface().(*KVPair) *x.list = append(*x.list, concreteValue) } -func (x *_GenesisState_GenesisAccount_3_list) AppendMutable() protoreflect.Value { - v := new(GenesisState_GenesisAccount_KVPair) +func (x *_GenesisAccount_3_list) AppendMutable() protoreflect.Value { + v := new(KVPair) *x.list = append(*x.list, v) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_GenesisAccount_3_list) Truncate(n int) { +func (x *_GenesisAccount_3_list) Truncate(n int) { for i := n; i < len(*x.list); i++ { (*x.list)[i] = nil } *x.list = (*x.list)[:n] } -func (x *_GenesisState_GenesisAccount_3_list) NewElement() protoreflect.Value { - v := new(GenesisState_GenesisAccount_KVPair) +func (x *_GenesisAccount_3_list) NewElement() protoreflect.Value { + v := new(KVPair) return protoreflect.ValueOfMessage(v.ProtoReflect()) } -func (x *_GenesisState_GenesisAccount_3_list) IsValid() bool { +func (x *_GenesisAccount_3_list) IsValid() bool { return x.list != nil } var ( - md_GenesisState_GenesisAccount protoreflect.MessageDescriptor - fd_GenesisState_GenesisAccount_address protoreflect.FieldDescriptor - fd_GenesisState_GenesisAccount_account_type protoreflect.FieldDescriptor - fd_GenesisState_GenesisAccount_state protoreflect.FieldDescriptor + md_GenesisAccount protoreflect.MessageDescriptor + fd_GenesisAccount_address protoreflect.FieldDescriptor + fd_GenesisAccount_account_type protoreflect.FieldDescriptor + fd_GenesisAccount_state protoreflect.FieldDescriptor ) func init() { file_cosmos_accounts_v1_genesis_proto_init() - md_GenesisState_GenesisAccount = File_cosmos_accounts_v1_genesis_proto.Messages().ByName("GenesisState").Messages().ByName("GenesisAccount") - fd_GenesisState_GenesisAccount_address = md_GenesisState_GenesisAccount.Fields().ByName("address") - fd_GenesisState_GenesisAccount_account_type = md_GenesisState_GenesisAccount.Fields().ByName("account_type") - fd_GenesisState_GenesisAccount_state = md_GenesisState_GenesisAccount.Fields().ByName("state") + md_GenesisAccount = File_cosmos_accounts_v1_genesis_proto.Messages().ByName("GenesisAccount") + fd_GenesisAccount_address = md_GenesisAccount.Fields().ByName("address") + fd_GenesisAccount_account_type = md_GenesisAccount.Fields().ByName("account_type") + fd_GenesisAccount_state = md_GenesisAccount.Fields().ByName("state") } -var _ protoreflect.Message = (*fastReflection_GenesisState_GenesisAccount)(nil) +var _ protoreflect.Message = (*fastReflection_GenesisAccount)(nil) -type fastReflection_GenesisState_GenesisAccount GenesisState_GenesisAccount +type fastReflection_GenesisAccount GenesisAccount -func (x *GenesisState_GenesisAccount) ProtoReflect() protoreflect.Message { - return (*fastReflection_GenesisState_GenesisAccount)(x) +func (x *GenesisAccount) ProtoReflect() protoreflect.Message { + return (*fastReflection_GenesisAccount)(x) } -func (x *GenesisState_GenesisAccount) slowProtoReflect() protoreflect.Message { +func (x *GenesisAccount) slowProtoReflect() protoreflect.Message { mi := &file_cosmos_accounts_v1_genesis_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -640,43 +640,43 @@ func (x *GenesisState_GenesisAccount) slowProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -var _fastReflection_GenesisState_GenesisAccount_messageType fastReflection_GenesisState_GenesisAccount_messageType -var _ protoreflect.MessageType = fastReflection_GenesisState_GenesisAccount_messageType{} +var _fastReflection_GenesisAccount_messageType fastReflection_GenesisAccount_messageType +var _ protoreflect.MessageType = fastReflection_GenesisAccount_messageType{} -type fastReflection_GenesisState_GenesisAccount_messageType struct{} +type fastReflection_GenesisAccount_messageType struct{} -func (x fastReflection_GenesisState_GenesisAccount_messageType) Zero() protoreflect.Message { - return (*fastReflection_GenesisState_GenesisAccount)(nil) +func (x fastReflection_GenesisAccount_messageType) Zero() protoreflect.Message { + return (*fastReflection_GenesisAccount)(nil) } -func (x fastReflection_GenesisState_GenesisAccount_messageType) New() protoreflect.Message { - return new(fastReflection_GenesisState_GenesisAccount) +func (x fastReflection_GenesisAccount_messageType) New() protoreflect.Message { + return new(fastReflection_GenesisAccount) } -func (x fastReflection_GenesisState_GenesisAccount_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_GenesisState_GenesisAccount +func (x fastReflection_GenesisAccount_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisAccount } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_GenesisState_GenesisAccount) Descriptor() protoreflect.MessageDescriptor { - return md_GenesisState_GenesisAccount +func (x *fastReflection_GenesisAccount) Descriptor() protoreflect.MessageDescriptor { + return md_GenesisAccount } // 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_GenesisState_GenesisAccount) Type() protoreflect.MessageType { - return _fastReflection_GenesisState_GenesisAccount_messageType +func (x *fastReflection_GenesisAccount) Type() protoreflect.MessageType { + return _fastReflection_GenesisAccount_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_GenesisState_GenesisAccount) New() protoreflect.Message { - return new(fastReflection_GenesisState_GenesisAccount) +func (x *fastReflection_GenesisAccount) New() protoreflect.Message { + return new(fastReflection_GenesisAccount) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_GenesisState_GenesisAccount) Interface() protoreflect.ProtoMessage { - return (*GenesisState_GenesisAccount)(x) +func (x *fastReflection_GenesisAccount) Interface() protoreflect.ProtoMessage { + return (*GenesisAccount)(x) } // Range iterates over every populated field in an undefined order, @@ -684,22 +684,22 @@ func (x *fastReflection_GenesisState_GenesisAccount) Interface() protoreflect.Pr // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_GenesisState_GenesisAccount) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +func (x *fastReflection_GenesisAccount) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { if x.Address != "" { value := protoreflect.ValueOfString(x.Address) - if !f(fd_GenesisState_GenesisAccount_address, value) { + if !f(fd_GenesisAccount_address, value) { return } } if x.AccountType != "" { value := protoreflect.ValueOfString(x.AccountType) - if !f(fd_GenesisState_GenesisAccount_account_type, value) { + if !f(fd_GenesisAccount_account_type, value) { return } } if len(x.State) != 0 { - value := protoreflect.ValueOfList(&_GenesisState_GenesisAccount_3_list{list: &x.State}) - if !f(fd_GenesisState_GenesisAccount_state, value) { + value := protoreflect.ValueOfList(&_GenesisAccount_3_list{list: &x.State}) + if !f(fd_GenesisAccount_state, value) { return } } @@ -716,19 +716,19 @@ func (x *fastReflection_GenesisState_GenesisAccount) Range(f func(protoreflect.F // 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_GenesisState_GenesisAccount) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_GenesisAccount) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": + case "cosmos.accounts.v1.GenesisAccount.address": return x.Address != "" - case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": + case "cosmos.accounts.v1.GenesisAccount.account_type": return x.AccountType != "" - case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": + case "cosmos.accounts.v1.GenesisAccount.state": return len(x.State) != 0 default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisAccount")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisAccount does not contain field %s", fd.FullName())) } } @@ -738,19 +738,19 @@ func (x *fastReflection_GenesisState_GenesisAccount) Has(fd protoreflect.FieldDe // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_GenesisState_GenesisAccount) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_GenesisAccount) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": + case "cosmos.accounts.v1.GenesisAccount.address": x.Address = "" - case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": + case "cosmos.accounts.v1.GenesisAccount.account_type": x.AccountType = "" - case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": + case "cosmos.accounts.v1.GenesisAccount.state": x.State = nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisAccount")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisAccount does not contain field %s", fd.FullName())) } } @@ -760,25 +760,25 @@ func (x *fastReflection_GenesisState_GenesisAccount) Clear(fd protoreflect.Field // 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_GenesisState_GenesisAccount) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_GenesisAccount) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": + case "cosmos.accounts.v1.GenesisAccount.address": value := x.Address return protoreflect.ValueOfString(value) - case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": + case "cosmos.accounts.v1.GenesisAccount.account_type": value := x.AccountType return protoreflect.ValueOfString(value) - case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": + case "cosmos.accounts.v1.GenesisAccount.state": if len(x.State) == 0 { - return protoreflect.ValueOfList(&_GenesisState_GenesisAccount_3_list{}) + return protoreflect.ValueOfList(&_GenesisAccount_3_list{}) } - listValue := &_GenesisState_GenesisAccount_3_list{list: &x.State} + listValue := &_GenesisAccount_3_list{list: &x.State} return protoreflect.ValueOfList(listValue) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisAccount")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisAccount does not contain field %s", descriptor.FullName())) } } @@ -792,21 +792,21 @@ func (x *fastReflection_GenesisState_GenesisAccount) Get(descriptor protoreflect // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_GenesisState_GenesisAccount) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_GenesisAccount) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": + case "cosmos.accounts.v1.GenesisAccount.address": x.Address = value.Interface().(string) - case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": + case "cosmos.accounts.v1.GenesisAccount.account_type": x.AccountType = value.Interface().(string) - case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": + case "cosmos.accounts.v1.GenesisAccount.state": lv := value.List() - clv := lv.(*_GenesisState_GenesisAccount_3_list) + clv := lv.(*_GenesisAccount_3_list) x.State = *clv.list default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisAccount")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisAccount does not contain field %s", fd.FullName())) } } @@ -820,53 +820,53 @@ func (x *fastReflection_GenesisState_GenesisAccount) Set(fd protoreflect.FieldDe // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_GenesisState_GenesisAccount) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_GenesisAccount) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": + case "cosmos.accounts.v1.GenesisAccount.state": if x.State == nil { - x.State = []*GenesisState_GenesisAccount_KVPair{} + x.State = []*KVPair{} } - value := &_GenesisState_GenesisAccount_3_list{list: &x.State} + value := &_GenesisAccount_3_list{list: &x.State} return protoreflect.ValueOfList(value) - case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": - panic(fmt.Errorf("field address of message cosmos.accounts.v1.GenesisState.GenesisAccount is not mutable")) - case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": - panic(fmt.Errorf("field account_type of message cosmos.accounts.v1.GenesisState.GenesisAccount is not mutable")) + case "cosmos.accounts.v1.GenesisAccount.address": + panic(fmt.Errorf("field address of message cosmos.accounts.v1.GenesisAccount is not mutable")) + case "cosmos.accounts.v1.GenesisAccount.account_type": + panic(fmt.Errorf("field account_type of message cosmos.accounts.v1.GenesisAccount is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisAccount")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisAccount 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_GenesisState_GenesisAccount) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_GenesisAccount) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.address": + case "cosmos.accounts.v1.GenesisAccount.address": return protoreflect.ValueOfString("") - case "cosmos.accounts.v1.GenesisState.GenesisAccount.account_type": + case "cosmos.accounts.v1.GenesisAccount.account_type": return protoreflect.ValueOfString("") - case "cosmos.accounts.v1.GenesisState.GenesisAccount.state": - list := []*GenesisState_GenesisAccount_KVPair{} - return protoreflect.ValueOfList(&_GenesisState_GenesisAccount_3_list{list: &list}) + case "cosmos.accounts.v1.GenesisAccount.state": + list := []*KVPair{} + return protoreflect.ValueOfList(&_GenesisAccount_3_list{list: &list}) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisAccount")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.GenesisAccount 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_GenesisState_GenesisAccount) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_GenesisAccount) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.accounts.v1.GenesisState.GenesisAccount", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.accounts.v1.GenesisAccount", d.FullName())) } panic("unreachable") } @@ -874,7 +874,7 @@ func (x *fastReflection_GenesisState_GenesisAccount) WhichOneof(d protoreflect.O // 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_GenesisState_GenesisAccount) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_GenesisAccount) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -885,7 +885,7 @@ func (x *fastReflection_GenesisState_GenesisAccount) GetUnknown() protoreflect.R // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_GenesisState_GenesisAccount) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_GenesisAccount) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -897,7 +897,7 @@ func (x *fastReflection_GenesisState_GenesisAccount) SetUnknown(fields protorefl // 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_GenesisState_GenesisAccount) IsValid() bool { +func (x *fastReflection_GenesisAccount) IsValid() bool { return x != nil } @@ -907,9 +907,9 @@ func (x *fastReflection_GenesisState_GenesisAccount) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_GenesisState_GenesisAccount) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_GenesisAccount) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*GenesisState_GenesisAccount) + x := input.Message.Interface().(*GenesisAccount) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -945,7 +945,7 @@ func (x *fastReflection_GenesisState_GenesisAccount) ProtoMethods() *protoiface. } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*GenesisState_GenesisAccount) + x := input.Message.Interface().(*GenesisAccount) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -1005,7 +1005,7 @@ func (x *fastReflection_GenesisState_GenesisAccount) ProtoMethods() *protoiface. }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*GenesisState_GenesisAccount) + x := input.Message.Interface().(*GenesisAccount) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -1037,10 +1037,10 @@ func (x *fastReflection_GenesisState_GenesisAccount) ProtoMethods() *protoiface. fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState_GenesisAccount: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisAccount: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState_GenesisAccount: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisAccount: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -1136,7 +1136,7 @@ func (x *fastReflection_GenesisState_GenesisAccount) ProtoMethods() *protoiface. if postIndex > l { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF } - x.State = append(x.State, &GenesisState_GenesisAccount_KVPair{}) + x.State = append(x.State, &KVPair{}) if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.State[len(x.State)-1]); err != nil { return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err } @@ -1177,27 +1177,27 @@ func (x *fastReflection_GenesisState_GenesisAccount) ProtoMethods() *protoiface. } var ( - md_GenesisState_GenesisAccount_KVPair protoreflect.MessageDescriptor - fd_GenesisState_GenesisAccount_KVPair_key protoreflect.FieldDescriptor - fd_GenesisState_GenesisAccount_KVPair_value protoreflect.FieldDescriptor + md_KVPair protoreflect.MessageDescriptor + fd_KVPair_key protoreflect.FieldDescriptor + fd_KVPair_value protoreflect.FieldDescriptor ) func init() { file_cosmos_accounts_v1_genesis_proto_init() - md_GenesisState_GenesisAccount_KVPair = File_cosmos_accounts_v1_genesis_proto.Messages().ByName("GenesisState").Messages().ByName("GenesisAccount").Messages().ByName("KVPair") - fd_GenesisState_GenesisAccount_KVPair_key = md_GenesisState_GenesisAccount_KVPair.Fields().ByName("key") - fd_GenesisState_GenesisAccount_KVPair_value = md_GenesisState_GenesisAccount_KVPair.Fields().ByName("value") + md_KVPair = File_cosmos_accounts_v1_genesis_proto.Messages().ByName("KVPair") + fd_KVPair_key = md_KVPair.Fields().ByName("key") + fd_KVPair_value = md_KVPair.Fields().ByName("value") } -var _ protoreflect.Message = (*fastReflection_GenesisState_GenesisAccount_KVPair)(nil) +var _ protoreflect.Message = (*fastReflection_KVPair)(nil) -type fastReflection_GenesisState_GenesisAccount_KVPair GenesisState_GenesisAccount_KVPair +type fastReflection_KVPair KVPair -func (x *GenesisState_GenesisAccount_KVPair) ProtoReflect() protoreflect.Message { - return (*fastReflection_GenesisState_GenesisAccount_KVPair)(x) +func (x *KVPair) ProtoReflect() protoreflect.Message { + return (*fastReflection_KVPair)(x) } -func (x *GenesisState_GenesisAccount_KVPair) slowProtoReflect() protoreflect.Message { +func (x *KVPair) slowProtoReflect() protoreflect.Message { mi := &file_cosmos_accounts_v1_genesis_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1209,43 +1209,43 @@ func (x *GenesisState_GenesisAccount_KVPair) slowProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -var _fastReflection_GenesisState_GenesisAccount_KVPair_messageType fastReflection_GenesisState_GenesisAccount_KVPair_messageType -var _ protoreflect.MessageType = fastReflection_GenesisState_GenesisAccount_KVPair_messageType{} +var _fastReflection_KVPair_messageType fastReflection_KVPair_messageType +var _ protoreflect.MessageType = fastReflection_KVPair_messageType{} -type fastReflection_GenesisState_GenesisAccount_KVPair_messageType struct{} +type fastReflection_KVPair_messageType struct{} -func (x fastReflection_GenesisState_GenesisAccount_KVPair_messageType) Zero() protoreflect.Message { - return (*fastReflection_GenesisState_GenesisAccount_KVPair)(nil) +func (x fastReflection_KVPair_messageType) Zero() protoreflect.Message { + return (*fastReflection_KVPair)(nil) } -func (x fastReflection_GenesisState_GenesisAccount_KVPair_messageType) New() protoreflect.Message { - return new(fastReflection_GenesisState_GenesisAccount_KVPair) +func (x fastReflection_KVPair_messageType) New() protoreflect.Message { + return new(fastReflection_KVPair) } -func (x fastReflection_GenesisState_GenesisAccount_KVPair_messageType) Descriptor() protoreflect.MessageDescriptor { - return md_GenesisState_GenesisAccount_KVPair +func (x fastReflection_KVPair_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_KVPair } // Descriptor returns message descriptor, which contains only the protobuf // type information for the message. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Descriptor() protoreflect.MessageDescriptor { - return md_GenesisState_GenesisAccount_KVPair +func (x *fastReflection_KVPair) Descriptor() protoreflect.MessageDescriptor { + return md_KVPair } // 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_GenesisState_GenesisAccount_KVPair) Type() protoreflect.MessageType { - return _fastReflection_GenesisState_GenesisAccount_KVPair_messageType +func (x *fastReflection_KVPair) Type() protoreflect.MessageType { + return _fastReflection_KVPair_messageType } // New returns a newly allocated and mutable empty message. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) New() protoreflect.Message { - return new(fastReflection_GenesisState_GenesisAccount_KVPair) +func (x *fastReflection_KVPair) New() protoreflect.Message { + return new(fastReflection_KVPair) } // Interface unwraps the message reflection interface and // returns the underlying ProtoMessage interface. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Interface() protoreflect.ProtoMessage { - return (*GenesisState_GenesisAccount_KVPair)(x) +func (x *fastReflection_KVPair) Interface() protoreflect.ProtoMessage { + return (*KVPair)(x) } // Range iterates over every populated field in an undefined order, @@ -1253,16 +1253,16 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Interface() protoref // Range returns immediately if f returns false. // While iterating, mutating operations may only be performed // on the current field descriptor. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { +func (x *fastReflection_KVPair) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { if len(x.Key) != 0 { value := protoreflect.ValueOfBytes(x.Key) - if !f(fd_GenesisState_GenesisAccount_KVPair_key, value) { + if !f(fd_KVPair_key, value) { return } } if len(x.Value) != 0 { value := protoreflect.ValueOfBytes(x.Value) - if !f(fd_GenesisState_GenesisAccount_KVPair_value, value) { + if !f(fd_KVPair_value, value) { return } } @@ -1279,17 +1279,17 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Range(f func(protore // In other cases (aside from the nullable cases above), // a proto3 scalar field is populated if it contains a non-zero value, and // a repeated field is populated if it is non-empty. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Has(fd protoreflect.FieldDescriptor) bool { +func (x *fastReflection_KVPair) Has(fd protoreflect.FieldDescriptor) bool { switch fd.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": + case "cosmos.accounts.v1.KVPair.key": return len(x.Key) != 0 - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": + case "cosmos.accounts.v1.KVPair.value": return len(x.Value) != 0 default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.KVPair")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.KVPair does not contain field %s", fd.FullName())) } } @@ -1299,17 +1299,17 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Has(fd protoreflect. // associated with the given field number. // // Clear is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Clear(fd protoreflect.FieldDescriptor) { +func (x *fastReflection_KVPair) Clear(fd protoreflect.FieldDescriptor) { switch fd.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": + case "cosmos.accounts.v1.KVPair.key": x.Key = nil - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": + case "cosmos.accounts.v1.KVPair.value": x.Value = nil default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.KVPair")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.KVPair does not contain field %s", fd.FullName())) } } @@ -1319,19 +1319,19 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Clear(fd protoreflec // the default value of a bytes scalar is guaranteed to be a copy. // For unpopulated composite types, it returns an empty, read-only view // of the value; to obtain a mutable reference, use Mutable. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_KVPair) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { switch descriptor.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": + case "cosmos.accounts.v1.KVPair.key": value := x.Key return protoreflect.ValueOfBytes(value) - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": + case "cosmos.accounts.v1.KVPair.value": value := x.Value return protoreflect.ValueOfBytes(value) default: if descriptor.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.KVPair")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair does not contain field %s", descriptor.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.KVPair does not contain field %s", descriptor.FullName())) } } @@ -1345,17 +1345,17 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Get(descriptor proto // empty, read-only value, then it panics. // // Set is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { +func (x *fastReflection_KVPair) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { switch fd.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": + case "cosmos.accounts.v1.KVPair.key": x.Key = value.Bytes() - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": + case "cosmos.accounts.v1.KVPair.value": x.Value = value.Bytes() default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.KVPair")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.KVPair does not contain field %s", fd.FullName())) } } @@ -1369,44 +1369,44 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Set(fd protoreflect. // It panics if the field does not contain a composite type. // // Mutable is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_KVPair) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": - panic(fmt.Errorf("field key of message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair is not mutable")) - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": - panic(fmt.Errorf("field value of message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair is not mutable")) + case "cosmos.accounts.v1.KVPair.key": + panic(fmt.Errorf("field key of message cosmos.accounts.v1.KVPair is not mutable")) + case "cosmos.accounts.v1.KVPair.value": + panic(fmt.Errorf("field value of message cosmos.accounts.v1.KVPair is not mutable")) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.KVPair")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.KVPair 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_GenesisState_GenesisAccount_KVPair) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { +func (x *fastReflection_KVPair) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { switch fd.FullName() { - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.key": + case "cosmos.accounts.v1.KVPair.key": return protoreflect.ValueOfBytes(nil) - case "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair.value": + case "cosmos.accounts.v1.KVPair.value": return protoreflect.ValueOfBytes(nil) default: if fd.IsExtension() { - panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair")) + panic(fmt.Errorf("proto3 declared messages do not support extensions: cosmos.accounts.v1.KVPair")) } - panic(fmt.Errorf("message cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair does not contain field %s", fd.FullName())) + panic(fmt.Errorf("message cosmos.accounts.v1.KVPair 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_GenesisState_GenesisAccount_KVPair) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { +func (x *fastReflection_KVPair) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { switch d.FullName() { default: - panic(fmt.Errorf("%s is not a oneof field in cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair", d.FullName())) + panic(fmt.Errorf("%s is not a oneof field in cosmos.accounts.v1.KVPair", d.FullName())) } panic("unreachable") } @@ -1414,7 +1414,7 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) WhichOneof(d protore // GetUnknown retrieves the entire list of unknown fields. // The caller may only mutate the contents of the RawFields // if the mutated bytes are stored back into the message with SetUnknown. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) GetUnknown() protoreflect.RawFields { +func (x *fastReflection_KVPair) GetUnknown() protoreflect.RawFields { return x.unknownFields } @@ -1425,7 +1425,7 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) GetUnknown() protore // An empty RawFields may be passed to clear the fields. // // SetUnknown is a mutating operation and unsafe for concurrent use. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) SetUnknown(fields protoreflect.RawFields) { +func (x *fastReflection_KVPair) SetUnknown(fields protoreflect.RawFields) { x.unknownFields = fields } @@ -1437,7 +1437,7 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) SetUnknown(fields pr // message type, but the details are implementation dependent. // Validity is not part of the protobuf data model, and may not // be preserved in marshaling or other operations. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) IsValid() bool { +func (x *fastReflection_KVPair) IsValid() bool { return x != nil } @@ -1447,9 +1447,9 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) IsValid() bool { // The returned methods type is identical to // "google.golang.org/protobuf/runtime/protoiface".Methods. // Consult the protoiface package documentation for details. -func (x *fastReflection_GenesisState_GenesisAccount_KVPair) ProtoMethods() *protoiface.Methods { +func (x *fastReflection_KVPair) ProtoMethods() *protoiface.Methods { size := func(input protoiface.SizeInput) protoiface.SizeOutput { - x := input.Message.Interface().(*GenesisState_GenesisAccount_KVPair) + x := input.Message.Interface().(*KVPair) if x == nil { return protoiface.SizeOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -1479,7 +1479,7 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) ProtoMethods() *prot } marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { - x := input.Message.Interface().(*GenesisState_GenesisAccount_KVPair) + x := input.Message.Interface().(*KVPair) if x == nil { return protoiface.MarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -1523,7 +1523,7 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) ProtoMethods() *prot }, nil } unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { - x := input.Message.Interface().(*GenesisState_GenesisAccount_KVPair) + x := input.Message.Interface().(*KVPair) if x == nil { return protoiface.UnmarshalOutput{ NoUnkeyedLiterals: input.NoUnkeyedLiterals, @@ -1555,10 +1555,10 @@ func (x *fastReflection_GenesisState_GenesisAccount_KVPair) ProtoMethods() *prot fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState_GenesisAccount_KVPair: wiretype end group for non-group") + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: KVPair: wiretype end group for non-group") } if fieldNum <= 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: GenesisState_GenesisAccount_KVPair: illegal tag %d (wire type %d)", fieldNum, wire) + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: KVPair: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -1683,8 +1683,10 @@ type GenesisState struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AccountNumber uint64 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` - Accounts []*GenesisState_GenesisAccount `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty"` + // account_number is the latest account number. + AccountNumber uint64 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + // accounts are the genesis accounts. + Accounts []*GenesisAccount `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty"` } func (x *GenesisState) Reset() { @@ -1714,25 +1716,29 @@ func (x *GenesisState) GetAccountNumber() uint64 { return 0 } -func (x *GenesisState) GetAccounts() []*GenesisState_GenesisAccount { +func (x *GenesisState) GetAccounts() []*GenesisAccount { if x != nil { return x.Accounts } return nil } -type GenesisState_GenesisAccount struct { +// GenesisAccount defines an account to be initialized in the genesis state. +type GenesisAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - AccountType string `protobuf:"bytes,2,opt,name=account_type,json=accountType,proto3" json:"account_type,omitempty"` - State []*GenesisState_GenesisAccount_KVPair `protobuf:"bytes,3,rep,name=state,proto3" json:"state,omitempty"` + // address is the address of the account. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // account_type is the account type of the account. + AccountType string `protobuf:"bytes,2,opt,name=account_type,json=accountType,proto3" json:"account_type,omitempty"` + // state is the account state represented as a slice of raw key value byte pairs. + State []*KVPair `protobuf:"bytes,3,rep,name=state,proto3" json:"state,omitempty"` } -func (x *GenesisState_GenesisAccount) Reset() { - *x = GenesisState_GenesisAccount{} +func (x *GenesisAccount) Reset() { + *x = GenesisAccount{} if protoimpl.UnsafeEnabled { mi := &file_cosmos_accounts_v1_genesis_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1740,49 +1746,52 @@ func (x *GenesisState_GenesisAccount) Reset() { } } -func (x *GenesisState_GenesisAccount) String() string { +func (x *GenesisAccount) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GenesisState_GenesisAccount) ProtoMessage() {} +func (*GenesisAccount) ProtoMessage() {} -// Deprecated: Use GenesisState_GenesisAccount.ProtoReflect.Descriptor instead. -func (*GenesisState_GenesisAccount) Descriptor() ([]byte, []int) { - return file_cosmos_accounts_v1_genesis_proto_rawDescGZIP(), []int{0, 0} +// Deprecated: Use GenesisAccount.ProtoReflect.Descriptor instead. +func (*GenesisAccount) Descriptor() ([]byte, []int) { + return file_cosmos_accounts_v1_genesis_proto_rawDescGZIP(), []int{1} } -func (x *GenesisState_GenesisAccount) GetAddress() string { +func (x *GenesisAccount) GetAddress() string { if x != nil { return x.Address } return "" } -func (x *GenesisState_GenesisAccount) GetAccountType() string { +func (x *GenesisAccount) GetAccountType() string { if x != nil { return x.AccountType } return "" } -func (x *GenesisState_GenesisAccount) GetState() []*GenesisState_GenesisAccount_KVPair { +func (x *GenesisAccount) GetState() []*KVPair { if x != nil { return x.State } return nil } -type GenesisState_GenesisAccount_KVPair struct { +// KVPair defines a key value pair. +type KVPair struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // key is the key of the pair. + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // value is the value of the pair. Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } -func (x *GenesisState_GenesisAccount_KVPair) Reset() { - *x = GenesisState_GenesisAccount_KVPair{} +func (x *KVPair) Reset() { + *x = KVPair{} if protoimpl.UnsafeEnabled { mi := &file_cosmos_accounts_v1_genesis_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1790,25 +1799,25 @@ func (x *GenesisState_GenesisAccount_KVPair) Reset() { } } -func (x *GenesisState_GenesisAccount_KVPair) String() string { +func (x *KVPair) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GenesisState_GenesisAccount_KVPair) ProtoMessage() {} +func (*KVPair) ProtoMessage() {} -// Deprecated: Use GenesisState_GenesisAccount_KVPair.ProtoReflect.Descriptor instead. -func (*GenesisState_GenesisAccount_KVPair) Descriptor() ([]byte, []int) { - return file_cosmos_accounts_v1_genesis_proto_rawDescGZIP(), []int{0, 0, 0} +// Deprecated: Use KVPair.ProtoReflect.Descriptor instead. +func (*KVPair) Descriptor() ([]byte, []int) { + return file_cosmos_accounts_v1_genesis_proto_rawDescGZIP(), []int{2} } -func (x *GenesisState_GenesisAccount_KVPair) GetKey() []byte { +func (x *KVPair) GetKey() []byte { if x != nil { return x.Key } return nil } -func (x *GenesisState_GenesisAccount_KVPair) GetValue() []byte { +func (x *KVPair) GetValue() []byte { if x != nil { return x.Value } @@ -1821,41 +1830,38 @@ var file_cosmos_accounts_v1_genesis_proto_rawDesc = []byte{ 0x0a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x22, 0xd2, 0x02, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, - 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4b, - 0x0a, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0xcd, 0x01, 0x0a, 0x0e, - 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x6e, - 0x65, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2e, 0x4b, 0x56, 0x50, 0x61, - 0x69, 0x72, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x30, 0x0a, 0x06, 0x4b, 0x56, 0x50, - 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0xc0, 0x01, 0x0a, 0x16, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, 0x12, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x3a, 0x3a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x22, 0x75, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3e, 0x0a, + 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x08, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0x7f, 0x0a, + 0x0e, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x76, 0x31, + 0x2e, 0x4b, 0x56, 0x50, 0x61, 0x69, 0x72, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x30, + 0x0a, 0x06, 0x4b, 0x56, 0x50, 0x61, 0x69, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0xc0, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e, + 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x2f, 0x76, 0x31, + 0x3b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, + 0x58, 0xaa, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x5c, 0x56, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1872,13 +1878,13 @@ func file_cosmos_accounts_v1_genesis_proto_rawDescGZIP() []byte { var file_cosmos_accounts_v1_genesis_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_cosmos_accounts_v1_genesis_proto_goTypes = []interface{}{ - (*GenesisState)(nil), // 0: cosmos.accounts.v1.GenesisState - (*GenesisState_GenesisAccount)(nil), // 1: cosmos.accounts.v1.GenesisState.GenesisAccount - (*GenesisState_GenesisAccount_KVPair)(nil), // 2: cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair + (*GenesisState)(nil), // 0: cosmos.accounts.v1.GenesisState + (*GenesisAccount)(nil), // 1: cosmos.accounts.v1.GenesisAccount + (*KVPair)(nil), // 2: cosmos.accounts.v1.KVPair } var file_cosmos_accounts_v1_genesis_proto_depIdxs = []int32{ - 1, // 0: cosmos.accounts.v1.GenesisState.accounts:type_name -> cosmos.accounts.v1.GenesisState.GenesisAccount - 2, // 1: cosmos.accounts.v1.GenesisState.GenesisAccount.state:type_name -> cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair + 1, // 0: cosmos.accounts.v1.GenesisState.accounts:type_name -> cosmos.accounts.v1.GenesisAccount + 2, // 1: cosmos.accounts.v1.GenesisAccount.state:type_name -> cosmos.accounts.v1.KVPair 2, // [2:2] is the sub-list for method output_type 2, // [2:2] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name @@ -1905,7 +1911,7 @@ func file_cosmos_accounts_v1_genesis_proto_init() { } } file_cosmos_accounts_v1_genesis_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenesisState_GenesisAccount); i { + switch v := v.(*GenesisAccount); i { case 0: return &v.state case 1: @@ -1917,7 +1923,7 @@ func file_cosmos_accounts_v1_genesis_proto_init() { } } file_cosmos_accounts_v1_genesis_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GenesisState_GenesisAccount_KVPair); i { + switch v := v.(*KVPair); i { case 0: return &v.state case 1: diff --git a/proto/cosmos/accounts/v1/genesis.proto b/proto/cosmos/accounts/v1/genesis.proto index db98da839550..333b276f37d3 100644 --- a/proto/cosmos/accounts/v1/genesis.proto +++ b/proto/cosmos/accounts/v1/genesis.proto @@ -6,15 +6,26 @@ option go_package = "cosmossdk.io/x/accounts/v1"; // GenesisState defines the accounts' module's genesis state. message GenesisState { - uint64 account_number = 1; - repeated GenesisAccount accounts = 2; - message GenesisAccount { - string address = 1; - string account_type = 2; - repeated KVPair state = 3; - message KVPair { - bytes key = 1; - bytes value = 2; - } - } + // account_number is the latest account number. + uint64 account_number = 1; + // accounts are the genesis accounts. + repeated GenesisAccount accounts = 2; +} + +// GenesisAccount defines an account to be initialized in the genesis state. +message GenesisAccount { + // address is the address of the account. + string address = 1; + // account_type is the account type of the account. + string account_type = 2; + // state is the account state represented as a slice of raw key value byte pairs. + repeated KVPair state = 3; +} + +// KVPair defines a key value pair. +message KVPair { + // key is the key of the pair. + bytes key = 1; + // value is the value of the pair. + bytes value = 2; } \ No newline at end of file diff --git a/x/accounts/genesis.go b/x/accounts/genesis.go index d57688801d3a..24ce7fbbea18 100644 --- a/x/accounts/genesis.go +++ b/x/accounts/genesis.go @@ -34,19 +34,19 @@ func (k Keeper) ExportState(ctx context.Context) (*v1.GenesisState, error) { return genState, nil } -func (k Keeper) exportAccount(ctx context.Context, addr []byte, accType string) (*v1.GenesisState_GenesisAccount, error) { +func (k Keeper) exportAccount(ctx context.Context, addr []byte, accType string) (*v1.GenesisAccount, error) { addrString, err := k.addressCodec.BytesToString(addr) if err != nil { return nil, err } - account := &v1.GenesisState_GenesisAccount{ + account := &v1.GenesisAccount{ Address: addrString, AccountType: accType, } rng := new(collections.Range[[]byte]). Prefix(addr) err = k.AccountsState.Walk(ctx, rng, func(key, value []byte) (stop bool, err error) { - account.State = append(account.State, &v1.GenesisState_GenesisAccount_KVPair{ + account.State = append(account.State, &v1.KVPair{ Key: key, Value: value, }) @@ -74,7 +74,7 @@ func (k Keeper) ImportState(ctx context.Context, genState *v1.GenesisState) erro return nil } -func (k Keeper) importAccount(ctx context.Context, acc *v1.GenesisState_GenesisAccount) error { +func (k Keeper) importAccount(ctx context.Context, acc *v1.GenesisAccount) error { // TODO: maybe check if impl exists? addrBytes, err := k.addressCodec.StringToBytes(acc.Address) if err != nil { diff --git a/x/accounts/v1/genesis.pb.go b/x/accounts/v1/genesis.pb.go index a98191c94be5..4f7f03c46dac 100644 --- a/x/accounts/v1/genesis.pb.go +++ b/x/accounts/v1/genesis.pb.go @@ -24,8 +24,10 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the accounts' module's genesis state. type GenesisState struct { - AccountNumber uint64 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` - Accounts []*GenesisState_GenesisAccount `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty"` + // account_number is the latest account number. + AccountNumber uint64 `protobuf:"varint,1,opt,name=account_number,json=accountNumber,proto3" json:"account_number,omitempty"` + // accounts are the genesis accounts. + Accounts []*GenesisAccount `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -68,31 +70,35 @@ func (m *GenesisState) GetAccountNumber() uint64 { return 0 } -func (m *GenesisState) GetAccounts() []*GenesisState_GenesisAccount { +func (m *GenesisState) GetAccounts() []*GenesisAccount { if m != nil { return m.Accounts } return nil } -type GenesisState_GenesisAccount struct { - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - AccountType string `protobuf:"bytes,2,opt,name=account_type,json=accountType,proto3" json:"account_type,omitempty"` - State []*GenesisState_GenesisAccount_KVPair `protobuf:"bytes,3,rep,name=state,proto3" json:"state,omitempty"` +// GenesisAccount defines an account to be initialized in the genesis state. +type GenesisAccount struct { + // address is the address of the account. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + // account_type is the account type of the account. + AccountType string `protobuf:"bytes,2,opt,name=account_type,json=accountType,proto3" json:"account_type,omitempty"` + // state is the account state represented as a slice of raw key value byte pairs. + State []*KVPair `protobuf:"bytes,3,rep,name=state,proto3" json:"state,omitempty"` } -func (m *GenesisState_GenesisAccount) Reset() { *m = GenesisState_GenesisAccount{} } -func (m *GenesisState_GenesisAccount) String() string { return proto.CompactTextString(m) } -func (*GenesisState_GenesisAccount) ProtoMessage() {} -func (*GenesisState_GenesisAccount) Descriptor() ([]byte, []int) { - return fileDescriptor_409859d32eae9438, []int{0, 0} +func (m *GenesisAccount) Reset() { *m = GenesisAccount{} } +func (m *GenesisAccount) String() string { return proto.CompactTextString(m) } +func (*GenesisAccount) ProtoMessage() {} +func (*GenesisAccount) Descriptor() ([]byte, []int) { + return fileDescriptor_409859d32eae9438, []int{1} } -func (m *GenesisState_GenesisAccount) XXX_Unmarshal(b []byte) error { +func (m *GenesisAccount) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *GenesisState_GenesisAccount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *GenesisAccount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_GenesisState_GenesisAccount.Marshal(b, m, deterministic) + return xxx_messageInfo_GenesisAccount.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -102,56 +108,59 @@ func (m *GenesisState_GenesisAccount) XXX_Marshal(b []byte, deterministic bool) return b[:n], nil } } -func (m *GenesisState_GenesisAccount) XXX_Merge(src proto.Message) { - xxx_messageInfo_GenesisState_GenesisAccount.Merge(m, src) +func (m *GenesisAccount) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenesisAccount.Merge(m, src) } -func (m *GenesisState_GenesisAccount) XXX_Size() int { +func (m *GenesisAccount) XXX_Size() int { return m.Size() } -func (m *GenesisState_GenesisAccount) XXX_DiscardUnknown() { - xxx_messageInfo_GenesisState_GenesisAccount.DiscardUnknown(m) +func (m *GenesisAccount) XXX_DiscardUnknown() { + xxx_messageInfo_GenesisAccount.DiscardUnknown(m) } -var xxx_messageInfo_GenesisState_GenesisAccount proto.InternalMessageInfo +var xxx_messageInfo_GenesisAccount proto.InternalMessageInfo -func (m *GenesisState_GenesisAccount) GetAddress() string { +func (m *GenesisAccount) GetAddress() string { if m != nil { return m.Address } return "" } -func (m *GenesisState_GenesisAccount) GetAccountType() string { +func (m *GenesisAccount) GetAccountType() string { if m != nil { return m.AccountType } return "" } -func (m *GenesisState_GenesisAccount) GetState() []*GenesisState_GenesisAccount_KVPair { +func (m *GenesisAccount) GetState() []*KVPair { if m != nil { return m.State } return nil } -type GenesisState_GenesisAccount_KVPair struct { - Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` +// KVPair defines a key value pair. +type KVPair struct { + // key is the key of the pair. + Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // value is the value of the pair. Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } -func (m *GenesisState_GenesisAccount_KVPair) Reset() { *m = GenesisState_GenesisAccount_KVPair{} } -func (m *GenesisState_GenesisAccount_KVPair) String() string { return proto.CompactTextString(m) } -func (*GenesisState_GenesisAccount_KVPair) ProtoMessage() {} -func (*GenesisState_GenesisAccount_KVPair) Descriptor() ([]byte, []int) { - return fileDescriptor_409859d32eae9438, []int{0, 0, 0} +func (m *KVPair) Reset() { *m = KVPair{} } +func (m *KVPair) String() string { return proto.CompactTextString(m) } +func (*KVPair) ProtoMessage() {} +func (*KVPair) Descriptor() ([]byte, []int) { + return fileDescriptor_409859d32eae9438, []int{2} } -func (m *GenesisState_GenesisAccount_KVPair) XXX_Unmarshal(b []byte) error { +func (m *KVPair) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *GenesisState_GenesisAccount_KVPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *KVPair) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_GenesisState_GenesisAccount_KVPair.Marshal(b, m, deterministic) + return xxx_messageInfo_KVPair.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -161,26 +170,26 @@ func (m *GenesisState_GenesisAccount_KVPair) XXX_Marshal(b []byte, deterministic return b[:n], nil } } -func (m *GenesisState_GenesisAccount_KVPair) XXX_Merge(src proto.Message) { - xxx_messageInfo_GenesisState_GenesisAccount_KVPair.Merge(m, src) +func (m *KVPair) XXX_Merge(src proto.Message) { + xxx_messageInfo_KVPair.Merge(m, src) } -func (m *GenesisState_GenesisAccount_KVPair) XXX_Size() int { +func (m *KVPair) XXX_Size() int { return m.Size() } -func (m *GenesisState_GenesisAccount_KVPair) XXX_DiscardUnknown() { - xxx_messageInfo_GenesisState_GenesisAccount_KVPair.DiscardUnknown(m) +func (m *KVPair) XXX_DiscardUnknown() { + xxx_messageInfo_KVPair.DiscardUnknown(m) } -var xxx_messageInfo_GenesisState_GenesisAccount_KVPair proto.InternalMessageInfo +var xxx_messageInfo_KVPair proto.InternalMessageInfo -func (m *GenesisState_GenesisAccount_KVPair) GetKey() []byte { +func (m *KVPair) GetKey() []byte { if m != nil { return m.Key } return nil } -func (m *GenesisState_GenesisAccount_KVPair) GetValue() []byte { +func (m *KVPair) GetValue() []byte { if m != nil { return m.Value } @@ -189,32 +198,32 @@ func (m *GenesisState_GenesisAccount_KVPair) GetValue() []byte { func init() { proto.RegisterType((*GenesisState)(nil), "cosmos.accounts.v1.GenesisState") - proto.RegisterType((*GenesisState_GenesisAccount)(nil), "cosmos.accounts.v1.GenesisState.GenesisAccount") - proto.RegisterType((*GenesisState_GenesisAccount_KVPair)(nil), "cosmos.accounts.v1.GenesisState.GenesisAccount.KVPair") + proto.RegisterType((*GenesisAccount)(nil), "cosmos.accounts.v1.GenesisAccount") + proto.RegisterType((*KVPair)(nil), "cosmos.accounts.v1.KVPair") } func init() { proto.RegisterFile("cosmos/accounts/v1/genesis.proto", fileDescriptor_409859d32eae9438) } var fileDescriptor_409859d32eae9438 = []byte{ - // 286 bytes of a gzipped FileDescriptorProto + // 280 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x48, 0xce, 0x2f, 0xce, 0xcd, 0x2f, 0xd6, 0x4f, 0x4c, 0x4e, 0xce, 0x2f, 0xcd, 0x2b, 0x29, 0xd6, 0x2f, 0x33, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x82, 0xa8, - 0xd0, 0x83, 0xa9, 0xd0, 0x2b, 0x33, 0x54, 0xba, 0xc4, 0xc4, 0xc5, 0xe3, 0x0e, 0x51, 0x15, 0x5c, - 0x92, 0x58, 0x92, 0x2a, 0xa4, 0xca, 0xc5, 0x07, 0x95, 0x8f, 0xcf, 0x2b, 0xcd, 0x4d, 0x4a, 0x2d, - 0x92, 0x60, 0x54, 0x60, 0xd4, 0x60, 0x09, 0xe2, 0x85, 0x8a, 0xfa, 0x81, 0x05, 0x85, 0xbc, 0xb9, - 0x38, 0x60, 0xc6, 0x48, 0x30, 0x29, 0x30, 0x6b, 0x70, 0x1b, 0xe9, 0xeb, 0x61, 0x1a, 0xaf, 0x87, - 0x6c, 0x34, 0x8c, 0xe3, 0x08, 0x91, 0x0f, 0x82, 0x1b, 0x20, 0x75, 0x96, 0x91, 0x8b, 0x0f, 0x55, - 0x52, 0x48, 0x82, 0x8b, 0x3d, 0x31, 0x25, 0xa5, 0x28, 0xb5, 0xb8, 0x18, 0x6c, 0x3f, 0x67, 0x10, - 0x8c, 0x2b, 0xa4, 0xc8, 0xc5, 0x03, 0x73, 0x60, 0x49, 0x65, 0x41, 0xaa, 0x04, 0x13, 0x58, 0x9a, - 0x1b, 0x2a, 0x16, 0x52, 0x59, 0x90, 0x2a, 0xe4, 0xc3, 0xc5, 0x5a, 0x0c, 0xb2, 0x51, 0x82, 0x19, - 0xec, 0x32, 0x33, 0x12, 0x5d, 0xa6, 0xe7, 0x1d, 0x16, 0x90, 0x98, 0x59, 0x14, 0x04, 0x31, 0x44, - 0xca, 0x80, 0x8b, 0x0d, 0x22, 0x20, 0x24, 0xc0, 0xc5, 0x9c, 0x9d, 0x5a, 0x09, 0x76, 0x10, 0x4f, - 0x10, 0x88, 0x29, 0x24, 0xc2, 0xc5, 0x5a, 0x96, 0x98, 0x53, 0x0a, 0x71, 0x05, 0x4f, 0x10, 0x84, - 0xe3, 0x64, 0x72, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, - 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x52, 0x10, 0x97, - 0x14, 0xa7, 0x64, 0xeb, 0x65, 0xe6, 0xeb, 0x57, 0x20, 0x47, 0x56, 0x12, 0x1b, 0x38, 0x96, 0x8c, - 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x96, 0xa4, 0x16, 0xbf, 0xc9, 0x01, 0x00, 0x00, + 0xd0, 0x83, 0xa9, 0xd0, 0x2b, 0x33, 0x54, 0x2a, 0xe5, 0xe2, 0x71, 0x87, 0x28, 0x0a, 0x2e, 0x49, + 0x2c, 0x49, 0x15, 0x52, 0xe5, 0xe2, 0x83, 0x4a, 0xc7, 0xe7, 0x95, 0xe6, 0x26, 0xa5, 0x16, 0x49, + 0x30, 0x2a, 0x30, 0x6a, 0xb0, 0x04, 0xf1, 0x42, 0x45, 0xfd, 0xc0, 0x82, 0x42, 0x76, 0x5c, 0x1c, + 0x30, 0x53, 0x24, 0x98, 0x14, 0x98, 0x35, 0xb8, 0x8d, 0x94, 0xf4, 0x30, 0x4d, 0xd7, 0x83, 0x1a, + 0xed, 0x08, 0x11, 0x0a, 0x82, 0xeb, 0x51, 0xaa, 0xe7, 0xe2, 0x43, 0x95, 0x13, 0x92, 0xe0, 0x62, + 0x4f, 0x4c, 0x49, 0x29, 0x4a, 0x2d, 0x2e, 0x06, 0xdb, 0xc8, 0x19, 0x04, 0xe3, 0x0a, 0x29, 0x72, + 0xf1, 0xc0, 0x9c, 0x54, 0x52, 0x59, 0x90, 0x2a, 0xc1, 0x04, 0x96, 0xe6, 0x86, 0x8a, 0x85, 0x54, + 0x16, 0xa4, 0x0a, 0x19, 0x70, 0xb1, 0x16, 0x83, 0x9c, 0x2f, 0xc1, 0x0c, 0x76, 0x8b, 0x14, 0x36, + 0xb7, 0x78, 0x87, 0x05, 0x24, 0x66, 0x16, 0x05, 0x41, 0x14, 0x2a, 0x19, 0x70, 0xb1, 0x41, 0x04, + 0x84, 0x04, 0xb8, 0x98, 0xb3, 0x53, 0x2b, 0xc1, 0x96, 0xf2, 0x04, 0x81, 0x98, 0x42, 0x22, 0x5c, + 0xac, 0x65, 0x89, 0x39, 0xa5, 0x10, 0x9b, 0x78, 0x82, 0x20, 0x1c, 0x27, 0x93, 0x13, 0x8f, 0xe4, + 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, + 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x88, 0x92, 0x82, 0xd8, 0x56, 0x9c, 0x92, 0xad, 0x97, 0x99, + 0xaf, 0x5f, 0x81, 0x1c, 0x03, 0x49, 0x6c, 0xe0, 0xa0, 0x37, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, + 0x11, 0x08, 0x28, 0x3a, 0x9e, 0x01, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -259,7 +268,7 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *GenesisState_GenesisAccount) Marshal() (dAtA []byte, err error) { +func (m *GenesisAccount) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -269,12 +278,12 @@ func (m *GenesisState_GenesisAccount) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *GenesisState_GenesisAccount) MarshalTo(dAtA []byte) (int, error) { +func (m *GenesisAccount) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *GenesisState_GenesisAccount) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *GenesisAccount) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -310,7 +319,7 @@ func (m *GenesisState_GenesisAccount) MarshalToSizedBuffer(dAtA []byte) (int, er return len(dAtA) - i, nil } -func (m *GenesisState_GenesisAccount_KVPair) Marshal() (dAtA []byte, err error) { +func (m *KVPair) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -320,12 +329,12 @@ func (m *GenesisState_GenesisAccount_KVPair) Marshal() (dAtA []byte, err error) return dAtA[:n], nil } -func (m *GenesisState_GenesisAccount_KVPair) MarshalTo(dAtA []byte) (int, error) { +func (m *KVPair) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *GenesisState_GenesisAccount_KVPair) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *KVPair) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -376,7 +385,7 @@ func (m *GenesisState) Size() (n int) { return n } -func (m *GenesisState_GenesisAccount) Size() (n int) { +func (m *GenesisAccount) Size() (n int) { if m == nil { return 0 } @@ -399,7 +408,7 @@ func (m *GenesisState_GenesisAccount) Size() (n int) { return n } -func (m *GenesisState_GenesisAccount_KVPair) Size() (n int) { +func (m *KVPair) Size() (n int) { if m == nil { return 0 } @@ -499,7 +508,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Accounts = append(m.Accounts, &GenesisState_GenesisAccount{}) + m.Accounts = append(m.Accounts, &GenesisAccount{}) if err := m.Accounts[len(m.Accounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -525,7 +534,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { } return nil } -func (m *GenesisState_GenesisAccount) Unmarshal(dAtA []byte) error { +func (m *GenesisAccount) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -647,7 +656,7 @@ func (m *GenesisState_GenesisAccount) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.State = append(m.State, &GenesisState_GenesisAccount_KVPair{}) + m.State = append(m.State, &KVPair{}) if err := m.State[len(m.State)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } @@ -673,7 +682,7 @@ func (m *GenesisState_GenesisAccount) Unmarshal(dAtA []byte) error { } return nil } -func (m *GenesisState_GenesisAccount_KVPair) Unmarshal(dAtA []byte) error { +func (m *KVPair) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index c63094a3f590..4a1da323813d 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1404,705 +1404,715 @@ 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{ - // 11157 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x69, 0x90, 0x1c, 0xc9, - 0x75, 0x18, 0x3c, 0x7d, 0x4c, 0x1f, 0xaf, 0xaf, 0x9a, 0x9c, 0x01, 0x30, 0x68, 0x2c, 0x66, 0x06, - 0xb5, 0xdc, 0x05, 0x16, 0xbb, 0x3b, 0xd8, 0xc5, 0x2e, 0xb0, 0xbb, 0x03, 0x92, 0xfb, 0x75, 0xf7, - 0x34, 0x06, 0x8d, 0x9d, 0x6b, 0xab, 0x7b, 0xb0, 0x87, 0x24, 0x96, 0x6a, 0xaa, 0x73, 0x7a, 0x6a, - 0xd1, 0x5d, 0xd5, 0xac, 0xaa, 0x06, 0x66, 0x36, 0xbe, 0x70, 0x50, 0xa6, 0x64, 0x53, 0xd0, 0x61, - 0xea, 0x08, 0x89, 0x12, 0x09, 0x89, 0x94, 0x2c, 0x91, 0x92, 0x2f, 0x1d, 0xb4, 0x0e, 0x2b, 0x2c, - 0x4b, 0x0e, 0x1f, 0x92, 0xc2, 0x07, 0xad, 0x1f, 0xb6, 0xc2, 0x11, 0x5a, 0x4b, 0xa4, 0xc2, 0xa2, - 0x29, 0xca, 0xd6, 0x41, 0xd9, 0x72, 0x30, 0xac, 0x70, 0xe4, 0x55, 0x47, 0x1f, 0xd3, 0x3d, 0xe0, - 0x72, 0x45, 0xcb, 0xfe, 0x03, 0x74, 0xbe, 0x7c, 0xef, 0x65, 0xe6, 0xcb, 0x97, 0x2f, 0xdf, 0x7b, - 0x99, 0x95, 0x03, 0xbf, 0x5b, 0x86, 0xa5, 0x96, 0x65, 0xb5, 0xda, 0xf8, 0x52, 0xd7, 0xb6, 0x5c, - 0x6b, 0xb7, 0xb7, 0x77, 0xa9, 0x89, 0x1d, 0xdd, 0x36, 0xba, 0xae, 0x65, 0x2f, 0x53, 0x18, 0x2a, - 0x30, 0x8c, 0x65, 0x81, 0x21, 0x6f, 0xc0, 0xcc, 0x75, 0xa3, 0x8d, 0x57, 0x3d, 0xc4, 0x3a, 0x76, - 0xd1, 0xf3, 0x10, 0xdf, 0x33, 0xda, 0x78, 0x3e, 0xb2, 0x14, 0xbb, 0x90, 0xb9, 0xfc, 0xae, 0xe5, - 0x3e, 0xa2, 0xe5, 0x30, 0xc5, 0x36, 0x01, 0x2b, 0x94, 0x42, 0xfe, 0x8b, 0x38, 0xcc, 0x0e, 0xa9, - 0x45, 0x08, 0xe2, 0xa6, 0xd6, 0x21, 0x1c, 0x23, 0x17, 0xd2, 0x0a, 0xfd, 0x8d, 0xe6, 0x21, 0xd9, - 0xd5, 0xf4, 0xdb, 0x5a, 0x0b, 0xcf, 0x47, 0x29, 0x58, 0x14, 0xd1, 0x02, 0x40, 0x13, 0x77, 0xb1, - 0xd9, 0xc4, 0xa6, 0x7e, 0x38, 0x1f, 0x5b, 0x8a, 0x5d, 0x48, 0x2b, 0x01, 0x08, 0x7a, 0x1c, 0x66, - 0xba, 0xbd, 0xdd, 0xb6, 0xa1, 0xab, 0x01, 0x34, 0x58, 0x8a, 0x5d, 0x98, 0x56, 0x24, 0x56, 0xb1, - 0xea, 0x23, 0x9f, 0x87, 0xc2, 0x5d, 0xac, 0xdd, 0x0e, 0xa2, 0x66, 0x28, 0x6a, 0x9e, 0x80, 0x03, - 0x88, 0x15, 0xc8, 0x76, 0xb0, 0xe3, 0x68, 0x2d, 0xac, 0xba, 0x87, 0x5d, 0x3c, 0x1f, 0xa7, 0xa3, - 0x5f, 0x1a, 0x18, 0x7d, 0xff, 0xc8, 0x33, 0x9c, 0xaa, 0x71, 0xd8, 0xc5, 0xa8, 0x04, 0x69, 0x6c, - 0xf6, 0x3a, 0x8c, 0xc3, 0xf4, 0x08, 0xf9, 0x55, 0xcd, 0x5e, 0xa7, 0x9f, 0x4b, 0x8a, 0x90, 0x71, - 0x16, 0x49, 0x07, 0xdb, 0x77, 0x0c, 0x1d, 0xcf, 0x27, 0x28, 0x83, 0xf3, 0x03, 0x0c, 0xea, 0xac, - 0xbe, 0x9f, 0x87, 0xa0, 0x43, 0x15, 0x48, 0xe3, 0x03, 0x17, 0x9b, 0x8e, 0x61, 0x99, 0xf3, 0x49, - 0xca, 0xe4, 0x91, 0x21, 0xb3, 0x88, 0xdb, 0xcd, 0x7e, 0x16, 0x3e, 0x1d, 0xba, 0x0a, 0x49, 0xab, - 0xeb, 0x1a, 0x96, 0xe9, 0xcc, 0xa7, 0x96, 0x22, 0x17, 0x32, 0x97, 0x1f, 0x1a, 0xaa, 0x08, 0x5b, - 0x0c, 0x47, 0x11, 0xc8, 0xa8, 0x06, 0x92, 0x63, 0xf5, 0x6c, 0x1d, 0xab, 0xba, 0xd5, 0xc4, 0xaa, - 0x61, 0xee, 0x59, 0xf3, 0x69, 0xca, 0x60, 0x71, 0x70, 0x20, 0x14, 0xb1, 0x62, 0x35, 0x71, 0xcd, - 0xdc, 0xb3, 0x94, 0xbc, 0x13, 0x2a, 0xa3, 0x93, 0x90, 0x70, 0x0e, 0x4d, 0x57, 0x3b, 0x98, 0xcf, - 0x52, 0x0d, 0xe1, 0x25, 0xa2, 0x3a, 0xb8, 0x69, 0x90, 0xe6, 0xe6, 0x73, 0x4c, 0x75, 0x78, 0x51, - 0xfe, 0xc5, 0x04, 0x14, 0x26, 0x51, 0xbe, 0x6b, 0x30, 0xbd, 0x47, 0xc6, 0x3f, 0x1f, 0x3d, 0x8e, - 0x74, 0x18, 0x4d, 0x58, 0xbc, 0x89, 0x07, 0x14, 0x6f, 0x09, 0x32, 0x26, 0x76, 0x5c, 0xdc, 0x64, - 0xba, 0x12, 0x9b, 0x50, 0xdb, 0x80, 0x11, 0x0d, 0x2a, 0x5b, 0xfc, 0x81, 0x94, 0xed, 0x55, 0x28, - 0x78, 0x5d, 0x52, 0x6d, 0xcd, 0x6c, 0x09, 0xad, 0xbd, 0x34, 0xae, 0x27, 0xcb, 0x55, 0x41, 0xa7, - 0x10, 0x32, 0x25, 0x8f, 0x43, 0x65, 0xb4, 0x0a, 0x60, 0x99, 0xd8, 0xda, 0x53, 0x9b, 0x58, 0x6f, - 0xcf, 0xa7, 0x46, 0x48, 0x69, 0x8b, 0xa0, 0x0c, 0x48, 0xc9, 0x62, 0x50, 0xbd, 0x8d, 0x5e, 0xf0, - 0x95, 0x30, 0x39, 0x42, 0x87, 0x36, 0xd8, 0xf2, 0x1b, 0xd0, 0xc3, 0x1d, 0xc8, 0xdb, 0x98, 0xac, - 0x08, 0xdc, 0xe4, 0x23, 0x4b, 0xd3, 0x4e, 0x2c, 0x8f, 0x1d, 0x99, 0xc2, 0xc9, 0xd8, 0xc0, 0x72, - 0x76, 0xb0, 0x88, 0x1e, 0x06, 0x0f, 0xa0, 0x52, 0xb5, 0x02, 0x6a, 0x9f, 0xb2, 0x02, 0xb8, 0xa9, - 0x75, 0x70, 0xf1, 0x4d, 0xc8, 0x87, 0xc5, 0x83, 0xe6, 0x60, 0xda, 0x71, 0x35, 0xdb, 0xa5, 0x5a, - 0x38, 0xad, 0xb0, 0x02, 0x92, 0x20, 0x86, 0xcd, 0x26, 0xb5, 0x7f, 0xd3, 0x0a, 0xf9, 0x89, 0xfe, - 0x3f, 0x7f, 0xc0, 0x31, 0x3a, 0xe0, 0x47, 0x07, 0x67, 0x34, 0xc4, 0xb9, 0x7f, 0xdc, 0xc5, 0xe7, - 0x20, 0x17, 0x1a, 0xc0, 0xa4, 0x4d, 0xcb, 0xff, 0x3f, 0x9c, 0x18, 0xca, 0x1a, 0xbd, 0x0a, 0x73, - 0x3d, 0xd3, 0x30, 0x5d, 0x6c, 0x77, 0x6d, 0x4c, 0x34, 0x96, 0x35, 0x35, 0xff, 0xfb, 0xc9, 0x11, - 0x3a, 0xb7, 0x13, 0xc4, 0x66, 0x5c, 0x94, 0xd9, 0xde, 0x20, 0xf0, 0x62, 0x3a, 0xf5, 0xf9, 0xa4, - 0xf4, 0x81, 0x0f, 0x7c, 0xe0, 0x03, 0x51, 0xf9, 0x57, 0x13, 0x30, 0x37, 0x6c, 0xcd, 0x0c, 0x5d, - 0xbe, 0x27, 0x21, 0x61, 0xf6, 0x3a, 0xbb, 0xd8, 0xa6, 0x42, 0x9a, 0x56, 0x78, 0x09, 0x95, 0x60, - 0xba, 0xad, 0xed, 0xe2, 0xf6, 0x7c, 0x7c, 0x29, 0x72, 0x21, 0x7f, 0xf9, 0xf1, 0x89, 0x56, 0xe5, - 0xf2, 0x3a, 0x21, 0x51, 0x18, 0x25, 0x7a, 0x2f, 0xc4, 0xb9, 0xf1, 0x26, 0x1c, 0x2e, 0x4e, 0xc6, - 0x81, 0xac, 0x25, 0x85, 0xd2, 0xa1, 0x33, 0x90, 0x26, 0xff, 0x33, 0xdd, 0x48, 0xd0, 0x3e, 0xa7, - 0x08, 0x80, 0xe8, 0x05, 0x2a, 0x42, 0x8a, 0x2e, 0x93, 0x26, 0x16, 0x9b, 0x9e, 0x57, 0x26, 0x8a, - 0xd5, 0xc4, 0x7b, 0x5a, 0xaf, 0xed, 0xaa, 0x77, 0xb4, 0x76, 0x0f, 0x53, 0x85, 0x4f, 0x2b, 0x59, - 0x0e, 0xbc, 0x45, 0x60, 0x68, 0x11, 0x32, 0x6c, 0x55, 0x19, 0x66, 0x13, 0x1f, 0x50, 0xbb, 0x3a, - 0xad, 0xb0, 0x85, 0x56, 0x23, 0x10, 0xd2, 0xfc, 0x1b, 0x8e, 0x65, 0x0a, 0xd5, 0xa4, 0x4d, 0x10, - 0x00, 0x6d, 0xfe, 0xb9, 0x7e, 0x93, 0x7e, 0x76, 0xf8, 0xf0, 0x06, 0xd6, 0xd2, 0x79, 0x28, 0x50, - 0x8c, 0x67, 0xf8, 0xd4, 0x6b, 0xed, 0xf9, 0x99, 0xa5, 0xc8, 0x85, 0x94, 0x92, 0x67, 0xe0, 0x2d, - 0x0e, 0x95, 0x7f, 0x2e, 0x0a, 0x71, 0x6a, 0x58, 0x0a, 0x90, 0x69, 0xbc, 0xb6, 0x5d, 0x55, 0x57, - 0xb7, 0x76, 0xca, 0xeb, 0x55, 0x29, 0x82, 0xf2, 0x00, 0x14, 0x70, 0x7d, 0x7d, 0xab, 0xd4, 0x90, - 0xa2, 0x5e, 0xb9, 0xb6, 0xd9, 0xb8, 0xfa, 0xac, 0x14, 0xf3, 0x08, 0x76, 0x18, 0x20, 0x1e, 0x44, - 0x78, 0xe6, 0xb2, 0x34, 0x8d, 0x24, 0xc8, 0x32, 0x06, 0xb5, 0x57, 0xab, 0xab, 0x57, 0x9f, 0x95, - 0x12, 0x61, 0xc8, 0x33, 0x97, 0xa5, 0x24, 0xca, 0x41, 0x9a, 0x42, 0xca, 0x5b, 0x5b, 0xeb, 0x52, - 0xca, 0xe3, 0x59, 0x6f, 0x28, 0xb5, 0xcd, 0x35, 0x29, 0xed, 0xf1, 0x5c, 0x53, 0xb6, 0x76, 0xb6, - 0x25, 0xf0, 0x38, 0x6c, 0x54, 0xeb, 0xf5, 0xd2, 0x5a, 0x55, 0xca, 0x78, 0x18, 0xe5, 0xd7, 0x1a, - 0xd5, 0xba, 0x94, 0x0d, 0x75, 0xeb, 0x99, 0xcb, 0x52, 0xce, 0x6b, 0xa2, 0xba, 0xb9, 0xb3, 0x21, - 0xe5, 0xd1, 0x0c, 0xe4, 0x58, 0x13, 0xa2, 0x13, 0x85, 0x3e, 0xd0, 0xd5, 0x67, 0x25, 0xc9, 0xef, - 0x08, 0xe3, 0x32, 0x13, 0x02, 0x5c, 0x7d, 0x56, 0x42, 0x72, 0x05, 0xa6, 0xa9, 0x1a, 0x22, 0x04, - 0xf9, 0xf5, 0x52, 0xb9, 0xba, 0xae, 0x6e, 0x6d, 0x37, 0x6a, 0x5b, 0x9b, 0xa5, 0x75, 0x29, 0xe2, - 0xc3, 0x94, 0xea, 0xcb, 0x3b, 0x35, 0xa5, 0xba, 0x2a, 0x45, 0x83, 0xb0, 0xed, 0x6a, 0xa9, 0x51, - 0x5d, 0x95, 0x62, 0xb2, 0x0e, 0x73, 0xc3, 0x0c, 0xea, 0xd0, 0x25, 0x14, 0xd0, 0x85, 0xe8, 0x08, - 0x5d, 0xa0, 0xbc, 0xfa, 0x75, 0x41, 0xfe, 0x5c, 0x14, 0x66, 0x87, 0x6c, 0x2a, 0x43, 0x1b, 0x79, - 0x11, 0xa6, 0x99, 0x2e, 0xb3, 0x6d, 0xf6, 0xb1, 0xa1, 0xbb, 0x13, 0xd5, 0xec, 0x81, 0xad, 0x96, - 0xd2, 0x05, 0x9d, 0x90, 0xd8, 0x08, 0x27, 0x84, 0xb0, 0x18, 0x50, 0xd8, 0x6f, 0x18, 0x30, 0xfe, - 0x6c, 0x7f, 0xbc, 0x3a, 0xc9, 0xfe, 0x48, 0x61, 0xc7, 0xdb, 0x04, 0xa6, 0x87, 0x6c, 0x02, 0xd7, - 0x60, 0x66, 0x80, 0xd1, 0xc4, 0xc6, 0xf8, 0x83, 0x11, 0x98, 0x1f, 0x25, 0x9c, 0x31, 0x26, 0x31, - 0x1a, 0x32, 0x89, 0xd7, 0xfa, 0x25, 0x78, 0x6e, 0xf4, 0x24, 0x0c, 0xcc, 0xf5, 0x27, 0x23, 0x70, - 0x72, 0xb8, 0xb3, 0x39, 0xb4, 0x0f, 0xef, 0x85, 0x44, 0x07, 0xbb, 0xfb, 0x96, 0x70, 0xab, 0x1e, - 0x1d, 0xb2, 0x59, 0x93, 0xea, 0xfe, 0xc9, 0xe6, 0x54, 0xc1, 0xdd, 0x3e, 0x36, 0xca, 0x63, 0x64, - 0xbd, 0x19, 0xe8, 0xe9, 0xb7, 0x46, 0xe1, 0xc4, 0x50, 0xe6, 0x43, 0x3b, 0x7a, 0x16, 0xc0, 0x30, - 0xbb, 0x3d, 0x97, 0xb9, 0x4e, 0xcc, 0x12, 0xa7, 0x29, 0x84, 0x1a, 0x2f, 0x62, 0x65, 0x7b, 0xae, - 0x57, 0x1f, 0xa3, 0xf5, 0xc0, 0x40, 0x14, 0xe1, 0x79, 0xbf, 0xa3, 0x71, 0xda, 0xd1, 0x85, 0x11, - 0x23, 0x1d, 0x50, 0xcc, 0xa7, 0x40, 0xd2, 0xdb, 0x06, 0x36, 0x5d, 0xd5, 0x71, 0x6d, 0xac, 0x75, - 0x0c, 0xb3, 0x45, 0xb7, 0x9a, 0xd4, 0xca, 0xf4, 0x9e, 0xd6, 0x76, 0xb0, 0x52, 0x60, 0xd5, 0x75, - 0x51, 0x4b, 0x28, 0xa8, 0x02, 0xd9, 0x01, 0x8a, 0x44, 0x88, 0x82, 0x55, 0x7b, 0x14, 0xf2, 0x77, - 0xa5, 0x21, 0x13, 0x70, 0xcd, 0xd1, 0x39, 0xc8, 0xbe, 0xa1, 0xdd, 0xd1, 0x54, 0x11, 0x6e, 0x31, - 0x49, 0x64, 0x08, 0x6c, 0x9b, 0x87, 0x5c, 0x4f, 0xc1, 0x1c, 0x45, 0xb1, 0x7a, 0x2e, 0xb6, 0x55, - 0xbd, 0xad, 0x39, 0x0e, 0x15, 0x5a, 0x8a, 0xa2, 0x22, 0x52, 0xb7, 0x45, 0xaa, 0x2a, 0xa2, 0x06, - 0x5d, 0x81, 0x59, 0x4a, 0xd1, 0xe9, 0xb5, 0x5d, 0xa3, 0xdb, 0xc6, 0x2a, 0x09, 0x00, 0x1d, 0xba, - 0xe5, 0x78, 0x3d, 0x9b, 0x21, 0x18, 0x1b, 0x1c, 0x81, 0xf4, 0xc8, 0x41, 0xab, 0x70, 0x96, 0x92, - 0xb5, 0xb0, 0x89, 0x6d, 0xcd, 0xc5, 0x2a, 0x7e, 0x7f, 0x4f, 0x6b, 0x3b, 0xaa, 0x66, 0x36, 0xd5, - 0x7d, 0xcd, 0xd9, 0x9f, 0x9f, 0x23, 0x0c, 0xca, 0xd1, 0xf9, 0x88, 0x72, 0x9a, 0x20, 0xae, 0x71, - 0xbc, 0x2a, 0x45, 0x2b, 0x99, 0xcd, 0x1b, 0x9a, 0xb3, 0x8f, 0x56, 0xe0, 0x24, 0xe5, 0xe2, 0xb8, - 0xb6, 0x61, 0xb6, 0x54, 0x7d, 0x1f, 0xeb, 0xb7, 0xd5, 0x9e, 0xbb, 0xf7, 0xfc, 0xfc, 0x99, 0x60, - 0xfb, 0xb4, 0x87, 0x75, 0x8a, 0x53, 0x21, 0x28, 0x3b, 0xee, 0xde, 0xf3, 0xa8, 0x0e, 0x59, 0x32, - 0x19, 0x1d, 0xe3, 0x4d, 0xac, 0xee, 0x59, 0x36, 0xdd, 0x43, 0xf3, 0x43, 0x4c, 0x53, 0x40, 0x82, - 0xcb, 0x5b, 0x9c, 0x60, 0xc3, 0x6a, 0xe2, 0x95, 0xe9, 0xfa, 0x76, 0xb5, 0xba, 0xaa, 0x64, 0x04, - 0x97, 0xeb, 0x96, 0x4d, 0x14, 0xaa, 0x65, 0x79, 0x02, 0xce, 0x30, 0x85, 0x6a, 0x59, 0x42, 0xbc, - 0x57, 0x60, 0x56, 0xd7, 0xd9, 0x98, 0x0d, 0x5d, 0xe5, 0x61, 0x9a, 0x33, 0x2f, 0x85, 0x84, 0xa5, - 0xeb, 0x6b, 0x0c, 0x81, 0xeb, 0xb8, 0x83, 0x5e, 0x80, 0x13, 0xbe, 0xb0, 0x82, 0x84, 0x33, 0x03, - 0xa3, 0xec, 0x27, 0xbd, 0x02, 0xb3, 0xdd, 0xc3, 0x41, 0x42, 0x14, 0x6a, 0xb1, 0x7b, 0xd8, 0x4f, - 0xf6, 0x1c, 0xcc, 0x75, 0xf7, 0xbb, 0x83, 0x74, 0x17, 0x83, 0x74, 0xa8, 0xbb, 0xdf, 0xed, 0x27, - 0x7c, 0x84, 0xc6, 0xec, 0x36, 0xd6, 0x35, 0x17, 0x37, 0xe7, 0x4f, 0x05, 0xd1, 0x03, 0x15, 0x68, - 0x19, 0x24, 0x5d, 0x57, 0xb1, 0xa9, 0xed, 0xb6, 0xb1, 0xaa, 0xd9, 0xd8, 0xd4, 0x9c, 0xf9, 0x45, - 0x8a, 0x1c, 0x77, 0xed, 0x1e, 0x56, 0xf2, 0xba, 0x5e, 0xa5, 0x95, 0x25, 0x5a, 0x87, 0x2e, 0xc2, - 0x8c, 0xb5, 0xfb, 0x86, 0xce, 0x34, 0x52, 0xed, 0xda, 0x78, 0xcf, 0x38, 0x98, 0x7f, 0x17, 0x15, - 0x6f, 0x81, 0x54, 0x50, 0x7d, 0xdc, 0xa6, 0x60, 0xf4, 0x18, 0x48, 0xba, 0xb3, 0xaf, 0xd9, 0x5d, - 0x6a, 0x92, 0x9d, 0xae, 0xa6, 0xe3, 0xf9, 0x47, 0x18, 0x2a, 0x83, 0x6f, 0x0a, 0x30, 0x59, 0x11, - 0xce, 0x5d, 0x63, 0xcf, 0x15, 0x1c, 0xcf, 0xb3, 0x15, 0x41, 0x61, 0x9c, 0xdb, 0x05, 0x90, 0x88, - 0x24, 0x42, 0x0d, 0x5f, 0xa0, 0x68, 0xf9, 0xee, 0x7e, 0x37, 0xd8, 0xee, 0xc3, 0x90, 0x23, 0x98, - 0x7e, 0xa3, 0x8f, 0x31, 0xc7, 0xad, 0xbb, 0x1f, 0x68, 0xf1, 0x59, 0x38, 0x49, 0x90, 0x3a, 0xd8, - 0xd5, 0x9a, 0x9a, 0xab, 0x05, 0xb0, 0x9f, 0xa0, 0xd8, 0x44, 0xec, 0x1b, 0xbc, 0x32, 0xd4, 0x4f, - 0xbb, 0xb7, 0x7b, 0xe8, 0x29, 0xd6, 0x93, 0xac, 0x9f, 0x04, 0x26, 0x54, 0xeb, 0xab, 0xe6, 0x9c, - 0xcb, 0x2b, 0x90, 0x0d, 0xea, 0x3d, 0x4a, 0x03, 0xd3, 0x7c, 0x29, 0x42, 0x9c, 0xa0, 0xca, 0xd6, - 0x2a, 0x71, 0x5f, 0x5e, 0xaf, 0x4a, 0x51, 0xe2, 0x46, 0xad, 0xd7, 0x1a, 0x55, 0x55, 0xd9, 0xd9, - 0x6c, 0xd4, 0x36, 0xaa, 0x52, 0x2c, 0xe0, 0xd8, 0xdf, 0x8c, 0xa7, 0x1e, 0x95, 0xce, 0xcb, 0xbf, - 0x14, 0x83, 0x7c, 0x38, 0x52, 0x43, 0xef, 0x86, 0x53, 0x22, 0xe1, 0xe2, 0x60, 0x57, 0xbd, 0x6b, - 0xd8, 0x74, 0x41, 0x76, 0x34, 0xb6, 0x39, 0x7a, 0xfa, 0x33, 0xc7, 0xb1, 0xea, 0xd8, 0x7d, 0xc5, - 0xb0, 0xc9, 0x72, 0xeb, 0x68, 0x2e, 0x5a, 0x87, 0x45, 0xd3, 0x52, 0x1d, 0x57, 0x33, 0x9b, 0x9a, - 0xdd, 0x54, 0xfd, 0x54, 0x97, 0xaa, 0xe9, 0x3a, 0x76, 0x1c, 0x8b, 0x6d, 0x84, 0x1e, 0x97, 0x87, - 0x4c, 0xab, 0xce, 0x91, 0xfd, 0x1d, 0xa2, 0xc4, 0x51, 0xfb, 0xd4, 0x37, 0x36, 0x4a, 0x7d, 0xcf, - 0x40, 0xba, 0xa3, 0x75, 0x55, 0x6c, 0xba, 0xf6, 0x21, 0xf5, 0xcf, 0x53, 0x4a, 0xaa, 0xa3, 0x75, - 0xab, 0xa4, 0x8c, 0x6e, 0xc1, 0xa3, 0x3e, 0xaa, 0xda, 0xc6, 0x2d, 0x4d, 0x3f, 0x54, 0xa9, 0x33, - 0x4e, 0xd3, 0x06, 0xaa, 0x6e, 0x99, 0x7b, 0x6d, 0x43, 0x77, 0x1d, 0x6a, 0x1f, 0x98, 0x8d, 0x93, - 0x7d, 0x8a, 0x75, 0x4a, 0x70, 0xd3, 0xb1, 0x4c, 0xea, 0x83, 0x57, 0x04, 0xf6, 0x3b, 0x12, 0x7e, - 0xdd, 0x8c, 0xa7, 0xe2, 0xd2, 0xf4, 0xcd, 0x78, 0x6a, 0x5a, 0x4a, 0xdc, 0x8c, 0xa7, 0x12, 0x52, - 0xf2, 0x66, 0x3c, 0x95, 0x92, 0xd2, 0x37, 0xe3, 0xa9, 0xb4, 0x04, 0xf2, 0xcf, 0xa7, 0x20, 0x1b, - 0x8c, 0x0c, 0x48, 0xa0, 0xa5, 0xd3, 0xbd, 0x31, 0x42, 0xad, 0xe7, 0xc3, 0x47, 0xc6, 0x11, 0xcb, - 0x15, 0xb2, 0x69, 0xae, 0x24, 0x98, 0x1b, 0xae, 0x30, 0x4a, 0xe2, 0xb0, 0x10, 0xb5, 0xc6, 0xcc, - 0xed, 0x49, 0x29, 0xbc, 0x84, 0xd6, 0x20, 0xf1, 0x86, 0x43, 0x79, 0x27, 0x28, 0xef, 0x77, 0x1d, - 0xcd, 0xfb, 0x66, 0x9d, 0x32, 0x4f, 0xdf, 0xac, 0xab, 0x9b, 0x5b, 0xca, 0x46, 0x69, 0x5d, 0xe1, - 0xe4, 0xe8, 0x34, 0xc4, 0xdb, 0xda, 0x9b, 0x87, 0xe1, 0xed, 0x95, 0x82, 0xd0, 0x32, 0x14, 0x7a, - 0xe6, 0x1d, 0x6c, 0x1b, 0x7b, 0x06, 0x99, 0x2a, 0x82, 0x55, 0x08, 0x62, 0xe5, 0xfd, 0xda, 0x75, - 0x82, 0x3f, 0xa1, 0x7a, 0x9c, 0x86, 0xf8, 0x5d, 0xac, 0xdd, 0x0e, 0x6f, 0x82, 0x14, 0x84, 0x2e, - 0x40, 0xb6, 0x89, 0x77, 0x7b, 0x2d, 0xd5, 0xc6, 0x4d, 0x4d, 0x77, 0xc3, 0xa6, 0x3f, 0x43, 0xab, - 0x14, 0x5a, 0x83, 0x5e, 0x82, 0x34, 0x99, 0x23, 0x93, 0xce, 0xf1, 0x0c, 0x15, 0xc1, 0x93, 0x47, - 0x8b, 0x80, 0x4f, 0xb1, 0x20, 0x52, 0x7c, 0x7a, 0x74, 0x1d, 0x12, 0xae, 0x66, 0xb7, 0xb0, 0x4b, - 0x2d, 0x7f, 0x7e, 0x48, 0xf2, 0x63, 0x08, 0xa7, 0x06, 0xa5, 0xa0, 0x31, 0x2d, 0xa7, 0xfe, 0x2a, - 0x5a, 0x99, 0x4b, 0x30, 0x4d, 0xd5, 0x03, 0x01, 0x70, 0x05, 0x91, 0xa6, 0x50, 0x0a, 0xe2, 0x95, - 0x2d, 0x85, 0x58, 0x1a, 0x09, 0xb2, 0x0c, 0xaa, 0x6e, 0xd7, 0xaa, 0x95, 0xaa, 0x14, 0x95, 0xaf, - 0x40, 0x82, 0xcd, 0x39, 0xb1, 0x42, 0xde, 0xac, 0x4b, 0x53, 0xbc, 0xc8, 0x79, 0x44, 0x44, 0xed, - 0xce, 0x46, 0xb9, 0xaa, 0x48, 0x51, 0x79, 0x07, 0x0a, 0x7d, 0x72, 0x42, 0x27, 0x60, 0x46, 0xa9, - 0x36, 0xaa, 0x9b, 0x24, 0xce, 0x52, 0x77, 0x36, 0x5f, 0xda, 0xdc, 0x7a, 0x65, 0x53, 0x9a, 0x0a, - 0x83, 0x85, 0x49, 0x8b, 0xa0, 0x39, 0x90, 0x7c, 0x70, 0x7d, 0x6b, 0x47, 0xa1, 0xbd, 0xf9, 0xf6, - 0x28, 0x48, 0xfd, 0x52, 0x43, 0xa7, 0x60, 0xb6, 0x51, 0x52, 0xd6, 0xaa, 0x0d, 0x95, 0xc5, 0x8e, - 0x1e, 0xeb, 0x39, 0x90, 0x82, 0x15, 0xd7, 0x6b, 0x34, 0x34, 0x5e, 0x84, 0x33, 0x41, 0x68, 0xf5, - 0xd5, 0x46, 0x75, 0xb3, 0x4e, 0x1b, 0x2f, 0x6d, 0xae, 0x11, 0xfb, 0xda, 0xc7, 0x4f, 0x44, 0xab, - 0x31, 0xd2, 0xd5, 0x30, 0xbf, 0xea, 0xfa, 0xaa, 0x14, 0xef, 0x07, 0x6f, 0x6d, 0x56, 0xb7, 0xae, - 0x4b, 0xd3, 0xfd, 0xad, 0xd3, 0x08, 0x36, 0x81, 0x8a, 0x70, 0xb2, 0x1f, 0xaa, 0x56, 0x37, 0x1b, - 0xca, 0x6b, 0x52, 0xb2, 0xbf, 0xe1, 0x7a, 0x55, 0xb9, 0x55, 0xab, 0x54, 0xa5, 0x14, 0x3a, 0x09, - 0x28, 0xdc, 0xa3, 0xc6, 0x8d, 0xad, 0x55, 0x29, 0x3d, 0x60, 0x51, 0x64, 0x07, 0xb2, 0xc1, 0x30, - 0xf2, 0x9d, 0xc9, 0x25, 0x7d, 0x24, 0x0a, 0x99, 0x40, 0x58, 0x48, 0xfc, 0x79, 0xad, 0xdd, 0xb6, - 0xee, 0xaa, 0x5a, 0xdb, 0xd0, 0x1c, 0x6e, 0x6f, 0x80, 0x82, 0x4a, 0x04, 0x32, 0xe9, 0xfa, 0x9e, - 0xdc, 0xc2, 0x27, 0xbe, 0x16, 0x2d, 0xfc, 0xb4, 0x94, 0x90, 0x7f, 0x28, 0x02, 0x52, 0x7f, 0xbc, - 0xd7, 0x37, 0xfc, 0xc8, 0xa8, 0xe1, 0xbf, 0x23, 0x73, 0xf7, 0xb1, 0x08, 0xe4, 0xc3, 0x41, 0x5e, - 0x5f, 0xf7, 0xce, 0xfd, 0xa5, 0x76, 0xef, 0x77, 0xa2, 0x90, 0x0b, 0x85, 0x76, 0x93, 0xf6, 0xee, - 0xfd, 0x30, 0x63, 0x34, 0x71, 0xa7, 0x6b, 0xb9, 0xd8, 0xd4, 0x0f, 0xd5, 0x36, 0xbe, 0x83, 0xdb, - 0xf3, 0x32, 0x35, 0xca, 0x97, 0x8e, 0x0e, 0x1e, 0x97, 0x6b, 0x3e, 0xdd, 0x3a, 0x21, 0x5b, 0x99, - 0xad, 0xad, 0x56, 0x37, 0xb6, 0xb7, 0x1a, 0xd5, 0xcd, 0xca, 0x6b, 0xc2, 0xba, 0x28, 0x92, 0xd1, - 0x87, 0xf6, 0x55, 0x34, 0xda, 0xdb, 0x20, 0xf5, 0x77, 0x8a, 0xd8, 0x8a, 0x21, 0xdd, 0x92, 0xa6, - 0xd0, 0x2c, 0x14, 0x36, 0xb7, 0xd4, 0x7a, 0x6d, 0xb5, 0xaa, 0x56, 0xaf, 0x5f, 0xaf, 0x56, 0x1a, - 0x75, 0x96, 0x0e, 0xf4, 0xb0, 0x1b, 0x52, 0x34, 0x28, 0xe2, 0x1f, 0x8c, 0xc1, 0xec, 0x90, 0x9e, - 0xa0, 0x12, 0x0f, 0xe4, 0x59, 0x6e, 0xe1, 0xc9, 0x49, 0x7a, 0xbf, 0x4c, 0x5c, 0xe9, 0x6d, 0xcd, - 0x76, 0x79, 0xdc, 0xff, 0x18, 0x10, 0x29, 0x99, 0x2e, 0xd9, 0xd9, 0x6d, 0x9e, 0x66, 0x65, 0xd1, - 0x7d, 0xc1, 0x87, 0xb3, 0x4c, 0xeb, 0x13, 0x80, 0xba, 0x96, 0x63, 0xb8, 0xc6, 0x1d, 0xac, 0x1a, - 0xa6, 0xc8, 0xc9, 0x92, 0x68, 0x3f, 0xae, 0x48, 0xa2, 0xa6, 0x66, 0xba, 0x1e, 0xb6, 0x89, 0x5b, - 0x5a, 0x1f, 0x36, 0xf1, 0x3c, 0x62, 0x8a, 0x24, 0x6a, 0x3c, 0xec, 0x73, 0x90, 0x6d, 0x5a, 0x3d, - 0x12, 0x02, 0x31, 0x3c, 0x62, 0x2d, 0x22, 0x4a, 0x86, 0xc1, 0x3c, 0x14, 0x1e, 0xdc, 0xfa, 0xc9, - 0xe0, 0xac, 0x92, 0x61, 0x30, 0x86, 0x72, 0x1e, 0x0a, 0x5a, 0xab, 0x65, 0x13, 0xe6, 0x82, 0x11, - 0x0b, 0xd7, 0xf3, 0x1e, 0x98, 0x22, 0x16, 0x6f, 0x42, 0x4a, 0xc8, 0x81, 0x78, 0xb0, 0x44, 0x12, - 0x6a, 0x97, 0xe5, 0xa0, 0xa2, 0x17, 0xd2, 0x4a, 0xca, 0x14, 0x95, 0xe7, 0x20, 0x6b, 0x38, 0xaa, - 0x7f, 0xb6, 0x15, 0x5d, 0x8a, 0x5e, 0x48, 0x29, 0x19, 0xc3, 0xf1, 0xce, 0x05, 0xe4, 0x4f, 0x46, - 0x21, 0x1f, 0x3e, 0xb5, 0x43, 0xab, 0x90, 0x6a, 0x5b, 0xba, 0x46, 0x55, 0x8b, 0x1d, 0x19, 0x5f, - 0x18, 0x73, 0xd0, 0xb7, 0xbc, 0xce, 0xf1, 0x15, 0x8f, 0xb2, 0xf8, 0x6f, 0x22, 0x90, 0x12, 0x60, - 0x74, 0x12, 0xe2, 0x5d, 0xcd, 0xdd, 0xa7, 0xec, 0xa6, 0xcb, 0x51, 0x29, 0xa2, 0xd0, 0x32, 0x81, - 0x3b, 0x5d, 0xcd, 0xa4, 0x2a, 0xc0, 0xe1, 0xa4, 0x4c, 0xe6, 0xb5, 0x8d, 0xb5, 0x26, 0xcd, 0x05, - 0x58, 0x9d, 0x0e, 0x36, 0x5d, 0x47, 0xcc, 0x2b, 0x87, 0x57, 0x38, 0x18, 0x3d, 0x0e, 0x33, 0xae, - 0xad, 0x19, 0xed, 0x10, 0x6e, 0x9c, 0xe2, 0x4a, 0xa2, 0xc2, 0x43, 0x5e, 0x81, 0xd3, 0x82, 0x6f, - 0x13, 0xbb, 0x9a, 0xbe, 0x8f, 0x9b, 0x3e, 0x51, 0x82, 0xe6, 0xfc, 0x4e, 0x71, 0x84, 0x55, 0x5e, - 0x2f, 0x68, 0xe5, 0xcf, 0x44, 0x61, 0x46, 0x64, 0x2f, 0x9a, 0x9e, 0xb0, 0x36, 0x00, 0x34, 0xd3, - 0xb4, 0xdc, 0xa0, 0xb8, 0x06, 0x55, 0x79, 0x80, 0x6e, 0xb9, 0xe4, 0x11, 0x29, 0x01, 0x06, 0xc5, - 0x3f, 0x88, 0x00, 0xf8, 0x55, 0x23, 0xe5, 0xb6, 0x08, 0x19, 0x7e, 0x26, 0x4b, 0x0f, 0xf6, 0x59, - 0xc2, 0x0b, 0x18, 0xe8, 0xba, 0xd1, 0xa6, 0x69, 0xc9, 0x5d, 0xdc, 0x32, 0x4c, 0x7e, 0x9e, 0xc2, - 0x0a, 0x22, 0x2d, 0x19, 0xf7, 0x8f, 0xa7, 0x14, 0x48, 0x39, 0xb8, 0xa3, 0x99, 0xae, 0xa1, 0xf3, - 0x13, 0x92, 0xab, 0xc7, 0xea, 0xfc, 0x72, 0x9d, 0x53, 0x2b, 0x1e, 0x1f, 0xf9, 0x02, 0xa4, 0x04, - 0x94, 0x38, 0x7e, 0x9b, 0x5b, 0x9b, 0x55, 0x69, 0x0a, 0x25, 0x21, 0x56, 0xaf, 0x36, 0xa4, 0x08, - 0x09, 0x3b, 0x4b, 0xeb, 0xb5, 0x52, 0x5d, 0x8a, 0x96, 0xff, 0x1a, 0xcc, 0xea, 0x56, 0xa7, 0xbf, - 0xc1, 0xb2, 0xd4, 0x97, 0xf2, 0x73, 0x6e, 0x44, 0x5e, 0x7f, 0x92, 0x23, 0xb5, 0xac, 0xb6, 0x66, - 0xb6, 0x96, 0x2d, 0xbb, 0xe5, 0x5f, 0x8b, 0x20, 0xd1, 0x81, 0x13, 0xb8, 0x1c, 0xd1, 0xdd, 0xfd, - 0xf3, 0x48, 0xe4, 0x47, 0xa2, 0xb1, 0xb5, 0xed, 0xf2, 0x4f, 0x46, 0x8b, 0x6b, 0x8c, 0x70, 0x5b, - 0x0c, 0x47, 0xc1, 0x7b, 0x6d, 0xac, 0x93, 0xce, 0xc3, 0x1f, 0x3e, 0x0e, 0x73, 0x2d, 0xab, 0x65, - 0x51, 0x4e, 0x97, 0xc8, 0x2f, 0x7e, 0xaf, 0x22, 0xed, 0x41, 0x8b, 0x63, 0x2f, 0x61, 0xac, 0x6c, - 0xc2, 0x2c, 0x47, 0x56, 0xe9, 0xf1, 0x2d, 0x4b, 0x2e, 0xa0, 0x23, 0x33, 0xdb, 0xf3, 0x3f, 0xfd, - 0x7b, 0xd4, 0x2b, 0x51, 0x66, 0x38, 0x29, 0xa9, 0x63, 0xf9, 0x87, 0x15, 0x05, 0x4e, 0x84, 0xf8, - 0x31, 0x1b, 0x81, 0xed, 0x31, 0x1c, 0xff, 0x39, 0xe7, 0x38, 0x1b, 0xe0, 0x58, 0xe7, 0xa4, 0x2b, - 0x15, 0xc8, 0x1d, 0x87, 0xd7, 0xbf, 0xe0, 0xbc, 0xb2, 0x38, 0xc8, 0x64, 0x0d, 0x0a, 0x94, 0x89, - 0xde, 0x73, 0x5c, 0xab, 0x43, 0x0d, 0xf0, 0xd1, 0x6c, 0xfe, 0xe5, 0xef, 0xb1, 0x45, 0x9b, 0x27, - 0x64, 0x15, 0x8f, 0x6a, 0x65, 0x05, 0xe8, 0x89, 0x75, 0x13, 0xeb, 0xed, 0x31, 0x1c, 0x7e, 0x8d, - 0x77, 0xc4, 0xc3, 0x5f, 0xb9, 0x05, 0x73, 0xe4, 0x37, 0xb5, 0x8f, 0xc1, 0x9e, 0x8c, 0x4f, 0x83, - 0xcf, 0xff, 0xbb, 0x0f, 0x32, 0xbb, 0x30, 0xeb, 0x31, 0x08, 0xf4, 0x29, 0x30, 0x8b, 0x2d, 0xec, - 0xba, 0xd8, 0x76, 0x54, 0xad, 0x3d, 0xac, 0x7b, 0x81, 0x3c, 0xe2, 0xfc, 0x0f, 0x7c, 0x31, 0x3c, - 0x8b, 0x6b, 0x8c, 0xb2, 0xd4, 0x6e, 0xaf, 0xec, 0xc0, 0xa9, 0x21, 0x5a, 0x31, 0x01, 0xcf, 0x1f, - 0xe4, 0x3c, 0xe7, 0x06, 0x34, 0x83, 0xb0, 0xdd, 0x06, 0x01, 0xf7, 0xe6, 0x72, 0x02, 0x9e, 0x1f, - 0xe5, 0x3c, 0x11, 0xa7, 0x15, 0x53, 0x4a, 0x38, 0xde, 0x84, 0x99, 0x3b, 0xd8, 0xde, 0xb5, 0x1c, - 0x9e, 0xbb, 0x9d, 0x80, 0xdd, 0xc7, 0x38, 0xbb, 0x02, 0x27, 0xa4, 0xc9, 0x5c, 0xc2, 0xeb, 0x05, - 0x48, 0xed, 0x69, 0x3a, 0x9e, 0x80, 0xc5, 0x7d, 0xce, 0x22, 0x49, 0xf0, 0x09, 0x69, 0x09, 0xb2, - 0x2d, 0x8b, 0x6f, 0x91, 0xe3, 0xc9, 0x7f, 0x88, 0x93, 0x67, 0x04, 0x0d, 0x67, 0xd1, 0xb5, 0xba, - 0xbd, 0x36, 0xd9, 0x3f, 0xc7, 0xb3, 0xf8, 0x61, 0xc1, 0x42, 0xd0, 0x70, 0x16, 0xc7, 0x10, 0xeb, - 0xc7, 0x05, 0x0b, 0x27, 0x20, 0xcf, 0x17, 0x21, 0x63, 0x99, 0xed, 0x43, 0xcb, 0x9c, 0xa4, 0x13, - 0x9f, 0xe0, 0x1c, 0x80, 0x93, 0x10, 0x06, 0xd7, 0x20, 0x3d, 0xe9, 0x44, 0xfc, 0xd8, 0x17, 0xc5, - 0xf2, 0x10, 0x33, 0xb0, 0x06, 0x05, 0x61, 0xa0, 0x0c, 0xcb, 0x9c, 0x80, 0xc5, 0x8f, 0x73, 0x16, - 0xf9, 0x00, 0x19, 0x1f, 0x86, 0x8b, 0x1d, 0xb7, 0x85, 0x27, 0x61, 0xf2, 0x49, 0x31, 0x0c, 0x4e, - 0xc2, 0x45, 0xb9, 0x8b, 0x4d, 0x7d, 0x7f, 0x32, 0x0e, 0x9f, 0x12, 0xa2, 0x14, 0x34, 0x84, 0x45, - 0x05, 0x72, 0x1d, 0xcd, 0x76, 0xf6, 0xb5, 0xf6, 0x44, 0xd3, 0xf1, 0x13, 0x9c, 0x47, 0xd6, 0x23, - 0xe2, 0x12, 0xe9, 0x99, 0xc7, 0x61, 0xf3, 0x93, 0x42, 0x22, 0x01, 0x32, 0xbe, 0xf4, 0x1c, 0x97, - 0x26, 0xba, 0x8f, 0xc3, 0xed, 0xef, 0x88, 0xa5, 0xc7, 0x68, 0x37, 0x82, 0x1c, 0xaf, 0x41, 0xda, - 0x31, 0xde, 0x9c, 0x88, 0xcd, 0xdf, 0x15, 0x33, 0x4d, 0x09, 0x08, 0xf1, 0x6b, 0x70, 0x7a, 0xe8, - 0x36, 0x31, 0x01, 0xb3, 0xbf, 0xc7, 0x99, 0x9d, 0x1c, 0xb2, 0x55, 0x70, 0x93, 0x70, 0x5c, 0x96, - 0x7f, 0x5f, 0x98, 0x04, 0xdc, 0xc7, 0x6b, 0x9b, 0x04, 0x2d, 0x8e, 0xb6, 0x77, 0x3c, 0xa9, 0xfd, - 0x03, 0x21, 0x35, 0x46, 0x1b, 0x92, 0x5a, 0x03, 0x4e, 0x72, 0x8e, 0xc7, 0x9b, 0xd7, 0x9f, 0x12, - 0x86, 0x95, 0x51, 0xef, 0x84, 0x67, 0xf7, 0xeb, 0xa0, 0xe8, 0x89, 0x53, 0x78, 0xc7, 0x8e, 0xda, - 0xd1, 0xba, 0x13, 0x70, 0xfe, 0x69, 0xce, 0x59, 0x58, 0x7c, 0xcf, 0xbd, 0x76, 0x36, 0xb4, 0x2e, - 0x61, 0xfe, 0x2a, 0xcc, 0x0b, 0xe6, 0x3d, 0xd3, 0xc6, 0xba, 0xd5, 0x32, 0x8d, 0x37, 0x71, 0x73, - 0x02, 0xd6, 0x3f, 0xd3, 0x37, 0x55, 0x3b, 0x01, 0x72, 0xc2, 0xb9, 0x06, 0x92, 0xe7, 0xab, 0xa8, - 0x46, 0xa7, 0x6b, 0xd9, 0xee, 0x18, 0x8e, 0x3f, 0x2b, 0x66, 0xca, 0xa3, 0xab, 0x51, 0xb2, 0x95, - 0x2a, 0xb0, 0xdb, 0x1f, 0x93, 0xaa, 0xe4, 0xa7, 0x39, 0xa3, 0x9c, 0x4f, 0xc5, 0x0d, 0x87, 0x6e, - 0x75, 0xba, 0x9a, 0x3d, 0x89, 0xfd, 0xfb, 0x87, 0xc2, 0x70, 0x70, 0x12, 0x6e, 0x38, 0x88, 0x47, - 0x47, 0x76, 0xfb, 0x09, 0x38, 0xfc, 0x9c, 0x30, 0x1c, 0x82, 0x86, 0xb3, 0x10, 0x0e, 0xc3, 0x04, - 0x2c, 0x7e, 0x5e, 0xb0, 0x10, 0x34, 0x84, 0xc5, 0xcb, 0xfe, 0x46, 0x6b, 0xe3, 0x96, 0xe1, 0xb8, - 0x36, 0x73, 0xc9, 0x8f, 0x66, 0xf5, 0x0b, 0x5f, 0x0c, 0x3b, 0x61, 0x4a, 0x80, 0x94, 0x58, 0x22, - 0x7e, 0xf4, 0x41, 0x43, 0xb6, 0xf1, 0x1d, 0xfb, 0x45, 0x61, 0x89, 0x02, 0x64, 0xa4, 0x6f, 0x01, - 0x0f, 0x91, 0x88, 0x5d, 0x27, 0x81, 0xca, 0x04, 0xec, 0xfe, 0x51, 0x5f, 0xe7, 0xea, 0x82, 0x96, - 0xf0, 0x0c, 0xf8, 0x3f, 0x3d, 0xf3, 0x36, 0x3e, 0x9c, 0x48, 0x3b, 0x7f, 0xa9, 0xcf, 0xff, 0xd9, - 0x61, 0x94, 0xcc, 0x86, 0x14, 0xfa, 0xfc, 0x29, 0x34, 0xee, 0xae, 0xdf, 0xfc, 0x37, 0x7d, 0x89, - 0x8f, 0x37, 0xec, 0x4e, 0xad, 0xac, 0x13, 0x25, 0x0f, 0x3b, 0x3d, 0xe3, 0x99, 0x7d, 0xf0, 0x4b, - 0x9e, 0x9e, 0x87, 0x7c, 0x9e, 0x95, 0xeb, 0x90, 0x0b, 0x39, 0x3c, 0xe3, 0x59, 0x7d, 0x33, 0x67, - 0x95, 0x0d, 0xfa, 0x3b, 0x2b, 0x57, 0x20, 0x4e, 0x9c, 0x97, 0xf1, 0xe4, 0xdf, 0xc2, 0xc9, 0x29, - 0xfa, 0xca, 0x7b, 0x20, 0x25, 0x9c, 0x96, 0xf1, 0xa4, 0x7f, 0x83, 0x93, 0x7a, 0x24, 0x84, 0x5c, - 0x38, 0x2c, 0xe3, 0xc9, 0xff, 0xa6, 0x20, 0x17, 0x24, 0x84, 0x7c, 0x72, 0x11, 0xfe, 0xca, 0xb7, - 0xc5, 0xf9, 0xa6, 0x23, 0x64, 0x77, 0x0d, 0x92, 0xdc, 0x53, 0x19, 0x4f, 0xfd, 0xad, 0xbc, 0x71, - 0x41, 0xb1, 0xf2, 0x1c, 0x4c, 0x4f, 0x28, 0xf0, 0xef, 0xe0, 0xa4, 0x0c, 0x7f, 0xa5, 0x02, 0x99, - 0x80, 0x77, 0x32, 0x9e, 0xfc, 0x3b, 0x39, 0x79, 0x90, 0x8a, 0x74, 0x9d, 0x7b, 0x27, 0xe3, 0x19, - 0xfc, 0x2d, 0xd1, 0x75, 0x4e, 0x41, 0xc4, 0x26, 0x1c, 0x93, 0xf1, 0xd4, 0x1f, 0x16, 0x52, 0x17, - 0x24, 0x2b, 0x2f, 0x42, 0xda, 0xdb, 0x6c, 0xc6, 0xd3, 0x7f, 0x17, 0xa7, 0xf7, 0x69, 0x88, 0x04, - 0x02, 0x9b, 0xdd, 0x78, 0x16, 0xdf, 0x2d, 0x24, 0x10, 0xa0, 0x22, 0xcb, 0xa8, 0xdf, 0x81, 0x19, - 0xcf, 0xe9, 0x7b, 0xc4, 0x32, 0xea, 0xf3, 0x5f, 0xc8, 0x6c, 0x52, 0x9b, 0x3f, 0x9e, 0xc5, 0xf7, - 0x8a, 0xd9, 0xa4, 0xf8, 0xa4, 0x1b, 0xfd, 0x1e, 0xc1, 0x78, 0x1e, 0xdf, 0x2f, 0xba, 0xd1, 0xe7, - 0x10, 0xac, 0x6c, 0x03, 0x1a, 0xf4, 0x06, 0xc6, 0xf3, 0xfb, 0x08, 0xe7, 0x37, 0x33, 0xe0, 0x0c, - 0xac, 0xbc, 0x02, 0x27, 0x87, 0x7b, 0x02, 0xe3, 0xb9, 0xfe, 0xc0, 0x97, 0xfa, 0x62, 0xb7, 0xa0, - 0x23, 0xb0, 0xd2, 0xf0, 0xb7, 0x94, 0xa0, 0x17, 0x30, 0x9e, 0xed, 0x0f, 0x7e, 0x29, 0x6c, 0xb8, - 0x83, 0x4e, 0xc0, 0x4a, 0x09, 0xc0, 0xdf, 0x80, 0xc7, 0xf3, 0xfa, 0x18, 0xe7, 0x15, 0x20, 0x22, - 0x4b, 0x83, 0xef, 0xbf, 0xe3, 0xe9, 0xef, 0x8b, 0xa5, 0xc1, 0x29, 0xc8, 0xd2, 0x10, 0x5b, 0xef, - 0x78, 0xea, 0x1f, 0x12, 0x4b, 0x43, 0x90, 0x10, 0xcd, 0x0e, 0xec, 0x6e, 0xe3, 0x39, 0x7c, 0x42, - 0x68, 0x76, 0x80, 0x6a, 0x65, 0x13, 0x66, 0x06, 0x36, 0xc4, 0xf1, 0xac, 0x7e, 0x84, 0xb3, 0x92, - 0xfa, 0xf7, 0xc3, 0xe0, 0xe6, 0xc5, 0x37, 0xc3, 0xf1, 0xdc, 0x7e, 0xb4, 0x6f, 0xf3, 0xe2, 0x7b, - 0xe1, 0xca, 0x35, 0x48, 0x99, 0xbd, 0x76, 0x9b, 0x2c, 0x1e, 0x74, 0xf4, 0xfd, 0xdc, 0xf9, 0xff, - 0xf2, 0x65, 0x2e, 0x1d, 0x41, 0xb0, 0x72, 0x05, 0xa6, 0x71, 0x67, 0x17, 0x37, 0xc7, 0x51, 0x7e, - 0xe1, 0xcb, 0xc2, 0x60, 0x12, 0xec, 0x95, 0x17, 0x01, 0x58, 0x6a, 0x84, 0x1e, 0x9c, 0x8f, 0xa1, - 0xfd, 0x83, 0x2f, 0xf3, 0x0b, 0x71, 0x3e, 0x89, 0xcf, 0x80, 0x5d, 0xaf, 0x3b, 0x9a, 0xc1, 0x17, - 0xc3, 0x0c, 0xe8, 0x8c, 0xbc, 0x00, 0xc9, 0x37, 0x1c, 0xcb, 0x74, 0xb5, 0xd6, 0x38, 0xea, 0x3f, - 0xe4, 0xd4, 0x02, 0x9f, 0x08, 0xac, 0x63, 0xd9, 0xd8, 0xd5, 0x5a, 0xce, 0x38, 0xda, 0xff, 0xca, - 0x69, 0x3d, 0x02, 0x42, 0xac, 0x6b, 0x8e, 0x3b, 0xc9, 0xb8, 0xff, 0x9b, 0x20, 0x16, 0x04, 0xa4, - 0xd3, 0xe4, 0xf7, 0x6d, 0x7c, 0x38, 0x8e, 0xf6, 0x8f, 0x44, 0xa7, 0x39, 0xfe, 0xca, 0x7b, 0x20, - 0x4d, 0x7e, 0xb2, 0x5b, 0xae, 0x63, 0x88, 0xff, 0x98, 0x13, 0xfb, 0x14, 0xa4, 0x65, 0xc7, 0x6d, - 0xba, 0xc6, 0x78, 0x61, 0xff, 0x09, 0x9f, 0x69, 0x81, 0xbf, 0x52, 0x82, 0x8c, 0xe3, 0x36, 0x9b, - 0x3d, 0xee, 0x9f, 0x8e, 0x21, 0xff, 0xd3, 0x2f, 0x7b, 0x29, 0x0b, 0x8f, 0x86, 0xcc, 0xf6, 0xdd, - 0xdb, 0x6e, 0xd7, 0xa2, 0xe7, 0x2d, 0xe3, 0x38, 0x7c, 0x89, 0x73, 0x08, 0x90, 0xac, 0x54, 0x20, - 0x4b, 0xc6, 0x62, 0xe3, 0x2e, 0xa6, 0x87, 0x63, 0x63, 0x58, 0xfc, 0x19, 0x17, 0x40, 0x88, 0xa8, - 0xfc, 0x8d, 0xbf, 0xf6, 0xd9, 0x85, 0xc8, 0x67, 0x3e, 0xbb, 0x10, 0xf9, 0x9d, 0xcf, 0x2e, 0x44, - 0x3e, 0xfc, 0xb9, 0x85, 0xa9, 0xcf, 0x7c, 0x6e, 0x61, 0xea, 0xb7, 0x3e, 0xb7, 0x30, 0x35, 0x3c, - 0x4b, 0x0c, 0x6b, 0xd6, 0x9a, 0xc5, 0xf2, 0xc3, 0xaf, 0x3f, 0xd2, 0x32, 0xdc, 0xfd, 0xde, 0xee, - 0xb2, 0x6e, 0x75, 0x2e, 0xe9, 0x96, 0xd3, 0xb1, 0x9c, 0x4b, 0xe1, 0xbc, 0x2e, 0xfd, 0x05, 0xff, - 0x2b, 0x42, 0x62, 0xe6, 0x70, 0x3a, 0x57, 0x33, 0x0f, 0x47, 0x7d, 0x4c, 0x77, 0x15, 0x62, 0x25, - 0xf3, 0x10, 0x9d, 0x66, 0x06, 0x4e, 0xed, 0xd9, 0x6d, 0x7e, 0xd5, 0x32, 0x49, 0xca, 0x3b, 0x76, - 0x1b, 0xcd, 0xf9, 0xf7, 0xa1, 0x23, 0x17, 0xb2, 0xfc, 0x92, 0x73, 0xf9, 0x3b, 0x23, 0xc7, 0x1b, - 0x49, 0xaa, 0x64, 0x1e, 0xd2, 0x81, 0x6c, 0x47, 0x5e, 0x7f, 0x62, 0x6c, 0x9e, 0xfb, 0xb6, 0x69, - 0xdd, 0x35, 0x49, 0xb7, 0xbb, 0xbb, 0x22, 0xc7, 0xbd, 0xd0, 0x9f, 0xe3, 0x7e, 0x05, 0xb7, 0xdb, - 0x2f, 0x11, 0xbc, 0x06, 0x21, 0xd9, 0x4d, 0xb0, 0x5b, 0xfd, 0xf0, 0x3d, 0x51, 0x58, 0x18, 0x48, - 0x67, 0x73, 0x25, 0x18, 0x25, 0x84, 0x15, 0x48, 0xad, 0x0a, 0xdd, 0x9a, 0x87, 0xa4, 0x83, 0x75, - 0xcb, 0x6c, 0x3a, 0x54, 0x10, 0x31, 0x45, 0x14, 0x89, 0x20, 0x4c, 0xcd, 0xb4, 0x1c, 0x7e, 0x59, - 0x99, 0x15, 0xca, 0x1f, 0x3d, 0xa6, 0x20, 0x72, 0xa2, 0x25, 0x21, 0x8d, 0xa7, 0x27, 0x94, 0x86, - 0x18, 0x44, 0x28, 0xf3, 0x3f, 0xa9, 0x54, 0xbe, 0x3f, 0x0a, 0x8b, 0xfd, 0x52, 0x21, 0x2b, 0xcb, - 0x71, 0xb5, 0x4e, 0x77, 0x94, 0x58, 0xae, 0x41, 0xba, 0x21, 0x70, 0x8e, 0x2d, 0x97, 0xfb, 0xc7, - 0x94, 0x4b, 0xde, 0x6b, 0x4a, 0x08, 0xe6, 0xf2, 0x84, 0x82, 0xf1, 0xc6, 0xf1, 0x40, 0x92, 0xf9, - 0x9f, 0x09, 0x38, 0xcd, 0x96, 0x93, 0xca, 0x96, 0x12, 0x2b, 0x70, 0x99, 0x64, 0x83, 0x55, 0xe3, - 0xcf, 0x49, 0xe4, 0x97, 0x60, 0xb6, 0x46, 0xac, 0x05, 0x89, 0x82, 0xfc, 0x13, 0x9e, 0xa1, 0xf7, - 0xb9, 0x97, 0x42, 0x0e, 0x3f, 0x3f, 0xdf, 0x0a, 0x82, 0xe4, 0x6f, 0x8a, 0x80, 0x54, 0xd7, 0xb5, - 0xb6, 0x66, 0x7f, 0xa5, 0xac, 0xd0, 0x73, 0x00, 0xec, 0xba, 0x87, 0xf7, 0xe1, 0x5e, 0xfe, 0xf2, - 0xfc, 0x72, 0x70, 0x70, 0xcb, 0xac, 0x25, 0x7a, 0x83, 0x2a, 0x4d, 0x71, 0xc9, 0xcf, 0x8b, 0xaf, - 0x02, 0xf8, 0x15, 0xe8, 0x0c, 0x9c, 0xaa, 0x57, 0x4a, 0xeb, 0x25, 0x45, 0x5c, 0x12, 0xaa, 0x6f, - 0x57, 0x2b, 0xb5, 0xeb, 0xb5, 0xea, 0xaa, 0x34, 0x85, 0x4e, 0x02, 0x0a, 0x56, 0x7a, 0x97, 0x9a, - 0x4e, 0xc0, 0x4c, 0x10, 0xce, 0xbe, 0x52, 0x89, 0x12, 0x4f, 0xd1, 0xe8, 0x74, 0xdb, 0x98, 0x9e, - 0x3c, 0xaa, 0x86, 0x90, 0xda, 0x78, 0x27, 0xe4, 0xd7, 0xff, 0x3d, 0xfb, 0x72, 0x61, 0xd6, 0x27, - 0xf7, 0x64, 0xbe, 0xb2, 0x0e, 0x33, 0x9a, 0xae, 0xe3, 0x6e, 0x88, 0xe5, 0x18, 0x53, 0x4d, 0x18, - 0xd2, 0xb3, 0x54, 0x4e, 0xe9, 0x73, 0x7b, 0x0e, 0x12, 0x0e, 0x1d, 0xfd, 0x38, 0x16, 0xbf, 0xc1, - 0x59, 0x70, 0xf4, 0x15, 0x13, 0x66, 0x88, 0xe7, 0xa7, 0xd9, 0x38, 0xd0, 0x8d, 0xa3, 0xf3, 0x0c, - 0xff, 0xf8, 0x67, 0x9f, 0xa2, 0x27, 0xab, 0xe7, 0xc2, 0xd3, 0x32, 0x44, 0x9d, 0x14, 0x89, 0xf3, - 0xf6, 0x3b, 0x8a, 0x21, 0x2f, 0xda, 0xe3, 0x1d, 0x3e, 0xba, 0xb1, 0x5f, 0xe6, 0x8d, 0x2d, 0x0c, - 0xd3, 0x81, 0x40, 0x4b, 0x39, 0xce, 0x95, 0x55, 0x94, 0xab, 0xa3, 0xd6, 0xf4, 0xeb, 0x8f, 0x0f, - 0xee, 0x4e, 0xec, 0xbf, 0x27, 0x29, 0xe7, 0x6b, 0xc1, 0x66, 0xbc, 0xb5, 0xf7, 0xd1, 0x38, 0xcc, - 0x68, 0x1d, 0xc3, 0xb4, 0x2e, 0xd1, 0x7f, 0xf9, 0x9a, 0x9b, 0xa6, 0x85, 0x09, 0x0e, 0x25, 0xaf, - 0xb2, 0xa5, 0x30, 0x5e, 0x63, 0xfe, 0xf8, 0xdb, 0x7f, 0x7c, 0xda, 0x5f, 0x2e, 0x2b, 0x1b, 0x20, - 0x89, 0x4b, 0xbc, 0xd8, 0xd4, 0xad, 0xe6, 0x44, 0x59, 0x8a, 0x3f, 0x11, 0x3c, 0x44, 0x7e, 0xab, - 0xca, 0x49, 0x57, 0xde, 0x0d, 0x29, 0x8f, 0xcd, 0x38, 0xcf, 0x44, 0x30, 0xf1, 0x28, 0x88, 0x5f, - 0xc2, 0x56, 0xe6, 0x24, 0x5e, 0xe8, 0x97, 0x04, 0x3d, 0x5b, 0xa1, 0x9b, 0x64, 0x34, 0x6b, 0x90, - 0x6f, 0x5a, 0xa6, 0xab, 0x5a, 0x1d, 0xc3, 0xc5, 0x9d, 0xae, 0x3b, 0xd6, 0xaf, 0xfb, 0x33, 0xc6, - 0x24, 0xa5, 0xe4, 0x08, 0xdd, 0x96, 0x20, 0x23, 0x3d, 0x61, 0xdf, 0xe9, 0x4d, 0xd2, 0x93, 0xff, - 0xee, 0xf5, 0x84, 0xd2, 0x90, 0x9e, 0x3c, 0x90, 0x76, 0x38, 0xcd, 0xdb, 0xdc, 0x98, 0xbb, 0x07, - 0x4c, 0x0b, 0x3c, 0xed, 0xf8, 0x64, 0x0c, 0x16, 0x38, 0xf2, 0xae, 0xe6, 0xe0, 0x4b, 0x77, 0x9e, - 0xde, 0xc5, 0xae, 0xf6, 0xf4, 0x25, 0xdd, 0x32, 0xc4, 0x4e, 0x3e, 0xcb, 0x8d, 0x35, 0xa9, 0x5f, - 0xe6, 0xf5, 0xc5, 0xa1, 0xc7, 0xdd, 0xc5, 0xd1, 0x46, 0xbe, 0x38, 0xa8, 0x83, 0x72, 0x1b, 0xe2, - 0x15, 0xcb, 0x30, 0xc9, 0xde, 0xd6, 0xc4, 0xa6, 0xd5, 0xe1, 0xe6, 0x96, 0x15, 0xd0, 0x0d, 0x48, - 0x68, 0x1d, 0xab, 0x67, 0xba, 0xcc, 0xd4, 0x96, 0x9f, 0xfa, 0xb5, 0xb7, 0x16, 0xa7, 0xfe, 0xe3, - 0x5b, 0x8b, 0x27, 0x18, 0x5b, 0xa7, 0x79, 0x7b, 0xd9, 0xb0, 0x2e, 0x75, 0x34, 0x77, 0x9f, 0x2c, - 0xdf, 0xdf, 0xfc, 0xf4, 0x93, 0xc0, 0xdb, 0xab, 0x99, 0xee, 0xa7, 0x7e, 0xff, 0xa7, 0x2e, 0x46, - 0x14, 0x4e, 0xbf, 0x12, 0xff, 0xfc, 0xc7, 0x17, 0x23, 0x72, 0x17, 0x92, 0xab, 0x58, 0x3f, 0xa2, - 0xc1, 0x5a, 0x5f, 0x83, 0x4f, 0xf3, 0x06, 0xcf, 0x0c, 0x36, 0xc8, 0x2e, 0xec, 0xad, 0x62, 0x3d, - 0xd0, 0xec, 0x2a, 0xd6, 0xc3, 0x2d, 0x96, 0x57, 0x7f, 0xeb, 0x77, 0x17, 0xa6, 0x3e, 0xf0, 0xd9, - 0x85, 0xa9, 0x91, 0x53, 0x26, 0x8f, 0x9f, 0x32, 0x6f, 0xa6, 0x7e, 0x3c, 0x0e, 0x67, 0xe9, 0x17, - 0xa1, 0x76, 0xc7, 0x30, 0xdd, 0x4b, 0xba, 0x7d, 0xd8, 0x75, 0x2d, 0xb2, 0x70, 0xad, 0x3d, 0x3e, - 0x51, 0x33, 0x7e, 0xf5, 0x32, 0xab, 0x1e, 0x3e, 0x4d, 0xf2, 0x1e, 0x4c, 0x6f, 0x13, 0x3a, 0x22, - 0x08, 0xd7, 0x72, 0xb5, 0x36, 0xf7, 0x36, 0x58, 0x81, 0x40, 0xd9, 0x57, 0xa4, 0x51, 0x06, 0x35, - 0xc4, 0x07, 0xa4, 0x6d, 0xac, 0xed, 0xb1, 0x8f, 0x71, 0x62, 0xd4, 0x4d, 0x4d, 0x11, 0x00, 0xfd, - 0xee, 0x66, 0x0e, 0xa6, 0xb5, 0x1e, 0xbb, 0x30, 0x13, 0x23, 0xfe, 0x2b, 0x2d, 0xc8, 0x2f, 0x41, - 0x92, 0x9f, 0x9b, 0x23, 0x09, 0x62, 0xb7, 0xf1, 0x21, 0x6d, 0x27, 0xab, 0x90, 0x9f, 0x68, 0x19, - 0xa6, 0x69, 0xe7, 0xf9, 0x57, 0x86, 0xf3, 0xcb, 0x03, 0xbd, 0x5f, 0xa6, 0x9d, 0x54, 0x18, 0x9a, - 0x7c, 0x13, 0x52, 0xab, 0x16, 0xd1, 0x9e, 0x30, 0xb7, 0x34, 0xe3, 0x46, 0xfb, 0xdc, 0xed, 0xf1, - 0xb9, 0x53, 0x58, 0x01, 0x9d, 0x84, 0x04, 0xfb, 0x38, 0x8b, 0x5f, 0xfa, 0xe1, 0x25, 0xb9, 0x02, - 0x49, 0xca, 0x7b, 0xab, 0x4b, 0xb6, 0x7a, 0xef, 0xbe, 0x7a, 0x9a, 0x7f, 0xaa, 0xcb, 0xd9, 0x47, - 0xfd, 0xce, 0x22, 0x88, 0x37, 0x35, 0x57, 0xe3, 0xe3, 0xa6, 0xbf, 0xe5, 0xf7, 0x42, 0x8a, 0x33, - 0x71, 0xd0, 0x65, 0x88, 0x59, 0x5d, 0x87, 0x5f, 0xdb, 0x29, 0x8e, 0x1a, 0xca, 0x56, 0xb7, 0x1c, - 0x27, 0x4a, 0xa5, 0x10, 0xe4, 0xf2, 0xe6, 0x48, 0xb5, 0x78, 0x36, 0xa4, 0x16, 0x1d, 0xec, 0xee, - 0xee, 0xb9, 0xfe, 0x0f, 0x36, 0x9d, 0x03, 0xaa, 0xe0, 0x29, 0xca, 0xfd, 0x28, 0x2c, 0x04, 0x6a, - 0xef, 0x60, 0xdb, 0x31, 0x2c, 0x93, 0x69, 0x13, 0xd7, 0x14, 0x14, 0xe8, 0x20, 0xaf, 0x1f, 0xa1, - 0x2a, 0xef, 0x81, 0x58, 0xa9, 0xdb, 0x45, 0x45, 0x48, 0xd1, 0xb2, 0x6e, 0x31, 0x5d, 0x89, 0x2b, - 0x5e, 0x99, 0xd4, 0x39, 0xd6, 0x9e, 0x7b, 0x57, 0xb3, 0xbd, 0x6f, 0x97, 0x45, 0x59, 0x7e, 0x01, - 0xd2, 0x15, 0xcb, 0x74, 0xb0, 0xe9, 0xf4, 0xa8, 0x0f, 0xbb, 0xdb, 0xb6, 0xf4, 0xdb, 0x9c, 0x03, - 0x2b, 0x10, 0x61, 0x6b, 0xdd, 0x2e, 0xa5, 0x8c, 0x2b, 0xe4, 0x27, 0x5f, 0x3d, 0x5b, 0x23, 0xc5, - 0x73, 0xe5, 0x78, 0xe2, 0xe1, 0x03, 0xf4, 0x9d, 0xd1, 0x08, 0x3c, 0x34, 0xb8, 0x90, 0x6e, 0xe3, - 0x43, 0xe7, 0xb8, 0xeb, 0xe8, 0x55, 0x48, 0x6f, 0xd3, 0x67, 0x45, 0x5e, 0xc2, 0x87, 0xa8, 0x08, - 0x49, 0xdc, 0xbc, 0x7c, 0xe5, 0xca, 0xd3, 0x2f, 0x30, 0x2d, 0xbf, 0x31, 0xa5, 0x08, 0x00, 0x5a, - 0x80, 0xb4, 0x83, 0xf5, 0xee, 0xe5, 0x2b, 0x57, 0x6f, 0x3f, 0xcd, 0xd4, 0xea, 0xc6, 0x94, 0xe2, - 0x83, 0x56, 0x52, 0x64, 0xc4, 0x9f, 0xff, 0xc4, 0x62, 0xa4, 0x3c, 0x0d, 0x31, 0xa7, 0xd7, 0xf9, - 0xaa, 0xe9, 0xc6, 0x1f, 0x25, 0x60, 0x29, 0x50, 0xcb, 0x36, 0x85, 0x3b, 0x5a, 0xdb, 0x68, 0x6a, - 0xfe, 0x63, 0x30, 0x52, 0x60, 0xfc, 0x14, 0x63, 0x84, 0xb5, 0x3f, 0x52, 0x8a, 0xf2, 0xcf, 0x44, - 0x20, 0x7b, 0x4b, 0x70, 0xae, 0x63, 0x17, 0x5d, 0x03, 0xf0, 0x5a, 0x12, 0x4b, 0xe5, 0xcc, 0x72, - 0x7f, 0x5b, 0xcb, 0x1e, 0x8d, 0x12, 0x40, 0x47, 0xcf, 0x51, 0x05, 0xec, 0x5a, 0x0e, 0xff, 0x8e, - 0x75, 0x0c, 0xa9, 0x87, 0x8c, 0x9e, 0x00, 0x44, 0xad, 0x9a, 0x7a, 0xc7, 0x72, 0x0d, 0xb3, 0xa5, - 0x76, 0xad, 0xbb, 0xfc, 0x75, 0x80, 0x98, 0x22, 0xd1, 0x9a, 0x5b, 0xb4, 0x62, 0x9b, 0xc0, 0x49, - 0xa7, 0xd3, 0x1e, 0x17, 0x12, 0x8e, 0x69, 0xcd, 0xa6, 0x8d, 0x1d, 0x87, 0x1b, 0x2e, 0x51, 0x44, - 0xd7, 0x20, 0xd9, 0xed, 0xed, 0xaa, 0xc2, 0x4a, 0x64, 0x2e, 0x3f, 0x34, 0x6c, 0xcd, 0x0b, 0xdd, - 0xe0, 0xab, 0x3e, 0xd1, 0xed, 0xed, 0x12, 0x4d, 0x39, 0x07, 0xd9, 0x21, 0x9d, 0xc9, 0xdc, 0xf1, - 0xfb, 0x41, 0x5f, 0xb2, 0xe1, 0x23, 0x50, 0xbb, 0xb6, 0x61, 0xd9, 0x86, 0x7b, 0x48, 0xaf, 0xdb, - 0xc5, 0x14, 0x49, 0x54, 0x6c, 0x73, 0xb8, 0x7c, 0x1b, 0x0a, 0x75, 0xea, 0xa6, 0xfb, 0x3d, 0xbf, - 0xe2, 0xf7, 0x2f, 0x32, 0xbe, 0x7f, 0x23, 0x7b, 0x16, 0x1d, 0xe8, 0xd9, 0xc5, 0xff, 0x10, 0x81, - 0x4c, 0x99, 0x2c, 0xdc, 0xda, 0xea, 0xf5, 0xb6, 0xd6, 0x42, 0x4f, 0xc3, 0x89, 0xf2, 0xfa, 0x56, - 0xe5, 0x25, 0xb5, 0xb6, 0xaa, 0x5e, 0x5f, 0x2f, 0xad, 0xf9, 0xf7, 0x7b, 0x8b, 0x27, 0xef, 0xdd, - 0x5f, 0x42, 0x01, 0xdc, 0x1d, 0x93, 0xc6, 0x92, 0xe8, 0x12, 0xcc, 0x85, 0x49, 0x4a, 0xe5, 0x7a, - 0x75, 0xb3, 0x21, 0x45, 0x8a, 0x27, 0xee, 0xdd, 0x5f, 0x9a, 0x09, 0x50, 0x94, 0x76, 0x1d, 0x6c, - 0xba, 0x83, 0x04, 0x95, 0xad, 0x8d, 0x8d, 0x5a, 0x43, 0x8a, 0x0e, 0x10, 0x54, 0xac, 0x4e, 0xc7, - 0x70, 0xd1, 0x63, 0x30, 0x13, 0x26, 0xd8, 0xac, 0xad, 0x4b, 0xb1, 0x22, 0xba, 0x77, 0x7f, 0x29, - 0x1f, 0xc0, 0xde, 0x34, 0xda, 0xc5, 0xd4, 0x87, 0x7e, 0x74, 0x61, 0xea, 0x53, 0x7f, 0x7b, 0x21, - 0x52, 0xde, 0x18, 0xb9, 0xe6, 0x9e, 0x39, 0xde, 0x9a, 0x0b, 0xef, 0xdb, 0x5f, 0x7e, 0x28, 0x64, - 0x6e, 0xb8, 0x1f, 0x16, 0x30, 0xc6, 0x93, 0x2e, 0xb7, 0x71, 0xb9, 0x85, 0xe2, 0xd1, 0xee, 0x41, - 0x71, 0xcc, 0xa6, 0x50, 0x1c, 0x6b, 0x18, 0xe4, 0x17, 0x20, 0xb7, 0xad, 0xd9, 0x6e, 0x1d, 0xbb, - 0x37, 0xb0, 0xd6, 0xc4, 0x76, 0xd8, 0x7f, 0xc8, 0x09, 0xff, 0x01, 0x41, 0x9c, 0x3a, 0x09, 0x6c, - 0xff, 0xa4, 0xbf, 0xe5, 0x7d, 0x88, 0xd3, 0x9b, 0xc4, 0x9e, 0x6f, 0xc1, 0x29, 0x98, 0x6f, 0x41, - 0x76, 0x86, 0x43, 0x17, 0x3b, 0x22, 0xfd, 0x45, 0x0b, 0xe8, 0x59, 0xe1, 0x21, 0xc4, 0x8e, 0xf6, - 0x10, 0xf8, 0xf2, 0xe2, 0x7e, 0x42, 0x1b, 0x92, 0x7c, 0x8a, 0xbd, 0x8e, 0x44, 0xfc, 0x8e, 0xa0, - 0x0d, 0x28, 0x74, 0x35, 0xdb, 0xa5, 0x5f, 0x16, 0xee, 0xd3, 0x51, 0xf0, 0x15, 0xbc, 0x38, 0x68, - 0x4f, 0x42, 0x83, 0xe5, 0xad, 0xe4, 0xba, 0x41, 0xa0, 0xfc, 0x9f, 0xe3, 0x90, 0xe0, 0xc2, 0x78, - 0x0f, 0x24, 0xb9, 0x58, 0xf9, 0x9a, 0x3b, 0xbb, 0x3c, 0xb8, 0xcd, 0x2e, 0x7b, 0xdb, 0x21, 0xe7, - 0x27, 0x68, 0xd0, 0xa3, 0x90, 0xd2, 0xf7, 0x35, 0xc3, 0x54, 0x8d, 0x26, 0x77, 0x40, 0x33, 0x9f, - 0x7d, 0x6b, 0x31, 0x59, 0x21, 0xb0, 0xda, 0xaa, 0x92, 0xa4, 0x95, 0xb5, 0x26, 0xf1, 0x69, 0xf6, - 0xb1, 0xd1, 0xda, 0x77, 0xb9, 0xdd, 0xe0, 0x25, 0xf4, 0x3c, 0xc4, 0x89, 0x42, 0xf0, 0xef, 0xce, - 0x8b, 0x03, 0x91, 0x85, 0x97, 0xfa, 0x29, 0xa7, 0x48, 0xc3, 0x1f, 0xfe, 0x4f, 0x8b, 0x11, 0x85, - 0x52, 0xa0, 0x0a, 0xe4, 0xda, 0x9a, 0xe3, 0xaa, 0x74, 0x3f, 0x26, 0xcd, 0x4f, 0x53, 0x16, 0xa7, - 0x07, 0x05, 0xc2, 0x05, 0xcb, 0xbb, 0x9e, 0x21, 0x54, 0x0c, 0xd4, 0x44, 0x17, 0x40, 0xa2, 0x4c, - 0x74, 0xba, 0x02, 0x99, 0x97, 0x98, 0xa0, 0x72, 0xcf, 0x13, 0x38, 0x5b, 0x98, 0xd4, 0x57, 0x3c, - 0x03, 0x69, 0xfa, 0xa5, 0x2b, 0x45, 0x61, 0xd7, 0xd7, 0x53, 0x04, 0x40, 0x2b, 0xcf, 0x43, 0xc1, - 0xb7, 0xfa, 0x0c, 0x25, 0xc5, 0xb8, 0xf8, 0x60, 0x8a, 0xf8, 0x14, 0xcc, 0x99, 0xf8, 0x80, 0x5e, - 0xa8, 0x0f, 0x61, 0xa7, 0x29, 0x36, 0x22, 0x75, 0xb7, 0xc2, 0x14, 0x8f, 0x40, 0x5e, 0x17, 0xc2, - 0x67, 0xb8, 0x40, 0x71, 0x73, 0x1e, 0x94, 0xa2, 0x9d, 0x86, 0x94, 0xd6, 0xed, 0x32, 0x84, 0x0c, - 0xb7, 0xfa, 0xdd, 0x2e, 0xad, 0xba, 0x08, 0x33, 0x74, 0x8c, 0x36, 0x76, 0x7a, 0x6d, 0x97, 0x33, - 0xc9, 0x52, 0x9c, 0x02, 0xa9, 0x50, 0x18, 0x9c, 0xe2, 0x3e, 0x0c, 0x39, 0x7c, 0xc7, 0x68, 0x62, - 0x53, 0xc7, 0x0c, 0x2f, 0x47, 0xf1, 0xb2, 0x02, 0x48, 0x91, 0x1e, 0x03, 0xcf, 0x9a, 0xab, 0x62, - 0xa7, 0xc9, 0x33, 0x7e, 0x02, 0x5e, 0x62, 0x60, 0x79, 0x1e, 0xe2, 0xab, 0x9a, 0xab, 0x11, 0x77, - 0xc9, 0x3d, 0x60, 0xdb, 0x67, 0x56, 0x21, 0x3f, 0xe5, 0x9f, 0x8f, 0x41, 0xfc, 0x96, 0xe5, 0x62, - 0xf4, 0x4c, 0xc0, 0x95, 0xcd, 0x0f, 0xd3, 0xe7, 0xba, 0xd1, 0x32, 0x71, 0x73, 0xc3, 0x69, 0x05, - 0x9e, 0xa5, 0xf1, 0xd5, 0x29, 0x1a, 0x52, 0xa7, 0x39, 0x98, 0xb6, 0xad, 0x9e, 0xd9, 0x14, 0x17, - 0xbf, 0x69, 0x01, 0x55, 0x21, 0xe5, 0x69, 0x49, 0x7c, 0x9c, 0x96, 0x14, 0x88, 0x96, 0x10, 0x1d, - 0xe6, 0x00, 0x25, 0xb9, 0xcb, 0x95, 0xa5, 0x0c, 0x69, 0xcf, 0x78, 0x71, 0x6d, 0x9b, 0x4c, 0x61, - 0x7d, 0x32, 0xb2, 0x45, 0x7a, 0x73, 0xef, 0x09, 0x8f, 0x69, 0x9c, 0xe4, 0x55, 0x70, 0xe9, 0x85, - 0xd4, 0x8a, 0x3f, 0x91, 0x93, 0xa4, 0xe3, 0xf2, 0xd5, 0x8a, 0x3d, 0x93, 0xf3, 0x10, 0xa4, 0x1d, - 0xa3, 0x65, 0x6a, 0x6e, 0xcf, 0xc6, 0x5c, 0xf3, 0x7c, 0x00, 0xa9, 0xf5, 0x3f, 0x82, 0x60, 0x9a, - 0x16, 0x78, 0xb9, 0xeb, 0x12, 0xcc, 0xfa, 0x6f, 0x66, 0xf9, 0x5c, 0x98, 0x96, 0x21, 0xaf, 0xaa, - 0x2e, 0x6a, 0xe4, 0x5f, 0x89, 0x40, 0x82, 0xef, 0x58, 0xfe, 0x34, 0x44, 0x86, 0x4f, 0x43, 0x74, - 0xd4, 0x34, 0xc4, 0x1e, 0x7c, 0x1a, 0x4a, 0x00, 0x5e, 0x37, 0x1d, 0xfe, 0x10, 0xca, 0x10, 0xb7, - 0x8a, 0x75, 0xb1, 0x6e, 0xb4, 0xf8, 0xba, 0x0f, 0x10, 0xc9, 0xbf, 0x1d, 0x21, 0x1e, 0x3e, 0xaf, - 0x47, 0x25, 0xc8, 0x89, 0x7e, 0xa9, 0x7b, 0x6d, 0xad, 0xc5, 0x55, 0xf1, 0xec, 0xc8, 0xce, 0x91, - 0x5d, 0x58, 0xc9, 0xf0, 0xfe, 0x50, 0x7f, 0x62, 0xe8, 0xb4, 0x46, 0x47, 0x4c, 0x6b, 0x48, 0x8f, - 0x62, 0x0f, 0xa6, 0x47, 0xa1, 0x19, 0x8f, 0xf7, 0xcd, 0xb8, 0xfc, 0xbb, 0x11, 0xfe, 0x62, 0x57, - 0x93, 0x7d, 0xc1, 0xf1, 0x97, 0x35, 0x55, 0xaf, 0x73, 0xdd, 0x6a, 0xe2, 0xa6, 0x3a, 0x30, 0x67, - 0x0f, 0x0f, 0x72, 0x0c, 0xf7, 0xd9, 0x9f, 0x3b, 0x24, 0xb8, 0xd4, 0xfd, 0x39, 0xfc, 0x74, 0x14, - 0x66, 0x06, 0xf0, 0xff, 0xea, 0xcd, 0x65, 0x78, 0xf5, 0x4e, 0x4f, 0xb8, 0x7a, 0x13, 0x23, 0x57, - 0xef, 0xcf, 0x46, 0x69, 0x02, 0xa0, 0x6b, 0x39, 0x5a, 0xfb, 0x9d, 0xb0, 0xbd, 0x67, 0x20, 0xdd, - 0xb5, 0xda, 0x2a, 0xab, 0x61, 0x9f, 0xde, 0xa4, 0xba, 0x56, 0x5b, 0x19, 0x50, 0xb3, 0xe9, 0xb7, - 0xc9, 0x30, 0x27, 0xde, 0x86, 0x49, 0x48, 0xf6, 0x2f, 0x28, 0x1b, 0xb2, 0x4c, 0x14, 0xdc, 0x6b, - 0x7a, 0x8a, 0xc8, 0x80, 0xba, 0x61, 0x91, 0x41, 0x2f, 0x8f, 0x75, 0x9b, 0x61, 0x2a, 0x1c, 0x8f, - 0x50, 0x30, 0x27, 0x63, 0x58, 0xe6, 0x28, 0x68, 0xb1, 0x14, 0x8e, 0x27, 0x7f, 0x5f, 0x04, 0x60, - 0x9d, 0x48, 0x96, 0x8e, 0x97, 0xf8, 0x3b, 0x0e, 0xed, 0x82, 0x1a, 0x6a, 0x79, 0x61, 0xd4, 0xa4, - 0xf1, 0xf6, 0xb3, 0x4e, 0xb0, 0xdf, 0x15, 0xc8, 0xf9, 0xba, 0xed, 0x60, 0xd1, 0x99, 0x85, 0x23, - 0xa2, 0xd2, 0x3a, 0x76, 0x95, 0xec, 0x9d, 0x40, 0x49, 0xfe, 0xa7, 0x11, 0x48, 0xd3, 0x3e, 0x6d, - 0x60, 0x57, 0x0b, 0xcd, 0x61, 0xe4, 0xc1, 0xe7, 0xf0, 0x2c, 0x00, 0x63, 0xe3, 0x18, 0x6f, 0x62, - 0xae, 0x59, 0x69, 0x0a, 0xa9, 0x1b, 0x6f, 0x62, 0x74, 0xd5, 0x13, 0x78, 0xec, 0x68, 0x81, 0x8b, - 0xa8, 0x95, 0x8b, 0xfd, 0x14, 0x24, 0xe9, 0x9b, 0x92, 0x07, 0x0e, 0x0f, 0x44, 0x13, 0x66, 0xaf, - 0xd3, 0x38, 0x70, 0xe4, 0x37, 0x20, 0xd9, 0x38, 0x60, 0xf9, 0xc4, 0x33, 0x90, 0xb6, 0x2d, 0x8b, - 0x7b, 0x7f, 0xcc, 0xeb, 0x4e, 0x11, 0x00, 0x75, 0x76, 0x44, 0x0e, 0x2d, 0xea, 0xe7, 0xd0, 0xfc, - 0x24, 0x60, 0x6c, 0xa2, 0x24, 0x20, 0x89, 0x3e, 0x73, 0xa1, 0x95, 0x84, 0x9e, 0x80, 0x53, 0xf5, - 0xda, 0xda, 0x66, 0x75, 0x55, 0xdd, 0xa8, 0xaf, 0xf5, 0x7d, 0x56, 0x5f, 0x2c, 0xdc, 0xbb, 0xbf, - 0x94, 0xe1, 0x61, 0xe7, 0x28, 0xec, 0x6d, 0xa5, 0x7a, 0x6b, 0xab, 0x51, 0x95, 0x22, 0x0c, 0x7b, - 0xdb, 0xc6, 0x77, 0x2c, 0x97, 0x3d, 0xda, 0xfa, 0x14, 0x9c, 0x1e, 0x82, 0xed, 0x05, 0x9f, 0x33, - 0xf7, 0xee, 0x2f, 0xe5, 0xb6, 0x6d, 0xcc, 0xb4, 0x8c, 0x52, 0x2c, 0xc3, 0xfc, 0x20, 0xc5, 0xd6, - 0xf6, 0x56, 0xbd, 0xb4, 0x2e, 0x2d, 0x15, 0xa5, 0x7b, 0xf7, 0x97, 0xb2, 0xc2, 0x64, 0x10, 0xfc, - 0xaf, 0x7e, 0xf4, 0xf9, 0xad, 0xa9, 0x50, 0xd6, 0x98, 0xc5, 0x75, 0x5d, 0xcd, 0xd6, 0x3a, 0xc7, - 0x0d, 0x3f, 0xc7, 0x1c, 0xf8, 0xcb, 0x3f, 0x13, 0x85, 0x82, 0x17, 0xdc, 0x6c, 0xd3, 0x16, 0xd0, - 0x33, 0xc1, 0x8c, 0x5f, 0x66, 0xe4, 0xde, 0xc1, 0xb0, 0x45, 0x42, 0xf0, 0xdd, 0x90, 0x12, 0x4e, - 0x32, 0x5f, 0x54, 0x4b, 0x43, 0xf6, 0x37, 0x8e, 0xc1, 0x49, 0x3d, 0x0a, 0xf4, 0x22, 0xa4, 0xbd, - 0x25, 0xe6, 0x3d, 0x6c, 0x36, 0x7a, 0x4d, 0x72, 0x7a, 0x9f, 0x06, 0xbd, 0xe0, 0x87, 0x71, 0xf1, - 0x51, 0x81, 0xe1, 0x2d, 0x86, 0xc0, 0x89, 0xbd, 0x10, 0xee, 0x29, 0x88, 0x6b, 0xbb, 0xba, 0xc1, - 0x0d, 0xf0, 0x43, 0x83, 0x74, 0xa5, 0x72, 0xa5, 0xc6, 0x89, 0x28, 0xa6, 0x5c, 0xe3, 0xc9, 0x14, - 0x2e, 0x2f, 0xfa, 0x8c, 0xcc, 0x81, 0xca, 0x62, 0x61, 0xe6, 0x5d, 0xa4, 0x3a, 0xda, 0x41, 0x99, - 0x86, 0xc3, 0xa7, 0x20, 0x49, 0x2a, 0x5b, 0xfc, 0xa1, 0x82, 0x98, 0x92, 0xe8, 0x68, 0x07, 0x6b, - 0x9a, 0x73, 0x33, 0x9e, 0x8a, 0x49, 0x71, 0xf9, 0x27, 0x88, 0xa7, 0x12, 0x92, 0x0a, 0x7a, 0x1c, - 0x10, 0xa1, 0xd0, 0x5a, 0x58, 0x25, 0x4b, 0x97, 0x8a, 0x57, 0xf0, 0x2d, 0x74, 0xb4, 0x83, 0x52, - 0x0b, 0x6f, 0xf6, 0x3a, 0xb4, 0x03, 0x0e, 0xda, 0x00, 0x49, 0x20, 0x8b, 0x99, 0xe5, 0xe2, 0x3f, - 0x3d, 0xf8, 0x30, 0x2a, 0x47, 0x60, 0x1b, 0xc0, 0x47, 0xc8, 0x06, 0x90, 0x67, 0xfc, 0xbc, 0x2b, - 0x1e, 0xa1, 0xa1, 0xc4, 0xc2, 0x43, 0x91, 0x5f, 0x84, 0x42, 0xdf, 0x0c, 0x20, 0x19, 0x72, 0x3c, - 0x63, 0x45, 0x8f, 0xcf, 0x59, 0x84, 0x93, 0x56, 0x32, 0x2c, 0x33, 0x45, 0xaf, 0x13, 0xac, 0xa4, - 0x7e, 0xe1, 0xe3, 0x8b, 0x11, 0x7a, 0x98, 0xf3, 0x38, 0xe4, 0x42, 0x73, 0x20, 0xb2, 0xc8, 0x11, - 0x3f, 0x8b, 0xec, 0x23, 0xbf, 0x0e, 0x59, 0x62, 0x80, 0x70, 0x93, 0xe3, 0x3e, 0x0a, 0x05, 0x66, - 0x20, 0xfb, 0x65, 0xcd, 0x1c, 0x9e, 0x0d, 0x21, 0x70, 0x59, 0x78, 0x40, 0x61, 0xb1, 0x67, 0x04, - 0xd6, 0x9a, 0xe6, 0xc8, 0x5b, 0x00, 0xfe, 0xa4, 0xa2, 0x12, 0x9c, 0x25, 0xc6, 0x23, 0x78, 0xdd, - 0x93, 0x3f, 0x69, 0x15, 0xf2, 0x18, 0x8b, 0x04, 0xc9, 0xbf, 0xd2, 0xc9, 0x1e, 0xb6, 0xba, 0x41, - 0x31, 0xca, 0x2f, 0x7f, 0xea, 0xb3, 0x0b, 0x91, 0xaf, 0x8e, 0x2d, 0xf8, 0xee, 0x57, 0xe0, 0x4c, - 0xa0, 0x92, 0x28, 0x60, 0x28, 0x11, 0x55, 0x08, 0xe8, 0x2b, 0xa9, 0x1c, 0x97, 0x50, 0x3a, 0x32, - 0xff, 0x5b, 0x3c, 0xda, 0xec, 0x8c, 0xcf, 0x36, 0x8d, 0xcf, 0x77, 0x0d, 0x4f, 0xca, 0xff, 0x93, - 0x34, 0x24, 0x15, 0xfc, 0xfe, 0x1e, 0x76, 0x5c, 0x74, 0x19, 0xe2, 0x58, 0xdf, 0xb7, 0x86, 0xe5, - 0x40, 0xc9, 0x00, 0x97, 0x39, 0x5e, 0x55, 0xdf, 0xb7, 0x6e, 0x4c, 0x29, 0x14, 0x17, 0x5d, 0x81, - 0xe9, 0xbd, 0x76, 0x8f, 0xa7, 0xaf, 0xfa, 0x6c, 0x56, 0x90, 0xe8, 0x3a, 0x41, 0xba, 0x31, 0xa5, - 0x30, 0x6c, 0xd2, 0x14, 0x7d, 0xd1, 0x3a, 0x76, 0x74, 0x53, 0x35, 0x73, 0x8f, 0x36, 0x45, 0x70, - 0x51, 0x19, 0xc0, 0x30, 0x0d, 0x57, 0xa5, 0xa9, 0x1d, 0x6e, 0x35, 0xce, 0x8d, 0xa6, 0x34, 0x5c, - 0x9a, 0x0c, 0xba, 0x31, 0xa5, 0xa4, 0x0d, 0x51, 0x20, 0xdd, 0x7d, 0x7f, 0x0f, 0xdb, 0x87, 0xdc, - 0x5b, 0x1b, 0xd9, 0xdd, 0x97, 0x09, 0x12, 0xe9, 0x2e, 0xc5, 0x26, 0x46, 0x96, 0x3d, 0x8e, 0xe7, - 0x1e, 0xf0, 0x27, 0x5f, 0x17, 0x47, 0x51, 0xd2, 0x17, 0xf2, 0x1a, 0x07, 0x37, 0xa6, 0x94, 0xa4, - 0xce, 0x7e, 0xa2, 0xe7, 0x3d, 0x17, 0x2c, 0x33, 0xe8, 0xf5, 0x84, 0x68, 0x59, 0xda, 0x67, 0x4a, - 0xb8, 0x62, 0x68, 0x13, 0xf2, 0x6d, 0xc3, 0x71, 0x55, 0xc7, 0xd4, 0xba, 0xce, 0xbe, 0xe5, 0x3a, - 0x34, 0x7f, 0x92, 0xb9, 0xfc, 0xc8, 0x28, 0x0e, 0xeb, 0x86, 0xe3, 0xd6, 0x05, 0xf2, 0x8d, 0x29, - 0x25, 0xd7, 0x0e, 0x02, 0x08, 0x3f, 0x6b, 0x6f, 0x0f, 0xdb, 0x1e, 0x43, 0x9a, 0x67, 0x39, 0x82, - 0xdf, 0x16, 0xc1, 0x16, 0xf4, 0x84, 0x9f, 0x15, 0x04, 0xa0, 0xaf, 0x83, 0xd9, 0xb6, 0xa5, 0x35, - 0x3d, 0x76, 0xaa, 0xbe, 0xdf, 0x33, 0x6f, 0xd3, 0xa4, 0x4c, 0xe6, 0xf2, 0x63, 0x23, 0x3b, 0x69, - 0x69, 0x4d, 0xc1, 0xa2, 0x42, 0x08, 0x6e, 0x4c, 0x29, 0x33, 0xed, 0x7e, 0x20, 0x7a, 0x1f, 0xcc, - 0x69, 0xdd, 0x6e, 0xfb, 0xb0, 0x9f, 0x7b, 0x81, 0x72, 0xbf, 0x38, 0x8a, 0x7b, 0x89, 0xd0, 0xf4, - 0xb3, 0x47, 0xda, 0x00, 0x14, 0x35, 0x40, 0xea, 0xda, 0x98, 0x7e, 0x31, 0xd5, 0xe5, 0x5e, 0x06, - 0x7d, 0x4f, 0x2a, 0x73, 0xf9, 0xfc, 0x28, 0xde, 0xdb, 0x0c, 0x5f, 0x38, 0x25, 0x37, 0xa6, 0x94, - 0x42, 0x37, 0x0c, 0x62, 0x5c, 0x2d, 0x1d, 0xd3, 0xe7, 0xee, 0x38, 0xd7, 0x99, 0x71, 0x5c, 0x29, - 0x7e, 0x98, 0x6b, 0x08, 0x84, 0xaa, 0x90, 0x61, 0xa1, 0xa8, 0x4a, 0x8c, 0x21, 0x7d, 0x85, 0x2a, - 0x73, 0x59, 0x1e, 0xb9, 0x42, 0x29, 0xea, 0x2d, 0xcb, 0xc5, 0x37, 0xa6, 0x14, 0xc0, 0x5e, 0x09, - 0x69, 0x70, 0x82, 0x3e, 0xc8, 0x75, 0xa8, 0x86, 0x0d, 0xef, 0xfc, 0x2c, 0x65, 0xf8, 0xf8, 0x28, - 0x86, 0xb7, 0x28, 0xd1, 0xad, 0xa0, 0x1d, 0xbe, 0x31, 0xa5, 0xcc, 0xde, 0x19, 0x04, 0x13, 0x15, - 0xdb, 0x33, 0x4c, 0xad, 0x6d, 0xbc, 0x89, 0xd9, 0x16, 0x4a, 0x9f, 0xa2, 0x3c, 0x42, 0xc5, 0xae, - 0x73, 0x6c, 0xba, 0xb1, 0x12, 0x15, 0xdb, 0x0b, 0x02, 0xca, 0x49, 0x7e, 0xd7, 0xd3, 0x7b, 0x5a, - 0x2d, 0x29, 0xa5, 0xd8, 0x73, 0x6a, 0x37, 0xe3, 0x29, 0x90, 0x32, 0xf2, 0x79, 0xc8, 0x04, 0x0c, - 0x13, 0x9a, 0x87, 0x24, 0xbf, 0x0d, 0x23, 0x6e, 0x8d, 0xf2, 0xa2, 0x9c, 0x87, 0x6c, 0xd0, 0x18, - 0xc9, 0x1f, 0x8e, 0x78, 0x94, 0xf4, 0x4d, 0x89, 0xf9, 0x70, 0x46, 0x3a, 0xed, 0x7b, 0x2a, 0x0f, - 0x8b, 0xad, 0x4d, 0xd4, 0xb3, 0xe3, 0xd7, 0x2c, 0x05, 0xf2, 0x9d, 0x15, 0x2d, 0x42, 0xa6, 0x7b, - 0xb9, 0xeb, 0xa1, 0xc4, 0x28, 0x0a, 0x74, 0x2f, 0x77, 0x05, 0xc2, 0x39, 0xc8, 0x92, 0x71, 0xab, - 0x41, 0x7f, 0x29, 0xad, 0x64, 0x08, 0x8c, 0xa3, 0xc8, 0xff, 0x2a, 0x0a, 0x52, 0xbf, 0x01, 0xf3, - 0x52, 0xd5, 0x91, 0x63, 0xa7, 0xaa, 0x4f, 0xf7, 0x27, 0xc9, 0xfd, 0xbc, 0xf8, 0x3a, 0x48, 0x7e, - 0x7a, 0x97, 0x6d, 0x35, 0xa3, 0xfd, 0xbf, 0x3e, 0x47, 0x55, 0x29, 0xe8, 0x7d, 0x9e, 0xeb, 0xf5, - 0xd0, 0x61, 0xa5, 0xf8, 0x93, 0x0f, 0xfd, 0x13, 0xee, 0x39, 0x31, 0x3b, 0xdd, 0xa6, 0xe6, 0x62, - 0x91, 0x1f, 0x0b, 0x9c, 0x5b, 0x3e, 0x0a, 0x05, 0xad, 0xdb, 0x55, 0x1d, 0x57, 0x73, 0x31, 0xf7, - 0x35, 0x58, 0xe6, 0x21, 0xa7, 0x75, 0xbb, 0x75, 0x02, 0x65, 0xbe, 0xc6, 0x23, 0x90, 0x27, 0x36, - 0xdd, 0xd0, 0xda, 0xc2, 0x55, 0x48, 0x30, 0x97, 0x84, 0x43, 0x99, 0x77, 0x20, 0x37, 0xbd, 0x19, - 0xa7, 0xf6, 0xdc, 0x8b, 0xa9, 0x22, 0x81, 0x98, 0x0a, 0xf1, 0xb7, 0x3e, 0x98, 0x7c, 0xc4, 0xfb, - 0x28, 0xc3, 0x0f, 0x0d, 0xe6, 0x68, 0xfc, 0x75, 0x87, 0x25, 0x4b, 0x52, 0x0a, 0x2b, 0xc8, 0x0a, - 0xe4, 0xc3, 0xb6, 0x1f, 0xe5, 0x21, 0xea, 0x1e, 0xf0, 0x56, 0xa2, 0xee, 0x01, 0xf1, 0x74, 0xbd, - 0x17, 0x72, 0xf3, 0x43, 0x76, 0x3b, 0x4e, 0xe7, 0xe7, 0x3a, 0xe4, 0x02, 0xe4, 0x42, 0x7b, 0x82, - 0x7c, 0x12, 0xe6, 0x86, 0x99, 0x78, 0x79, 0xdf, 0x83, 0x87, 0x4c, 0x35, 0xba, 0x02, 0x29, 0xcf, - 0xc6, 0x0f, 0x89, 0x8e, 0x69, 0xb3, 0x02, 0x59, 0xf1, 0x50, 0x43, 0xe9, 0xfc, 0x68, 0x28, 0x9d, - 0x2f, 0x7f, 0x23, 0xcc, 0x8f, 0xb2, 0xdf, 0x7d, 0x49, 0xbe, 0xb8, 0x27, 0xb0, 0x93, 0x90, 0xe0, - 0x4f, 0x51, 0x46, 0xe9, 0x01, 0x16, 0x2f, 0x11, 0x41, 0x32, 0x5b, 0x1e, 0x63, 0xe7, 0x5a, 0xb4, - 0x20, 0xab, 0x70, 0x7a, 0xa4, 0x0d, 0x1f, 0x7d, 0x14, 0xc6, 0x18, 0xf1, 0xa3, 0x30, 0x5d, 0x74, - 0xc7, 0xa1, 0x63, 0x15, 0x17, 0x59, 0x58, 0x49, 0xfe, 0x48, 0x0c, 0x4e, 0x0e, 0xb7, 0xe4, 0x68, - 0x09, 0xb2, 0xc4, 0x6f, 0x75, 0xc3, 0x2e, 0x2e, 0x74, 0xb4, 0x83, 0x06, 0xf7, 0x6f, 0xf9, 0x51, - 0x42, 0xd4, 0x3b, 0x4a, 0x40, 0x3b, 0x30, 0xd3, 0xb6, 0x74, 0xad, 0xad, 0x06, 0x8e, 0x72, 0xf8, - 0x22, 0x7a, 0x78, 0x40, 0xd8, 0xe1, 0x94, 0x21, 0x31, 0x38, 0x5c, 0xff, 0x0b, 0x94, 0xc7, 0xba, - 0x77, 0xea, 0x83, 0x56, 0x21, 0xd3, 0x31, 0x9c, 0x5d, 0xbc, 0xaf, 0xdd, 0x31, 0x2c, 0x9b, 0xaf, - 0xa6, 0x41, 0xa5, 0xd9, 0xf0, 0x71, 0xc4, 0x09, 0x53, 0x80, 0x2c, 0x30, 0x25, 0xd3, 0x43, 0x0f, - 0xbe, 0x12, 0xc7, 0xb6, 0x26, 0xa3, 0xce, 0x90, 0x92, 0x23, 0xcf, 0x90, 0x86, 0x1d, 0xd8, 0xa4, - 0x86, 0x1f, 0xd8, 0x7c, 0x28, 0x38, 0x35, 0xe1, 0xbd, 0x6f, 0xe0, 0x0c, 0x07, 0xd5, 0x61, 0x8e, - 0xd3, 0x37, 0x43, 0xb2, 0x1f, 0x72, 0xd5, 0x81, 0xad, 0xaf, 0x7e, 0x99, 0x23, 0x41, 0x3e, 0x5a, - 0xec, 0xb1, 0x07, 0x13, 0xbb, 0x38, 0x44, 0x8d, 0x07, 0x0e, 0x51, 0xff, 0x0f, 0x9b, 0x8a, 0x17, - 0x61, 0x66, 0xc0, 0x8f, 0x18, 0x7a, 0x38, 0x3c, 0x22, 0x21, 0x2b, 0x7f, 0x2c, 0x02, 0xc5, 0xd1, - 0x8e, 0xc3, 0x50, 0x56, 0xc7, 0xca, 0x7d, 0x8f, 0x32, 0xcf, 0x8f, 0x40, 0xbe, 0xcf, 0xad, 0x61, - 0xb3, 0x90, 0x0b, 0x05, 0x90, 0xf2, 0x37, 0xc7, 0x3c, 0x9b, 0x19, 0xf2, 0x3d, 0x86, 0x28, 0xda, - 0xcb, 0x30, 0xdb, 0xc4, 0xba, 0xd1, 0x7c, 0x50, 0x3d, 0x9b, 0xe1, 0xd4, 0xff, 0x4f, 0xcd, 0x06, - 0xd5, 0xec, 0x7b, 0x01, 0x52, 0x0a, 0x76, 0xba, 0xc4, 0x95, 0x40, 0x65, 0x48, 0xe3, 0x03, 0x1d, - 0x77, 0x5d, 0xff, 0x3e, 0xc0, 0x30, 0xef, 0x96, 0x61, 0x57, 0x05, 0x26, 0x89, 0xed, 0x3c, 0x32, - 0xf4, 0x0c, 0x0f, 0x5f, 0x47, 0x47, 0xa2, 0x9c, 0x3c, 0x18, 0xbf, 0x5e, 0x15, 0xf1, 0x6b, 0x6c, - 0x64, 0x68, 0xc6, 0xa8, 0xfa, 0x02, 0xd8, 0x67, 0x78, 0x00, 0x1b, 0x1f, 0xd3, 0x58, 0x28, 0x82, - 0xad, 0x84, 0x22, 0xd8, 0xc4, 0x98, 0x61, 0x8e, 0x08, 0x61, 0xaf, 0x8a, 0x10, 0x36, 0x39, 0xa6, - 0xc7, 0x7d, 0x31, 0xec, 0x7b, 0x02, 0x31, 0x6c, 0x7a, 0x30, 0x51, 0x18, 0x22, 0x1d, 0x12, 0xc4, - 0xbe, 0xe0, 0x05, 0xb1, 0xd9, 0x91, 0x01, 0x30, 0x27, 0xee, 0x8f, 0x62, 0xb7, 0x06, 0xa2, 0xd8, - 0x1c, 0xff, 0x9b, 0x3c, 0xa3, 0x58, 0x8c, 0x09, 0x63, 0xb7, 0x06, 0xc2, 0xd8, 0xfc, 0x18, 0x86, - 0x63, 0xe2, 0xd8, 0xaf, 0x1f, 0x1e, 0xc7, 0x8e, 0x8e, 0x34, 0x79, 0x37, 0x27, 0x0b, 0x64, 0xd5, - 0x11, 0x81, 0xac, 0x34, 0x32, 0xe8, 0x62, 0xec, 0x27, 0x8e, 0x64, 0x77, 0x86, 0x44, 0xb2, 0x2c, - 0xe6, 0xbc, 0x30, 0x92, 0xf9, 0x04, 0xa1, 0xec, 0xce, 0x90, 0x50, 0x16, 0x8d, 0x65, 0x3b, 0x36, - 0x96, 0xbd, 0x1e, 0x8e, 0x65, 0x67, 0x47, 0x38, 0x4c, 0xfe, 0x6a, 0x1f, 0x11, 0xcc, 0xee, 0x8e, - 0x0a, 0x66, 0x59, 0xc0, 0xf9, 0xc4, 0x48, 0x8e, 0xc7, 0x88, 0x66, 0xb7, 0x06, 0xa2, 0xd9, 0x13, - 0x63, 0x34, 0x6d, 0xf2, 0x70, 0x96, 0xbd, 0x11, 0xce, 0x5e, 0x07, 0x07, 0x29, 0x73, 0x33, 0x9e, - 0xca, 0x48, 0x59, 0xf9, 0x31, 0xb2, 0xfb, 0xf6, 0xd9, 0x39, 0xe2, 0xe6, 0x62, 0xdb, 0xb6, 0x6c, - 0x71, 0x05, 0x9f, 0x16, 0xe4, 0x0b, 0x24, 0xbc, 0xf1, 0x6d, 0xda, 0x11, 0xa1, 0x2f, 0x0d, 0x27, - 0x02, 0x76, 0x4c, 0xfe, 0x85, 0x88, 0x4f, 0x4b, 0x83, 0xdf, 0x60, 0x68, 0x94, 0xe6, 0xa1, 0x51, - 0x20, 0x20, 0x8e, 0x86, 0x03, 0xe2, 0x45, 0xc8, 0x90, 0x30, 0xa1, 0x2f, 0xd6, 0xd5, 0xba, 0x5e, - 0xac, 0x2b, 0xee, 0xfe, 0xb0, 0xb0, 0x99, 0x6f, 0x4b, 0xec, 0x20, 0xac, 0xe0, 0xdd, 0x83, 0x62, - 0x51, 0x1a, 0x7a, 0x12, 0x66, 0x03, 0xb8, 0x5e, 0xf8, 0xc1, 0x02, 0x3f, 0xc9, 0xc3, 0x2e, 0xf1, - 0x38, 0xe4, 0x9f, 0x45, 0x7c, 0x09, 0xf9, 0x41, 0xf2, 0xb0, 0x78, 0x36, 0xf2, 0x36, 0xc5, 0xb3, - 0xd1, 0x07, 0x8e, 0x67, 0x83, 0xe1, 0x54, 0x2c, 0x1c, 0x4e, 0xfd, 0x8f, 0x88, 0x3f, 0x27, 0x5e, - 0x74, 0xaa, 0x5b, 0x4d, 0xcc, 0x03, 0x1c, 0xfa, 0x9b, 0xb8, 0x24, 0x6d, 0xab, 0xc5, 0xc3, 0x18, - 0xf2, 0x93, 0x60, 0x79, 0x1b, 0x4f, 0x9a, 0xef, 0x2b, 0x5e, 0x6c, 0x34, 0x1d, 0xfc, 0x04, 0x81, - 0xdf, 0xcb, 0x4f, 0xf8, 0xf7, 0xf2, 0xbd, 0xef, 0x66, 0x93, 0x81, 0xef, 0x66, 0xd1, 0xf3, 0x90, - 0xa6, 0x79, 0x6a, 0xd5, 0xea, 0x8a, 0x3f, 0x68, 0x75, 0x66, 0xf4, 0x9d, 0x7c, 0x87, 0xde, 0x16, - 0x66, 0xf7, 0xf8, 0x7d, 0x8f, 0x23, 0x1d, 0xf2, 0x38, 0x1e, 0x82, 0x34, 0xe9, 0x3d, 0xfb, 0xc3, - 0x0c, 0xc0, 0x3f, 0xba, 0x16, 0x00, 0xf9, 0x27, 0xa3, 0x50, 0xe8, 0xdb, 0x68, 0x86, 0x8e, 0x7d, - 0xd8, 0x09, 0xe8, 0x64, 0xf2, 0x58, 0x00, 0x68, 0x69, 0x8e, 0x7a, 0x57, 0x33, 0x5d, 0xdc, 0xe4, - 0x42, 0x09, 0x40, 0x50, 0x11, 0x52, 0xa4, 0xd4, 0x73, 0x70, 0x93, 0x27, 0x0e, 0xbc, 0x32, 0xba, - 0x01, 0x09, 0x7c, 0x87, 0x3e, 0x4c, 0xca, 0x9e, 0xf7, 0x3d, 0x39, 0x18, 0xc9, 0x91, 0xea, 0xf2, - 0x3c, 0x99, 0xec, 0x2f, 0xbc, 0xb5, 0x28, 0x31, 0xec, 0x27, 0xbc, 0x6f, 0x9d, 0x14, 0x4e, 0x1f, - 0x96, 0x42, 0xaa, 0x4f, 0x0a, 0x34, 0x85, 0x95, 0x15, 0x91, 0x29, 0x91, 0x29, 0xbb, 0x9e, 0xac, - 0xe4, 0x3a, 0xb8, 0xd3, 0xb5, 0xac, 0xb6, 0xca, 0xd6, 0x78, 0x09, 0xf2, 0xe1, 0x7d, 0x95, 0xfd, - 0xd1, 0x24, 0x57, 0x33, 0x4c, 0x35, 0xe4, 0x04, 0x67, 0x19, 0x90, 0xad, 0xa9, 0x9b, 0xf1, 0x54, - 0x44, 0x8a, 0xde, 0x8c, 0xa7, 0xa2, 0x52, 0x4c, 0xde, 0x86, 0x13, 0x43, 0xf7, 0x55, 0xf4, 0x1c, - 0xa4, 0xfd, 0x2d, 0x99, 0xdd, 0x30, 0x3f, 0x22, 0x49, 0xe0, 0xe3, 0xca, 0xbf, 0x1c, 0xf1, 0x59, - 0x86, 0xd3, 0x0e, 0x55, 0x48, 0xb0, 0xeb, 0x7e, 0xfc, 0x6a, 0xc7, 0x93, 0x93, 0xed, 0xc8, 0xcb, - 0xec, 0x2e, 0xa0, 0xc2, 0x89, 0xe5, 0xf7, 0x41, 0x82, 0x41, 0x50, 0x06, 0x92, 0xfe, 0x13, 0xc8, - 0x00, 0x89, 0x52, 0xa5, 0x52, 0xdd, 0x16, 0xef, 0x99, 0x96, 0xb7, 0x94, 0x86, 0x14, 0x25, 0x60, - 0xa5, 0x7a, 0xb3, 0x5a, 0x69, 0x48, 0x31, 0x34, 0x03, 0x39, 0xf6, 0x5b, 0xbd, 0xbe, 0xa5, 0x6c, - 0x94, 0x1a, 0x52, 0x3c, 0x00, 0xaa, 0x57, 0x37, 0x57, 0xab, 0x8a, 0x34, 0x2d, 0x3f, 0x0d, 0xa7, - 0x47, 0xee, 0xe1, 0x7e, 0x4e, 0x21, 0x12, 0xc8, 0x29, 0xc8, 0x1f, 0x89, 0x92, 0xa0, 0x66, 0xd4, - 0xc6, 0x8c, 0x6e, 0xf6, 0x0d, 0xfc, 0xf2, 0x31, 0x76, 0xf5, 0xbe, 0xd1, 0x93, 0x38, 0xc6, 0xc6, - 0x7b, 0xd8, 0xd5, 0xf7, 0x99, 0xa3, 0xc0, 0x2c, 0x50, 0x4e, 0xc9, 0x71, 0x28, 0x25, 0x72, 0x18, - 0xda, 0x1b, 0x58, 0x77, 0x55, 0xa6, 0x44, 0x0e, 0xff, 0x1b, 0xaf, 0x39, 0x06, 0xad, 0x33, 0xa0, - 0xfc, 0x8d, 0xc7, 0x92, 0x65, 0x1a, 0xa6, 0x95, 0x6a, 0x43, 0x79, 0x4d, 0x8a, 0x21, 0x04, 0x79, - 0xfa, 0x53, 0xad, 0x6f, 0x96, 0xb6, 0xeb, 0x37, 0xb6, 0x88, 0x2c, 0x67, 0xa1, 0x20, 0x64, 0x29, - 0x80, 0xd3, 0xf2, 0xe3, 0x70, 0x6a, 0x84, 0x57, 0x31, 0xe4, 0xfe, 0xe5, 0x27, 0x22, 0x41, 0xec, - 0xb0, 0x67, 0xb0, 0x05, 0x09, 0xc7, 0xd5, 0xdc, 0x9e, 0xc3, 0x85, 0xf8, 0xdc, 0xa4, 0x6e, 0xc6, - 0xb2, 0xf8, 0x51, 0xa7, 0xe4, 0x0a, 0x67, 0x23, 0x5f, 0x81, 0x7c, 0xb8, 0x66, 0xb4, 0x0c, 0x7c, - 0x25, 0x8a, 0xca, 0xd7, 0x00, 0x0d, 0x7a, 0x1f, 0x43, 0xc2, 0xcb, 0xc8, 0xb0, 0xf0, 0xf2, 0xc7, - 0x22, 0x70, 0xe6, 0x08, 0x4f, 0x03, 0xbd, 0xdc, 0x37, 0xc8, 0x17, 0x8e, 0xe3, 0xa7, 0x2c, 0x33, - 0x58, 0xdf, 0x30, 0x9f, 0x81, 0x6c, 0x10, 0x3e, 0xd9, 0x20, 0xbf, 0x10, 0xf5, 0x17, 0x71, 0x38, - 0x0e, 0xf6, 0x4d, 0x60, 0xe4, 0x2b, 0x34, 0x81, 0xef, 0x06, 0x70, 0x0f, 0xc4, 0x05, 0x60, 0xbe, - 0x8f, 0x9e, 0x1d, 0x92, 0x1a, 0xc3, 0x7a, 0xe3, 0x80, 0x2f, 0x82, 0xb4, 0xcb, 0x7f, 0x39, 0xa8, - 0x1e, 0x4c, 0x0a, 0xf4, 0xe8, 0x1e, 0xeb, 0x78, 0x7f, 0xe1, 0x75, 0xb2, 0xcd, 0xd8, 0x4f, 0x1e, - 0x30, 0xb0, 0x83, 0x5e, 0x83, 0x53, 0x7d, 0x8e, 0x82, 0xc7, 0x3a, 0x3e, 0xa9, 0xbf, 0x70, 0x22, - 0xec, 0x2f, 0x08, 0xd6, 0xc1, 0xdd, 0x7e, 0x3a, 0xbc, 0xdb, 0xbf, 0x06, 0xe0, 0x27, 0x07, 0xfc, - 0x1b, 0x6b, 0x91, 0xe0, 0x8d, 0xb5, 0x2b, 0x30, 0x4d, 0x34, 0x49, 0xc8, 0x69, 0xd0, 0x14, 0x13, - 0x4d, 0x08, 0x24, 0x17, 0x18, 0xb6, 0x6c, 0x00, 0x1a, 0xcc, 0x2d, 0x8e, 0x68, 0xe2, 0x3d, 0xe1, - 0x26, 0xce, 0x8d, 0xcc, 0x52, 0x0e, 0x6f, 0xea, 0x4d, 0x98, 0xa6, 0x33, 0x3f, 0xf4, 0x33, 0xc0, - 0x6f, 0x00, 0xd0, 0x5c, 0xd7, 0x36, 0x76, 0x7b, 0x7e, 0x03, 0x8b, 0xc3, 0x35, 0xa7, 0x24, 0xf0, - 0xca, 0x0f, 0x71, 0x15, 0x9a, 0xf3, 0x49, 0x03, 0x6a, 0x14, 0x60, 0x28, 0x6f, 0x42, 0x3e, 0x4c, - 0x3b, 0xfc, 0xb3, 0x46, 0xff, 0x5d, 0x90, 0xb4, 0xf0, 0x6f, 0x3c, 0xef, 0x88, 0xbf, 0xd5, 0x43, - 0x0b, 0xf2, 0x5f, 0x44, 0x20, 0x1b, 0x54, 0xbc, 0xb7, 0xd9, 0x05, 0x39, 0x3b, 0xc4, 0x05, 0x49, - 0xb7, 0x34, 0xe7, 0x15, 0xe6, 0x81, 0x9c, 0x1e, 0xf0, 0x40, 0x92, 0x2d, 0xcd, 0xd9, 0x79, 0x07, - 0x1d, 0x10, 0xf9, 0x5b, 0x22, 0x90, 0xf2, 0x06, 0x7f, 0xc4, 0x2d, 0x5d, 0xff, 0xe3, 0x56, 0x2f, - 0xeb, 0xce, 0xce, 0x37, 0x62, 0xde, 0xf9, 0xc6, 0x35, 0x6f, 0xf3, 0x1b, 0x95, 0x0e, 0x09, 0x4a, - 0x5a, 0xdc, 0x94, 0xe3, 0x7b, 0xfd, 0xb5, 0xc9, 0xbe, 0x21, 0x9b, 0x83, 0xe9, 0xe0, 0xf7, 0x5f, - 0xac, 0x20, 0x37, 0x03, 0x57, 0x63, 0xd8, 0x32, 0x0c, 0x7e, 0x6c, 0x16, 0x39, 0xf6, 0xc7, 0x66, - 0x5e, 0x2b, 0xd1, 0x60, 0x2b, 0xdf, 0x13, 0x81, 0x94, 0x58, 0x11, 0xe8, 0xbd, 0xc1, 0x2b, 0x53, - 0xe2, 0x4c, 0x6e, 0xa4, 0x35, 0xe2, 0xfc, 0x03, 0x37, 0xa6, 0x06, 0x6e, 0x0a, 0xc7, 0x8e, 0x7b, - 0x53, 0x98, 0xfb, 0x75, 0x7f, 0x1a, 0x01, 0xa9, 0x7f, 0xbd, 0x7e, 0xc5, 0xbd, 0x1b, 0xdc, 0xe4, - 0x62, 0x43, 0x36, 0xb9, 0x51, 0xd7, 0x7f, 0xe3, 0xa3, 0xae, 0xff, 0x0e, 0x8e, 0x7a, 0xfa, 0x01, - 0x47, 0xfd, 0xc1, 0x28, 0x64, 0x02, 0xc9, 0x51, 0xf4, 0x6c, 0xe8, 0x2a, 0xf1, 0xd2, 0x51, 0x89, - 0xd4, 0xc0, 0x5d, 0xe2, 0x90, 0x98, 0xa2, 0xc7, 0x17, 0xd3, 0xdb, 0xff, 0x59, 0xd1, 0xf0, 0x2f, - 0x2f, 0xa7, 0x47, 0x7c, 0x79, 0xf9, 0xd7, 0x23, 0x90, 0xf2, 0x9c, 0xee, 0xe3, 0x9e, 0xbe, 0x9d, - 0x84, 0x04, 0xf7, 0x2b, 0xd9, 0xf1, 0x1b, 0x2f, 0x0d, 0x4d, 0x2a, 0x17, 0x21, 0x25, 0xfe, 0xd8, - 0x1e, 0xdf, 0xd3, 0xbc, 0xf2, 0xc5, 0x17, 0x20, 0x13, 0x38, 0xb9, 0x24, 0x86, 0x71, 0xb3, 0xfa, - 0x8a, 0x34, 0x55, 0x4c, 0xde, 0xbb, 0xbf, 0x14, 0xdb, 0xc4, 0x77, 0xc9, 0x6a, 0x56, 0xaa, 0x95, - 0x1b, 0xd5, 0xca, 0x4b, 0x52, 0xa4, 0x98, 0xb9, 0x77, 0x7f, 0x29, 0xa9, 0x60, 0x9a, 0x4f, 0xbc, - 0xf8, 0x12, 0x14, 0xfa, 0x26, 0x26, 0xec, 0xb4, 0x20, 0xc8, 0xaf, 0xee, 0x6c, 0xaf, 0xd7, 0x2a, - 0xa5, 0x46, 0x55, 0x65, 0x17, 0x4e, 0xd1, 0x29, 0x98, 0x5d, 0xaf, 0xad, 0xdd, 0x68, 0xa8, 0x95, - 0xf5, 0x5a, 0x75, 0xb3, 0xa1, 0x96, 0x1a, 0x8d, 0x52, 0xe5, 0x25, 0x29, 0x7a, 0xf9, 0x7e, 0x06, - 0xe2, 0xa5, 0x72, 0xa5, 0x86, 0x2a, 0x10, 0xa7, 0x89, 0x90, 0x23, 0xaf, 0x2e, 0x15, 0x8f, 0xce, - 0x0c, 0xa3, 0xeb, 0x30, 0x4d, 0x73, 0x24, 0xe8, 0xe8, 0xbb, 0x4c, 0xc5, 0x31, 0xa9, 0x62, 0xd2, - 0x19, 0xba, 0x22, 0x8f, 0xbc, 0xdc, 0x54, 0x3c, 0x3a, 0x73, 0x8c, 0xd6, 0x21, 0x29, 0x42, 0xe4, - 0x71, 0x37, 0x8e, 0x8a, 0x63, 0xd3, 0xb9, 0x64, 0x68, 0x2c, 0xd5, 0x70, 0xf4, 0xbd, 0xa7, 0xe2, - 0x98, 0x9c, 0x32, 0xaa, 0x79, 0x1f, 0xe2, 0x8c, 0xb9, 0xca, 0x54, 0x1c, 0x97, 0x25, 0x46, 0x0a, - 0xa4, 0xfd, 0x24, 0xce, 0xf8, 0xdb, 0x5c, 0xc5, 0x09, 0xd2, 0xe5, 0xe8, 0x7d, 0x90, 0x0b, 0x07, - 0xba, 0x93, 0x5d, 0x97, 0x2a, 0x4e, 0x98, 0x8f, 0x26, 0xfc, 0xc3, 0x51, 0xef, 0x64, 0xd7, 0xa7, - 0x8a, 0x13, 0xa6, 0xa7, 0xd1, 0x1b, 0x30, 0x33, 0x18, 0x95, 0x4e, 0x7e, 0x9b, 0xaa, 0x78, 0x8c, - 0x84, 0x35, 0xea, 0x00, 0x1a, 0x12, 0xcd, 0x1e, 0xe3, 0x72, 0x55, 0xf1, 0x38, 0xf9, 0x6b, 0xd4, - 0x84, 0x42, 0x7f, 0x88, 0x38, 0xe9, 0x65, 0xab, 0xe2, 0xc4, 0xb9, 0x6c, 0xd6, 0x4a, 0x38, 0xb4, - 0x9c, 0xf4, 0xf2, 0x55, 0x71, 0xe2, 0xd4, 0x36, 0xda, 0x01, 0x08, 0x44, 0x87, 0x13, 0x5c, 0xc6, - 0x2a, 0x4e, 0x92, 0xe4, 0x46, 0x5d, 0x98, 0x1d, 0x16, 0x36, 0x1e, 0xe7, 0x6e, 0x56, 0xf1, 0x58, - 0xb9, 0x6f, 0xa2, 0xcf, 0xe1, 0x00, 0x70, 0xb2, 0xbb, 0x5a, 0xc5, 0x09, 0x93, 0xe0, 0xe5, 0xd2, - 0xc8, 0x0b, 0xba, 0xe7, 0x8f, 0xbc, 0xa0, 0xeb, 0x5f, 0xb9, 0xf5, 0x2e, 0xe5, 0xfe, 0xdb, 0x4b, - 0xf0, 0x2e, 0xfe, 0xf4, 0x8b, 0xe3, 0x6a, 0xb7, 0x0d, 0xb3, 0xe5, 0xbd, 0xc1, 0xc3, 0xcb, 0xfc, - 0x76, 0xee, 0x49, 0xfe, 0xce, 0x8c, 0x80, 0x8e, 0x79, 0x89, 0x67, 0xe4, 0xf3, 0x84, 0xe3, 0x2e, - 0xf2, 0x8f, 0xbf, 0x77, 0x7b, 0xc4, 0x2b, 0x3f, 0x63, 0xde, 0x12, 0x1a, 0xf2, 0x0a, 0x50, 0xf1, - 0xc8, 0x8f, 0xe3, 0x8b, 0x47, 0x5d, 0x58, 0x26, 0x5e, 0x6c, 0xfe, 0x86, 0xe1, 0xb8, 0x96, 0x6d, - 0xe8, 0x5a, 0x9b, 0x6e, 0x2f, 0xd7, 0x26, 0xfd, 0x9c, 0xa8, 0x9c, 0x26, 0xee, 0x0a, 0x7f, 0x28, - 0x88, 0x7f, 0xe2, 0xb2, 0x0a, 0x89, 0x3b, 0x5a, 0x9b, 0x7d, 0xcc, 0x13, 0x7c, 0x25, 0xac, 0x5f, - 0xe6, 0x01, 0x3f, 0x2a, 0xc8, 0x85, 0xd1, 0xca, 0xdf, 0x47, 0x3f, 0x84, 0xe8, 0x74, 0x0c, 0x87, - 0xe8, 0xa2, 0x42, 0x03, 0xe9, 0x9b, 0x10, 0xb7, 0x35, 0x97, 0x87, 0x97, 0xe5, 0xab, 0xc7, 0x7e, - 0x59, 0x88, 0xb5, 0x40, 0x79, 0xa0, 0x97, 0x21, 0xd5, 0xd1, 0x0e, 0x54, 0xca, 0x2f, 0xfa, 0x15, - 0xf1, 0x4b, 0x76, 0xb4, 0x03, 0xd2, 0x3f, 0xf4, 0x3e, 0x28, 0x10, 0x96, 0xfa, 0xbe, 0x66, 0xb6, - 0x30, 0xe3, 0x1c, 0xfb, 0x8a, 0x38, 0xe7, 0x3a, 0xda, 0x41, 0x85, 0x72, 0x23, 0xfc, 0xf9, 0x0b, - 0x4c, 0xbf, 0x1a, 0xe1, 0x39, 0x03, 0x2a, 0x18, 0xa4, 0x81, 0xa4, 0x7b, 0x25, 0xda, 0xa8, 0x38, - 0xe0, 0x38, 0x3f, 0x4a, 0xee, 0x7d, 0x62, 0x2d, 0xe7, 0x48, 0xf7, 0x3e, 0xf3, 0xd6, 0x62, 0x84, - 0xb5, 0x5a, 0xd0, 0x07, 0xc4, 0x9e, 0x61, 0xa9, 0x10, 0x95, 0xfa, 0xb0, 0xd1, 0xb1, 0x3e, 0x6c, - 0x4e, 0xf8, 0xb0, 0x8c, 0x21, 0x30, 0x6a, 0x52, 0xcf, 0xc7, 0xf0, 0xa9, 0x08, 0x64, 0x56, 0x03, - 0x6f, 0xfe, 0xcd, 0x43, 0xb2, 0x63, 0x99, 0xc6, 0x6d, 0x6c, 0x7b, 0x27, 0x54, 0xac, 0x48, 0xfc, - 0x4c, 0xf6, 0xa7, 0xe3, 0xdc, 0x43, 0xf1, 0x2c, 0x8e, 0x28, 0x13, 0xaa, 0xbb, 0x78, 0xd7, 0x31, - 0x84, 0x9c, 0x15, 0x51, 0x44, 0x8f, 0x81, 0xe4, 0x60, 0xbd, 0x67, 0x1b, 0xee, 0xa1, 0xaa, 0x5b, - 0xa6, 0xab, 0xe9, 0x2e, 0x8f, 0xc2, 0x0b, 0x02, 0x5e, 0x61, 0x60, 0xc2, 0xa4, 0x89, 0x5d, 0xcd, - 0x68, 0xb3, 0x2b, 0x85, 0x69, 0x45, 0x14, 0x79, 0x57, 0xef, 0x25, 0x83, 0x71, 0x68, 0x05, 0x24, - 0xab, 0x8b, 0xed, 0xd0, 0x75, 0x14, 0xa6, 0x8d, 0xf3, 0xbf, 0xf9, 0xe9, 0x27, 0xe7, 0xb8, 0xc0, - 0xf9, 0x55, 0x06, 0xf6, 0xc4, 0xbd, 0x52, 0x10, 0x14, 0xe2, 0x9e, 0xca, 0x6b, 0xa1, 0x33, 0xa9, - 0xde, 0xae, 0xff, 0xfe, 0xc9, 0xdc, 0x80, 0x50, 0x4b, 0xe6, 0x61, 0x79, 0xfe, 0x37, 0x7c, 0xd6, - 0x7e, 0x9c, 0xfa, 0x12, 0x3e, 0x0c, 0x1e, 0x50, 0x51, 0x36, 0xc4, 0x85, 0x7f, 0x43, 0x33, 0xda, - 0xe2, 0xaf, 0x6c, 0x2a, 0xbc, 0x84, 0x56, 0xbc, 0xe4, 0x62, 0x9c, 0xc6, 0x43, 0xf2, 0x28, 0xdd, - 0x28, 0x5b, 0x66, 0x33, 0x9c, 0x45, 0x44, 0x15, 0x48, 0xb8, 0xd6, 0x6d, 0x6c, 0x72, 0x01, 0x95, - 0x1f, 0x3f, 0xc6, 0x13, 0x62, 0x0a, 0x27, 0x45, 0x5f, 0x0f, 0x52, 0x13, 0xb7, 0x71, 0x8b, 0x7d, - 0xe8, 0xb7, 0xaf, 0xd9, 0x98, 0x7d, 0x66, 0xfe, 0x40, 0x0f, 0x84, 0x15, 0x3c, 0x56, 0x75, 0xca, - 0x09, 0x6d, 0x87, 0x5f, 0x95, 0x4c, 0xf2, 0xa3, 0xe3, 0x11, 0x63, 0x0c, 0x68, 0x5e, 0xd0, 0xf2, - 0x84, 0x5e, 0xa1, 0x7c, 0x0c, 0xa4, 0x9e, 0xb9, 0x6b, 0x99, 0xf4, 0x8f, 0xd3, 0xf1, 0x28, 0x2a, - 0xc5, 0xce, 0x29, 0x3d, 0x38, 0x3f, 0xa7, 0xdc, 0x86, 0xbc, 0x8f, 0x4a, 0x57, 0x48, 0xfa, 0xb8, - 0x2b, 0x24, 0xe7, 0x31, 0x20, 0x28, 0x68, 0x03, 0xc0, 0x5f, 0x83, 0xf4, 0xa0, 0x2c, 0x33, 0x7a, - 0xc6, 0xfc, 0xd5, 0x1c, 0x1c, 0x4c, 0x80, 0x01, 0xfa, 0x3a, 0x98, 0xed, 0x18, 0xa6, 0xea, 0xe0, - 0xf6, 0x9e, 0xca, 0x25, 0x47, 0xf8, 0x66, 0x8e, 0x3f, 0x9b, 0x33, 0x1d, 0xc3, 0xac, 0xe3, 0xf6, - 0xde, 0xaa, 0xc7, 0x05, 0xbd, 0x1b, 0xce, 0xf8, 0xa3, 0xb7, 0x4c, 0x75, 0xdf, 0x6a, 0x37, 0x55, - 0x1b, 0xef, 0xa9, 0x3a, 0x7d, 0x04, 0x2e, 0x4b, 0x65, 0x76, 0xca, 0x43, 0xd9, 0x32, 0x6f, 0x58, - 0xed, 0xa6, 0x82, 0xf7, 0x2a, 0xa4, 0x1a, 0x3d, 0x0c, 0xfe, 0xd0, 0x55, 0xa3, 0xe9, 0xcc, 0xe7, - 0x96, 0x62, 0x17, 0xe2, 0x4a, 0xd6, 0x03, 0xd6, 0x9a, 0xce, 0x4a, 0xea, 0x43, 0x1f, 0x5f, 0x9c, - 0xfa, 0xfc, 0xc7, 0x17, 0xa7, 0xe4, 0xeb, 0xf4, 0x31, 0x24, 0xbe, 0x8e, 0xb0, 0x83, 0xae, 0x42, - 0x5a, 0x13, 0x05, 0xf6, 0xa9, 0xd3, 0x11, 0xeb, 0xd0, 0x47, 0x95, 0x7f, 0x22, 0x02, 0x89, 0xd5, - 0x5b, 0xdb, 0x9a, 0x61, 0xa3, 0x2a, 0xcc, 0xf8, 0x8a, 0x39, 0xe9, 0x92, 0xf6, 0x75, 0x59, 0xac, - 0xe9, 0xcd, 0x51, 0x17, 0xd5, 0xd2, 0xe5, 0x73, 0xbf, 0xf9, 0xe9, 0x27, 0xcf, 0x72, 0x36, 0xb7, - 0xfa, 0xee, 0xac, 0x09, 0x7e, 0xfd, 0x77, 0xd9, 0x02, 0x63, 0xbe, 0x09, 0x49, 0xd6, 0x55, 0x07, - 0xbd, 0x08, 0xd3, 0x5d, 0xf2, 0x83, 0xe7, 0xdf, 0x17, 0x46, 0x2a, 0x38, 0xc5, 0x0f, 0xaa, 0x03, - 0xa3, 0x93, 0xbf, 0x2d, 0x0a, 0xb0, 0x7a, 0xeb, 0x56, 0xc3, 0x36, 0xba, 0x6d, 0xec, 0xbe, 0x5d, - 0x63, 0xdf, 0x81, 0x13, 0x81, 0x8f, 0x78, 0x6d, 0xfd, 0xf8, 0xe3, 0x9f, 0xf5, 0xbf, 0xe7, 0xb5, - 0xf5, 0xa1, 0x6c, 0x9b, 0x8e, 0xeb, 0xb1, 0x8d, 0x1d, 0x9f, 0xed, 0xaa, 0xe3, 0x0e, 0x4a, 0xf6, - 0x55, 0xc8, 0xf8, 0xc2, 0x70, 0x50, 0x0d, 0x52, 0x2e, 0xff, 0xcd, 0x05, 0x2c, 0x8f, 0x16, 0xb0, - 0x20, 0x0b, 0x0a, 0xd9, 0x23, 0x97, 0xff, 0x3c, 0x02, 0x10, 0x58, 0x23, 0x5f, 0x9b, 0x3a, 0x46, - 0xc2, 0x75, 0x6e, 0x89, 0x63, 0x0f, 0xfc, 0x54, 0x23, 0x63, 0x10, 0x10, 0xea, 0x77, 0x44, 0x61, - 0x76, 0x47, 0xac, 0xde, 0xaf, 0x7d, 0x19, 0xec, 0x40, 0x12, 0x9b, 0xae, 0x6d, 0x78, 0x27, 0x48, - 0x4f, 0x8d, 0x9a, 0xf3, 0x21, 0x83, 0xaa, 0x9a, 0xae, 0x7d, 0x18, 0xd4, 0x00, 0xc1, 0x2b, 0x20, - 0x8f, 0x8f, 0xc6, 0x60, 0x7e, 0x14, 0x29, 0x3a, 0x0f, 0x05, 0xdd, 0xc6, 0x14, 0x10, 0xfe, 0xb6, - 0x31, 0x2f, 0xc0, 0x7c, 0x8f, 0x51, 0x80, 0x78, 0x65, 0x44, 0xb9, 0x08, 0xea, 0x83, 0xb9, 0x61, - 0x79, 0x9f, 0x03, 0xdd, 0x65, 0x1a, 0x50, 0x10, 0x1f, 0x4b, 0xec, 0x6a, 0x6d, 0xcd, 0xd4, 0x85, - 0xbb, 0x7a, 0xac, 0x2d, 0x41, 0x7c, 0x70, 0x51, 0x66, 0x2c, 0x50, 0x15, 0x92, 0x82, 0x5b, 0xfc, - 0xf8, 0xdc, 0x04, 0x2d, 0x3a, 0x07, 0xd9, 0xe0, 0xc6, 0x40, 0x5d, 0x8f, 0xb8, 0x92, 0x09, 0xec, - 0x0b, 0xe3, 0x76, 0x9e, 0xc4, 0x91, 0x3b, 0x0f, 0xf7, 0xee, 0x7e, 0x38, 0x06, 0x33, 0x0a, 0x6e, - 0xfe, 0xd5, 0x9f, 0x96, 0x6d, 0x00, 0xb6, 0x54, 0x89, 0x25, 0xe5, 0x33, 0xf3, 0x00, 0xeb, 0x3d, - 0xcd, 0x98, 0xac, 0x3a, 0xee, 0x3b, 0x35, 0x43, 0xbf, 0x1d, 0x85, 0x6c, 0x70, 0x86, 0xfe, 0xaf, - 0xdc, 0xb4, 0xd0, 0xa6, 0x6f, 0xa6, 0xd8, 0x77, 0x1f, 0x8f, 0x8d, 0x32, 0x53, 0x03, 0xda, 0x3c, - 0xc6, 0x3e, 0x7d, 0x2c, 0x06, 0x09, 0x7e, 0xbb, 0x6d, 0x6b, 0xc0, 0x91, 0x8d, 0x8c, 0xfb, 0x72, - 0x3d, 0x27, 0xbe, 0x5c, 0x1f, 0xea, 0xc7, 0x3e, 0x02, 0x79, 0x12, 0x10, 0x87, 0xae, 0xcc, 0x45, - 0x2e, 0xe4, 0x68, 0x5c, 0xeb, 0x5f, 0x10, 0x47, 0x8b, 0x90, 0x21, 0x68, 0xbe, 0x1d, 0x26, 0x38, - 0xd0, 0xd1, 0x0e, 0xaa, 0x0c, 0x82, 0x9e, 0x04, 0xb4, 0xef, 0x25, 0x28, 0x54, 0x5f, 0x10, 0x04, - 0x6f, 0xc6, 0xaf, 0x11, 0xe8, 0x67, 0x01, 0x48, 0x2f, 0x54, 0xf6, 0x3a, 0x31, 0x7f, 0xfb, 0x99, - 0x40, 0x56, 0xe9, 0x0b, 0xc5, 0xdf, 0x1c, 0x61, 0xfe, 0x70, 0x5f, 0xd8, 0xcc, 0xc3, 0x91, 0xc6, - 0x04, 0x8b, 0xe2, 0x4f, 0xde, 0x5a, 0x2c, 0x1e, 0x6a, 0x9d, 0xf6, 0x8a, 0x3c, 0x84, 0x8f, 0x3c, - 0x2c, 0x92, 0x27, 0x8e, 0x73, 0x38, 0xec, 0x5e, 0x79, 0x17, 0x51, 0xef, 0x7b, 0xbf, 0xff, 0x53, - 0x17, 0xcf, 0x04, 0x1e, 0x2b, 0x3e, 0xf0, 0xd2, 0x57, 0x6c, 0x4e, 0x88, 0xa7, 0x8a, 0xfc, 0x5d, - 0xc3, 0xbb, 0x17, 0xbf, 0x01, 0x10, 0xf0, 0xe4, 0x23, 0x47, 0x47, 0x08, 0x3e, 0x7d, 0x28, 0x42, - 0x08, 0xac, 0xa9, 0xf7, 0xfa, 0x46, 0x5b, 0x3c, 0x56, 0x30, 0xe4, 0xb9, 0xea, 0xe5, 0x8a, 0x65, - 0x84, 0x58, 0x08, 0x22, 0xba, 0x54, 0xa7, 0xe4, 0x7f, 0x1d, 0x81, 0xd3, 0x03, 0xea, 0xe7, 0x75, - 0x59, 0x07, 0x64, 0x07, 0x2a, 0xe9, 0x34, 0x8a, 0xa3, 0xd8, 0x07, 0xd3, 0xe6, 0x19, 0x7b, 0xc0, - 0x72, 0xbf, 0x3d, 0xbb, 0x0f, 0x37, 0x3d, 0xbf, 0x1e, 0x81, 0xb9, 0x60, 0x07, 0xbc, 0xa1, 0xd4, - 0x21, 0x1b, 0x6c, 0x9a, 0x0f, 0xe2, 0x5d, 0x93, 0x0c, 0x22, 0xd8, 0xff, 0x10, 0x13, 0x74, 0xcb, - 0x5f, 0xe2, 0x2c, 0x6f, 0xf6, 0xf4, 0xc4, 0x42, 0x11, 0x1d, 0x1b, 0xba, 0xd4, 0xd9, 0xdc, 0xfc, - 0x41, 0x04, 0xe2, 0xdb, 0x96, 0xd5, 0x46, 0xef, 0x87, 0x19, 0xd3, 0x72, 0x55, 0xb2, 0x1c, 0x70, - 0x53, 0xe5, 0x81, 0x3d, 0x33, 0x9f, 0xd5, 0x23, 0x65, 0xf5, 0x85, 0xb7, 0x16, 0x07, 0x29, 0x87, - 0x3d, 0x18, 0x5e, 0x30, 0x2d, 0xb7, 0x4c, 0x91, 0x1a, 0x2c, 0xf6, 0xdf, 0x83, 0x5c, 0xb8, 0x39, - 0x66, 0x62, 0x4b, 0xe3, 0x9a, 0xcb, 0x8d, 0x6d, 0x2a, 0xbb, 0x1b, 0x68, 0x87, 0xbd, 0xff, 0xfb, - 0x47, 0x64, 0xe6, 0x5e, 0x03, 0xe9, 0x56, 0xff, 0x05, 0x9f, 0x2a, 0x24, 0xc5, 0x85, 0x9e, 0xc8, - 0x84, 0x77, 0x85, 0x82, 0xe2, 0xe4, 0xb4, 0x17, 0x7f, 0x2e, 0x02, 0xe0, 0x27, 0x49, 0xd0, 0x13, - 0x70, 0xaa, 0xbc, 0xb5, 0xb9, 0xaa, 0xd6, 0x1b, 0xa5, 0xc6, 0x4e, 0x3d, 0xfc, 0x67, 0x26, 0xc4, - 0xc3, 0x39, 0x4e, 0x17, 0xeb, 0xc6, 0x9e, 0x81, 0x9b, 0xe8, 0x51, 0x98, 0x0b, 0x63, 0x93, 0x52, - 0x75, 0x55, 0x8a, 0x14, 0xb3, 0xf7, 0xee, 0x2f, 0xa5, 0x98, 0x9f, 0x88, 0x9b, 0xe8, 0x02, 0x9c, - 0x18, 0xc4, 0xab, 0x6d, 0xae, 0x49, 0xd1, 0x62, 0xee, 0xde, 0xfd, 0xa5, 0xb4, 0xe7, 0x50, 0x22, - 0x19, 0x50, 0x10, 0x93, 0xf3, 0x8b, 0x15, 0xe1, 0xde, 0xfd, 0xa5, 0x04, 0x9b, 0x85, 0x62, 0xfc, - 0x43, 0x3f, 0xba, 0x30, 0x75, 0xf1, 0x1b, 0x00, 0x6a, 0xe6, 0x9e, 0xad, 0xd1, 0xbf, 0xb5, 0x8e, - 0x8a, 0x70, 0xb2, 0xb6, 0x79, 0x5d, 0x29, 0x55, 0x1a, 0xb5, 0xad, 0xcd, 0xbe, 0xbf, 0x8e, 0x11, - 0xae, 0x5b, 0xdd, 0xda, 0x29, 0xaf, 0x57, 0xd5, 0x7a, 0x6d, 0x6d, 0x93, 0x1d, 0xb6, 0x86, 0xea, - 0x5e, 0xd9, 0x6c, 0xd4, 0x36, 0xaa, 0x52, 0xb4, 0x7c, 0x7d, 0x64, 0x32, 0xff, 0x89, 0x23, 0x9f, - 0x67, 0xf7, 0x2d, 0x5e, 0x28, 0xa3, 0xff, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x5e, 0xf4, 0xea, - 0x05, 0x71, 0x9f, 0x00, 0x00, + // 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, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) diff --git a/x/tx/signing/aminojson/internal/testpb/test.proto b/x/tx/signing/aminojson/internal/testpb/test.proto index de2f25e76c25..8be5a3dc1362 100644 --- a/x/tx/signing/aminojson/internal/testpb/test.proto +++ b/x/tx/signing/aminojson/internal/testpb/test.proto @@ -63,7 +63,7 @@ message ABitOfEverything { } message Duration { - google.protobuf.Duration duration = 1; + google.protobuf.Duration duration = 1; google.protobuf.Timestamp timestamp = 2; } From 25ea01b8bff802eecf9e86168b4bb71589a97221 Mon Sep 17 00:00:00 2001 From: unknown unknown Date: Thu, 21 Sep 2023 13:38:26 +0200 Subject: [PATCH 4/5] pr review + docs --- x/accounts/internal/implementation/context.go | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/x/accounts/internal/implementation/context.go b/x/accounts/internal/implementation/context.go index 041f97e4a0c1..4f99fa7359a6 100644 --- a/x/accounts/internal/implementation/context.go +++ b/x/accounts/internal/implementation/context.go @@ -13,20 +13,21 @@ import ( "cosmossdk.io/x/accounts/internal/prefixstore" ) -var errUnauthorized = errors.New("unauthorized") - -var AccountStatePrefix = collections.NewPrefix(255) +var ( + errUnauthorized = errors.New("unauthorized") + AccountStatePrefix = collections.NewPrefix(255) +) type contextKey struct{} type contextValue struct { - store store.KVStore // store is the prefixed store for the account. - sender []byte // sender is the address of the entity invoking the account action. - whoami []byte // whoami is the address of the account being invoked. - originalContext context.Context // originalContext that was used to build the account context. - getExpectedSender func(msg proto.Message) ([]byte, error) - moduleExec func(ctx context.Context, msg proto.Message) (proto.Message, error) - moduleQuery func(ctx context.Context, msg proto.Message) (proto.Message, error) + store store.KVStore // store is the prefixed store for the account. + sender []byte // sender is the address of the entity invoking the account action. + whoami []byte // whoami is the address of the account being invoked. + originalContext context.Context // originalContext that was used to build the account context. + getExpectedSender func(msg proto.Message) ([]byte, error) // getExpectedSender is a function that returns the expected sender for a given message. + moduleExec func(ctx context.Context, msg proto.Message) (proto.Message, error) // moduleExec is a function that executes a module message. + moduleQuery func(ctx context.Context, msg proto.Message) (proto.Message, error) // moduleQuery is a function that queries a module message. } // MakeAccountContext creates a new account execution context given: From 1e88779b7fdee4090a28306a33aea4eb087fe88d Mon Sep 17 00:00:00 2001 From: unknown unknown Date: Thu, 21 Sep 2023 13:42:00 +0200 Subject: [PATCH 5/5] pr review + docs --- x/accounts/internal/implementation/context.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/x/accounts/internal/implementation/context.go b/x/accounts/internal/implementation/context.go index 4f99fa7359a6..e97c2180ca29 100644 --- a/x/accounts/internal/implementation/context.go +++ b/x/accounts/internal/implementation/context.go @@ -27,7 +27,7 @@ type contextValue struct { originalContext context.Context // originalContext that was used to build the account context. getExpectedSender func(msg proto.Message) ([]byte, error) // getExpectedSender is a function that returns the expected sender for a given message. moduleExec func(ctx context.Context, msg proto.Message) (proto.Message, error) // moduleExec is a function that executes a module message. - moduleQuery func(ctx context.Context, msg proto.Message) (proto.Message, error) // moduleQuery is a function that queries a module message. + moduleQuery func(ctx context.Context, msg proto.Message) (proto.Message, error) // moduleQuery is a function that queries a module. } // MakeAccountContext creates a new account execution context given: @@ -35,6 +35,8 @@ type contextValue struct { // accountAddr: the address of the account being invoked, which is used to give the // account a prefixed storage. // sender: the address of entity invoking the account action. +// moduleExec: a function that executes a module message. +// moduleQuery: a function that queries a module. func MakeAccountContext( ctx context.Context, storeSvc store.KVStoreService,