diff --git a/internal/auth/repository/eventsourcing/eventstore/user.go b/internal/auth/repository/eventsourcing/eventstore/user.go index 4420e96713..f8f1aa1139 100644 --- a/internal/auth/repository/eventsourcing/eventstore/user.go +++ b/internal/auth/repository/eventsourcing/eventstore/user.go @@ -64,6 +64,10 @@ func (repo *UserRepo) Register(ctx context.Context, registerUser *model.User, or return usr_model.UserToModel(user), nil } +func (repo *UserRepo) MyUser(ctx context.Context) (*model.UserView, error) { + return repo.UserByID(ctx, auth.GetCtxData(ctx).UserID) +} + func (repo *UserRepo) MyProfile(ctx context.Context) (*model.Profile, error) { user, err := repo.UserByID(ctx, auth.GetCtxData(ctx).UserID) if err != nil { diff --git a/internal/auth/repository/eventsourcing/handler/user_session.go b/internal/auth/repository/eventsourcing/handler/user_session.go index 7282febc70..b8b79bf957 100644 --- a/internal/auth/repository/eventsourcing/handler/user_session.go +++ b/internal/auth/repository/eventsourcing/handler/user_session.go @@ -1,7 +1,6 @@ package handler import ( - "context" "time" req_model "github.com/caos/zitadel/internal/auth_request/model" @@ -99,7 +98,7 @@ func (u *UserSession) updateSession(session *view_model.UserSessionView, event * } func (u *UserSession) fillUserInfo(session *view_model.UserSessionView, id string) error { - user, err := u.userEvents.UserByID(context.Background(), id) + user, err := u.view.UserByID(id) if err != nil { return err } diff --git a/internal/auth/repository/user.go b/internal/auth/repository/user.go index 3e89bd7bb1..31cd7f39f0 100644 --- a/internal/auth/repository/user.go +++ b/internal/auth/repository/user.go @@ -29,6 +29,8 @@ type UserRepository interface { } type myUserRepo interface { + MyUser(ctx context.Context) (*model.UserView, error) + MyProfile(ctx context.Context) (*model.Profile, error) ChangeMyProfile(ctx context.Context, profile *model.Profile) (*model.Profile, error) diff --git a/pkg/auth/api/grpc/auth.pb.authoptions.go b/pkg/auth/api/grpc/auth.pb.authoptions.go index 05fe89c658..accbe421c0 100644 --- a/pkg/auth/api/grpc/auth.pb.authoptions.go +++ b/pkg/auth/api/grpc/auth.pb.authoptions.go @@ -20,6 +20,11 @@ var AuthService_AuthMethods = utils_auth.MethodMapping{ CheckParam: "", }, + "/caos.zitadel.auth.api.v1.AuthService/GetMyUser": utils_auth.Option{ + Permission: "authenticated", + CheckParam: "", + }, + "/caos.zitadel.auth.api.v1.AuthService/GetMyUserProfile": utils_auth.Option{ Permission: "authenticated", CheckParam: "", diff --git a/pkg/auth/api/grpc/auth.pb.go b/pkg/auth/api/grpc/auth.pb.go index 0906133335..f6ed4efb21 100644 --- a/pkg/auth/api/grpc/auth.pb.go +++ b/pkg/auth/api/grpc/auth.pb.go @@ -90,17 +90,17 @@ func (OIDCResponseType) EnumDescriptor() ([]byte, []int) { type UserState int32 const ( - UserState_USERSTATE_UNSPECIEFIED UserState = 0 - UserState_USERSTATE_ACTIVE UserState = 1 - UserState_USERSTATE_INACTIVE UserState = 2 - UserState_USERSTATE_DELETED UserState = 3 - UserState_USERSTATE_LOCKED UserState = 4 - UserState_USERSTATE_SUSPEND UserState = 5 - UserState_USERSTATE_INITIAL UserState = 6 + UserState_USERSTATE_UNSPECIFIED UserState = 0 + UserState_USERSTATE_ACTIVE UserState = 1 + UserState_USERSTATE_INACTIVE UserState = 2 + UserState_USERSTATE_DELETED UserState = 3 + UserState_USERSTATE_LOCKED UserState = 4 + UserState_USERSTATE_SUSPEND UserState = 5 + UserState_USERSTATE_INITIAL UserState = 6 ) var UserState_name = map[int32]string{ - 0: "USERSTATE_UNSPECIEFIED", + 0: "USERSTATE_UNSPECIFIED", 1: "USERSTATE_ACTIVE", 2: "USERSTATE_INACTIVE", 3: "USERSTATE_DELETED", @@ -110,13 +110,13 @@ var UserState_name = map[int32]string{ } var UserState_value = map[string]int32{ - "USERSTATE_UNSPECIEFIED": 0, - "USERSTATE_ACTIVE": 1, - "USERSTATE_INACTIVE": 2, - "USERSTATE_DELETED": 3, - "USERSTATE_LOCKED": 4, - "USERSTATE_SUSPEND": 5, - "USERSTATE_INITIAL": 6, + "USERSTATE_UNSPECIFIED": 0, + "USERSTATE_ACTIVE": 1, + "USERSTATE_INACTIVE": 2, + "USERSTATE_DELETED": 3, + "USERSTATE_LOCKED": 4, + "USERSTATE_SUSPEND": 5, + "USERSTATE_INITIAL": 6, } func (x UserState) String() string { @@ -353,6 +353,8 @@ type UserSessionView struct { UserId string `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` UserName string `protobuf:"bytes,5,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` Sequence uint64 `protobuf:"varint,6,opt,name=sequence,proto3" json:"sequence,omitempty"` + LoginName string `protobuf:"bytes,7,opt,name=login_name,json=loginName,proto3" json:"login_name,omitempty"` + DisplayName string `protobuf:"bytes,8,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -425,247 +427,253 @@ func (m *UserSessionView) GetSequence() uint64 { return 0 } -type User struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - State UserState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.UserState" json:"state,omitempty"` - CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` - ActivationDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=activation_date,json=activationDate,proto3" json:"activation_date,omitempty"` - ChangeDate *timestamp.Timestamp `protobuf:"bytes,5,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` - LastLogin *timestamp.Timestamp `protobuf:"bytes,6,opt,name=last_login,json=lastLogin,proto3" json:"last_login,omitempty"` - PasswordChanged *timestamp.Timestamp `protobuf:"bytes,7,opt,name=password_changed,json=passwordChanged,proto3" json:"password_changed,omitempty"` - UserName string `protobuf:"bytes,8,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` - FirstName string `protobuf:"bytes,9,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` - LastName string `protobuf:"bytes,10,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` - NickName string `protobuf:"bytes,11,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` - DisplayName string `protobuf:"bytes,12,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` - PreferredLanguage string `protobuf:"bytes,13,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` - Gender Gender `protobuf:"varint,14,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` - Email string `protobuf:"bytes,15,opt,name=email,proto3" json:"email,omitempty"` - IsEmailVerified bool `protobuf:"varint,16,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` - Phone string `protobuf:"bytes,17,opt,name=phone,proto3" json:"phone,omitempty"` - IsPhoneVerified bool `protobuf:"varint,18,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` - Country string `protobuf:"bytes,19,opt,name=country,proto3" json:"country,omitempty"` - Locality string `protobuf:"bytes,20,opt,name=locality,proto3" json:"locality,omitempty"` - PostalCode string `protobuf:"bytes,21,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` - Region string `protobuf:"bytes,22,opt,name=region,proto3" json:"region,omitempty"` - StreetAddress string `protobuf:"bytes,23,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` - PasswordChangeRequired bool `protobuf:"varint,24,opt,name=password_change_required,json=passwordChangeRequired,proto3" json:"password_change_required,omitempty"` - Sequence uint64 `protobuf:"varint,25,opt,name=sequence,proto3" json:"sequence,omitempty"` - LoginNames []string `protobuf:"bytes,26,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` - PreferredLoginName string `protobuf:"bytes,27,opt,name=preferred_login_name,json=preferredLoginName,proto3" json:"preferred_login_name,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *User) Reset() { *m = User{} } -func (m *User) String() string { return proto.CompactTextString(m) } -func (*User) ProtoMessage() {} -func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_8bbd6f3875b0e874, []int{2} -} - -func (m *User) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_User.Unmarshal(m, b) -} -func (m *User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_User.Marshal(b, m, deterministic) -} -func (m *User) XXX_Merge(src proto.Message) { - xxx_messageInfo_User.Merge(m, src) -} -func (m *User) XXX_Size() int { - return xxx_messageInfo_User.Size(m) -} -func (m *User) XXX_DiscardUnknown() { - xxx_messageInfo_User.DiscardUnknown(m) -} - -var xxx_messageInfo_User proto.InternalMessageInfo - -func (m *User) GetId() string { +func (m *UserSessionView) GetLoginName() string { if m != nil { - return m.Id + return m.LoginName } return "" } -func (m *User) GetState() UserState { - if m != nil { - return m.State - } - return UserState_USERSTATE_UNSPECIEFIED -} - -func (m *User) GetCreationDate() *timestamp.Timestamp { - if m != nil { - return m.CreationDate - } - return nil -} - -func (m *User) GetActivationDate() *timestamp.Timestamp { - if m != nil { - return m.ActivationDate - } - return nil -} - -func (m *User) GetChangeDate() *timestamp.Timestamp { - if m != nil { - return m.ChangeDate - } - return nil -} - -func (m *User) GetLastLogin() *timestamp.Timestamp { - if m != nil { - return m.LastLogin - } - return nil -} - -func (m *User) GetPasswordChanged() *timestamp.Timestamp { - if m != nil { - return m.PasswordChanged - } - return nil -} - -func (m *User) GetUserName() string { - if m != nil { - return m.UserName - } - return "" -} - -func (m *User) GetFirstName() string { - if m != nil { - return m.FirstName - } - return "" -} - -func (m *User) GetLastName() string { - if m != nil { - return m.LastName - } - return "" -} - -func (m *User) GetNickName() string { - if m != nil { - return m.NickName - } - return "" -} - -func (m *User) GetDisplayName() string { +func (m *UserSessionView) GetDisplayName() string { if m != nil { return m.DisplayName } return "" } -func (m *User) GetPreferredLanguage() string { +type UserView struct { + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + State UserState `protobuf:"varint,2,opt,name=state,proto3,enum=caos.zitadel.auth.api.v1.UserState" json:"state,omitempty"` + CreationDate *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_date,json=creationDate,proto3" json:"creation_date,omitempty"` + ChangeDate *timestamp.Timestamp `protobuf:"bytes,4,opt,name=change_date,json=changeDate,proto3" json:"change_date,omitempty"` + LastLogin *timestamp.Timestamp `protobuf:"bytes,5,opt,name=last_login,json=lastLogin,proto3" json:"last_login,omitempty"` + PasswordChanged *timestamp.Timestamp `protobuf:"bytes,6,opt,name=password_changed,json=passwordChanged,proto3" json:"password_changed,omitempty"` + UserName string `protobuf:"bytes,7,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` + FirstName string `protobuf:"bytes,8,opt,name=first_name,json=firstName,proto3" json:"first_name,omitempty"` + LastName string `protobuf:"bytes,9,opt,name=last_name,json=lastName,proto3" json:"last_name,omitempty"` + DisplayName string `protobuf:"bytes,10,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + NickName string `protobuf:"bytes,11,opt,name=nick_name,json=nickName,proto3" json:"nick_name,omitempty"` + PreferredLanguage string `protobuf:"bytes,12,opt,name=preferred_language,json=preferredLanguage,proto3" json:"preferred_language,omitempty"` + Gender Gender `protobuf:"varint,13,opt,name=gender,proto3,enum=caos.zitadel.auth.api.v1.Gender" json:"gender,omitempty"` + Email string `protobuf:"bytes,14,opt,name=email,proto3" json:"email,omitempty"` + IsEmailVerified bool `protobuf:"varint,15,opt,name=is_email_verified,json=isEmailVerified,proto3" json:"is_email_verified,omitempty"` + Phone string `protobuf:"bytes,16,opt,name=phone,proto3" json:"phone,omitempty"` + IsPhoneVerified bool `protobuf:"varint,17,opt,name=is_phone_verified,json=isPhoneVerified,proto3" json:"is_phone_verified,omitempty"` + Country string `protobuf:"bytes,18,opt,name=country,proto3" json:"country,omitempty"` + Locality string `protobuf:"bytes,19,opt,name=locality,proto3" json:"locality,omitempty"` + PostalCode string `protobuf:"bytes,20,opt,name=postal_code,json=postalCode,proto3" json:"postal_code,omitempty"` + Region string `protobuf:"bytes,21,opt,name=region,proto3" json:"region,omitempty"` + StreetAddress string `protobuf:"bytes,22,opt,name=street_address,json=streetAddress,proto3" json:"street_address,omitempty"` + Sequence uint64 `protobuf:"varint,23,opt,name=sequence,proto3" json:"sequence,omitempty"` + ResourceOwner string `protobuf:"bytes,24,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` + LoginNames []string `protobuf:"bytes,25,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` + PreferredLoginName string `protobuf:"bytes,26,opt,name=preferred_login_name,json=preferredLoginName,proto3" json:"preferred_login_name,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserView) Reset() { *m = UserView{} } +func (m *UserView) String() string { return proto.CompactTextString(m) } +func (*UserView) ProtoMessage() {} +func (*UserView) Descriptor() ([]byte, []int) { + return fileDescriptor_8bbd6f3875b0e874, []int{2} +} + +func (m *UserView) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserView.Unmarshal(m, b) +} +func (m *UserView) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserView.Marshal(b, m, deterministic) +} +func (m *UserView) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserView.Merge(m, src) +} +func (m *UserView) XXX_Size() int { + return xxx_messageInfo_UserView.Size(m) +} +func (m *UserView) XXX_DiscardUnknown() { + xxx_messageInfo_UserView.DiscardUnknown(m) +} + +var xxx_messageInfo_UserView proto.InternalMessageInfo + +func (m *UserView) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +func (m *UserView) GetState() UserState { + if m != nil { + return m.State + } + return UserState_USERSTATE_UNSPECIFIED +} + +func (m *UserView) GetCreationDate() *timestamp.Timestamp { + if m != nil { + return m.CreationDate + } + return nil +} + +func (m *UserView) GetChangeDate() *timestamp.Timestamp { + if m != nil { + return m.ChangeDate + } + return nil +} + +func (m *UserView) GetLastLogin() *timestamp.Timestamp { + if m != nil { + return m.LastLogin + } + return nil +} + +func (m *UserView) GetPasswordChanged() *timestamp.Timestamp { + if m != nil { + return m.PasswordChanged + } + return nil +} + +func (m *UserView) GetUserName() string { + if m != nil { + return m.UserName + } + return "" +} + +func (m *UserView) GetFirstName() string { + if m != nil { + return m.FirstName + } + return "" +} + +func (m *UserView) GetLastName() string { + if m != nil { + return m.LastName + } + return "" +} + +func (m *UserView) GetDisplayName() string { + if m != nil { + return m.DisplayName + } + return "" +} + +func (m *UserView) GetNickName() string { + if m != nil { + return m.NickName + } + return "" +} + +func (m *UserView) GetPreferredLanguage() string { if m != nil { return m.PreferredLanguage } return "" } -func (m *User) GetGender() Gender { +func (m *UserView) GetGender() Gender { if m != nil { return m.Gender } return Gender_GENDER_UNSPECIFIED } -func (m *User) GetEmail() string { +func (m *UserView) GetEmail() string { if m != nil { return m.Email } return "" } -func (m *User) GetIsEmailVerified() bool { +func (m *UserView) GetIsEmailVerified() bool { if m != nil { return m.IsEmailVerified } return false } -func (m *User) GetPhone() string { +func (m *UserView) GetPhone() string { if m != nil { return m.Phone } return "" } -func (m *User) GetIsPhoneVerified() bool { +func (m *UserView) GetIsPhoneVerified() bool { if m != nil { return m.IsPhoneVerified } return false } -func (m *User) GetCountry() string { +func (m *UserView) GetCountry() string { if m != nil { return m.Country } return "" } -func (m *User) GetLocality() string { +func (m *UserView) GetLocality() string { if m != nil { return m.Locality } return "" } -func (m *User) GetPostalCode() string { +func (m *UserView) GetPostalCode() string { if m != nil { return m.PostalCode } return "" } -func (m *User) GetRegion() string { +func (m *UserView) GetRegion() string { if m != nil { return m.Region } return "" } -func (m *User) GetStreetAddress() string { +func (m *UserView) GetStreetAddress() string { if m != nil { return m.StreetAddress } return "" } -func (m *User) GetPasswordChangeRequired() bool { - if m != nil { - return m.PasswordChangeRequired - } - return false -} - -func (m *User) GetSequence() uint64 { +func (m *UserView) GetSequence() uint64 { if m != nil { return m.Sequence } return 0 } -func (m *User) GetLoginNames() []string { +func (m *UserView) GetResourceOwner() string { + if m != nil { + return m.ResourceOwner + } + return "" +} + +func (m *UserView) GetLoginNames() []string { if m != nil { return m.LoginNames } return nil } -func (m *User) GetPreferredLoginName() string { +func (m *UserView) GetPreferredLoginName() string { if m != nil { return m.PreferredLoginName } @@ -2692,7 +2700,7 @@ func init() { proto.RegisterEnum("caos.zitadel.auth.api.v1.SearchMethod", SearchMethod_name, SearchMethod_value) proto.RegisterType((*UserSessionViews)(nil), "caos.zitadel.auth.api.v1.UserSessionViews") proto.RegisterType((*UserSessionView)(nil), "caos.zitadel.auth.api.v1.UserSessionView") - proto.RegisterType((*User)(nil), "caos.zitadel.auth.api.v1.User") + proto.RegisterType((*UserView)(nil), "caos.zitadel.auth.api.v1.UserView") proto.RegisterType((*UserProfile)(nil), "caos.zitadel.auth.api.v1.UserProfile") proto.RegisterType((*UserProfileView)(nil), "caos.zitadel.auth.api.v1.UserProfileView") proto.RegisterType((*UpdateUserProfileRequest)(nil), "caos.zitadel.auth.api.v1.UpdateUserProfileRequest") @@ -2730,201 +2738,202 @@ func init() { func init() { proto.RegisterFile("auth.proto", fileDescriptor_8bbd6f3875b0e874) } var fileDescriptor_8bbd6f3875b0e874 = []byte{ - // 3106 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xdd, 0x6f, 0x23, 0x57, - 0x15, 0xdf, 0xb1, 0x9d, 0xc4, 0x3e, 0xce, 0xc7, 0xe4, 0x6e, 0x36, 0x99, 0x38, 0xfb, 0x91, 0x9d, - 0xed, 0xb6, 0x59, 0xb3, 0x1b, 0x77, 0xd3, 0x56, 0xec, 0x6e, 0x25, 0x2a, 0x6f, 0x3c, 0x9b, 0x98, - 0xc4, 0x1f, 0x1d, 0x3b, 0x5b, 0xb6, 0x12, 0xb2, 0x66, 0x3d, 0x37, 0xce, 0xb4, 0xb6, 0xc7, 0x3b, - 0x33, 0xce, 0xca, 0x95, 0xa8, 0x44, 0x41, 0x02, 0x89, 0x4f, 0x15, 0x84, 0xc4, 0x23, 0x12, 0x0f, - 0x48, 0x48, 0x88, 0x17, 0x40, 0x08, 0xfe, 0x00, 0x5e, 0x78, 0x40, 0x48, 0x48, 0x88, 0x17, 0x84, - 0xf8, 0x17, 0x10, 0xa2, 0xbc, 0xa0, 0xfb, 0x31, 0xf6, 0x8c, 0xc7, 0x63, 0x3b, 0xbb, 0x2a, 0xaa, - 0xaa, 0x3e, 0x79, 0xee, 0x39, 0xe7, 0x9e, 0xfb, 0xbb, 0xe7, 0xfc, 0xee, 0xc7, 0x1c, 0x0f, 0x80, - 0xd6, 0x75, 0x4e, 0xb6, 0x3b, 0x96, 0xe9, 0x98, 0x48, 0xaa, 0x6b, 0xa6, 0xbd, 0xfd, 0x9e, 0xe1, - 0x68, 0x3a, 0x6e, 0x6e, 0x53, 0x85, 0xd6, 0x31, 0xb6, 0x4f, 0x6f, 0xa7, 0x2e, 0x36, 0x4c, 0xb3, - 0xd1, 0xc4, 0x19, 0xad, 0x63, 0x64, 0xb4, 0x76, 0xdb, 0x74, 0x34, 0xc7, 0x30, 0xdb, 0x36, 0xeb, - 0x97, 0xda, 0xe0, 0x5a, 0xda, 0x7a, 0xdc, 0x3d, 0xce, 0xe0, 0x56, 0xc7, 0xe9, 0x71, 0xe5, 0xc5, - 0x61, 0xa5, 0xed, 0x58, 0xdd, 0xba, 0xc3, 0xb5, 0x57, 0x86, 0xb5, 0x8e, 0xd1, 0xc2, 0xb6, 0xa3, - 0xb5, 0x3a, 0xdc, 0x60, 0xed, 0x54, 0x6b, 0x1a, 0xba, 0xe6, 0xe0, 0x8c, 0xfb, 0xc0, 0x15, 0x37, - 0xe9, 0x4f, 0xfd, 0x56, 0x03, 0xb7, 0x6f, 0xd9, 0x4f, 0xb5, 0x46, 0x03, 0x5b, 0x19, 0xb3, 0x43, - 0x61, 0x8d, 0x80, 0x28, 0x91, 0xd9, 0x30, 0xb5, 0x6b, 0xc5, 0x34, 0xf2, 0x63, 0x10, 0x8f, 0x6c, - 0x6c, 0x55, 0xb0, 0x6d, 0x1b, 0x66, 0xfb, 0xa1, 0x81, 0x9f, 0xda, 0xa8, 0x08, 0x0b, 0x5d, 0x1b, - 0x5b, 0x35, 0x9b, 0x09, 0x6d, 0x49, 0xd8, 0x8c, 0x6e, 0x25, 0x77, 0x6e, 0x6c, 0x87, 0x05, 0x68, - 0x7b, 0xc8, 0x85, 0x3a, 0xdf, 0x1d, 0x08, 0x6c, 0xf9, 0xaf, 0x02, 0x2c, 0x0d, 0x59, 0xa0, 0x45, - 0x88, 0x18, 0xba, 0x24, 0x6c, 0x0a, 0x5b, 0x09, 0x35, 0x62, 0xe8, 0x68, 0x1d, 0xe2, 0x5a, 0x03, - 0xb7, 0x9d, 0x9a, 0xa1, 0x4b, 0x11, 0x2a, 0x9d, 0xa3, 0xed, 0xbc, 0x8e, 0xf2, 0x2c, 0x4b, 0x35, - 0xdb, 0xd1, 0x1c, 0x2c, 0x45, 0x37, 0x85, 0xad, 0xc5, 0x9d, 0xf4, 0x54, 0x58, 0x2a, 0xa4, 0x87, - 0x9a, 0x20, 0x5a, 0xfa, 0x88, 0xd6, 0x60, 0x8e, 0xce, 0xcc, 0xd0, 0xa5, 0x18, 0x1d, 0x64, 0x96, - 0x34, 0xf3, 0x3a, 0xda, 0x80, 0x04, 0x55, 0xb4, 0xb5, 0x16, 0x96, 0x66, 0xa8, 0x2a, 0x4e, 0x04, - 0x45, 0xad, 0x85, 0x51, 0x0a, 0xe2, 0x36, 0x7e, 0xd2, 0xc5, 0xed, 0x3a, 0x96, 0x66, 0x37, 0x85, - 0xad, 0x98, 0xda, 0x6f, 0xcb, 0x7f, 0x8b, 0x43, 0x8c, 0x8c, 0x18, 0x98, 0xd0, 0x5d, 0x98, 0x61, - 0x80, 0x23, 0x14, 0xf0, 0xb5, 0x09, 0x80, 0x29, 0x52, 0xd6, 0x03, 0xbd, 0x01, 0x0b, 0x75, 0x0b, - 0xd3, 0x04, 0xd6, 0x74, 0x77, 0xce, 0xc9, 0x9d, 0xd4, 0x36, 0x63, 0xcb, 0xb6, 0xcb, 0x96, 0xed, - 0xaa, 0xcb, 0x16, 0x75, 0xde, 0xed, 0x90, 0x23, 0x0e, 0x76, 0x61, 0x49, 0xab, 0x3b, 0xc6, 0xa9, - 0xc7, 0x45, 0x6c, 0xa2, 0x8b, 0xc5, 0x41, 0x17, 0xea, 0xe4, 0x75, 0x48, 0xd6, 0x4f, 0xb4, 0x76, - 0x03, 0x33, 0x07, 0x33, 0x13, 0x1d, 0x00, 0x33, 0xa7, 0x9d, 0xef, 0x02, 0x34, 0x35, 0xdb, 0xa9, - 0x35, 0xcd, 0x86, 0xd1, 0xa6, 0x41, 0x1b, 0xdf, 0x37, 0x41, 0xac, 0x0f, 0x89, 0x31, 0x52, 0x40, - 0xec, 0x68, 0xb6, 0xfd, 0xd4, 0xb4, 0xf4, 0x1a, 0xf3, 0xa8, 0x4b, 0x73, 0x13, 0x1d, 0x2c, 0xb9, - 0x7d, 0x76, 0x59, 0x17, 0x7f, 0x46, 0xe3, 0x43, 0x19, 0xbd, 0x04, 0x70, 0x6c, 0x58, 0xb6, 0xc3, - 0xb4, 0x09, 0xaa, 0x4d, 0x50, 0x09, 0x55, 0x6f, 0x00, 0xc5, 0xc3, 0xb4, 0xc0, 0xfa, 0x12, 0x81, - 0xab, 0x6c, 0x1b, 0xf5, 0x77, 0x99, 0x32, 0xc9, 0x94, 0x44, 0x40, 0x95, 0x57, 0x61, 0x5e, 0x37, - 0xec, 0x4e, 0x53, 0xeb, 0x31, 0xfd, 0x3c, 0xd5, 0x27, 0xb9, 0x8c, 0x9a, 0xdc, 0x02, 0xd4, 0xb1, - 0xf0, 0x31, 0xb6, 0x2c, 0xac, 0xd7, 0x9a, 0x5a, 0xbb, 0xd1, 0xd5, 0x1a, 0x58, 0x5a, 0xa0, 0x86, - 0xcb, 0x7d, 0xcd, 0x21, 0x57, 0xa0, 0x3b, 0x30, 0xdb, 0xc0, 0x6d, 0x1d, 0x5b, 0xd2, 0x22, 0x25, - 0xd2, 0x66, 0x38, 0x91, 0xf6, 0xa8, 0x9d, 0xca, 0xed, 0xd1, 0x0a, 0xcc, 0xe0, 0x96, 0x66, 0x34, - 0xa5, 0x25, 0xea, 0x9b, 0x35, 0x50, 0x1a, 0x96, 0x0d, 0xbb, 0x46, 0x9f, 0x6b, 0xa7, 0xd8, 0x32, - 0x8e, 0x0d, 0xac, 0x4b, 0xe2, 0xa6, 0xb0, 0x15, 0x57, 0x97, 0x0c, 0x5b, 0x21, 0xf2, 0x87, 0x5c, - 0x4c, 0x3c, 0x74, 0x4e, 0xcc, 0x36, 0x96, 0x96, 0x99, 0x07, 0xda, 0xe0, 0x1e, 0xe8, 0xf3, 0xc0, - 0x03, 0x72, 0x3d, 0x94, 0x89, 0xbc, 0xef, 0x41, 0x82, 0xb9, 0xba, 0xd9, 0x6d, 0x3b, 0x56, 0x4f, - 0x3a, 0xcf, 0x56, 0x35, 0x6f, 0x92, 0x45, 0xd5, 0x34, 0xeb, 0x5a, 0xd3, 0x70, 0x7a, 0xd2, 0x0a, - 0x0f, 0x31, 0x6f, 0xa3, 0x2b, 0x90, 0xec, 0x98, 0xb6, 0xa3, 0x35, 0x6b, 0x75, 0x53, 0xc7, 0xd2, - 0x05, 0xaa, 0x06, 0x26, 0xda, 0x35, 0x75, 0x8c, 0x56, 0x61, 0xd6, 0xc2, 0x0d, 0xc3, 0x6c, 0x4b, - 0xab, 0x6c, 0x19, 0xb3, 0x16, 0xba, 0x0e, 0x8b, 0xb6, 0x63, 0x61, 0xec, 0xd4, 0x34, 0x5d, 0xb7, - 0xb0, 0x6d, 0x4b, 0x6b, 0x54, 0xbf, 0xc0, 0xa4, 0x59, 0x26, 0x44, 0x77, 0x40, 0x1a, 0xa2, 0x58, - 0xcd, 0xc2, 0x4f, 0xba, 0x86, 0x85, 0x75, 0x49, 0xa2, 0x13, 0x59, 0xf5, 0xd3, 0x49, 0xe5, 0x5a, - 0xdf, 0x56, 0xb0, 0xee, 0xdf, 0x0a, 0x08, 0x6a, 0x4a, 0x77, 0x9a, 0x79, 0x5b, 0x4a, 0x6d, 0x46, - 0x09, 0x6a, 0x2a, 0x22, 0x89, 0xb7, 0xd1, 0xcb, 0xb0, 0xe2, 0xc9, 0x7c, 0xdf, 0x54, 0xda, 0xa0, - 0x18, 0x07, 0xac, 0x38, 0x74, 0xbb, 0xc8, 0xbf, 0x8d, 0x42, 0x92, 0x6c, 0x0f, 0x65, 0xcb, 0x3c, - 0x36, 0x9a, 0x38, 0xb0, 0xc9, 0xf8, 0x48, 0x1e, 0x19, 0x4b, 0xf2, 0xe8, 0x58, 0x92, 0xc7, 0xc6, - 0x91, 0x7c, 0x66, 0x02, 0xc9, 0x67, 0xa7, 0x25, 0xf9, 0xdc, 0x64, 0x92, 0xc7, 0xcf, 0x48, 0x72, - 0x6f, 0x42, 0x12, 0x43, 0x09, 0x09, 0xec, 0xa3, 0x70, 0xc6, 0x7d, 0x74, 0x68, 0x0b, 0x4c, 0x9e, - 0x65, 0x0b, 0x94, 0xbf, 0x1f, 0x63, 0xa7, 0x1e, 0xcf, 0xdd, 0xc8, 0x53, 0xef, 0xb3, 0xfc, 0x7d, - 0x62, 0xf3, 0x37, 0xbc, 0x9c, 0xe7, 0xa7, 0x5e, 0xce, 0x0b, 0xa1, 0xcb, 0xf9, 0xdb, 0x11, 0x90, - 0x8e, 0x3a, 0x04, 0x8b, 0x87, 0x18, 0x64, 0x6f, 0xc1, 0xb6, 0x83, 0x6e, 0xf8, 0xd2, 0x4d, 0x39, - 0x72, 0x1f, 0x3e, 0xba, 0x3f, 0x67, 0xcd, 0x88, 0x82, 0xf4, 0x07, 0xc1, 0x9b, 0xfa, 0x97, 0xbc, - 0xa9, 0x8f, 0x04, 0x2c, 0x07, 0x34, 0x78, 0xc9, 0x4b, 0x83, 0x68, 0xd0, 0xb0, 0x4f, 0x89, 0xbb, - 0x23, 0xf3, 0x1d, 0x0b, 0xf4, 0x18, 0x9b, 0xfb, 0x99, 0xb3, 0xe5, 0x5e, 0xfe, 0x97, 0x00, 0x09, - 0x12, 0x08, 0x7a, 0xe8, 0x04, 0xd6, 0x46, 0xff, 0xf8, 0x8a, 0x78, 0x8f, 0xaf, 0x2d, 0x18, 0x3e, - 0xa5, 0xe8, 0xbc, 0x46, 0x1c, 0x5e, 0x5e, 0x66, 0xc5, 0x26, 0x31, 0x6b, 0xe6, 0xf9, 0x98, 0x35, - 0x7b, 0xa6, 0x9d, 0xe1, 0x3f, 0x02, 0x2c, 0xf4, 0xe7, 0x3d, 0x72, 0x5f, 0xf8, 0xf4, 0xce, 0xfd, - 0x1e, 0x48, 0x14, 0x65, 0xaf, 0xd0, 0xeb, 0x87, 0xc0, 0x5d, 0x01, 0x97, 0x21, 0x46, 0xcf, 0xfb, - 0x20, 0xf7, 0xa9, 0x5c, 0xde, 0x87, 0x55, 0xd6, 0x37, 0xd0, 0x73, 0x38, 0x7e, 0xae, 0xa7, 0x48, - 0x88, 0xa7, 0x7b, 0xb0, 0x3a, 0x58, 0x87, 0x3e, 0x4f, 0x9b, 0x6e, 0xe4, 0x83, 0x20, 0x98, 0x42, - 0xfe, 0x37, 0x67, 0x2d, 0xbd, 0xe8, 0x8c, 0xca, 0x1c, 0xbb, 0x32, 0x45, 0x26, 0x5e, 0x99, 0xa2, - 0xa3, 0xaf, 0x4c, 0x9f, 0xdc, 0xdc, 0xfd, 0x97, 0xf3, 0x96, 0xe1, 0x0d, 0xe1, 0xed, 0xa7, 0x76, - 0xf6, 0x77, 0xbd, 0x9c, 0xa1, 0xa0, 0x5d, 0xce, 0x5c, 0x71, 0x67, 0xcd, 0x38, 0x93, 0xf8, 0xe8, - 0xfe, 0xac, 0x15, 0x13, 0x05, 0x69, 0x85, 0x07, 0x40, 0xbe, 0xe3, 0x25, 0xae, 0xaf, 0xeb, 0x24, - 0xca, 0xff, 0x31, 0xc2, 0x2e, 0x80, 0xee, 0xcd, 0x75, 0x38, 0xe0, 0x9e, 0xfb, 0x75, 0x24, 0xfc, - 0x7e, 0x1d, 0x1d, 0x7f, 0xbf, 0x8e, 0x8d, 0xb9, 0x5f, 0xcf, 0x4c, 0xb8, 0x5f, 0xcf, 0x8e, 0xba, - 0x5f, 0x7b, 0x93, 0x38, 0x37, 0x29, 0x89, 0xf1, 0xe7, 0x4b, 0x62, 0xe2, 0x4c, 0x49, 0xfc, 0x53, - 0x84, 0x5d, 0xca, 0x38, 0xd2, 0x91, 0x24, 0xfe, 0x2c, 0xa6, 0x67, 0x8b, 0xe9, 0x3f, 0x04, 0xef, - 0xad, 0x86, 0xe3, 0x75, 0x09, 0x2e, 0x0f, 0x82, 0xc9, 0x38, 0x1e, 0xff, 0xe8, 0xfe, 0x8c, 0x15, - 0x25, 0x0c, 0xef, 0x87, 0xf5, 0x05, 0x4f, 0x58, 0x23, 0x43, 0x46, 0x83, 0x00, 0xdf, 0xf0, 0x07, - 0x38, 0x3a, 0x64, 0xe8, 0x0d, 0xf5, 0x66, 0x3f, 0xd4, 0xb1, 0x21, 0x2b, 0x37, 0xe8, 0x99, 0x40, - 0xd0, 0x67, 0x86, 0x2c, 0xfd, 0xe1, 0x97, 0x2f, 0x02, 0x94, 0xf9, 0x2b, 0x61, 0x3e, 0x37, 0x4c, - 0x19, 0xf9, 0x0e, 0x2c, 0xb9, 0x5a, 0x77, 0xe2, 0xd7, 0x21, 0xee, 0xbe, 0x43, 0x0e, 0xef, 0x0b, - 0xfb, 0x6a, 0x5f, 0x25, 0x37, 0x61, 0xb1, 0xec, 0x7b, 0xd5, 0x44, 0x37, 0x61, 0xde, 0x6c, 0xea, - 0xb5, 0xf0, 0xce, 0x49, 0xb3, 0xa9, 0xbb, 0x7d, 0x88, 0x75, 0x1b, 0x3f, 0x1d, 0x58, 0x47, 0x02, - 0xd6, 0x6d, 0xfc, 0xd4, 0xb5, 0x96, 0x65, 0x98, 0xe7, 0xa7, 0xef, 0xb1, 0x56, 0x72, 0x3a, 0x08, - 0x79, 0xb7, 0x1f, 0xbe, 0xe5, 0xe4, 0x61, 0xbe, 0xd0, 0x6d, 0x3a, 0xc6, 0x03, 0xad, 0xee, 0x98, - 0x96, 0x8d, 0xee, 0x42, 0xac, 0x75, 0xac, 0xb9, 0x45, 0xc0, 0xeb, 0xe1, 0xb7, 0x3b, 0x4f, 0x2f, - 0x95, 0x76, 0x91, 0xdf, 0x87, 0xa4, 0x47, 0x88, 0x5e, 0x83, 0x98, 0xd3, 0xeb, 0xb0, 0xd1, 0x16, - 0x77, 0xae, 0x8e, 0xf1, 0x74, 0xac, 0x55, 0x7b, 0x1d, 0xac, 0x52, 0x73, 0x74, 0xc7, 0x5f, 0x49, - 0x93, 0xc7, 0xf4, 0x7b, 0x90, 0xf5, 0x16, 0xd2, 0xe4, 0xef, 0x08, 0xb0, 0xc8, 0x66, 0xaa, 0x62, - 0xbb, 0x63, 0xb6, 0x6d, 0x5f, 0x05, 0x50, 0xf0, 0x55, 0x00, 0x45, 0x88, 0x76, 0x2d, 0xf7, 0xc2, - 0x45, 0x1e, 0xc9, 0x82, 0xb5, 0x71, 0xdd, 0xc2, 0x0e, 0x5f, 0xeb, 0xbc, 0x35, 0xc0, 0x13, 0x3b, - 0x2b, 0x1e, 0x15, 0x16, 0x4b, 0xf9, 0xdc, 0xee, 0x6e, 0xd3, 0xc0, 0x6d, 0x27, 0xdb, 0x75, 0x4e, - 0xc8, 0x7b, 0x5a, 0x9d, 0xb6, 0x06, 0x80, 0xe2, 0x4c, 0x90, 0xd7, 0xd1, 0x35, 0x58, 0xe0, 0x4a, - 0x8e, 0x83, 0x81, 0x9b, 0x67, 0xc2, 0x0a, 0x95, 0xc9, 0x5f, 0x8d, 0xc0, 0x2a, 0x59, 0x77, 0x7b, - 0x96, 0x46, 0x64, 0x9a, 0x55, 0x3f, 0x71, 0x29, 0xb8, 0x0a, 0xb3, 0xe6, 0xf1, 0xb1, 0x8d, 0x1d, - 0xea, 0x39, 0xa6, 0xf2, 0x16, 0x39, 0xa5, 0x9b, 0x46, 0xcb, 0x60, 0xfe, 0x62, 0x2a, 0x6b, 0xa0, - 0x2f, 0xc3, 0xa2, 0x6d, 0x5a, 0x8e, 0xd1, 0x6e, 0xd4, 0xea, 0x66, 0xb3, 0xdb, 0x6a, 0xf3, 0x52, - 0xeb, 0xcd, 0xf1, 0x95, 0x4b, 0xcf, 0xb8, 0x07, 0xb8, 0x47, 0x17, 0xd0, 0x07, 0x42, 0x64, 0xf3, - 0x9c, 0xba, 0xc0, 0xbd, 0xed, 0x52, 0x67, 0x24, 0xbe, 0x9a, 0x5d, 0xa7, 0x31, 0x8b, 0xab, 0xe4, - 0x11, 0xed, 0xc3, 0xdc, 0x93, 0x2e, 0xb6, 0x0c, 0x4c, 0x16, 0x1f, 0xe1, 0xd6, 0xf6, 0xd4, 0x23, - 0xbd, 0xd9, 0xc5, 0x56, 0x4f, 0x75, 0xbb, 0xcb, 0xbf, 0x16, 0x60, 0x65, 0x94, 0x05, 0xda, 0x87, - 0xe8, 0xbb, 0xb8, 0xc7, 0x09, 0xf7, 0xac, 0x13, 0x21, 0x2e, 0xd0, 0x17, 0x60, 0xb6, 0x85, 0x9d, - 0x13, 0x53, 0xe7, 0x2c, 0x7c, 0x31, 0xdc, 0x19, 0xf3, 0x51, 0xa0, 0xd6, 0x2a, 0xef, 0x45, 0x62, - 0x7e, 0xaa, 0x35, 0xbb, 0xee, 0x7b, 0x3c, 0x6b, 0xc8, 0x3f, 0x17, 0x60, 0x2d, 0x90, 0x3c, 0xce, - 0xd4, 0xb3, 0x65, 0xef, 0x2a, 0xcc, 0x3b, 0x26, 0xd9, 0x1c, 0x2d, 0x6c, 0x77, 0x9b, 0x8c, 0xb2, - 0x31, 0x35, 0x49, 0x65, 0x2a, 0x15, 0xa1, 0x37, 0xc8, 0xae, 0x48, 0x95, 0x31, 0x1a, 0xee, 0x97, - 0xa6, 0x88, 0x07, 0xad, 0xe6, 0xf3, 0x6e, 0xf2, 0xb7, 0xf8, 0xfd, 0xaf, 0xaf, 0x21, 0x58, 0x4a, - 0x56, 0x23, 0xef, 0x52, 0x97, 0x35, 0xd0, 0x45, 0x48, 0x94, 0x2d, 0xf3, 0x1d, 0x5c, 0x77, 0xf2, - 0x6e, 0x31, 0x7f, 0x20, 0x20, 0xf3, 0x3a, 0xa2, 0x4b, 0xce, 0x5d, 0x56, 0xac, 0x45, 0x7c, 0xa9, - 0x66, 0x13, 0xdb, 0x14, 0x5d, 0x42, 0x65, 0x0d, 0x72, 0x18, 0x97, 0xac, 0x46, 0x71, 0x50, 0xc6, - 0x70, 0x9b, 0xf2, 0xcf, 0x04, 0x58, 0x2f, 0xf4, 0xb8, 0xdf, 0x92, 0xd5, 0x78, 0x1e, 0xee, 0x07, - 0xc9, 0x79, 0x30, 0x4c, 0xce, 0xdb, 0x63, 0x96, 0x79, 0x00, 0xc5, 0x10, 0x3f, 0x7f, 0x2f, 0xc0, - 0x5a, 0x88, 0x11, 0x3a, 0xf0, 0x52, 0x34, 0x73, 0x96, 0x41, 0xfe, 0x6f, 0x2c, 0xfd, 0xa9, 0x00, - 0xa9, 0x51, 0x91, 0xfe, 0xb8, 0x88, 0xfa, 0xda, 0x10, 0x51, 0x2f, 0x85, 0xcf, 0xa2, 0x64, 0x35, - 0xfa, 0xf4, 0xbc, 0x01, 0xd1, 0x92, 0xd5, 0x08, 0x5c, 0xe7, 0x10, 0xc4, 0x3c, 0xe5, 0x35, 0xfa, - 0x2c, 0xdf, 0x86, 0x85, 0x42, 0xaf, 0x8c, 0xad, 0x96, 0xc1, 0xfe, 0xa2, 0x42, 0x9b, 0x90, 0xec, - 0x0c, 0x9a, 0xf4, 0xac, 0x4b, 0xa8, 0x5e, 0x51, 0xda, 0xf2, 0xfd, 0x51, 0xc6, 0xfe, 0x4e, 0xda, - 0x84, 0x8b, 0x47, 0x15, 0x45, 0xad, 0x28, 0x95, 0x4a, 0xbe, 0x54, 0xac, 0x54, 0xb3, 0x55, 0xa5, - 0x76, 0x54, 0xac, 0x94, 0x95, 0xdd, 0xfc, 0x83, 0xbc, 0x92, 0x13, 0xcf, 0xa1, 0x0d, 0x58, 0x0b, - 0x58, 0x64, 0x77, 0xab, 0xf9, 0x87, 0x8a, 0x28, 0xa0, 0x2b, 0xb0, 0x11, 0x50, 0x56, 0x15, 0xb5, - 0x90, 0x2f, 0x66, 0xab, 0x4a, 0x4e, 0x8c, 0xa4, 0x9f, 0x80, 0x48, 0xce, 0x0b, 0x37, 0xd2, 0xe4, - 0x4c, 0x44, 0xeb, 0x70, 0x81, 0xca, 0x94, 0x4a, 0xb9, 0x54, 0xac, 0x28, 0xd5, 0x47, 0x65, 0xa5, - 0xb6, 0x5b, 0xca, 0x29, 0xe2, 0x39, 0x74, 0x09, 0xd6, 0x03, 0xaa, 0x7c, 0xae, 0x56, 0x2d, 0x1d, - 0x28, 0x45, 0x51, 0x40, 0xd7, 0xe0, 0x4a, 0xa8, 0x9a, 0x1b, 0x45, 0xd2, 0xbf, 0xe4, 0x6f, 0xb7, - 0x6c, 0x82, 0x29, 0x58, 0xa5, 0x08, 0xbd, 0x33, 0x53, 0xf8, 0xd4, 0x56, 0x40, 0x1c, 0xe8, 0xfa, - 0x73, 0x5a, 0x05, 0x34, 0x90, 0xe6, 0x8b, 0x5c, 0x1e, 0x41, 0x17, 0x60, 0x79, 0x20, 0xcf, 0x29, - 0x87, 0x0a, 0x99, 0x61, 0xd4, 0xef, 0xe4, 0xb0, 0xb4, 0x7b, 0xa0, 0xe4, 0xc4, 0x98, 0xdf, 0xb8, - 0x72, 0x54, 0x29, 0x2b, 0xc5, 0x9c, 0x38, 0xe3, 0x17, 0xe7, 0x8b, 0xf9, 0x6a, 0x3e, 0x7b, 0x28, - 0xce, 0xa6, 0xbf, 0x04, 0xb3, 0xac, 0xb0, 0x44, 0x06, 0xdf, 0x53, 0x8a, 0x39, 0x45, 0x1d, 0xca, - 0xc2, 0x32, 0x2c, 0x70, 0xf9, 0x03, 0xa5, 0x90, 0x3d, 0x24, 0x38, 0x97, 0x20, 0xc9, 0x45, 0x54, - 0x10, 0x41, 0x08, 0x16, 0xb9, 0x20, 0x97, 0x7f, 0x48, 0x92, 0x22, 0x46, 0xd3, 0x39, 0x98, 0xe3, - 0x57, 0x11, 0xb4, 0x06, 0xe7, 0x0b, 0x0f, 0xb2, 0x34, 0x66, 0x7e, 0xdf, 0x4b, 0x90, 0x74, 0x15, - 0x95, 0x42, 0x85, 0x79, 0x76, 0x05, 0xa5, 0x6a, 0x59, 0x8c, 0xa4, 0x8f, 0x21, 0xee, 0x5e, 0x04, - 0x90, 0x04, 0x2b, 0xe4, 0x79, 0x04, 0x53, 0x56, 0x01, 0xf5, 0x35, 0xc5, 0x52, 0xb5, 0xa6, 0x2a, - 0xd9, 0xdc, 0x23, 0x51, 0x20, 0xb8, 0xfa, 0x72, 0x26, 0x8b, 0x90, 0xa8, 0x79, 0x64, 0x85, 0xd2, - 0x43, 0x12, 0xcb, 0xf4, 0x29, 0xa0, 0xe0, 0x39, 0x86, 0x2e, 0x43, 0x2a, 0x28, 0xad, 0x1d, 0x15, - 0x0f, 0x8a, 0xa5, 0xb7, 0x8a, 0x8c, 0x34, 0x23, 0xf4, 0x25, 0x75, 0xaf, 0x96, 0xcf, 0x89, 0x02, - 0xba, 0x0a, 0x97, 0x46, 0xa8, 0xcb, 0x6a, 0xe9, 0x8b, 0xca, 0x6e, 0x95, 0x98, 0x44, 0xd2, 0x8f, - 0xe1, 0xc2, 0xc8, 0xcd, 0x09, 0x5d, 0x87, 0xab, 0x85, 0x47, 0xdc, 0xb4, 0xa4, 0xee, 0x55, 0x94, - 0xac, 0xba, 0xbb, 0x7f, 0xa0, 0x3c, 0x1a, 0x9a, 0xb9, 0x0c, 0x97, 0x47, 0x9b, 0x11, 0x10, 0xc5, - 0x6c, 0x41, 0x11, 0x85, 0xf4, 0x5f, 0x04, 0x98, 0xf7, 0xee, 0x58, 0x24, 0x1f, 0xcc, 0xb0, 0xa0, - 0x54, 0xf7, 0x4b, 0xb9, 0x9a, 0xf2, 0xe6, 0x51, 0xf6, 0xb0, 0x22, 0x9e, 0x43, 0x17, 0x41, 0xf2, - 0x29, 0x2a, 0xd5, 0xac, 0x5a, 0xad, 0xd4, 0xde, 0xca, 0x57, 0xf7, 0x45, 0x81, 0xac, 0x1e, 0x9f, - 0x76, 0xb7, 0x54, 0xac, 0x66, 0xf3, 0xc5, 0x8a, 0x18, 0x21, 0xcb, 0x63, 0x84, 0xc7, 0x5a, 0x7e, - 0xaf, 0x58, 0x52, 0x95, 0xda, 0x6e, 0x96, 0x30, 0x02, 0x6d, 0xc1, 0x0b, 0x61, 0xde, 0x7d, 0x96, - 0x31, 0x32, 0xf9, 0x91, 0x23, 0xf9, 0xcc, 0x66, 0x76, 0xfe, 0xbe, 0x0e, 0x49, 0x72, 0x13, 0xac, - 0x60, 0xeb, 0xd4, 0xa8, 0x63, 0x72, 0xee, 0xec, 0x63, 0xad, 0xe9, 0x9c, 0xbc, 0x87, 0x56, 0x03, - 0xef, 0x5f, 0x4a, 0xab, 0xe3, 0xf4, 0x52, 0x21, 0x72, 0x59, 0xfc, 0xe0, 0xcf, 0xff, 0xfc, 0x41, - 0x04, 0x50, 0x3c, 0x73, 0xc2, 0x3d, 0xec, 0xc1, 0x8c, 0x8a, 0x35, 0xbd, 0x77, 0x66, 0x57, 0x8b, - 0xd4, 0x55, 0x1c, 0xcd, 0x66, 0x2c, 0xda, 0xbf, 0x08, 0xf1, 0x87, 0xfc, 0xfb, 0x83, 0x50, 0x5f, - 0x6b, 0x01, 0x79, 0x85, 0x7e, 0xea, 0x20, 0x2f, 0x53, 0x67, 0x49, 0x94, 0xe8, 0x7f, 0xc3, 0x80, - 0xbe, 0x2e, 0xc0, 0xf2, 0x1e, 0x76, 0x58, 0x0d, 0xd0, 0xfd, 0x4e, 0x20, 0xd4, 0x73, 0x7a, 0xea, - 0x0f, 0x0f, 0x6c, 0xf9, 0x73, 0x1f, 0xfc, 0x4a, 0x5a, 0x82, 0x05, 0x62, 0x83, 0xdb, 0x8e, 0x51, - 0xd7, 0x1c, 0xac, 0xd3, 0xf1, 0x11, 0x12, 0x33, 0x2d, 0x9c, 0x21, 0xb7, 0x7d, 0xf7, 0xbb, 0x06, - 0xf4, 0x35, 0x01, 0xc4, 0x3e, 0x0c, 0xf7, 0x3f, 0xb6, 0x30, 0x14, 0x13, 0x3e, 0x7f, 0xf0, 0xfc, - 0xcd, 0x23, 0xdf, 0x0c, 0x03, 0x71, 0x1e, 0x2d, 0x33, 0x04, 0x04, 0x4a, 0x87, 0x0f, 0xf8, 0x13, - 0x01, 0xce, 0xb3, 0xf7, 0x67, 0x3f, 0x90, 0x9d, 0x31, 0x03, 0x86, 0xfc, 0x89, 0x90, 0xba, 0x3e, - 0x15, 0x48, 0x39, 0x13, 0x06, 0x70, 0x35, 0x15, 0x04, 0x78, 0x4f, 0x48, 0xa3, 0xaf, 0xc0, 0x62, - 0x3f, 0x50, 0xac, 0x5c, 0x1f, 0x16, 0xa6, 0x09, 0xb7, 0xca, 0x7e, 0xcd, 0x5b, 0x4e, 0x87, 0x61, - 0x58, 0x46, 0x4b, 0x03, 0x0c, 0xac, 0xf2, 0xfd, 0x63, 0x01, 0x96, 0xd9, 0xeb, 0xb1, 0x17, 0xc2, - 0xcb, 0xd3, 0x04, 0xc8, 0x5b, 0xdd, 0x4d, 0x5d, 0x9b, 0x02, 0x9c, 0x7c, 0x2b, 0x0c, 0xd8, 0x4a, - 0x6a, 0x18, 0x18, 0x09, 0xcd, 0x8f, 0x04, 0x58, 0x0e, 0x94, 0xb4, 0xc7, 0x25, 0x2f, 0xac, 0xfe, - 0x1d, 0xba, 0x1a, 0x5f, 0x0b, 0x03, 0x74, 0x51, 0x5e, 0x1b, 0x02, 0x94, 0x61, 0x05, 0xd6, 0x1e, - 0x01, 0xf6, 0xa1, 0x00, 0x97, 0x54, 0x6c, 0xe3, 0xb6, 0x5e, 0xe8, 0x79, 0xfe, 0x1e, 0xa8, 0xd3, - 0xb2, 0x4f, 0x61, 0x5c, 0x0e, 0xc3, 0x80, 0x64, 0xc3, 0x80, 0x6c, 0xc9, 0xd7, 0x02, 0x40, 0x2c, - 0x3a, 0xf4, 0xa9, 0x67, 0xcc, 0x61, 0x22, 0xb1, 0x0a, 0xfa, 0x33, 0x12, 0xa9, 0x5f, 0x84, 0x9e, - 0x92, 0x48, 0xac, 0x14, 0x3d, 0x4c, 0x24, 0x06, 0x61, 0x2a, 0x22, 0x79, 0xeb, 0xb6, 0x93, 0x88, - 0x44, 0x6d, 0xa7, 0x24, 0x12, 0x05, 0x46, 0x42, 0xf3, 0xc3, 0x21, 0x22, 0x4d, 0xc4, 0x36, 0xba, - 0xa6, 0xfc, 0x9c, 0x34, 0xa2, 0x70, 0xc2, 0x68, 0xe4, 0xa9, 0xd5, 0xb3, 0x94, 0xb2, 0xca, 0xe6, - 0xc7, 0x42, 0x23, 0x0e, 0x64, 0x34, 0x8d, 0x7c, 0x3b, 0xb7, 0x5b, 0x22, 0x7d, 0xc6, 0x9d, 0xdb, - 0x53, 0x0b, 0x9e, 0x72, 0xe7, 0xe6, 0x35, 0xc3, 0xc0, 0xce, 0xed, 0x02, 0x99, 0x6a, 0xe7, 0xf6, - 0x17, 0x4a, 0x27, 0xed, 0xdc, 0x6e, 0x1d, 0x72, 0xba, 0x9d, 0x9b, 0x03, 0x24, 0x91, 0x3a, 0x85, - 0x04, 0x0d, 0x54, 0xe1, 0x58, 0x0b, 0x8f, 0xd0, 0x8b, 0x53, 0x55, 0xf5, 0x6c, 0xf9, 0x46, 0xd8, - 0xe8, 0x22, 0x5a, 0x1c, 0x8c, 0xde, 0x22, 0x43, 0x7d, 0x4f, 0x00, 0xd1, 0x5d, 0x69, 0xfd, 0x6a, - 0xe5, 0x56, 0xf8, 0x38, 0xfe, 0x2a, 0x68, 0x28, 0x77, 0xee, 0x86, 0x21, 0xd8, 0x4c, 0x6d, 0x78, - 0xb8, 0xc3, 0x9d, 0xd9, 0x19, 0xfe, 0x7d, 0x0f, 0x89, 0xc4, 0xfb, 0x90, 0xc8, 0xea, 0x7a, 0xe1, - 0x58, 0x2b, 0x55, 0xcb, 0xa1, 0x91, 0xd8, 0x1a, 0x5b, 0x95, 0xf4, 0x54, 0x12, 0xc7, 0x64, 0x42, - 0x5e, 0xf6, 0xc5, 0x22, 0x63, 0x3a, 0x1d, 0x32, 0xfe, 0x37, 0x04, 0x6f, 0xf5, 0xb5, 0x5a, 0x46, - 0x2f, 0x4e, 0x3c, 0x23, 0xe8, 0x88, 0xa1, 0xb1, 0xf8, 0x7c, 0x18, 0x82, 0xcb, 0xa9, 0xf5, 0x00, - 0x02, 0xef, 0x92, 0x6e, 0xc2, 0xbc, 0x8a, 0x5b, 0xe6, 0x29, 0x9e, 0x10, 0x8c, 0xb0, 0x81, 0xc3, - 0x57, 0x49, 0x3a, 0x38, 0x75, 0xf4, 0x0b, 0x01, 0x96, 0xf9, 0xdd, 0xbd, 0xd7, 0x7f, 0x97, 0x18, - 0xbb, 0xe7, 0x8e, 0x2c, 0x67, 0xa6, 0x6e, 0x9f, 0xa1, 0x07, 0xcf, 0xd1, 0xab, 0x61, 0x40, 0x37, - 0xe4, 0x55, 0x0a, 0xb4, 0x41, 0x3a, 0x51, 0xb4, 0x35, 0x9b, 0x76, 0x25, 0xe1, 0xf9, 0x9d, 0x00, - 0xe7, 0x5d, 0xc0, 0x83, 0xf7, 0x1a, 0x1b, 0xbd, 0x72, 0x96, 0xea, 0x8c, 0x8b, 0xfa, 0xd5, 0xb3, - 0x75, 0xe2, 0xc0, 0xc3, 0x69, 0x2e, 0x6f, 0x64, 0x1a, 0x4d, 0xf3, 0xb1, 0xd6, 0x24, 0xd7, 0x33, - 0xd2, 0xd9, 0xb4, 0x1a, 0xb6, 0x17, 0xfd, 0x77, 0x05, 0x58, 0xa3, 0x2b, 0xfe, 0x6d, 0x36, 0xa4, - 0xb7, 0xcc, 0xf1, 0x0c, 0x67, 0xad, 0xaf, 0x4e, 0x22, 0xef, 0x84, 0xe1, 0x5a, 0x47, 0x6b, 0x19, - 0x4f, 0xb9, 0x24, 0xc3, 0x5d, 0x65, 0x5a, 0xf8, 0xfe, 0x6f, 0x84, 0x0f, 0xb3, 0xdf, 0x14, 0xd0, - 0xeb, 0x10, 0x27, 0x2f, 0x3a, 0x9b, 0xd9, 0x72, 0x5e, 0x4e, 0xa3, 0xad, 0x13, 0xc7, 0xe9, 0xd8, - 0xf7, 0x32, 0x99, 0x86, 0xe1, 0x9c, 0x74, 0x1f, 0x6f, 0xd7, 0xcd, 0x56, 0x86, 0x60, 0xe8, 0x77, - 0xec, 0xbc, 0xdb, 0xc8, 0x90, 0x61, 0x76, 0xa2, 0x2f, 0x6f, 0xdf, 0x4e, 0x0b, 0x91, 0x1d, 0x51, - 0xeb, 0x74, 0x9a, 0xfc, 0x08, 0xc8, 0xbc, 0x63, 0x9b, 0x6d, 0xbf, 0xa4, 0x61, 0x75, 0xea, 0xf7, - 0x02, 0x36, 0xf7, 0x02, 0x36, 0x6f, 0xdf, 0x98, 0x34, 0x22, 0xfd, 0xcc, 0x9b, 0x98, 0x3e, 0x9e, - 0xa5, 0x61, 0x7a, 0xe5, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x5a, 0x72, 0xc9, 0xeb, 0x26, 0x2e, + // 3122 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xeb, 0x8b, 0x1b, 0xd7, + 0xd9, 0xf7, 0x48, 0xda, 0x5d, 0xe9, 0xd1, 0x5e, 0x66, 0x8f, 0xd7, 0xbb, 0xb3, 0x5a, 0x5f, 0xe4, + 0x71, 0x9c, 0xac, 0xf5, 0xda, 0xab, 0x78, 0x93, 0xf0, 0xda, 0x0e, 0xbc, 0x41, 0x5e, 0x8d, 0x77, + 0xf5, 0x7a, 0x75, 0xc9, 0x48, 0xeb, 0xd4, 0x81, 0x22, 0xc6, 0xd2, 0x59, 0xed, 0x24, 0x92, 0x46, + 0x99, 0x19, 0xad, 0x51, 0xa0, 0x81, 0xa6, 0x85, 0x14, 0x7a, 0x25, 0x2d, 0x85, 0xd2, 0x4f, 0x85, + 0x7e, 0x28, 0x14, 0xda, 0x4f, 0x6d, 0x29, 0xed, 0x1f, 0xd0, 0x2f, 0xa5, 0x94, 0x42, 0xff, 0x80, + 0xd2, 0x7f, 0xa1, 0x94, 0xa6, 0x5f, 0xca, 0xb9, 0x8c, 0x34, 0x17, 0x8d, 0xa4, 0xb5, 0x49, 0x09, + 0x21, 0x9f, 0xa4, 0xf3, 0xdc, 0xce, 0xef, 0x3c, 0xe7, 0x77, 0x2e, 0xf3, 0xcc, 0x00, 0x68, 0x7d, + 0xfb, 0x64, 0xa7, 0x67, 0x1a, 0xb6, 0x81, 0xa4, 0x86, 0x66, 0x58, 0x3b, 0xef, 0xeb, 0xb6, 0xd6, + 0xc4, 0xed, 0x1d, 0xaa, 0xd0, 0x7a, 0xfa, 0xce, 0xe9, 0xed, 0xd4, 0xc5, 0x96, 0x61, 0xb4, 0xda, + 0x38, 0xab, 0xf5, 0xf4, 0xac, 0xd6, 0xed, 0x1a, 0xb6, 0x66, 0xeb, 0x46, 0xd7, 0x62, 0x7e, 0xa9, + 0x2d, 0xae, 0xa5, 0xad, 0x27, 0xfd, 0xe3, 0x2c, 0xee, 0xf4, 0xec, 0x01, 0x57, 0x5e, 0xf4, 0x2b, + 0x2d, 0xdb, 0xec, 0x37, 0x6c, 0xae, 0xbd, 0xe2, 0xd7, 0xda, 0x7a, 0x07, 0x5b, 0xb6, 0xd6, 0xe9, + 0x71, 0x83, 0x8d, 0x53, 0xad, 0xad, 0x37, 0x35, 0x1b, 0x67, 0x9d, 0x3f, 0x5c, 0x71, 0x93, 0xfe, + 0x34, 0x6e, 0xb5, 0x70, 0xf7, 0x96, 0xf5, 0x54, 0x6b, 0xb5, 0xb0, 0x99, 0x35, 0x7a, 0x14, 0xd6, + 0x18, 0x88, 0x12, 0x19, 0x0d, 0x53, 0x3b, 0x56, 0x4c, 0x23, 0x3f, 0x01, 0xf1, 0xc8, 0xc2, 0x66, + 0x15, 0x5b, 0x96, 0x6e, 0x74, 0x1f, 0xe9, 0xf8, 0xa9, 0x85, 0x4a, 0xb0, 0xd4, 0xb7, 0xb0, 0x59, + 0xb7, 0x98, 0xd0, 0x92, 0x84, 0x74, 0x74, 0x3b, 0xb9, 0x7b, 0x63, 0x27, 0x2c, 0x41, 0x3b, 0xbe, + 0x10, 0xea, 0x62, 0x7f, 0x24, 0xb0, 0xe4, 0x1f, 0x47, 0x60, 0xc5, 0x67, 0x81, 0x96, 0x21, 0xa2, + 0x37, 0x25, 0x21, 0x2d, 0x6c, 0x27, 0xd4, 0x88, 0xde, 0x44, 0x9b, 0x10, 0xd7, 0x5a, 0xb8, 0x6b, + 0xd7, 0xf5, 0xa6, 0x14, 0xa1, 0xd2, 0x05, 0xda, 0x2e, 0x34, 0x51, 0x81, 0xcd, 0x52, 0xdd, 0xb2, + 0x35, 0x1b, 0x4b, 0xd1, 0xb4, 0xb0, 0xbd, 0xbc, 0x9b, 0x99, 0x09, 0x4b, 0x95, 0x78, 0xa8, 0x09, + 0xa2, 0xa5, 0x7f, 0xd1, 0x06, 0x2c, 0xd0, 0x91, 0xe9, 0x4d, 0x29, 0x46, 0x3b, 0x99, 0x27, 0xcd, + 0x42, 0x13, 0x6d, 0x41, 0x82, 0x2a, 0xba, 0x5a, 0x07, 0x4b, 0x73, 0x54, 0x15, 0x27, 0x82, 0x92, + 0xd6, 0xc1, 0x28, 0x05, 0x71, 0x0b, 0xbf, 0xd7, 0xc7, 0xdd, 0x06, 0x96, 0xe6, 0xd3, 0xc2, 0x76, + 0x4c, 0x1d, 0xb6, 0xd1, 0x25, 0x80, 0xb6, 0xd1, 0xd2, 0xbb, 0xcc, 0x73, 0x81, 0x7a, 0x26, 0xa8, + 0x84, 0xba, 0x5e, 0x85, 0xc5, 0xa6, 0x6e, 0xf5, 0xda, 0xda, 0x80, 0x19, 0xc4, 0xa9, 0x41, 0x92, + 0xcb, 0x88, 0x89, 0xfc, 0x51, 0x1c, 0xe2, 0x04, 0xf3, 0xd8, 0xb4, 0xdc, 0x85, 0x39, 0x36, 0xec, + 0x08, 0x1d, 0xf6, 0xb5, 0x29, 0xc3, 0xa6, 0xe3, 0x65, 0x1e, 0xe8, 0x0d, 0x58, 0x6a, 0x98, 0x98, + 0xd2, 0xa0, 0xde, 0x74, 0x32, 0x97, 0xdc, 0x4d, 0xed, 0x30, 0xce, 0xed, 0x38, 0x9c, 0xdb, 0xa9, + 0x39, 0x9c, 0x53, 0x17, 0x1d, 0x87, 0x3c, 0x09, 0xf0, 0x3a, 0x24, 0x1b, 0x27, 0x5a, 0xb7, 0x85, + 0x99, 0x7b, 0x6c, 0xaa, 0x3b, 0x30, 0x73, 0xea, 0x7c, 0x17, 0xa0, 0xad, 0x59, 0x76, 0x9d, 0xa6, + 0x82, 0x66, 0x74, 0xb2, 0x6f, 0x82, 0x58, 0x1f, 0x12, 0x63, 0xa4, 0x80, 0xd8, 0xd3, 0x2c, 0xeb, + 0xa9, 0x61, 0x36, 0xeb, 0x2c, 0x62, 0x93, 0xa6, 0x7d, 0x72, 0x80, 0x15, 0xc7, 0x67, 0x8f, 0xb9, + 0x78, 0xa7, 0x74, 0xc1, 0x37, 0xa5, 0x97, 0x00, 0x8e, 0x75, 0xd3, 0xb2, 0xdd, 0xb3, 0x92, 0xa0, + 0x12, 0xaa, 0xde, 0x02, 0x8a, 0x87, 0x69, 0x13, 0xcc, 0x97, 0x08, 0xc6, 0xce, 0x29, 0x04, 0xe6, + 0x94, 0xf8, 0x77, 0xf5, 0xc6, 0xbb, 0x4c, 0x9f, 0x64, 0xfe, 0x44, 0x40, 0x95, 0xb7, 0x00, 0xf5, + 0x4c, 0x7c, 0x8c, 0x4d, 0x13, 0x37, 0xeb, 0x6d, 0xad, 0xdb, 0xea, 0x6b, 0x2d, 0x2c, 0x2d, 0x52, + 0xab, 0xd5, 0xa1, 0xe6, 0x90, 0x2b, 0xd0, 0x1d, 0x98, 0x6f, 0xe1, 0x6e, 0x13, 0x9b, 0xd2, 0x12, + 0xe5, 0x40, 0x3a, 0x9c, 0x03, 0xfb, 0xd4, 0x4e, 0xe5, 0xf6, 0x68, 0x0d, 0xe6, 0x70, 0x47, 0xd3, + 0xdb, 0xd2, 0x32, 0x8d, 0xcd, 0x1a, 0x28, 0x03, 0xab, 0xba, 0x55, 0xa7, 0xff, 0xeb, 0xa7, 0xd8, + 0xd4, 0x8f, 0x75, 0xdc, 0x94, 0x56, 0xd2, 0xc2, 0x76, 0x5c, 0x5d, 0xd1, 0x2d, 0x85, 0xc8, 0x1f, + 0x71, 0x31, 0x89, 0xd0, 0x3b, 0x31, 0xba, 0x58, 0x12, 0x59, 0x04, 0xda, 0xe0, 0x11, 0xe8, 0xff, + 0x51, 0x84, 0x55, 0x27, 0x42, 0x85, 0xc8, 0x87, 0x11, 0x24, 0x58, 0x68, 0x18, 0xfd, 0xae, 0x6d, + 0x0e, 0x24, 0xc4, 0x96, 0x35, 0x6f, 0x92, 0x55, 0xd5, 0x36, 0x1a, 0x5a, 0x5b, 0xb7, 0x07, 0xd2, + 0x79, 0x9e, 0x62, 0xde, 0x46, 0x57, 0x20, 0xd9, 0x33, 0x2c, 0x5b, 0x6b, 0xd7, 0x1b, 0x46, 0x13, + 0x4b, 0x6b, 0x54, 0x0d, 0x4c, 0xb4, 0x67, 0x34, 0x31, 0x5a, 0x87, 0x79, 0x13, 0xb7, 0x74, 0xa3, + 0x2b, 0x5d, 0x60, 0xeb, 0x98, 0xb5, 0xd0, 0x75, 0x58, 0xb6, 0x6c, 0x13, 0x63, 0xbb, 0xae, 0x35, + 0x9b, 0x26, 0xb6, 0x2c, 0x69, 0x9d, 0xea, 0x97, 0x98, 0x34, 0xc7, 0x84, 0x9e, 0x15, 0xbd, 0xe1, + 0x5b, 0xd1, 0xd7, 0x61, 0xd9, 0xc4, 0x96, 0xd1, 0x37, 0x1b, 0xb8, 0x6e, 0x3c, 0xed, 0x62, 0x53, + 0x92, 0x58, 0x08, 0x47, 0x5a, 0x26, 0x42, 0x02, 0x71, 0xb4, 0xf0, 0x2d, 0x69, 0x33, 0x1d, 0x25, + 0x10, 0x87, 0x2b, 0xdf, 0x42, 0x2f, 0xc3, 0x9a, 0x6b, 0x9a, 0x47, 0x7b, 0x44, 0x8a, 0x46, 0x1b, + 0x51, 0xe0, 0xd0, 0x71, 0x91, 0x7f, 0x1b, 0x85, 0x24, 0x59, 0xc6, 0x15, 0xd3, 0x38, 0xd6, 0xdb, + 0x38, 0xb0, 0x19, 0x78, 0x18, 0x1d, 0x99, 0xc8, 0xe8, 0xe8, 0x44, 0x46, 0xc7, 0x7c, 0x8c, 0xf6, + 0xd0, 0x75, 0xce, 0x47, 0x57, 0x3f, 0xdd, 0xe7, 0x83, 0x74, 0x1f, 0xcf, 0xe8, 0x85, 0xe9, 0x8c, + 0x8e, 0x9f, 0x91, 0xd1, 0xee, 0x79, 0x4b, 0xf8, 0xe6, 0x2d, 0xb0, 0xdf, 0xc1, 0xf3, 0xed, 0x77, + 0xc9, 0xb3, 0xec, 0x77, 0xf2, 0xf7, 0x62, 0xec, 0x8c, 0xe3, 0x73, 0x37, 0x76, 0x33, 0xff, 0x62, + 0xfe, 0x3e, 0xb3, 0xf3, 0xe7, 0x5f, 0xce, 0x8b, 0x33, 0x2f, 0xe7, 0xa5, 0xd0, 0xe5, 0xfc, 0xad, + 0x08, 0x48, 0x47, 0x3d, 0x82, 0xc5, 0x45, 0x0c, 0x95, 0x0c, 0xd7, 0xb2, 0xd1, 0x0d, 0xcf, 0x74, + 0x53, 0x8e, 0xdc, 0x87, 0x4f, 0xee, 0x2f, 0x98, 0x73, 0xa2, 0x20, 0xfd, 0x41, 0x70, 0x4f, 0xfd, + 0x4b, 0xee, 0xa9, 0x8f, 0x04, 0x2c, 0x47, 0x34, 0x78, 0xc9, 0x4d, 0x83, 0x68, 0xd0, 0x70, 0x48, + 0x89, 0xbb, 0x63, 0xe7, 0x3b, 0x16, 0xf0, 0x98, 0x38, 0xf7, 0x73, 0x67, 0x9b, 0x7b, 0xf9, 0x1f, + 0x02, 0x24, 0x48, 0x22, 0xe8, 0x09, 0x13, 0x58, 0x1b, 0xc3, 0xb3, 0x2a, 0xe2, 0x3e, 0xab, 0xb6, + 0xc1, 0x7f, 0x24, 0xd1, 0x71, 0x8d, 0x39, 0xa9, 0xdc, 0xcc, 0x8a, 0x4d, 0x63, 0xd6, 0xdc, 0xf3, + 0x31, 0x6b, 0xfe, 0x4c, 0x3b, 0xc3, 0xbf, 0x04, 0x58, 0x1a, 0x8e, 0x7b, 0xec, 0xbe, 0xf0, 0xf9, + 0x1d, 0xfb, 0x3d, 0x90, 0x28, 0xca, 0x41, 0x71, 0x30, 0x4c, 0x81, 0xb3, 0x02, 0x2e, 0x43, 0x8c, + 0x1e, 0xee, 0x41, 0xee, 0x53, 0xb9, 0x7c, 0x00, 0xeb, 0xcc, 0x37, 0xe0, 0xe9, 0xcf, 0x9f, 0x13, + 0x29, 0x12, 0x12, 0xe9, 0x1e, 0xac, 0x8f, 0xd6, 0xa1, 0x27, 0x52, 0xda, 0xc9, 0x7c, 0x10, 0x04, + 0x53, 0xc8, 0xff, 0xe4, 0xac, 0xa5, 0xb7, 0x9a, 0x71, 0x33, 0xc7, 0xee, 0x47, 0x91, 0xa9, 0xf7, + 0xa3, 0xe8, 0xf8, 0xfb, 0xd1, 0x67, 0x77, 0xee, 0xfe, 0xcd, 0x79, 0xcb, 0xf0, 0x86, 0xf0, 0xf6, + 0x73, 0x3b, 0xfa, 0xbb, 0x6e, 0xce, 0x50, 0xd0, 0x0e, 0x67, 0xae, 0x38, 0xa3, 0x66, 0x9c, 0x49, + 0x7c, 0x72, 0x7f, 0xde, 0x8c, 0x89, 0x82, 0xb4, 0xc6, 0x13, 0x20, 0xdf, 0x71, 0x13, 0xd7, 0xe3, + 0x3a, 0x8d, 0xf2, 0x7f, 0x8c, 0xb0, 0x0b, 0xa0, 0x73, 0x4d, 0xf5, 0x27, 0xdc, 0x75, 0x99, 0x8e, + 0x84, 0x5f, 0xa6, 0xa3, 0x93, 0x2f, 0xd3, 0xb1, 0x09, 0x97, 0xe9, 0xb9, 0x29, 0x97, 0xe9, 0xf9, + 0x69, 0x97, 0xe9, 0x85, 0x69, 0x93, 0x18, 0x7f, 0xbe, 0x49, 0x4c, 0x9c, 0x69, 0x12, 0xff, 0xcc, + 0x0b, 0x0f, 0x1c, 0xe9, 0x58, 0x12, 0x7f, 0x91, 0xd3, 0xb3, 0xe5, 0xf4, 0x6f, 0x82, 0xfb, 0x56, + 0xc3, 0xf1, 0x3a, 0x04, 0x97, 0x47, 0xc9, 0x64, 0x1c, 0x8f, 0x7f, 0x72, 0x7f, 0xce, 0x8c, 0x12, + 0x86, 0x0f, 0xd3, 0xfa, 0x82, 0x2b, 0xad, 0x11, 0x9f, 0xd1, 0x28, 0xc1, 0x37, 0xbc, 0x09, 0x8e, + 0xfa, 0x0c, 0xdd, 0xa9, 0x4e, 0x0f, 0x53, 0x1d, 0xf3, 0x59, 0x39, 0x49, 0xcf, 0x06, 0x92, 0x3e, + 0xe7, 0xb3, 0xf4, 0xa6, 0x5f, 0xbe, 0x08, 0x50, 0xe1, 0xe5, 0x84, 0x42, 0xde, 0x4f, 0x19, 0xf9, + 0x0e, 0xac, 0x38, 0x5a, 0x67, 0xe0, 0xd7, 0x21, 0xee, 0xd4, 0x1f, 0xfc, 0xfb, 0xc2, 0x81, 0x3a, + 0x54, 0xc9, 0x6d, 0x58, 0xae, 0x78, 0xca, 0x14, 0xe8, 0x26, 0x2c, 0x1a, 0xed, 0x66, 0x3d, 0xdc, + 0x39, 0x69, 0xb4, 0x9b, 0x8e, 0x0f, 0xb1, 0xee, 0xe2, 0xa7, 0x23, 0xeb, 0x48, 0xc0, 0xba, 0x8b, + 0x9f, 0x3a, 0xd6, 0xb2, 0x0c, 0x8b, 0xfc, 0xf4, 0x3d, 0xd6, 0xca, 0x76, 0x0f, 0x21, 0xf7, 0xf6, + 0xc3, 0xb7, 0x9c, 0x02, 0x2c, 0x16, 0xfb, 0x6d, 0x5b, 0x7f, 0xa0, 0x35, 0x6c, 0xc3, 0xb4, 0xd0, + 0x5d, 0x88, 0x75, 0x8e, 0x35, 0xa7, 0xe4, 0x77, 0x3d, 0xfc, 0x76, 0xe7, 0xf2, 0x52, 0xa9, 0x8b, + 0xfc, 0x01, 0x24, 0x5d, 0x42, 0xf4, 0x1a, 0xc4, 0xec, 0x41, 0x8f, 0xf5, 0xb6, 0xbc, 0x7b, 0x75, + 0x42, 0xa4, 0x63, 0xad, 0x36, 0xe8, 0x61, 0x95, 0x9a, 0xa3, 0x3b, 0xde, 0x8a, 0x97, 0x3c, 0xc1, + 0xef, 0x41, 0xce, 0x5d, 0xf0, 0x92, 0xbf, 0x2d, 0xc0, 0x32, 0x1b, 0xa9, 0x8a, 0xad, 0x9e, 0xd1, + 0xb5, 0x3c, 0xf5, 0x3e, 0xc1, 0x53, 0xef, 0x13, 0x21, 0xda, 0x37, 0x9d, 0x0b, 0x17, 0xf9, 0x4b, + 0x16, 0xac, 0x85, 0x1b, 0x26, 0xb6, 0xf9, 0x5a, 0xe7, 0xad, 0x11, 0x9e, 0xd8, 0x59, 0xf1, 0xa8, + 0xb0, 0x5c, 0x2e, 0xe4, 0xf7, 0xf6, 0xda, 0x3a, 0xee, 0xda, 0xb9, 0xbe, 0x7d, 0x42, 0x9e, 0xd3, + 0x1a, 0xb4, 0x35, 0x02, 0x14, 0x67, 0x82, 0x42, 0x13, 0x5d, 0x83, 0x25, 0xae, 0xe4, 0x38, 0x18, + 0xb8, 0x45, 0x26, 0xac, 0x52, 0x99, 0xfc, 0xd5, 0x08, 0xac, 0x93, 0x75, 0xb7, 0x6f, 0x6a, 0x44, + 0xa6, 0x99, 0x8d, 0x13, 0x87, 0x82, 0xeb, 0x30, 0x6f, 0x1c, 0x1f, 0x5b, 0xd8, 0xa6, 0x91, 0x63, + 0x2a, 0x6f, 0x91, 0x53, 0xba, 0xad, 0x77, 0x74, 0x16, 0x2f, 0xa6, 0xb2, 0x06, 0xfa, 0x32, 0x2c, + 0x5b, 0x86, 0x69, 0xeb, 0xdd, 0x56, 0xbd, 0x61, 0xb4, 0xfb, 0x9d, 0x2e, 0x2f, 0xac, 0xde, 0x9c, + 0x5c, 0x61, 0x74, 0xf5, 0xfb, 0x10, 0x0f, 0xe8, 0x02, 0xfa, 0x50, 0x88, 0xa4, 0xcf, 0xa9, 0x4b, + 0x3c, 0xda, 0x1e, 0x0d, 0x46, 0xf2, 0xab, 0x59, 0x0d, 0x9a, 0xb3, 0xb8, 0x4a, 0xfe, 0xa2, 0x03, + 0x58, 0x78, 0xaf, 0x8f, 0x4d, 0x1d, 0x93, 0xc5, 0x47, 0xb8, 0xb5, 0x33, 0x73, 0x4f, 0x6f, 0xf6, + 0xb1, 0x39, 0x50, 0x1d, 0x77, 0xf9, 0xd7, 0x02, 0xac, 0x8d, 0xb3, 0x40, 0x07, 0x10, 0x7d, 0x17, + 0x0f, 0x38, 0xe1, 0x9e, 0x75, 0x20, 0x24, 0x04, 0xfa, 0x3f, 0x98, 0xef, 0x60, 0xfb, 0xc4, 0x68, + 0x72, 0x16, 0xbe, 0x18, 0x1e, 0x8c, 0xc5, 0x28, 0x52, 0x6b, 0x95, 0x7b, 0x91, 0x9c, 0x9f, 0x6a, + 0xed, 0xbe, 0xf3, 0x1c, 0xcf, 0x1a, 0xf2, 0xcf, 0x05, 0xd8, 0x08, 0x4c, 0x1e, 0x67, 0xea, 0xd9, + 0x66, 0xef, 0x2a, 0x2c, 0xda, 0x06, 0xd9, 0x1c, 0x4d, 0x6c, 0xf5, 0xdb, 0x8c, 0xb2, 0x31, 0x35, + 0x49, 0x65, 0x2a, 0x15, 0xa1, 0x37, 0xc8, 0xae, 0x48, 0x95, 0x31, 0x9a, 0xee, 0x97, 0x66, 0xc8, + 0x07, 0xad, 0xdd, 0x73, 0x37, 0xf9, 0x9b, 0xfc, 0xfe, 0x37, 0xd4, 0x10, 0x2c, 0x65, 0xb3, 0x55, + 0x70, 0xa8, 0xcb, 0x1a, 0xe8, 0x22, 0x24, 0x2a, 0xa6, 0xf1, 0x0e, 0x6e, 0xd8, 0x05, 0xa7, 0x74, + 0x3f, 0x12, 0x90, 0x71, 0x1d, 0xd1, 0x25, 0xe7, 0x2c, 0x2b, 0xd6, 0x22, 0xb1, 0x54, 0xa3, 0x8d, + 0x2d, 0x8a, 0x2e, 0xa1, 0xb2, 0x06, 0x39, 0x8c, 0xcb, 0x66, 0xab, 0x34, 0x2a, 0x63, 0x38, 0x4d, + 0xf9, 0x67, 0x02, 0x6c, 0x16, 0x07, 0x3c, 0x6e, 0xd9, 0x6c, 0x3d, 0x0f, 0xf7, 0x83, 0xe4, 0x7c, + 0xe8, 0x27, 0xe7, 0xed, 0x09, 0xcb, 0x3c, 0x80, 0xc2, 0xc7, 0xcf, 0xdf, 0x0b, 0xb0, 0x11, 0x62, + 0x84, 0x1e, 0xba, 0x29, 0x9a, 0x3d, 0x4b, 0x27, 0xff, 0x35, 0x96, 0xfe, 0x54, 0x80, 0xd4, 0xb8, + 0x4c, 0x7f, 0x5a, 0x44, 0x7d, 0xcd, 0x47, 0xd4, 0x4b, 0xe1, 0xa3, 0x28, 0x9b, 0xad, 0x21, 0x3d, + 0x6f, 0x40, 0xb4, 0x6c, 0xb6, 0x02, 0xd7, 0x39, 0x04, 0x31, 0x57, 0x79, 0x8d, 0xfe, 0x97, 0x6f, + 0xc3, 0x52, 0x71, 0x50, 0xc1, 0x66, 0x47, 0x67, 0x2f, 0xa4, 0x50, 0x1a, 0x92, 0xbd, 0x51, 0x93, + 0x9e, 0x75, 0x09, 0xd5, 0x2d, 0xca, 0x98, 0x9e, 0xd7, 0x62, 0xec, 0xe5, 0x51, 0x1a, 0x2e, 0x1e, + 0x55, 0x15, 0xb5, 0xaa, 0x54, 0xab, 0x85, 0x72, 0xa9, 0x5a, 0xcb, 0xd5, 0x94, 0xfa, 0x51, 0xa9, + 0x5a, 0x51, 0xf6, 0x0a, 0x0f, 0x0a, 0x4a, 0x5e, 0x3c, 0x87, 0xb6, 0x60, 0x23, 0x60, 0x91, 0xdb, + 0xab, 0x15, 0x1e, 0x29, 0xa2, 0x80, 0xae, 0xc0, 0x56, 0x40, 0x59, 0x53, 0xd4, 0x62, 0xa1, 0x94, + 0xab, 0x29, 0x79, 0x31, 0x92, 0x79, 0x0f, 0x44, 0x72, 0x5e, 0x38, 0x99, 0x26, 0x67, 0x22, 0xda, + 0x84, 0x0b, 0x54, 0xa6, 0x54, 0x2b, 0xe5, 0x52, 0x55, 0xa9, 0x3d, 0xae, 0x28, 0xf5, 0xbd, 0x72, + 0x5e, 0x11, 0xcf, 0xa1, 0x4b, 0xb0, 0x19, 0x50, 0x15, 0xf2, 0xf5, 0x5a, 0xf9, 0xa1, 0x52, 0x12, + 0x05, 0x74, 0x0d, 0xae, 0x84, 0xaa, 0xb9, 0x51, 0x24, 0xf3, 0x4b, 0xfe, 0x74, 0xcb, 0x06, 0xb8, + 0x09, 0x17, 0x28, 0xc2, 0x31, 0x23, 0x5b, 0x03, 0x71, 0xa4, 0x1a, 0x0e, 0x69, 0x1d, 0xd0, 0x48, + 0x5a, 0x28, 0x71, 0x79, 0x04, 0x5d, 0x80, 0xd5, 0x91, 0x3c, 0xaf, 0x1c, 0x2a, 0x64, 0x80, 0x51, + 0x6f, 0x90, 0xc3, 0xf2, 0xde, 0x43, 0x25, 0x2f, 0xc6, 0xbc, 0xc6, 0xd5, 0xa3, 0x6a, 0x45, 0x29, + 0xe5, 0xc5, 0x39, 0xaf, 0xb8, 0x50, 0x2a, 0xd4, 0x0a, 0xb9, 0x43, 0x71, 0x3e, 0xf3, 0x25, 0x98, + 0x67, 0x75, 0x25, 0xd2, 0xf9, 0xbe, 0x52, 0xca, 0x2b, 0xaa, 0x0f, 0xea, 0x2a, 0x2c, 0x71, 0xf9, + 0x03, 0xa5, 0x98, 0x3b, 0x24, 0x38, 0x57, 0x20, 0xc9, 0x45, 0x54, 0x10, 0x41, 0x08, 0x96, 0xb9, + 0x20, 0x5f, 0x78, 0x44, 0xe6, 0x44, 0x8c, 0x66, 0xf2, 0xb0, 0xc0, 0x6f, 0x22, 0x68, 0x03, 0xce, + 0x17, 0x1f, 0xe4, 0x68, 0xca, 0xbc, 0xb1, 0x57, 0x20, 0xe9, 0x28, 0xaa, 0xc5, 0x2a, 0x8b, 0xec, + 0x08, 0xca, 0xb5, 0x8a, 0x18, 0xc9, 0x1c, 0x43, 0xdc, 0xb9, 0x07, 0x20, 0x09, 0xd6, 0xc8, 0xff, + 0x31, 0xe9, 0x5c, 0x07, 0x34, 0xd4, 0x94, 0xca, 0xb5, 0xba, 0xaa, 0xe4, 0xf2, 0x8f, 0x45, 0x81, + 0xe0, 0x1a, 0xca, 0x99, 0x2c, 0x42, 0xb2, 0xe6, 0x92, 0x15, 0xcb, 0x8f, 0x48, 0x2e, 0x33, 0xa7, + 0x80, 0x82, 0xc7, 0x18, 0xba, 0x0c, 0xa9, 0xa0, 0xb4, 0x7e, 0x54, 0x7a, 0x58, 0x2a, 0xbf, 0x55, + 0x62, 0x9c, 0x19, 0xa3, 0x2f, 0xab, 0xfb, 0xf5, 0x42, 0x5e, 0x14, 0xd0, 0x55, 0xb8, 0x34, 0x46, + 0x5d, 0x51, 0xcb, 0xff, 0xaf, 0xec, 0xd5, 0x88, 0x49, 0x24, 0xf3, 0x04, 0x2e, 0x8c, 0xdd, 0x9b, + 0xd0, 0x75, 0xb8, 0x5a, 0x7c, 0xcc, 0x4d, 0xcb, 0xea, 0x7e, 0x55, 0xc9, 0xa9, 0x7b, 0x07, 0x0f, + 0x95, 0xc7, 0xbe, 0x91, 0xcb, 0x70, 0x79, 0xbc, 0x19, 0x01, 0x51, 0xca, 0x15, 0x15, 0x51, 0xc8, + 0xfc, 0x55, 0x80, 0x45, 0xf7, 0x86, 0x45, 0xe6, 0x83, 0x19, 0x16, 0x95, 0xda, 0x41, 0x39, 0x5f, + 0x57, 0xde, 0x3c, 0xca, 0x1d, 0x56, 0xc5, 0x73, 0xe8, 0x22, 0x48, 0x1e, 0x45, 0xb5, 0x96, 0x53, + 0x6b, 0xd5, 0xfa, 0x5b, 0x85, 0xda, 0x81, 0x28, 0x10, 0x3e, 0x7b, 0xb4, 0x7b, 0xe5, 0x52, 0x2d, + 0x57, 0x28, 0x55, 0xc5, 0x08, 0x59, 0x1d, 0x63, 0x22, 0xd6, 0x0b, 0xfb, 0xa5, 0xb2, 0xaa, 0xd4, + 0xf7, 0x72, 0x84, 0x11, 0x68, 0x1b, 0x5e, 0x08, 0x8b, 0xee, 0xb1, 0x8c, 0x91, 0xc1, 0x8f, 0xed, + 0xc9, 0x63, 0x36, 0xb7, 0xfb, 0xa7, 0x14, 0x24, 0xc9, 0x45, 0xb0, 0x8a, 0xcd, 0x53, 0xbd, 0x81, + 0xc9, 0xb1, 0x73, 0x80, 0xb5, 0xb6, 0x7d, 0xf2, 0x3e, 0x5a, 0x0f, 0x3c, 0x7e, 0x29, 0x9d, 0x9e, + 0x3d, 0x48, 0x85, 0xc8, 0x65, 0xf1, 0xc3, 0xbf, 0xfc, 0xfd, 0xfb, 0x11, 0x40, 0xf1, 0xec, 0x09, + 0x8f, 0xb0, 0x0f, 0x73, 0x2a, 0xd6, 0x9a, 0x83, 0x33, 0x87, 0x5a, 0xa6, 0xa1, 0xe2, 0x68, 0x3e, + 0x6b, 0x52, 0xff, 0x12, 0xc4, 0x1f, 0xf1, 0x8f, 0x0d, 0x42, 0x63, 0x6d, 0x04, 0xe4, 0x55, 0xfa, + 0x5d, 0x83, 0xbc, 0x4a, 0x83, 0x25, 0x51, 0x62, 0xf8, 0xc1, 0x02, 0xfa, 0xba, 0x00, 0xab, 0xfb, + 0xd8, 0x66, 0x25, 0x40, 0xe7, 0xa3, 0x80, 0xd0, 0xc8, 0x99, 0x99, 0xbf, 0x32, 0xb0, 0xe4, 0xff, + 0xf9, 0xf0, 0x57, 0xd2, 0x0a, 0x2c, 0x11, 0x1b, 0xdc, 0xb5, 0xf5, 0x86, 0x66, 0xe3, 0x26, 0xed, + 0x1f, 0x21, 0x31, 0xdb, 0xc1, 0x59, 0x72, 0xd9, 0x77, 0x3e, 0x62, 0x40, 0x1d, 0x48, 0x0c, 0x51, + 0x84, 0xf6, 0x2e, 0x4f, 0xee, 0x9d, 0x74, 0x2b, 0xbf, 0x10, 0xd6, 0x2b, 0x19, 0x35, 0xed, 0x32, + 0xdb, 0xc1, 0xe8, 0x6b, 0x02, 0x88, 0xc3, 0xfe, 0x9c, 0x37, 0x7a, 0x61, 0xdd, 0x4e, 0xf9, 0xb4, + 0xc2, 0xf5, 0x52, 0x49, 0xbe, 0x19, 0xd6, 0xfb, 0x79, 0xb4, 0x3a, 0xec, 0x3d, 0xdb, 0xe3, 0x1d, + 0xfe, 0x44, 0x80, 0xf3, 0xec, 0x69, 0xdd, 0x0b, 0x64, 0x77, 0x42, 0x87, 0x21, 0xaf, 0x2c, 0x52, + 0xd7, 0x67, 0x02, 0x29, 0x67, 0xc3, 0x00, 0xae, 0xa7, 0x82, 0x00, 0xef, 0x09, 0x19, 0xf4, 0x15, + 0x58, 0x1e, 0x26, 0x8a, 0xbd, 0x1c, 0x08, 0x4b, 0xd3, 0x94, 0x3b, 0xec, 0xb0, 0xc2, 0x2e, 0x67, + 0xc2, 0x30, 0xac, 0xa2, 0x95, 0x11, 0x06, 0x56, 0x67, 0xff, 0x91, 0x00, 0xab, 0xec, 0x61, 0xdc, + 0x0d, 0xe1, 0xe5, 0x59, 0x12, 0xe4, 0xae, 0x25, 0xa7, 0xae, 0xcd, 0x00, 0x4e, 0xbe, 0x15, 0x06, + 0x6c, 0x2d, 0xe5, 0x07, 0x46, 0x52, 0xf3, 0x43, 0x01, 0x56, 0x03, 0x05, 0xf4, 0x49, 0x93, 0x17, + 0x56, 0x6d, 0x0f, 0x5d, 0xfc, 0xaf, 0x85, 0x01, 0xba, 0x28, 0x6f, 0xf8, 0x00, 0x65, 0x59, 0x39, + 0x77, 0x40, 0x80, 0x7d, 0x2c, 0xc0, 0x25, 0x15, 0x5b, 0xb8, 0xdb, 0x2c, 0x0e, 0x5c, 0x2f, 0x23, + 0x1a, 0xb4, 0xc8, 0x54, 0x9c, 0x34, 0x87, 0x61, 0x40, 0x72, 0x61, 0x40, 0xb6, 0xe5, 0x6b, 0x01, + 0x20, 0x26, 0xed, 0xfa, 0xd4, 0xd5, 0xa7, 0x9f, 0x48, 0xac, 0x5e, 0xff, 0x8c, 0x44, 0x1a, 0x96, + 0xbc, 0x67, 0x24, 0x12, 0x2b, 0x7c, 0xfb, 0x89, 0xc4, 0x20, 0xcc, 0x44, 0x24, 0x77, 0x95, 0x78, + 0x1a, 0x91, 0xa8, 0xed, 0x8c, 0x44, 0xa2, 0xc0, 0x48, 0x6a, 0x7e, 0xe0, 0x23, 0xd2, 0x54, 0x6c, + 0xe3, 0x2b, 0xd8, 0xcf, 0x49, 0x23, 0x0a, 0x27, 0x8c, 0x46, 0xae, 0x37, 0x03, 0x6c, 0x4a, 0x59, + 0x1d, 0xf5, 0x53, 0xa1, 0x11, 0x07, 0x32, 0x9e, 0x46, 0x9e, 0x9d, 0xdb, 0x29, 0xc8, 0x3e, 0xe3, + 0xce, 0xed, 0xaa, 0x3c, 0xcf, 0xb8, 0x73, 0xf3, 0x0a, 0x65, 0x60, 0xe7, 0x76, 0x80, 0xcc, 0xb4, + 0x73, 0x7b, 0xcb, 0xb2, 0xd3, 0x76, 0x6e, 0xa7, 0xea, 0x39, 0xdb, 0xce, 0xcd, 0x01, 0x92, 0x4c, + 0x9d, 0xf2, 0x23, 0xb5, 0x78, 0xac, 0x85, 0x67, 0xe8, 0xc5, 0x99, 0x6a, 0x88, 0x96, 0x7c, 0x23, + 0xac, 0x77, 0x11, 0x2d, 0x8f, 0x7a, 0xef, 0x90, 0xae, 0xbe, 0x2b, 0x80, 0xe8, 0xac, 0xb4, 0x61, + 0x6d, 0x74, 0x3b, 0xbc, 0x1f, 0x6f, 0xcd, 0x35, 0x94, 0x3b, 0x77, 0xc3, 0x10, 0xa4, 0x53, 0x5b, + 0x2e, 0xee, 0xf0, 0x60, 0x56, 0x96, 0x7f, 0x9d, 0x46, 0x32, 0xf1, 0x01, 0x24, 0x72, 0xcd, 0x66, + 0xf1, 0x58, 0x2b, 0xd7, 0x2a, 0xa1, 0x99, 0xd8, 0x9e, 0x58, 0x03, 0x75, 0xd5, 0x2d, 0x27, 0xcc, + 0x84, 0xbc, 0xea, 0xc9, 0x45, 0xd6, 0xb0, 0x7b, 0xa4, 0xff, 0x8f, 0x04, 0x77, 0xad, 0xb7, 0x56, + 0x41, 0x2f, 0x4e, 0x3d, 0x23, 0x68, 0x8f, 0xa1, 0xb9, 0xf8, 0xdf, 0x30, 0x04, 0x97, 0x53, 0x9b, + 0x01, 0x04, 0xee, 0x25, 0xdd, 0x86, 0x45, 0x15, 0x77, 0x8c, 0x53, 0x3c, 0x25, 0x19, 0x61, 0x1d, + 0x87, 0xaf, 0x92, 0x4c, 0x70, 0xe8, 0xe8, 0x17, 0x02, 0xac, 0xf2, 0x47, 0x85, 0xc1, 0xf0, 0xd1, + 0x65, 0xe2, 0x9e, 0x3b, 0xb6, 0x78, 0x9a, 0xba, 0x7d, 0x06, 0x0f, 0x3e, 0x47, 0xaf, 0x86, 0x01, + 0xdd, 0x92, 0xd7, 0x29, 0xd0, 0x16, 0x71, 0xa2, 0x68, 0xeb, 0x16, 0x75, 0x25, 0xe9, 0xf9, 0x9d, + 0x00, 0xe7, 0x1d, 0xc0, 0xa3, 0xc7, 0x28, 0x0b, 0xbd, 0x72, 0x96, 0x5a, 0x90, 0x83, 0xfa, 0xd5, + 0xb3, 0x39, 0x71, 0xe0, 0xe1, 0x34, 0x97, 0xb7, 0xb2, 0xad, 0xb6, 0xf1, 0x44, 0x6b, 0x93, 0xeb, + 0x19, 0x71, 0x36, 0xcc, 0x96, 0xe5, 0x46, 0xff, 0x1d, 0x01, 0x36, 0xe8, 0x8a, 0x7f, 0x9b, 0x75, + 0xe9, 0x2e, 0xaa, 0x3c, 0xc3, 0x59, 0xeb, 0xa9, 0xca, 0xc8, 0xbb, 0x61, 0xb8, 0x36, 0xd1, 0x46, + 0xd6, 0x55, 0x9c, 0xc9, 0xf2, 0x50, 0xd9, 0x0e, 0xbe, 0xff, 0x1b, 0xe1, 0xe3, 0xdc, 0x37, 0x04, + 0xf4, 0x3a, 0xc4, 0xc9, 0x73, 0x55, 0x3a, 0x57, 0x29, 0xc8, 0x19, 0xb4, 0x7d, 0x62, 0xdb, 0x3d, + 0xeb, 0x5e, 0x36, 0xdb, 0xd2, 0xed, 0x93, 0xfe, 0x93, 0x9d, 0x86, 0xd1, 0xc9, 0x12, 0x0c, 0x43, + 0xc7, 0xde, 0xbb, 0xad, 0x2c, 0xe9, 0x66, 0x37, 0xfa, 0xf2, 0xce, 0xed, 0x8c, 0x10, 0xd9, 0x15, + 0xb5, 0x5e, 0xaf, 0xcd, 0x8f, 0x80, 0xec, 0x3b, 0x96, 0xd1, 0xf5, 0x4a, 0x5a, 0x66, 0xaf, 0x71, + 0x2f, 0x60, 0x73, 0x2f, 0x60, 0xf3, 0xf6, 0x8d, 0x69, 0x3d, 0xd2, 0x4f, 0xc8, 0x89, 0xe9, 0x93, + 0x79, 0x9a, 0xa6, 0x57, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0x36, 0xcf, 0xab, 0x40, 0x82, 0x2e, 0x00, 0x00, } @@ -2947,6 +2956,7 @@ type AuthServiceClient interface { // Authorization GetMyUserSessions(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*UserSessionViews, error) //User + GetMyUser(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*UserView, error) GetMyUserProfile(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*UserProfileView, error) UpdateMyUserProfile(ctx context.Context, in *UpdateUserProfileRequest, opts ...grpc.CallOption) (*UserProfile, error) GetMyUserEmail(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*UserEmailView, error) @@ -3016,6 +3026,15 @@ func (c *authServiceClient) GetMyUserSessions(ctx context.Context, in *empty.Emp return out, nil } +func (c *authServiceClient) GetMyUser(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*UserView, error) { + out := new(UserView) + err := c.cc.Invoke(ctx, "/caos.zitadel.auth.api.v1.AuthService/GetMyUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *authServiceClient) GetMyUserProfile(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*UserProfileView, error) { out := new(UserProfileView) err := c.cc.Invoke(ctx, "/caos.zitadel.auth.api.v1.AuthService/GetMyUserProfile", in, out, opts...) @@ -3205,6 +3224,7 @@ type AuthServiceServer interface { // Authorization GetMyUserSessions(context.Context, *empty.Empty) (*UserSessionViews, error) //User + GetMyUser(context.Context, *empty.Empty) (*UserView, error) GetMyUserProfile(context.Context, *empty.Empty) (*UserProfileView, error) UpdateMyUserProfile(context.Context, *UpdateUserProfileRequest) (*UserProfile, error) GetMyUserEmail(context.Context, *empty.Empty) (*UserEmailView, error) @@ -3246,6 +3266,9 @@ func (*UnimplementedAuthServiceServer) Validate(ctx context.Context, req *empty. func (*UnimplementedAuthServiceServer) GetMyUserSessions(ctx context.Context, req *empty.Empty) (*UserSessionViews, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserSessions not implemented") } +func (*UnimplementedAuthServiceServer) GetMyUser(ctx context.Context, req *empty.Empty) (*UserView, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMyUser not implemented") +} func (*UnimplementedAuthServiceServer) GetMyUserProfile(ctx context.Context, req *empty.Empty) (*UserProfileView, error) { return nil, status.Errorf(codes.Unimplemented, "method GetMyUserProfile not implemented") } @@ -3383,6 +3406,24 @@ func _AuthService_GetMyUserSessions_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _AuthService_GetMyUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(empty.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetMyUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/caos.zitadel.auth.api.v1.AuthService/GetMyUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetMyUser(ctx, req.(*empty.Empty)) + } + return interceptor(ctx, in, info, handler) +} + func _AuthService_GetMyUserProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(empty.Empty) if err := dec(in); err != nil { @@ -3763,6 +3804,10 @@ var _AuthService_serviceDesc = grpc.ServiceDesc{ MethodName: "GetMyUserSessions", Handler: _AuthService_GetMyUserSessions_Handler, }, + { + MethodName: "GetMyUser", + Handler: _AuthService_GetMyUser_Handler, + }, { MethodName: "GetMyUserProfile", Handler: _AuthService_GetMyUserProfile_Handler, diff --git a/pkg/auth/api/grpc/auth.pb.gw.go b/pkg/auth/api/grpc/auth.pb.gw.go index 1b8eebc3b9..1c7f992552 100644 --- a/pkg/auth/api/grpc/auth.pb.gw.go +++ b/pkg/auth/api/grpc/auth.pb.gw.go @@ -101,6 +101,24 @@ func local_request_AuthService_GetMyUserSessions_0(ctx context.Context, marshale } +func request_AuthService_GetMyUser_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := client.GetMyUser(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetMyUser_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq empty.Empty + var metadata runtime.ServerMetadata + + msg, err := server.GetMyUser(ctx, &protoReq) + return msg, metadata, err + +} + func request_AuthService_GetMyUserProfile_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq empty.Empty var metadata runtime.ServerMetadata @@ -754,6 +772,26 @@ func RegisterAuthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("GET", pattern_AuthService_GetMyUser_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetMyUser_0(rctx, inboundMarshaler, server, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetMyUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AuthService_GetMyUserProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1275,6 +1313,26 @@ func RegisterAuthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("GET", pattern_AuthService_GetMyUser_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetMyUser_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetMyUser_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_AuthService_GetMyUserProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1687,6 +1745,8 @@ var ( pattern_AuthService_GetMyUserSessions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"me", "usersessions"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AuthService_GetMyUser_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"users", "me"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_AuthService_GetMyUserProfile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"users", "me", "profile"}, "", runtime.AssumeColonVerbOpt(true))) pattern_AuthService_UpdateMyUserProfile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"users", "me", "profile"}, "", runtime.AssumeColonVerbOpt(true))) @@ -1737,6 +1797,8 @@ var ( forward_AuthService_GetMyUserSessions_0 = runtime.ForwardResponseMessage + forward_AuthService_GetMyUser_0 = runtime.ForwardResponseMessage + forward_AuthService_GetMyUserProfile_0 = runtime.ForwardResponseMessage forward_AuthService_UpdateMyUserProfile_0 = runtime.ForwardResponseMessage diff --git a/pkg/auth/api/grpc/auth.swagger.json b/pkg/auth/api/grpc/auth.swagger.json index bfb383bc2b..78d0f6c470 100644 --- a/pkg/auth/api/grpc/auth.swagger.json +++ b/pkg/auth/api/grpc/auth.swagger.json @@ -138,6 +138,23 @@ ] } }, + "/users/me": { + "get": { + "summary": "User", + "operationId": "GetMyUser", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1UserView" + } + } + }, + "tags": [ + "AuthService" + ] + } + }, "/users/me/address": { "get": { "operationId": "GetMyUserAddress", @@ -474,7 +491,6 @@ }, "/users/me/profile": { "get": { - "summary": "User", "operationId": "GetMyUserProfile", "responses": { "200": { @@ -1170,6 +1186,12 @@ "sequence": { "type": "string", "format": "uint64" + }, + "login_name": { + "type": "string" + }, + "display_name": { + "type": "string" } } }, @@ -1184,6 +1206,112 @@ } } }, + "v1UserState": { + "type": "string", + "enum": [ + "USERSTATE_UNSPECIFIED", + "USERSTATE_ACTIVE", + "USERSTATE_INACTIVE", + "USERSTATE_DELETED", + "USERSTATE_LOCKED", + "USERSTATE_SUSPEND", + "USERSTATE_INITIAL" + ], + "default": "USERSTATE_UNSPECIFIED" + }, + "v1UserView": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "state": { + "$ref": "#/definitions/v1UserState" + }, + "creation_date": { + "type": "string", + "format": "date-time" + }, + "change_date": { + "type": "string", + "format": "date-time" + }, + "last_login": { + "type": "string", + "format": "date-time" + }, + "password_changed": { + "type": "string", + "format": "date-time" + }, + "user_name": { + "type": "string" + }, + "first_name": { + "type": "string" + }, + "last_name": { + "type": "string" + }, + "display_name": { + "type": "string" + }, + "nick_name": { + "type": "string" + }, + "preferred_language": { + "type": "string" + }, + "gender": { + "$ref": "#/definitions/v1Gender" + }, + "email": { + "type": "string" + }, + "is_email_verified": { + "type": "boolean", + "format": "boolean" + }, + "phone": { + "type": "string" + }, + "is_phone_verified": { + "type": "boolean", + "format": "boolean" + }, + "country": { + "type": "string" + }, + "locality": { + "type": "string" + }, + "postal_code": { + "type": "string" + }, + "region": { + "type": "string" + }, + "street_address": { + "type": "string" + }, + "sequence": { + "type": "string", + "format": "uint64" + }, + "resource_owner": { + "type": "string" + }, + "login_names": { + "type": "array", + "items": { + "type": "string" + } + }, + "preferred_login_name": { + "type": "string" + } + } + }, "v1VerifyMfaOtp": { "type": "object", "properties": { diff --git a/pkg/auth/api/grpc/mock/auth.proto.mock.go b/pkg/auth/api/grpc/mock/auth.proto.mock.go index 0f89934bec..5ca07f2d8d 100644 --- a/pkg/auth/api/grpc/mock/auth.proto.mock.go +++ b/pkg/auth/api/grpc/mock/auth.proto.mock.go @@ -137,6 +137,26 @@ func (mr *MockAuthServiceClientMockRecorder) GetMyMfas(arg0, arg1 interface{}, a return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMyMfas", reflect.TypeOf((*MockAuthServiceClient)(nil).GetMyMfas), varargs...) } +// GetMyUser mocks base method +func (m *MockAuthServiceClient) GetMyUser(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc0.CallOption) (*grpc.UserView, error) { + m.ctrl.T.Helper() + varargs := []interface{}{arg0, arg1} + for _, a := range arg2 { + varargs = append(varargs, a) + } + ret := m.ctrl.Call(m, "GetMyUser", varargs...) + ret0, _ := ret[0].(*grpc.UserView) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetMyUser indicates an expected call of GetMyUser +func (mr *MockAuthServiceClientMockRecorder) GetMyUser(arg0, arg1 interface{}, arg2 ...interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + varargs := append([]interface{}{arg0, arg1}, arg2...) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMyUser", reflect.TypeOf((*MockAuthServiceClient)(nil).GetMyUser), varargs...) +} + // GetMyUserAddress mocks base method func (m *MockAuthServiceClient) GetMyUserAddress(arg0 context.Context, arg1 *emptypb.Empty, arg2 ...grpc0.CallOption) (*grpc.UserAddressView, error) { m.ctrl.T.Helper() diff --git a/pkg/auth/api/grpc/user.go b/pkg/auth/api/grpc/user.go index 17f0ea5da0..1da3b0ea83 100644 --- a/pkg/auth/api/grpc/user.go +++ b/pkg/auth/api/grpc/user.go @@ -8,6 +8,14 @@ import ( "github.com/caos/zitadel/internal/errors" ) +func (s *Server) GetMyUser(ctx context.Context, _ *empty.Empty) (*UserView, error) { + user, err := s.repo.MyUser(ctx) + if err != nil { + return nil, err + } + return userViewFromModel(user), nil +} + func (s *Server) GetMyUserProfile(ctx context.Context, _ *empty.Empty) (*UserProfileView, error) { profile, err := s.repo.MyProfile(ctx) if err != nil { diff --git a/pkg/auth/api/grpc/user_converter.go b/pkg/auth/api/grpc/user_converter.go index 3b36abe6d5..51bc1800e6 100644 --- a/pkg/auth/api/grpc/user_converter.go +++ b/pkg/auth/api/grpc/user_converter.go @@ -11,6 +11,49 @@ import ( "golang.org/x/text/language" ) +func userViewFromModel(user *usr_model.UserView) *UserView { + creationDate, err := ptypes.TimestampProto(user.CreationDate) + logging.Log("GRPC-sd32g").OnError(err).Debug("unable to parse timestamp") + + changeDate, err := ptypes.TimestampProto(user.ChangeDate) + logging.Log("GRPC-FJKq1").OnError(err).Debug("unable to parse timestamp") + + lastLogin, err := ptypes.TimestampProto(user.LastLogin) + logging.Log("GRPC-Gteh2").OnError(err).Debug("unable to parse timestamp") + + passwordChanged, err := ptypes.TimestampProto(user.PasswordChanged) + logging.Log("GRPC-fgQFT").OnError(err).Debug("unable to parse timestamp") + + return &UserView{ + Id: user.ID, + State: userStateFromModel(user.State), + CreationDate: creationDate, + ChangeDate: changeDate, + LastLogin: lastLogin, + PasswordChanged: passwordChanged, + UserName: user.UserName, + FirstName: user.FirstName, + LastName: user.LastName, + DisplayName: user.DisplayName, + NickName: user.NickName, + PreferredLanguage: user.PreferredLanguage, + Gender: genderFromModel(user.Gender), + Email: user.Email, + IsEmailVerified: user.IsEmailVerified, + Phone: user.Phone, + IsPhoneVerified: user.IsPhoneVerified, + Country: user.Country, + Locality: user.Locality, + PostalCode: user.PostalCode, + Region: user.Region, + StreetAddress: user.StreetAddress, + Sequence: user.Sequence, + ResourceOwner: user.ResourceOwner, + LoginNames: user.LoginNames, + PreferredLoginName: user.PreferredLoginName, + } +} + func profileFromModel(profile *usr_model.Profile) *UserProfile { creationDate, err := ptypes.TimestampProto(profile.CreationDate) logging.Log("GRPC-56t5s").OnError(err).Debug("unable to parse timestamp") @@ -213,6 +256,23 @@ func otpFromModel(otp *usr_model.OTP) *MfaOtpResponse { } } +func userStateFromModel(state usr_model.UserState) UserState { + switch state { + case usr_model.USERSTATE_ACTIVE: + return UserState_USERSTATE_ACTIVE + case usr_model.USERSTATE_INACTIVE: + return UserState_USERSTATE_INACTIVE + case usr_model.USERSTATE_LOCKED: + return UserState_USERSTATE_LOCKED + case usr_model.USERSTATE_INITIAL: + return UserState_USERSTATE_INITIAL + case usr_model.USERSTATE_SUSPEND: + return UserState_USERSTATE_SUSPEND + default: + return UserState_USERSTATE_UNSPECIFIED + } +} + func genderFromModel(gender usr_model.Gender) Gender { switch gender { case usr_model.GENDER_FEMALE: diff --git a/pkg/auth/api/grpc/user_session_converter.go b/pkg/auth/api/grpc/user_session_converter.go index 3b21ba6fcc..547c2b14f5 100644 --- a/pkg/auth/api/grpc/user_session_converter.go +++ b/pkg/auth/api/grpc/user_session_converter.go @@ -15,11 +15,13 @@ func userSessionViewsFromModel(userSessions []*usr_model.UserSessionView) []*Use func userSessionViewFromModel(userSession *usr_model.UserSessionView) *UserSessionView { return &UserSessionView{ - Sequence: userSession.Sequence, - AgentId: userSession.UserAgentID, - UserId: userSession.UserID, - UserName: userSession.UserName, - AuthState: userSessionStateFromModel(userSession.State), + Sequence: userSession.Sequence, + AgentId: userSession.UserAgentID, + UserId: userSession.UserID, + UserName: userSession.UserName, + LoginName: userSession.LoginName, + DisplayName: userSession.DisplayName, + AuthState: userSessionStateFromModel(userSession.State), } } diff --git a/pkg/auth/api/proto/auth.proto b/pkg/auth/api/proto/auth.proto index b39b091a67..a774e1fb93 100644 --- a/pkg/auth/api/proto/auth.proto +++ b/pkg/auth/api/proto/auth.proto @@ -62,6 +62,16 @@ service AuthService { } //User + rpc GetMyUser(google.protobuf.Empty) returns (UserView) { + option (google.api.http) = { + get: "/users/me" + }; + + option (caos.zitadel.utils.v1.auth_option) = { + permission: "authenticated" + }; + } + rpc GetMyUserProfile(google.protobuf.Empty) returns (UserProfileView) { option (google.api.http) = { get: "/users/me/profile" @@ -286,6 +296,8 @@ message UserSessionView { string user_id = 4; string user_name = 5; uint64 sequence = 6; + string login_name = 7; + string display_name = 8; } enum UserSessionState { @@ -300,38 +312,37 @@ enum OIDCResponseType { OIDCRESPONSETYPE_ID_TOKEN_TOKEN = 2; } -message User { +message UserView { string id = 1; UserState state = 2; google.protobuf.Timestamp creation_date = 3; - google.protobuf.Timestamp activation_date = 4; - google.protobuf.Timestamp change_date = 5; - google.protobuf.Timestamp last_login = 6; - google.protobuf.Timestamp password_changed = 7; - string user_name = 8; - string first_name = 9; - string last_name = 10; + google.protobuf.Timestamp change_date = 4; + google.protobuf.Timestamp last_login = 5; + google.protobuf.Timestamp password_changed = 6; + string user_name = 7; + string first_name = 8; + string last_name = 9; + string display_name = 10; string nick_name = 11; - string display_name = 12; - string preferred_language = 13; - Gender gender = 14; - string email = 15; - bool is_email_verified = 16; - string phone = 17; - bool is_phone_verified = 18; - string country = 19; - string locality = 20; - string postal_code = 21; - string region = 22; - string street_address = 23; - bool password_change_required = 24; - uint64 sequence = 25; - repeated string login_names = 26; - string preferred_login_name = 27; + string preferred_language = 12; + Gender gender = 13; + string email = 14; + bool is_email_verified = 15; + string phone = 16; + bool is_phone_verified = 17; + string country = 18; + string locality = 19; + string postal_code = 20; + string region = 21; + string street_address = 22; + uint64 sequence = 23; + string resource_owner = 24; + repeated string login_names = 25; + string preferred_login_name = 26; } enum UserState { - USERSTATE_UNSPECIEFIED = 0; + USERSTATE_UNSPECIFIED = 0; USERSTATE_ACTIVE = 1; USERSTATE_INACTIVE = 2; USERSTATE_DELETED = 3; diff --git a/pkg/management/api/grpc/management.pb.go b/pkg/management/api/grpc/management.pb.go index 68e1935928..efb05e3089 100644 --- a/pkg/management/api/grpc/management.pb.go +++ b/pkg/management/api/grpc/management.pb.go @@ -1737,7 +1737,7 @@ type UserView struct { Sequence uint64 `protobuf:"varint,23,opt,name=sequence,proto3" json:"sequence,omitempty"` ResourceOwner string `protobuf:"bytes,24,opt,name=resource_owner,json=resourceOwner,proto3" json:"resource_owner,omitempty"` LoginNames []string `protobuf:"bytes,25,rep,name=login_names,json=loginNames,proto3" json:"login_names,omitempty"` - PreferredLoginName string `protobuf:"bytes,27,opt,name=preferred_login_name,json=preferredLoginName,proto3" json:"preferred_login_name,omitempty"` + PreferredLoginName string `protobuf:"bytes,26,opt,name=preferred_login_name,json=preferredLoginName,proto3" json:"preferred_login_name,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -10296,7 +10296,7 @@ func init() { func init() { proto.RegisterFile("management.proto", fileDescriptor_edc174f991dc0a25) } var fileDescriptor_edc174f991dc0a25 = []byte{ - // 8888 bytes of a gzipped FileDescriptorProto + // 8891 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x79, 0x6c, 0x1c, 0x59, 0x7a, 0xdf, 0x54, 0x77, 0xf3, 0xfa, 0x78, 0x35, 0x1f, 0xaf, 0x56, 0x53, 0xa2, 0x38, 0x35, 0xd2, 0x48, 0x6a, 0x49, 0x6c, 0x89, 0x33, 0xa3, 0x39, 0xe4, 0x1d, 0x4d, 0x8b, 0xdd, 0xa2, 0xda, 0x43, @@ -10383,476 +10383,476 @@ var fileDescriptor_edc174f991dc0a25 = []byte{ 0xe8, 0xe6, 0x74, 0x80, 0x6e, 0xce, 0x04, 0xe9, 0xe6, 0xac, 0xc3, 0xc1, 0x3d, 0x0b, 0x63, 0x9a, 0xaa, 0xb7, 0x3a, 0x1a, 0x8e, 0x03, 0x1e, 0x36, 0x55, 0x2d, 0x95, 0xa2, 0x4d, 0x98, 0xa9, 0x25, 0x9c, 0x88, 0x21, 0x12, 0x09, 0x27, 0x23, 0xad, 0xa7, 0x4e, 0x2c, 0xc4, 0x31, 0x44, 0x92, 0x84, - 0xc7, 0x5a, 0x47, 0x57, 0x60, 0x8a, 0x1b, 0x6c, 0xab, 0x68, 0x6a, 0x8e, 0xb4, 0x66, 0x0b, 0xc2, - 0xaa, 0x59, 0x45, 0xfe, 0x63, 0x09, 0x26, 0x88, 0x32, 0xab, 0x8a, 0x56, 0xdd, 0x31, 0xdd, 0x3c, - 0x3b, 0x42, 0x90, 0xbc, 0x23, 0x84, 0x18, 0x1f, 0xc5, 0x7c, 0x0e, 0xc6, 0xf4, 0x96, 0x66, 0xd4, - 0x9b, 0xdb, 0x95, 0x6a, 0xab, 0xd1, 0xd9, 0x6d, 0x12, 0xe5, 0x1f, 0x5b, 0xba, 0x1c, 0xca, 0x8a, - 0x90, 0x8e, 0x5f, 0x57, 0xf7, 0xc8, 0xa4, 0xbf, 0x2f, 0xc5, 0x16, 0x9e, 0x2a, 0x8f, 0xb2, 0xe6, - 0x96, 0x49, 0x6b, 0x28, 0x09, 0x71, 0x45, 0xaf, 0xb2, 0x70, 0x0c, 0xff, 0x8b, 0x8a, 0x30, 0xf0, - 0x85, 0x8e, 0xaa, 0xd5, 0x55, 0x3d, 0xd5, 0x47, 0x62, 0xa0, 0x6c, 0xf8, 0xae, 0xde, 0xe8, 0xa8, - 0xda, 0x5e, 0xd9, 0xac, 0x2f, 0x7f, 0x28, 0xc1, 0xb8, 0x23, 0x13, 0x15, 0x21, 0x7e, 0x5f, 0xdd, - 0x23, 0xb4, 0x1f, 0x82, 0x0a, 0xdc, 0x06, 0xca, 0x43, 0xff, 0xae, 0x6a, 0xec, 0xb4, 0x6a, 0xcc, - 0xb2, 0x5e, 0x0a, 0x6a, 0x8d, 0xb6, 0xb4, 0x46, 0xea, 0x94, 0x59, 0x5d, 0xcc, 0xf7, 0x07, 0x4a, - 0xa3, 0xc3, 0xdc, 0xe3, 0x32, 0xfd, 0x21, 0xff, 0xa2, 0x04, 0x88, 0x1f, 0x3b, 0xe6, 0xd6, 0x47, - 0x1b, 0xbc, 0xa7, 0x61, 0xc4, 0x68, 0x61, 0xa9, 0xd7, 0x54, 0xbd, 0xd3, 0x30, 0x63, 0xbf, 0x61, - 0x92, 0x56, 0x26, 0x49, 0xe8, 0x35, 0x2c, 0xf8, 0x24, 0x33, 0x41, 0x98, 0x7d, 0x3e, 0x0c, 0x47, - 0xf0, 0x34, 0x53, 0x66, 0xf5, 0xe4, 0xdf, 0x88, 0xd3, 0x28, 0x68, 0x43, 0x6b, 0xdd, 0xab, 0x37, - 0x54, 0xaf, 0xd0, 0xcb, 0x19, 0x2d, 0xf8, 0x1a, 0xc8, 0xb8, 0xc3, 0x40, 0xce, 0xb9, 0xa2, 0x02, - 0xce, 0xfa, 0x39, 0xad, 0x67, 0x9f, 0xdb, 0x7a, 0x7a, 0x1b, 0xc8, 0xfe, 0x60, 0x03, 0x39, 0xd0, - 0x93, 0x81, 0x14, 0x26, 0x8a, 0x41, 0xc7, 0x44, 0xc1, 0xdb, 0x88, 0x21, 0x87, 0x8d, 0x70, 0xcd, - 0xb0, 0x70, 0xb8, 0x19, 0x76, 0x38, 0xca, 0x0c, 0x2b, 0xff, 0x6c, 0x82, 0xaa, 0x09, 0x1b, 0x41, - 0x4f, 0x27, 0xe2, 0xd3, 0x51, 0x7c, 0xcc, 0x47, 0xd1, 0x39, 0x81, 0x8c, 0x1c, 0xc1, 0x04, 0xf2, - 0xf3, 0x31, 0x48, 0xdd, 0x69, 0xd7, 0xd8, 0x3a, 0x01, 0x13, 0x0f, 0xbf, 0xc5, 0xb1, 0x4f, 0xe0, - 0xaa, 0x80, 0xfc, 0x7f, 0x25, 0x18, 0xb2, 0x56, 0x80, 0x5c, 0x1c, 0x99, 0x12, 0xd6, 0x6e, 0xba, - 0xfa, 0x4b, 0x71, 0x6f, 0x7f, 0x89, 0x97, 0xb6, 0x44, 0x90, 0xb4, 0xf5, 0x1d, 0x4e, 0xda, 0xfa, - 0x23, 0xd9, 0x8c, 0xff, 0x27, 0xc1, 0xa8, 0x45, 0xb9, 0xa7, 0xc5, 0x78, 0x92, 0xa9, 0x7f, 0x00, - 0x33, 0xb6, 0x5e, 0x10, 0xd0, 0x7e, 0x5a, 0x11, 0xb8, 0x7e, 0x17, 0x85, 0x23, 0x96, 0xbc, 0x11, - 0x9f, 0xd8, 0x8b, 0xe3, 0xd4, 0xbb, 0x8e, 0x05, 0x7a, 0xd7, 0x71, 0x6f, 0xef, 0x9a, 0xe7, 0x78, - 0x5f, 0x10, 0xc7, 0xfb, 0x0f, 0xc7, 0xf1, 0x81, 0x9e, 0xe4, 0x8d, 0xe2, 0xf5, 0x91, 0xb7, 0x27, - 0x96, 0xfa, 0x0e, 0x2f, 0x6f, 0x04, 0xb4, 0x9f, 0xbc, 0x9d, 0x16, 0xb8, 0x70, 0x73, 0xe8, 0xa3, - 0x9b, 0xfd, 0x5a, 0x22, 0x29, 0x05, 0xac, 0x2c, 0x7a, 0x33, 0x44, 0xfe, 0x17, 0x31, 0xea, 0xda, - 0x99, 0x61, 0x8e, 0xb3, 0x33, 0x2e, 0x18, 0x8b, 0xf9, 0x07, 0x63, 0xf1, 0xee, 0xc1, 0x58, 0xa2, - 0x4b, 0x30, 0xd6, 0x17, 0x10, 0x8c, 0xf5, 0x07, 0x05, 0x63, 0x03, 0x41, 0xc3, 0x38, 0x78, 0xb8, - 0x61, 0x1c, 0x8a, 0x34, 0x8c, 0x3f, 0x88, 0x51, 0x47, 0x8b, 0x21, 0xf5, 0x14, 0xe3, 0x4f, 0x79, - 0x1a, 0x8d, 0xa7, 0xff, 0x53, 0xe2, 0x7d, 0x14, 0x86, 0xd7, 0x4f, 0x3b, 0x64, 0x07, 0x73, 0x83, - 0x96, 0xca, 0xe3, 0x61, 0x97, 0xca, 0x13, 0xa1, 0x96, 0xca, 0xfb, 0x42, 0x2f, 0x95, 0xf7, 0x77, - 0x5d, 0x2a, 0x97, 0x4b, 0x30, 0xb2, 0xd6, 0x69, 0x18, 0xf5, 0x5b, 0x4a, 0xd5, 0x68, 0x69, 0x3a, - 0xba, 0x01, 0x89, 0xdd, 0x7b, 0x8a, 0xb9, 0x69, 0x78, 0x31, 0xc8, 0x8b, 0xe1, 0xea, 0x96, 0x49, - 0x45, 0xf9, 0x4b, 0x12, 0x0c, 0x73, 0xa9, 0xe8, 0x3a, 0x24, 0xc8, 0x56, 0x1e, 0x0d, 0x93, 0xcf, - 0x05, 0x36, 0x78, 0x4f, 0xd9, 0xda, 0x6b, 0xab, 0x65, 0x52, 0x09, 0xbd, 0x2a, 0x2e, 0x38, 0x06, - 0x86, 0x94, 0x6b, 0xb7, 0x72, 0xfc, 0x7a, 0xa3, 0x7c, 0x12, 0x60, 0x83, 0x2d, 0xc1, 0x79, 0x6c, - 0xba, 0xdd, 0x86, 0x71, 0x33, 0xd7, 0x6f, 0x98, 0xcf, 0x72, 0x3b, 0x09, 0x0e, 0x3b, 0xc8, 0xef, - 0x25, 0x3c, 0x0b, 0x53, 0x65, 0x55, 0x57, 0x8d, 0x80, 0xe6, 0xe4, 0x07, 0x30, 0xbf, 0x69, 0x97, - 0x5a, 0x6f, 0x19, 0xf5, 0x7b, 0x6c, 0xa7, 0xd1, 0x0f, 0x40, 0x9e, 0xb1, 0x8f, 0x32, 0xe0, 0x4a, - 0x10, 0x03, 0xf8, 0x26, 0x6d, 0x3e, 0xca, 0x97, 0x20, 0x6d, 0x76, 0xba, 0xdc, 0xda, 0x6d, 0x37, - 0xd4, 0x77, 0xea, 0xc6, 0xde, 0x46, 0xab, 0x51, 0xaf, 0xee, 0x79, 0xf0, 0xe5, 0x0f, 0xe3, 0x90, - 0xf2, 0x2b, 0xee, 0xe1, 0x96, 0x0c, 0x9b, 0x1b, 0xf6, 0x58, 0x30, 0x63, 0x2c, 0xe8, 0xb2, 0x93, - 0x50, 0xce, 0x1c, 0x44, 0xba, 0xde, 0x13, 0x28, 0x53, 0xb4, 0xa3, 0xee, 0xeb, 0xc6, 0x89, 0xc3, - 0x19, 0x86, 0xbe, 0xa8, 0x7b, 0xd2, 0xbb, 0xf5, 0x66, 0xa5, 0xa1, 0x36, 0xb7, 0x8d, 0x1d, 0xa2, - 0x50, 0x89, 0xf2, 0xd0, 0x6e, 0xbd, 0xb9, 0x4a, 0x12, 0xd0, 0x33, 0x30, 0xba, 0xa3, 0xe8, 0x95, - 0x46, 0xeb, 0xa1, 0xaa, 0x55, 0x15, 0x9d, 0x9a, 0xb5, 0xc1, 0xf2, 0xc8, 0x8e, 0xa2, 0xaf, 0x9a, - 0x69, 0x66, 0xa1, 0x4e, 0xbb, 0xcd, 0x0a, 0x0d, 0x5a, 0x85, 0xee, 0x98, 0x69, 0xb8, 0x23, 0x5c, - 0xa8, 0xd9, 0xd9, 0x7d, 0x5b, 0xd5, 0x88, 0xf5, 0x1a, 0x2c, 0x0f, 0xed, 0x28, 0xfa, 0x3a, 0x49, - 0x30, 0xb3, 0xf5, 0xbd, 0xdd, 0xb7, 0x5b, 0x0d, 0xb6, 0x87, 0x87, 0xb3, 0x37, 0x49, 0x82, 0x60, - 0x59, 0x87, 0x1d, 0x96, 0xf5, 0x14, 0x40, 0x5d, 0xaf, 0xd4, 0xd4, 0x7b, 0x4a, 0xa7, 0x61, 0x90, - 0x75, 0xdd, 0xc1, 0xf2, 0x50, 0x5d, 0xcf, 0xd3, 0x04, 0xf9, 0x7f, 0x49, 0x30, 0xef, 0x37, 0xe2, - 0x74, 0x7b, 0x17, 0x65, 0xc4, 0x71, 0x96, 0x78, 0xb3, 0xf2, 0xbf, 0xe3, 0xe2, 0x88, 0x8b, 0x0c, - 0x8b, 0x05, 0x32, 0x2c, 0x1e, 0x86, 0x61, 0x89, 0x40, 0x86, 0xf5, 0x75, 0x67, 0x58, 0xbf, 0x83, - 0x61, 0xf2, 0xfb, 0x31, 0x7f, 0xaa, 0xe9, 0x44, 0xe0, 0x92, 0xf6, 0x8c, 0x87, 0xb4, 0x87, 0xe3, - 0x42, 0x3c, 0x90, 0x0b, 0x89, 0x30, 0x5c, 0xe8, 0x0b, 0xe4, 0x42, 0x7f, 0x77, 0x2e, 0x0c, 0x38, - 0xb9, 0x70, 0x16, 0x26, 0x4d, 0x26, 0xe4, 0xb6, 0x55, 0x5f, 0xa3, 0xf0, 0xe5, 0x38, 0x4c, 0xb8, - 0xca, 0x7d, 0x12, 0xad, 0xc1, 0x02, 0x8c, 0xec, 0x2a, 0xef, 0x54, 0x14, 0x52, 0x7b, 0x4f, 0x67, - 0xf6, 0x00, 0x76, 0x95, 0x77, 0x72, 0xb8, 0xc4, 0x9e, 0x8e, 0xce, 0x43, 0x52, 0x7d, 0xa7, 0x5d, - 0xd7, 0xd4, 0xca, 0x43, 0x45, 0x6b, 0xd2, 0x52, 0xd4, 0xd5, 0x19, 0xa3, 0xe9, 0x77, 0x15, 0xad, - 0x49, 0x4a, 0xf2, 0x2a, 0x3b, 0xd8, 0x55, 0x65, 0x87, 0x9c, 0x2a, 0xfb, 0x15, 0x09, 0x66, 0x5d, - 0xe3, 0xd1, 0x83, 0xae, 0x3a, 0xc9, 0x89, 0x85, 0x22, 0x27, 0xee, 0x45, 0x8e, 0xfc, 0x6d, 0x2f, - 0x4c, 0x47, 0xa0, 0x49, 0x4e, 0x8c, 0xf1, 0x50, 0x18, 0x13, 0x9e, 0x18, 0x2f, 0xd8, 0x10, 0x57, - 0x5b, 0xd5, 0xfb, 0xad, 0x8e, 0xe1, 0x2b, 0xf2, 0xdf, 0x88, 0xc3, 0xb4, 0x67, 0xd9, 0x4f, 0xa2, - 0xd8, 0x3f, 0xcd, 0xc6, 0xc0, 0x30, 0xd4, 0xdd, 0xb6, 0x61, 0x8a, 0xfd, 0x30, 0x1e, 0x03, 0x96, - 0x84, 0x9e, 0x83, 0x19, 0x7d, 0xa7, 0xf5, 0xb0, 0xd2, 0x68, 0x55, 0xef, 0x57, 0x5a, 0x1d, 0xa3, - 0x72, 0x4f, 0xa9, 0x37, 0x3a, 0x9a, 0xaa, 0x33, 0xa3, 0x33, 0x89, 0x73, 0x31, 0x23, 0x4b, 0x1d, - 0xe3, 0x16, 0xcb, 0x3a, 0x8c, 0x0a, 0x7c, 0x5b, 0x82, 0x39, 0xcf, 0xf1, 0xe9, 0x41, 0x0d, 0x9c, - 0xe4, 0xc5, 0xa2, 0x90, 0x17, 0xf7, 0x25, 0x4f, 0xfe, 0x65, 0x3f, 0x8c, 0x47, 0xa0, 0x16, 0x4e, - 0xcc, 0xf1, 0x28, 0x98, 0x13, 0xfe, 0x98, 0x67, 0xa1, 0xaf, 0xa4, 0x6d, 0x7b, 0x28, 0xc4, 0xfb, - 0x31, 0x88, 0x97, 0xb4, 0x6d, 0x17, 0xe8, 0xa8, 0x6e, 0x7a, 0x49, 0xdb, 0x7e, 0x8c, 0x8e, 0x05, - 0x20, 0x48, 0x70, 0xfb, 0x05, 0xe4, 0x7f, 0x41, 0x2a, 0xfb, 0x1d, 0x47, 0x24, 0xde, 0x00, 0x28, - 0x69, 0xdb, 0xf9, 0xd6, 0xae, 0x52, 0x6f, 0xea, 0x68, 0x19, 0x06, 0x6a, 0xf4, 0x5f, 0x16, 0x33, - 0x5d, 0x08, 0x41, 0x3d, 0xad, 0x5c, 0x36, 0x6b, 0xca, 0x5f, 0x8a, 0xc1, 0x90, 0x95, 0x8c, 0xa6, - 0xa1, 0x5f, 0x38, 0xc6, 0xda, 0xd7, 0x22, 0x07, 0x58, 0x5d, 0x5c, 0x8a, 0x1d, 0x8e, 0x4b, 0xf1, - 0x48, 0x5c, 0x9a, 0x81, 0x7e, 0x8a, 0xd6, 0x3c, 0x5d, 0x49, 0x7f, 0x61, 0x4e, 0x59, 0x8b, 0x3f, - 0xd4, 0x39, 0xb1, 0x7e, 0xa3, 0x14, 0x0c, 0xb4, 0xb5, 0xfa, 0xae, 0xa2, 0xed, 0x31, 0xaf, 0xc4, - 0xfc, 0xd9, 0x6d, 0x15, 0x40, 0xfe, 0xe9, 0x18, 0x8c, 0x5a, 0xcc, 0x20, 0x2b, 0x1b, 0x9f, 0x70, - 0x86, 0xbc, 0x0c, 0x93, 0xb9, 0x5a, 0xcd, 0x16, 0x1b, 0x16, 0x2a, 0xca, 0x16, 0x00, 0xf7, 0x11, - 0x4b, 0x96, 0x23, 0xff, 0x18, 0xcc, 0x94, 0xd5, 0xdd, 0xd6, 0x03, 0xb5, 0xa7, 0xda, 0xbf, 0x2c, - 0xc1, 0xac, 0x55, 0xf1, 0xb8, 0xf7, 0x8f, 0x0b, 0x8e, 0xfd, 0xe3, 0xcb, 0xa1, 0xf5, 0x48, 0xd8, - 0x44, 0xfe, 0x59, 0x09, 0x66, 0x5c, 0x98, 0x7b, 0x39, 0xaf, 0xb0, 0x6e, 0x9f, 0x1e, 0x88, 0x13, - 0x40, 0xcf, 0x87, 0x06, 0xe4, 0x79, 0x84, 0xe0, 0x1f, 0x48, 0x30, 0xe5, 0x55, 0x02, 0xad, 0xf3, - 0xe7, 0x08, 0x96, 0x22, 0x76, 0xf2, 0x88, 0x0f, 0x13, 0x3c, 0x0b, 0x63, 0x25, 0x6d, 0x7b, 0x4d, - 0xc5, 0x81, 0x45, 0xb9, 0xd5, 0x50, 0x75, 0x5c, 0x4e, 0xc3, 0xff, 0x10, 0xeb, 0x37, 0x54, 0xa6, - 0x3f, 0xe4, 0xdf, 0x91, 0x88, 0x41, 0xa3, 0x05, 0xd1, 0x2c, 0x0c, 0x90, 0x7d, 0x50, 0x4b, 0x81, - 0xfb, 0xf1, 0x4f, 0x7a, 0xde, 0x9d, 0x56, 0x8e, 0x71, 0x95, 0x0f, 0xa7, 0x96, 0x87, 0xf6, 0x92, - 0xba, 0xac, 0xdd, 0xcb, 0x79, 0x53, 0x13, 0x19, 0x07, 0x98, 0x60, 0x45, 0xa3, 0x4f, 0x5e, 0x81, - 0x19, 0x7a, 0x20, 0xec, 0xb0, 0x0d, 0x5d, 0xe5, 0xb4, 0x3b, 0x5c, 0x43, 0xa6, 0x4a, 0xd3, 0xd2, - 0x8f, 0xa3, 0x4a, 0x53, 0x64, 0x82, 0x4a, 0xff, 0x13, 0x3a, 0x21, 0xd8, 0x39, 0x4f, 0x8c, 0x40, - 0x89, 0x27, 0x04, 0xfa, 0x1d, 0x27, 0x04, 0xa6, 0x84, 0x93, 0xe2, 0xe6, 0x2e, 0xdf, 0x21, 0x8e, - 0x09, 0x9a, 0xc6, 0x51, 0x1c, 0xfd, 0x47, 0x66, 0x1c, 0xf9, 0x6e, 0xbd, 0x8d, 0xa3, 0xab, 0x44, - 0x74, 0xe3, 0xc8, 0x37, 0xf1, 0x88, 0x8d, 0xe3, 0x35, 0x98, 0x62, 0xdf, 0x7e, 0xd0, 0x00, 0xc4, - 0x64, 0xed, 0x3c, 0x73, 0x30, 0xdd, 0x13, 0x2d, 0x49, 0x97, 0x6f, 0x59, 0xf5, 0x68, 0x50, 0xe0, - 0xb7, 0x16, 0x6c, 0xb6, 0x13, 0xf3, 0x69, 0xe7, 0xbb, 0x12, 0x4c, 0xb3, 0x86, 0x8e, 0x5b, 0xb3, - 0x97, 0x1d, 0x9a, 0x1d, 0x1c, 0xcf, 0x52, 0x5c, 0x82, 0x5e, 0xff, 0x66, 0x0c, 0x86, 0xb9, 0x74, - 0xc7, 0xa7, 0x35, 0x92, 0xe3, 0xd3, 0x1a, 0xcb, 0x4f, 0x8f, 0x71, 0x7e, 0xfa, 0x4d, 0x31, 0xac, - 0xbe, 0x14, 0x12, 0x86, 0x10, 0x7d, 0x1c, 0x2a, 0x78, 0x38, 0xf4, 0xe9, 0x01, 0xf7, 0xa1, 0xce, - 0x7e, 0xaf, 0x43, 0x9d, 0xdd, 0xfc, 0xc3, 0xaf, 0x4a, 0x96, 0x00, 0x1d, 0x46, 0xa7, 0x57, 0x9d, - 0x3a, 0xbd, 0x14, 0x96, 0x9b, 0x5e, 0x1a, 0xfd, 0xeb, 0x12, 0x20, 0x77, 0x3e, 0x5a, 0xe5, 0xf5, - 0xf9, 0x4a, 0xa4, 0x0e, 0x1e, 0xb1, 0x36, 0x97, 0x60, 0x90, 0x75, 0x8f, 0x83, 0xbc, 0x41, 0x26, - 0x87, 0x66, 0x94, 0x77, 0x2e, 0x24, 0xf4, 0xb2, 0x55, 0x51, 0xfe, 0x73, 0x31, 0x18, 0x60, 0xa9, - 0x2e, 0xd5, 0x7e, 0x32, 0x65, 0xbb, 0x5b, 0x14, 0x9d, 0xb1, 0xc4, 0x23, 0xd8, 0x9b, 0xfc, 0x7d, - 0x09, 0x46, 0x85, 0xc2, 0x4f, 0x8e, 0x47, 0xf9, 0x06, 0x24, 0x05, 0xca, 0x72, 0xb5, 0x9a, 0x4b, - 0x38, 0x38, 0x62, 0x63, 0xde, 0xc4, 0xc6, 0x79, 0x6e, 0x6d, 0xc1, 0xa4, 0xd0, 0x24, 0xfb, 0x2c, - 0xf3, 0x90, 0xad, 0xbe, 0xea, 0x68, 0x95, 0x3a, 0x9e, 0xa1, 0x5b, 0x95, 0xef, 0xc3, 0x98, 0xa9, - 0x12, 0xad, 0x86, 0xea, 0x45, 0x66, 0x92, 0x9a, 0x06, 0x5a, 0x8d, 0xa8, 0xb7, 0xf3, 0x44, 0x67, - 0xdc, 0x7d, 0xa2, 0x73, 0x0a, 0xfa, 0xb6, 0xb5, 0x56, 0xa7, 0xcd, 0x82, 0x70, 0xfa, 0x43, 0x6e, - 0xc2, 0x04, 0xd7, 0x99, 0x0f, 0x03, 0x8e, 0xb0, 0xbf, 0xaf, 0xd8, 0x33, 0x19, 0xee, 0x30, 0x68, - 0x26, 0xeb, 0xa9, 0xe7, 0x8f, 0x77, 0xf9, 0xd7, 0xa2, 0xbb, 0x9f, 0xa3, 0xbb, 0xeb, 0xac, 0xf4, - 0xfb, 0x12, 0x8c, 0x73, 0x3c, 0x09, 0x33, 0xc3, 0x7f, 0x3c, 0x7c, 0x89, 0x4e, 0xda, 0x0b, 0x82, - 0x78, 0xf9, 0x68, 0x82, 0x8b, 0x18, 0xf9, 0x40, 0x82, 0x13, 0x5c, 0xbd, 0xe3, 0xf6, 0xd1, 0x56, - 0x1c, 0x3e, 0x5a, 0x36, 0xec, 0x94, 0xc5, 0x46, 0xcb, 0xf2, 0xd3, 0xbe, 0x2f, 0x41, 0xca, 0x03, - 0x37, 0xf5, 0x31, 0x02, 0x86, 0x34, 0xd2, 0x57, 0xe4, 0x68, 0xc3, 0x76, 0x41, 0x28, 0xe6, 0x6b, - 0x11, 0x30, 0x7b, 0xba, 0x21, 0xff, 0x58, 0x82, 0x19, 0xef, 0x32, 0x68, 0x83, 0x77, 0x45, 0x9e, - 0x8f, 0xdc, 0xd1, 0x23, 0x76, 0x47, 0x7e, 0x3b, 0x66, 0x09, 0x5d, 0x98, 0x40, 0x58, 0x08, 0x2c, - 0x63, 0x7e, 0x81, 0x65, 0xdc, 0x3f, 0xb0, 0x4c, 0x74, 0x0d, 0x2c, 0xfb, 0x1c, 0x07, 0xf3, 0xad, - 0x39, 0xa3, 0xbf, 0xcb, 0xb4, 0x3b, 0x70, 0xb8, 0x69, 0x77, 0xf0, 0x10, 0xd3, 0x2e, 0x38, 0x34, - 0xf8, 0xfb, 0x12, 0xcc, 0x09, 0xdc, 0x3c, 0x6e, 0x65, 0x2c, 0x3a, 0x94, 0xf1, 0x6a, 0x48, 0x79, - 0xf3, 0x58, 0x0e, 0xf9, 0x7b, 0x12, 0xa4, 0x3d, 0xb1, 0x1f, 0x83, 0x42, 0x96, 0x9d, 0x0a, 0xf9, - 0x52, 0x24, 0xdc, 0x9e, 0x2a, 0xf9, 0x5b, 0xb6, 0x39, 0x71, 0xc7, 0xfb, 0x65, 0x5e, 0x29, 0xaf, - 0xf5, 0xd0, 0xd9, 0x23, 0x56, 0xcb, 0xff, 0x1a, 0x83, 0x61, 0xee, 0xc2, 0x88, 0x43, 0x6f, 0x8d, - 0xe5, 0xda, 0xed, 0xc7, 0x7c, 0x6b, 0x6c, 0x0d, 0x86, 0x5b, 0xf5, 0x5a, 0xb5, 0x52, 0x6d, 0x35, - 0xef, 0xd5, 0xb7, 0x99, 0x56, 0x66, 0x02, 0x57, 0x66, 0x8a, 0xf9, 0xe5, 0x65, 0x52, 0xe3, 0xf6, - 0x53, 0x65, 0xc0, 0x0d, 0xd0, 0x5f, 0xdd, 0x3e, 0x83, 0xb9, 0x39, 0x02, 0xa0, 0xb4, 0xdb, 0xac, - 0x27, 0xf9, 0x6d, 0x98, 0xe0, 0x38, 0xcd, 0xf6, 0x4f, 0x03, 0xa4, 0x9d, 0x0e, 0x47, 0xcc, 0xb5, - 0x84, 0xd2, 0xe7, 0xb3, 0x84, 0xf2, 0xb5, 0x04, 0x80, 0x0d, 0x15, 0x3d, 0x03, 0xa3, 0x9a, 0x5a, - 0xab, 0x6b, 0xb8, 0xf9, 0x8e, 0x56, 0x37, 0xc3, 0x92, 0x11, 0x33, 0xf1, 0x8e, 0x56, 0xd7, 0xd1, - 0x5d, 0x12, 0xc1, 0x13, 0xbb, 0x41, 0x6e, 0x2d, 0xa1, 0xb1, 0x47, 0x88, 0xe8, 0x16, 0x77, 0x64, - 0x5a, 0x1c, 0x72, 0x58, 0x6f, 0x54, 0xe3, 0x7e, 0xe9, 0x68, 0x1d, 0x86, 0xb7, 0x35, 0x85, 0xdd, - 0x85, 0x42, 0xdd, 0xf1, 0x10, 0x1f, 0x1a, 0xe2, 0x56, 0x57, 0x70, 0x35, 0xd2, 0x24, 0x6c, 0x9b, - 0xff, 0xea, 0xe8, 0x73, 0x90, 0x54, 0x6c, 0x06, 0xd2, 0x1b, 0x56, 0x12, 0x44, 0x2c, 0x9f, 0x0b, - 0xd3, 0x28, 0xc7, 0x7c, 0xd2, 0xf4, 0xb8, 0x22, 0x26, 0xe0, 0x19, 0xa2, 0xda, 0xa8, 0xab, 0x4d, - 0x32, 0x14, 0x6c, 0x86, 0xa0, 0x09, 0xc5, 0x1a, 0x66, 0x25, 0xcb, 0xd4, 0xd5, 0xaa, 0xa6, 0x1a, - 0xcc, 0xdb, 0x1a, 0xa1, 0x89, 0x9b, 0x24, 0x0d, 0xfd, 0x04, 0x24, 0x95, 0x8e, 0xb1, 0x53, 0xa1, - 0x2a, 0x47, 0x11, 0x0e, 0x84, 0x5c, 0xfa, 0xc3, 0x08, 0x3b, 0x06, 0xd3, 0x5a, 0x02, 0x70, 0x4c, - 0x11, 0x7e, 0xa3, 0x97, 0xe1, 0x44, 0xbb, 0x45, 0xbf, 0xff, 0x6e, 0x75, 0x8c, 0x8a, 0x38, 0xb2, - 0x83, 0x64, 0x64, 0x67, 0x70, 0x81, 0x55, 0x92, 0x5f, 0xe6, 0xc6, 0x58, 0xfe, 0x46, 0x02, 0xa6, - 0x1d, 0x3c, 0x60, 0x87, 0x0c, 0x02, 0x04, 0x30, 0x60, 0xcd, 0xce, 0x2d, 0x61, 0xf1, 0x50, 0x12, - 0x96, 0x38, 0x16, 0x09, 0xeb, 0x3b, 0x0e, 0x09, 0xeb, 0x3f, 0x42, 0x09, 0x7b, 0x6c, 0xe5, 0xe3, - 0x9b, 0x09, 0x48, 0xda, 0x76, 0x23, 0x9c, 0x6d, 0x3a, 0x0b, 0x63, 0x3c, 0xb3, 0x2c, 0x3b, 0x35, - 0xca, 0xa5, 0x52, 0xc5, 0xf9, 0x54, 0x42, 0x7e, 0xf4, 0x25, 0xe4, 0x39, 0x18, 0x59, 0xe6, 0x4d, - 0x9d, 0xcb, 0x1e, 0x4a, 0x6e, 0x7b, 0x28, 0xff, 0xf7, 0x18, 0x8c, 0x73, 0x24, 0x7b, 0x7e, 0xe6, - 0xf1, 0xa9, 0x87, 0x71, 0x64, 0x1e, 0x06, 0x0e, 0xd0, 0x39, 0x76, 0x3f, 0x76, 0x01, 0xba, 0x43, - 0x14, 0x84, 0x00, 0xdd, 0x03, 0xf7, 0x63, 0x11, 0xa0, 0xbb, 0x70, 0x79, 0x04, 0xe8, 0xde, 0x65, - 0x22, 0x06, 0xe8, 0xae, 0x46, 0x1e, 0x71, 0x24, 0xf0, 0x07, 0x31, 0x18, 0x61, 0xf1, 0x08, 0x31, - 0x7d, 0x11, 0x6f, 0x8e, 0x43, 0x67, 0x60, 0x8c, 0xd8, 0x49, 0xb5, 0x66, 0x5e, 0x62, 0x48, 0x9b, - 0x1f, 0x61, 0xa9, 0xf4, 0x16, 0xc3, 0x39, 0x18, 0xc2, 0xb1, 0x75, 0xe5, 0xbe, 0xba, 0x47, 0x87, - 0x60, 0xa8, 0x3c, 0x88, 0x13, 0x5e, 0x57, 0xf7, 0x74, 0xb4, 0x62, 0x9a, 0x82, 0x3e, 0x42, 0x5d, - 0xd8, 0x18, 0x93, 0xc0, 0xed, 0x6e, 0x13, 0x1e, 0xe5, 0x37, 0x8a, 0xdd, 0x14, 0x56, 0x7e, 0x60, - 0x6d, 0x1b, 0x10, 0xd4, 0xe1, 0x9c, 0x30, 0x37, 0x6b, 0x63, 0x41, 0xac, 0x8d, 0x8b, 0xac, 0x95, - 0x3f, 0x2f, 0xf6, 0xdb, 0x5b, 0xf4, 0xd1, 0xb5, 0x87, 0x1b, 0xd6, 0x02, 0x39, 0xe9, 0xa1, 0x98, - 0x8f, 0xd8, 0xba, 0xfc, 0xc3, 0xb8, 0xb5, 0x97, 0x40, 0x5a, 0xf0, 0xbb, 0x7d, 0xe1, 0xf0, 0x42, - 0x78, 0x1e, 0x92, 0x7c, 0x29, 0x6e, 0xbd, 0x68, 0xcc, 0x2e, 0x47, 0xd6, 0x85, 0x2e, 0x01, 0xe2, - 0x4b, 0xb2, 0x13, 0x67, 0xd4, 0xd8, 0x27, 0xed, 0xb2, 0xec, 0xe0, 0xa3, 0xc0, 0x9f, 0x7e, 0x3f, - 0xe1, 0x1e, 0x38, 0x6a, 0xe1, 0x7e, 0x94, 0x5f, 0x19, 0xe2, 0x79, 0xc1, 0x1c, 0x00, 0xfe, 0xa6, - 0x26, 0x96, 0xe6, 0xba, 0x19, 0xc2, 0xf1, 0x21, 0x8f, 0xfc, 0x77, 0xec, 0xc5, 0x1f, 0x4a, 0xd9, - 0x31, 0xcf, 0x51, 0xb7, 0x1d, 0x73, 0xd4, 0x95, 0x28, 0x6c, 0x17, 0x26, 0xa9, 0x1d, 0x6b, 0xf1, - 0x5b, 0x00, 0x7e, 0xf4, 0x93, 0x94, 0xfc, 0x97, 0x25, 0x98, 0x5b, 0xa1, 0xb2, 0xf5, 0xd8, 0x6d, - 0x8b, 0x67, 0x61, 0x96, 0xe7, 0x42, 0xf0, 0xde, 0xe7, 0xbf, 0x93, 0x44, 0xcb, 0xf3, 0xa4, 0x6d, - 0x80, 0xfe, 0x69, 0xfb, 0xd0, 0x0a, 0x47, 0x5f, 0xae, 0x56, 0x0b, 0x92, 0x89, 0x13, 0x30, 0x48, - 0x23, 0x13, 0xcb, 0x8e, 0x0d, 0x90, 0xdf, 0x45, 0x61, 0x13, 0x32, 0xee, 0xcd, 0x9c, 0x04, 0xcf, - 0xe2, 0xf7, 0xed, 0x05, 0x49, 0x0e, 0x02, 0xdb, 0x35, 0x7c, 0x64, 0x28, 0x76, 0xbd, 0x40, 0xb0, - 0xbd, 0xa5, 0xa3, 0x07, 0x21, 0xff, 0xcb, 0x98, 0xb5, 0x31, 0xc2, 0xf5, 0xf7, 0xe9, 0xa6, 0x42, - 0x04, 0x51, 0x76, 0xfa, 0x26, 0xff, 0x50, 0x82, 0x05, 0x37, 0x4b, 0x8f, 0xdb, 0x42, 0xaf, 0x3b, - 0x2c, 0xf4, 0xb5, 0x28, 0x16, 0xda, 0x63, 0x7b, 0xe1, 0x87, 0x12, 0x9c, 0xf6, 0xa7, 0x22, 0x94, - 0xb9, 0xee, 0x22, 0x8f, 0x36, 0xf9, 0x71, 0x6f, 0xf2, 0x13, 0x3c, 0xf9, 0x77, 0x9d, 0x37, 0xb8, - 0x7d, 0x26, 0x3a, 0x71, 0x9e, 0x66, 0xf8, 0x77, 0x24, 0x38, 0xd5, 0xb5, 0x28, 0xba, 0xcb, 0x07, - 0x1f, 0xd7, 0x7b, 0xed, 0xf6, 0x11, 0xc7, 0x20, 0xff, 0x25, 0x46, 0x6f, 0x75, 0xf1, 0x0e, 0x40, - 0x7c, 0x4f, 0x7c, 0xd8, 0xdf, 0x57, 0xc4, 0xf9, 0xef, 0x2b, 0xc4, 0x51, 0x4e, 0x38, 0x47, 0x59, - 0xf0, 0xd6, 0xfa, 0x1c, 0xde, 0x5a, 0xde, 0xf4, 0xd6, 0xe8, 0xe2, 0xce, 0x62, 0x98, 0xcb, 0xe0, - 0x42, 0xb8, 0x6a, 0x03, 0x87, 0x73, 0xd5, 0x06, 0x8f, 0x2c, 0x0e, 0xb9, 0x47, 0xef, 0xdf, 0xe0, - 0x83, 0x10, 0x5f, 0xb3, 0x19, 0xe0, 0x73, 0x77, 0x8d, 0x0a, 0xee, 0x72, 0xfd, 0xb0, 0xa0, 0xc3, - 0xb7, 0x9f, 0x48, 0xe1, 0xc6, 0x35, 0x7a, 0x21, 0x8b, 0x19, 0x6b, 0x84, 0x6d, 0x54, 0xfe, 0x09, - 0xcb, 0x1d, 0xe1, 0xab, 0x07, 0x18, 0x04, 0x5f, 0xc9, 0xa3, 0xad, 0xc7, 0xad, 0xd6, 0xdf, 0xb3, - 0x26, 0x25, 0x27, 0xd5, 0x47, 0xd4, 0x43, 0xd7, 0x00, 0x5a, 0x6e, 0x88, 0xde, 0x19, 0x4f, 0xe1, - 0x79, 0x48, 0x9a, 0xfd, 0x5b, 0xb6, 0x8d, 0xa2, 0x18, 0x6b, 0xf3, 0x61, 0x5b, 0x04, 0x62, 0x7f, - 0xcd, 0xde, 0x84, 0x16, 0xbb, 0x0b, 0x12, 0x28, 0x5b, 0x5f, 0x63, 0xbc, 0xbe, 0x7a, 0x41, 0x8c, - 0x7b, 0x42, 0x7c, 0xd6, 0xad, 0xd9, 0xec, 0x8a, 0xec, 0xa4, 0x14, 0x56, 0xc5, 0xe5, 0x2f, 0xfb, - 0xc1, 0x67, 0x23, 0x76, 0xf4, 0x1c, 0xeb, 0x3e, 0x78, 0xff, 0x3e, 0x41, 0x2f, 0x76, 0xf2, 0x0f, - 0x7e, 0x3f, 0x35, 0x80, 0x83, 0xbd, 0x5f, 0x25, 0x3e, 0xd4, 0xf5, 0xba, 0x62, 0xe8, 0xea, 0xd9, - 0x0d, 0xbb, 0x3d, 0x3b, 0x8f, 0xbb, 0xb9, 0x4f, 0xc0, 0xa0, 0xb5, 0x9c, 0x30, 0x4a, 0xdd, 0x86, - 0x16, 0x5b, 0x47, 0x38, 0x05, 0xc0, 0xad, 0x1f, 0xd0, 0x5b, 0x83, 0x87, 0x5a, 0xd6, 0xc2, 0x81, - 0x33, 0xa8, 0x1e, 0xef, 0x1e, 0x54, 0x27, 0x03, 0x2f, 0xd6, 0x9d, 0xf0, 0x38, 0x83, 0x4d, 0xbe, - 0x9d, 0xb1, 0x87, 0xe9, 0x71, 0xfb, 0x76, 0x46, 0x10, 0x7d, 0xe1, 0x73, 0x38, 0x17, 0xe6, 0x47, - 0xf3, 0xc5, 0x87, 0xa3, 0x5b, 0x87, 0x07, 0xf6, 0xcf, 0x25, 0x98, 0xf2, 0x2a, 0x11, 0xf1, 0x8b, - 0x0f, 0x47, 0x13, 0x1e, 0xfe, 0xd6, 0xfa, 0x61, 0xfc, 0x2d, 0xb3, 0xb1, 0xd4, 0x53, 0x01, 0x9e, - 0xd7, 0xaf, 0xd9, 0x0e, 0xa5, 0x0f, 0xbb, 0x8f, 0x74, 0x1d, 0x7e, 0xdd, 0xb9, 0x0e, 0x7f, 0xf8, - 0xd1, 0x90, 0x3d, 0x6d, 0xb9, 0x48, 0x43, 0x78, 0x93, 0xfe, 0xf1, 0x92, 0xf3, 0xe5, 0x18, 0xcc, - 0xe4, 0x3a, 0xc6, 0xce, 0xa1, 0xa5, 0xbe, 0xea, 0x73, 0x69, 0x75, 0xa0, 0x5c, 0x3a, 0x7a, 0x8f, - 0x78, 0x73, 0xf5, 0xba, 0x33, 0xee, 0x79, 0x3e, 0x62, 0x7f, 0x1e, 0xca, 0xe6, 0x55, 0x22, 0xa2, - 0xb2, 0x75, 0x25, 0xea, 0x11, 0x2a, 0xdb, 0x77, 0x25, 0x98, 0x75, 0x0d, 0xef, 0x71, 0x19, 0xe2, - 0x9c, 0xc3, 0x10, 0x5f, 0x08, 0xcd, 0x25, 0xcb, 0x08, 0xef, 0xc2, 0x90, 0x95, 0x88, 0x81, 0x10, - 0xef, 0x42, 0xfc, 0x96, 0xfd, 0x24, 0xd8, 0xb6, 0xc0, 0x1d, 0x22, 0xcc, 0x00, 0xf3, 0x54, 0xc2, - 0xac, 0x24, 0x65, 0xbe, 0xc7, 0xee, 0xf6, 0x24, 0x9e, 0x04, 0x3a, 0x01, 0xd3, 0x77, 0x36, 0x0b, - 0xe5, 0xcd, 0xad, 0xdc, 0x56, 0xa1, 0x72, 0x67, 0x7d, 0x73, 0xa3, 0xb0, 0x5c, 0xbc, 0x55, 0x2c, - 0xe4, 0x93, 0x4f, 0xa1, 0x29, 0x48, 0xda, 0x59, 0xb9, 0xe5, 0xad, 0xe2, 0x9b, 0x85, 0xa4, 0x84, - 0x66, 0x00, 0xd9, 0xa9, 0xc5, 0x75, 0x96, 0x1e, 0x43, 0xd3, 0x30, 0x61, 0xa7, 0xe7, 0x0b, 0xab, - 0x85, 0xad, 0x42, 0x3e, 0x19, 0x17, 0x1b, 0x59, 0x2d, 0x2d, 0xbf, 0x5e, 0xc8, 0x27, 0x13, 0x62, - 0xe1, 0xcd, 0x3b, 0x9b, 0x1b, 0x85, 0xf5, 0x7c, 0xb2, 0x4f, 0x4c, 0x2e, 0xae, 0x17, 0xb7, 0x8a, - 0xb9, 0xd5, 0x64, 0x7f, 0xe6, 0x4f, 0x40, 0x3f, 0xbd, 0x0f, 0x17, 0x77, 0xbe, 0x52, 0x58, 0xcf, - 0x17, 0xca, 0x0e, 0xa8, 0x13, 0x30, 0xca, 0xd2, 0x6f, 0x15, 0xd6, 0x72, 0xab, 0x18, 0xe7, 0x38, - 0x0c, 0xb3, 0x24, 0x92, 0x10, 0x43, 0x08, 0xc6, 0x58, 0x42, 0xbe, 0xf8, 0x66, 0xa1, 0xbc, 0x59, - 0x48, 0xc6, 0x33, 0xff, 0x87, 0xdd, 0xf6, 0x69, 0x49, 0x2c, 0x3a, 0x05, 0x27, 0x08, 0x84, 0x42, - 0xae, 0xbc, 0x7c, 0xfb, 0xf5, 0xc2, 0x5b, 0x8e, 0x8e, 0xe6, 0x60, 0xd6, 0x91, 0xbd, 0x59, 0x28, - 0x57, 0xd6, 0x73, 0x6b, 0xb8, 0xcb, 0x93, 0x90, 0x12, 0x33, 0x6f, 0x15, 0xcb, 0x9b, 0x5b, 0x34, - 0x37, 0xe6, 0xae, 0xba, 0x9a, 0x33, 0x33, 0xe3, 0xee, 0xcc, 0xf5, 0xe2, 0xf2, 0xeb, 0x34, 0x33, - 0x81, 0xe6, 0x21, 0x2d, 0x66, 0xe6, 0x8b, 0x9b, 0x1b, 0xab, 0xb9, 0xb7, 0x68, 0x7e, 0x1f, 0x9a, - 0x85, 0x49, 0x31, 0xbf, 0xb0, 0x96, 0x2b, 0xae, 0x26, 0xfb, 0xdd, 0x19, 0x84, 0xb3, 0xc9, 0x81, - 0xcc, 0xef, 0x4a, 0x30, 0xc2, 0xeb, 0x16, 0x2e, 0x49, 0x4b, 0xad, 0x15, 0xb6, 0x6e, 0x97, 0xf2, - 0x95, 0xc2, 0x1b, 0x77, 0x72, 0xab, 0x9b, 0xc9, 0xa7, 0x30, 0x4d, 0x42, 0xc6, 0xe6, 0x56, 0xae, - 0xbc, 0xb5, 0x59, 0xb9, 0x5b, 0xdc, 0xba, 0x9d, 0x94, 0xb0, 0xf4, 0x08, 0xb9, 0xcb, 0xa5, 0xf5, - 0xad, 0x5c, 0x71, 0x7d, 0x33, 0x19, 0x43, 0xcf, 0xc0, 0x69, 0x8f, 0x16, 0x2b, 0xc5, 0x95, 0xf5, - 0x52, 0xb9, 0x50, 0x59, 0xce, 0x61, 0xfe, 0xa3, 0xf3, 0x70, 0xc6, 0xaf, 0x75, 0xa1, 0x64, 0x02, - 0x9d, 0x85, 0xa7, 0x3d, 0x7b, 0x12, 0x8a, 0xf5, 0x65, 0xf2, 0x30, 0xc0, 0xee, 0x08, 0xc4, 0x24, - 0xad, 0xdd, 0xca, 0x6d, 0xbd, 0xb5, 0xe1, 0x94, 0xeb, 0x71, 0x18, 0x36, 0x33, 0x36, 0xd7, 0x36, - 0xa9, 0xa8, 0x98, 0x09, 0xa5, 0xad, 0x8d, 0x64, 0x2c, 0x73, 0x0f, 0x06, 0xcd, 0xbb, 0x02, 0x51, - 0x0a, 0xa6, 0xf0, 0xff, 0x1e, 0xfa, 0x31, 0x03, 0xc8, 0xca, 0x59, 0x2f, 0x6d, 0x55, 0xca, 0x85, - 0x5c, 0xfe, 0xad, 0xa4, 0x84, 0x05, 0xcd, 0x4a, 0xa7, 0x69, 0x31, 0xac, 0x06, 0x5c, 0xda, 0x5a, - 0xe9, 0x4d, 0xac, 0x1c, 0x99, 0xdb, 0x90, 0x74, 0x5e, 0xc9, 0x87, 0xd2, 0x30, 0xb3, 0x5e, 0xda, - 0x2a, 0xde, 0x2a, 0x2e, 0xe7, 0xb6, 0x8a, 0xa5, 0x75, 0x82, 0x8a, 0x8e, 0xe7, 0x53, 0x18, 0x8b, - 0x2b, 0x8f, 0x90, 0x90, 0xe9, 0xc0, 0x30, 0x77, 0x27, 0x10, 0x16, 0xa7, 0x8d, 0xd2, 0x6a, 0x71, - 0xf9, 0x2d, 0x1f, 0xdc, 0x7c, 0xa6, 0xa5, 0xd9, 0x29, 0x98, 0xe2, 0xd3, 0x39, 0xdd, 0x9e, 0x85, - 0x49, 0x3e, 0xc7, 0xd2, 0xee, 0xcc, 0x06, 0x0c, 0x9a, 0xb7, 0xb5, 0xe0, 0xea, 0xa5, 0xf2, 0x8a, - 0x57, 0x87, 0x93, 0x30, 0x6e, 0xe5, 0x58, 0xbd, 0x4d, 0xc3, 0x84, 0x95, 0x68, 0x77, 0x95, 0xb9, - 0x0b, 0xc8, 0x7d, 0x87, 0x01, 0x92, 0x61, 0xbe, 0x54, 0x5e, 0xc9, 0x97, 0xd6, 0xf0, 0x90, 0xfb, - 0xa8, 0xe6, 0x29, 0x38, 0xe1, 0x51, 0x86, 0xfe, 0x4e, 0x4a, 0x99, 0x5f, 0x95, 0x48, 0xcb, 0x8e, - 0xe5, 0x37, 0xd6, 0xf2, 0x5a, 0x61, 0xed, 0xa6, 0xbf, 0xd2, 0x3f, 0x0d, 0xa7, 0x3c, 0xca, 0x70, - 0xca, 0x2d, 0xa1, 0x05, 0x38, 0xe9, 0x51, 0xc4, 0xd6, 0xf0, 0x18, 0x56, 0x24, 0x8f, 0x12, 0x74, - 0x64, 0xe3, 0x58, 0xc5, 0xbd, 0x60, 0x60, 0xe3, 0x52, 0xcc, 0x27, 0x13, 0x99, 0xbb, 0xd6, 0xe6, - 0xad, 0x0d, 0x7d, 0x01, 0x4e, 0x6e, 0x94, 0x4b, 0x3f, 0x5e, 0x58, 0xde, 0xea, 0x02, 0xdc, 0x55, - 0x82, 0x25, 0x30, 0xe0, 0x99, 0xcf, 0x5b, 0xc7, 0x12, 0xe8, 0x28, 0x9e, 0x84, 0x94, 0x59, 0xc5, - 0x63, 0x24, 0xb1, 0x20, 0xf0, 0xb9, 0xd6, 0x68, 0x9e, 0x80, 0x69, 0x21, 0x83, 0x1b, 0xd1, 0xcf, - 0x5a, 0x1f, 0x3f, 0xb1, 0x63, 0xa0, 0xb3, 0xac, 0xa4, 0x87, 0x6a, 0x4e, 0xc3, 0x04, 0x9f, 0x59, - 0xba, 0xbb, 0x5e, 0xc8, 0x27, 0x25, 0xae, 0x5b, 0x92, 0xbc, 0x52, 0xce, 0xad, 0x63, 0xf9, 0x8b, - 0x65, 0xfe, 0x8c, 0xfd, 0x6d, 0xab, 0xf0, 0xe9, 0x05, 0x3a, 0x03, 0x0b, 0xac, 0x46, 0xb9, 0xb4, - 0x5a, 0xf0, 0xe3, 0x8f, 0x4d, 0xac, 0x58, 0xea, 0xf5, 0x02, 0xd6, 0xe3, 0xb3, 0xf0, 0xb4, 0x67, - 0xae, 0x60, 0x7d, 0x63, 0x99, 0x3f, 0xb2, 0xbf, 0x21, 0x71, 0x0a, 0xd7, 0xb3, 0x20, 0xb3, 0x16, - 0xba, 0x0b, 0x98, 0xdd, 0x53, 0x57, 0x21, 0xb3, 0x89, 0xea, 0x26, 0x68, 0xb6, 0x58, 0xf8, 0x09, - 0x9b, 0x0c, 0xf3, 0x7e, 0xb0, 0x4c, 0x81, 0xeb, 0xd2, 0x97, 0x3d, 0xe3, 0xf5, 0x61, 0xfd, 0x37, - 0x0f, 0x8c, 0x61, 0xfd, 0xcf, 0x6d, 0x6c, 0xf8, 0xe8, 0xbf, 0x95, 0xc3, 0xeb, 0xbf, 0x95, 0xc8, - 0x49, 0xcb, 0x0e, 0x3d, 0x29, 0xc9, 0x1f, 0x3a, 0xc4, 0xc2, 0x45, 0xd2, 0x0a, 0x9b, 0x1b, 0xa5, - 0xf5, 0xcd, 0x02, 0x91, 0x81, 0xe5, 0x52, 0xbe, 0xc0, 0x94, 0xde, 0x99, 0x55, 0xcc, 0x57, 0xb6, - 0x4a, 0xaf, 0x17, 0xd6, 0x93, 0x12, 0x36, 0xa6, 0xae, 0x6c, 0x9a, 0x17, 0xcb, 0x68, 0x30, 0x2a, - 0x1c, 0x44, 0xc4, 0x24, 0x93, 0x04, 0x2c, 0x5d, 0xa4, 0x64, 0xee, 0xce, 0xd6, 0xed, 0x52, 0xb9, - 0xf8, 0x59, 0x62, 0x6c, 0xcd, 0x1e, 0x59, 0x93, 0x76, 0xa9, 0xe2, 0xda, 0xc6, 0x6a, 0x71, 0xb9, - 0xb8, 0x95, 0x94, 0xd0, 0x69, 0x98, 0x13, 0xf3, 0xca, 0x85, 0x5b, 0xe5, 0xc2, 0xe6, 0x6d, 0xab, - 0xcf, 0x07, 0x30, 0xe9, 0x71, 0x4e, 0x11, 0xeb, 0x04, 0x49, 0xde, 0xc0, 0x2d, 0xd9, 0xa6, 0xfd, - 0x6e, 0xe1, 0x66, 0xf2, 0x29, 0x62, 0xa1, 0x3c, 0x32, 0xc9, 0x30, 0xe4, 0x56, 0x0a, 0xeb, 0xb8, - 0x63, 0x6c, 0x3e, 0x3c, 0xca, 0xac, 0xe7, 0x18, 0x57, 0x1b, 0x80, 0xdc, 0xe7, 0x17, 0x89, 0x49, - 0xc2, 0xa9, 0x77, 0xb6, 0xd8, 0xac, 0x4a, 0x2a, 0xdd, 0xcc, 0x6d, 0x16, 0x97, 0xa9, 0xab, 0xe3, - 0x91, 0xbb, 0x51, 0xda, 0xc4, 0x1d, 0x7a, 0x67, 0xae, 0x97, 0xd6, 0x71, 0x6f, 0x15, 0x98, 0xf2, - 0x3a, 0x6e, 0x85, 0x19, 0xcc, 0x21, 0xdc, 0x2c, 0x94, 0x73, 0x3e, 0x46, 0x4b, 0x28, 0x65, 0xca, - 0x5d, 0x6e, 0x63, 0xc3, 0x34, 0x5a, 0x86, 0xf5, 0xb1, 0x93, 0xbd, 0x26, 0xc6, 0x19, 0x3b, 0xc2, - 0x7f, 0x2f, 0x41, 0xb4, 0xf5, 0x9d, 0x2b, 0x62, 0x49, 0xe4, 0x3c, 0xa4, 0xdd, 0xb9, 0x9c, 0x68, - 0xfe, 0x5c, 0x4c, 0x5c, 0xd1, 0x74, 0x6a, 0xfb, 0x45, 0x38, 0xc7, 0xd7, 0xef, 0xae, 0xf2, 0x19, - 0x78, 0xb6, 0x5b, 0x61, 0x41, 0xef, 0x2f, 0xc0, 0xd9, 0x6e, 0x65, 0x79, 0xe5, 0xb7, 0x2d, 0x89, - 0x67, 0x51, 0xd3, 0x02, 0x9c, 0x83, 0x67, 0xba, 0x42, 0xb5, 0xcc, 0x40, 0x40, 0xd7, 0xbc, 0x2d, - 0xd8, 0x81, 0x31, 0x71, 0x95, 0xd2, 0xf4, 0x5b, 0x7d, 0x87, 0x83, 0xc5, 0x1e, 0x5e, 0x63, 0xc1, - 0xfc, 0x61, 0xef, 0x81, 0xf8, 0x3a, 0x7b, 0xb3, 0x48, 0x0c, 0x36, 0xb1, 0xa2, 0xd8, 0x75, 0xfc, - 0x67, 0x44, 0x8f, 0x32, 0xe6, 0x9c, 0x58, 0xcc, 0x53, 0x31, 0xf0, 0x6a, 0x86, 0xb1, 0x24, 0x66, - 0x46, 0x08, 0x8e, 0xfc, 0x52, 0x79, 0x05, 0x67, 0xc7, 0x09, 0x38, 0x77, 0x24, 0x8c, 0xc1, 0x61, - 0x65, 0xe9, 0x0a, 0xee, 0x14, 0x9c, 0xf0, 0x28, 0xc3, 0x5a, 0x96, 0x88, 0x62, 0xb8, 0xb3, 0x39, - 0xec, 0x31, 0x8c, 0xdd, 0xab, 0x17, 0x86, 0x3d, 0xbe, 0xf4, 0xad, 0x6f, 0x49, 0x30, 0xb1, 0x66, - 0xc5, 0xa4, 0x9b, 0xaa, 0xf6, 0xa0, 0x5e, 0x55, 0xd1, 0xeb, 0x30, 0x70, 0x5b, 0x55, 0x1a, 0xc6, - 0xce, 0x17, 0xd1, 0x8c, 0x6b, 0xf1, 0xb7, 0xb0, 0xdb, 0x36, 0xf6, 0xd2, 0x3e, 0xe9, 0x72, 0x72, - 0xff, 0x5f, 0xff, 0xa7, 0x0f, 0x62, 0x80, 0x06, 0xb3, 0x3b, 0xac, 0x85, 0x15, 0xe8, 0x2b, 0xab, - 0x4a, 0x6d, 0x2f, 0x72, 0x53, 0x63, 0xa4, 0xa9, 0x41, 0xd4, 0x9f, 0xd5, 0x48, 0xfd, 0x75, 0x18, - 0x7c, 0x93, 0x3d, 0x06, 0xed, 0xdb, 0x96, 0xdf, 0x7b, 0xbd, 0xf2, 0x04, 0x69, 0x6c, 0x18, 0x0d, - 0x59, 0x0f, 0x4a, 0xa3, 0x7b, 0x38, 0x8c, 0x34, 0x8a, 0xca, 0xae, 0x6f, 0x6b, 0xcf, 0x04, 0x05, - 0xef, 0x45, 0x65, 0x57, 0x3e, 0xbd, 0x7f, 0x90, 0x1a, 0x87, 0x51, 0xa5, 0x63, 0xec, 0xa8, 0x4d, - 0x03, 0x1b, 0x39, 0xb5, 0x46, 0x3a, 0xeb, 0x47, 0x89, 0x6c, 0x5d, 0xd9, 0x45, 0xef, 0x4b, 0x30, - 0xbc, 0xa2, 0x92, 0x45, 0xb2, 0x9b, 0x7b, 0xc5, 0x3c, 0x7a, 0x36, 0xcc, 0x6a, 0x55, 0x31, 0x9f, - 0x0e, 0xfd, 0x24, 0x96, 0x2c, 0xef, 0x1f, 0xa4, 0x86, 0xe9, 0xea, 0xfb, 0x22, 0xe6, 0x15, 0xe9, - 0x7e, 0x14, 0x0d, 0x67, 0x71, 0x8a, 0x9e, 0x7d, 0xb7, 0x5e, 0x7b, 0x0f, 0x7d, 0x5b, 0x82, 0x29, - 0x0b, 0x05, 0x79, 0xdd, 0x63, 0x85, 0x3c, 0x77, 0x8d, 0x2e, 0x86, 0xe9, 0x86, 0x3d, 0x35, 0x1c, - 0x01, 0xd3, 0x92, 0x17, 0xa6, 0x53, 0x68, 0x2e, 0x4b, 0x5f, 0xd9, 0x66, 0xd0, 0xc8, 0x52, 0x7e, - 0xf6, 0x5d, 0xf2, 0xe7, 0x3d, 0xf4, 0xf3, 0x12, 0x0c, 0x53, 0x15, 0xc1, 0xcd, 0xe8, 0xe8, 0x6a, - 0xf8, 0x67, 0xd2, 0xd8, 0x82, 0x5d, 0x7a, 0x29, 0x4a, 0x15, 0xea, 0x53, 0xc8, 0xe7, 0xbd, 0xa0, - 0x4e, 0xca, 0x63, 0x0c, 0x63, 0x45, 0x27, 0xc5, 0x5f, 0x91, 0x32, 0x18, 0xe0, 0x48, 0x51, 0xc7, - 0x4d, 0xd0, 0x17, 0x8d, 0x43, 0x20, 0x74, 0x3e, 0xc1, 0x1c, 0x02, 0xa1, 0xeb, 0x55, 0x65, 0xf9, - 0x9c, 0x17, 0x42, 0x84, 0x92, 0x26, 0xc2, 0xba, 0x4e, 0x5f, 0x5c, 0x46, 0x3f, 0x25, 0x01, 0xd8, - 0x2f, 0x2c, 0x07, 0xc3, 0x73, 0xbd, 0xc6, 0x9c, 0x3e, 0x13, 0x86, 0x81, 0xf2, 0xd3, 0xfb, 0x07, - 0xa9, 0x11, 0x00, 0x02, 0xe8, 0xa1, 0x56, 0x37, 0x54, 0xaa, 0x5e, 0x72, 0x3f, 0x45, 0x84, 0x79, - 0xf5, 0x55, 0x09, 0xc6, 0xf2, 0xaa, 0x52, 0x35, 0xea, 0x0f, 0x4c, 0x38, 0x61, 0x25, 0x3f, 0x1c, - 0x86, 0x25, 0x4f, 0x0c, 0x27, 0xd3, 0xb3, 0x9c, 0xd8, 0x67, 0x2b, 0x35, 0x0b, 0x82, 0x09, 0xaa, - 0xfc, 0xf1, 0x83, 0xd2, 0x04, 0x50, 0x7f, 0x56, 0x82, 0xc1, 0xd5, 0x56, 0xf5, 0xfe, 0x31, 0xc0, - 0xb9, 0xe4, 0x09, 0x67, 0x26, 0x3d, 0x21, 0xc0, 0x69, 0xb4, 0xaa, 0xf7, 0x31, 0x90, 0x2f, 0x49, - 0x00, 0x77, 0x9a, 0x8d, 0xe3, 0x81, 0xb2, 0xe8, 0x09, 0x25, 0x95, 0x9e, 0x14, 0xa0, 0x74, 0x9a, - 0x26, 0x18, 0x0d, 0x20, 0xaf, 0x36, 0xd4, 0x88, 0xa3, 0xe4, 0x37, 0x99, 0x9c, 0xd9, 0x3f, 0x48, - 0x8d, 0xc2, 0x30, 0xe9, 0xbd, 0x46, 0x9a, 0xa5, 0x46, 0x32, 0x23, 0x18, 0xc9, 0xaf, 0x48, 0xf4, - 0x9c, 0x83, 0xf9, 0x2e, 0xfe, 0xe5, 0x90, 0xcf, 0xe0, 0x33, 0xdd, 0x39, 0x17, 0xae, 0xb8, 0x2e, - 0x67, 0xbc, 0xf4, 0x79, 0x1a, 0x09, 0xac, 0x30, 0x5f, 0xd6, 0xff, 0x10, 0x3b, 0x10, 0xdc, 0x87, - 0x84, 0xc7, 0x0c, 0xed, 0xc7, 0xf7, 0x0f, 0x52, 0xc8, 0xda, 0xb8, 0x59, 0x54, 0xda, 0x6d, 0x1b, - 0xe1, 0x22, 0xba, 0x94, 0x35, 0x2f, 0x28, 0xa2, 0x20, 0xb9, 0x0f, 0xaa, 0xf4, 0xec, 0xbb, 0xba, - 0x5a, 0xad, 0xf0, 0xd0, 0x7f, 0x5a, 0x22, 0x97, 0xdf, 0x1e, 0x37, 0x64, 0x6c, 0xbf, 0x81, 0xec, - 0x06, 0xdb, 0x50, 0xa7, 0x10, 0xca, 0xb6, 0xb4, 0x6d, 0x07, 0x2f, 0xbf, 0x2e, 0x59, 0xc7, 0xe6, - 0x8f, 0x1b, 0xd4, 0x95, 0xfd, 0x83, 0xd4, 0x98, 0xb5, 0xd1, 0x6c, 0x03, 0x4b, 0xa1, 0x19, 0x07, - 0x0f, 0x4d, 0x70, 0x5f, 0x93, 0x60, 0x8c, 0xcd, 0xd0, 0xe6, 0x9b, 0x96, 0x61, 0xa5, 0x3e, 0xd4, - 0x53, 0xa5, 0xdc, 0x33, 0x8b, 0xa1, 0x04, 0xb0, 0xcd, 0x40, 0xfc, 0x92, 0x04, 0x13, 0xae, 0xd7, - 0xf8, 0x50, 0xe0, 0xa7, 0xfd, 0x7e, 0x0f, 0xf8, 0xa5, 0x2f, 0x46, 0x00, 0x1b, 0xce, 0x6a, 0x30, - 0xa4, 0xd8, 0x6a, 0xfc, 0x8c, 0x04, 0x23, 0x8c, 0x89, 0xf4, 0x71, 0xbc, 0xb0, 0x2c, 0xbc, 0x1c, - 0xda, 0x0d, 0x22, 0x0c, 0xf4, 0xf6, 0x19, 0x90, 0x60, 0x57, 0xe9, 0x39, 0x85, 0xef, 0x48, 0x30, - 0x4e, 0x85, 0xc2, 0x06, 0x75, 0x2d, 0x3c, 0xf3, 0xf8, 0x57, 0xde, 0xd2, 0x17, 0x42, 0x83, 0x0c, - 0x67, 0xf9, 0x09, 0x42, 0xcc, 0xb6, 0x6f, 0x4a, 0x30, 0x57, 0x56, 0x75, 0xb5, 0x59, 0xe3, 0x1e, - 0x7e, 0xa3, 0x7a, 0xbd, 0x16, 0x85, 0x8b, 0x7e, 0xe6, 0xf7, 0x35, 0x4f, 0x34, 0x19, 0xf9, 0xac, - 0x0b, 0x0d, 0x9e, 0x1c, 0x31, 0x8e, 0x07, 0x1c, 0x04, 0xc7, 0xc0, 0xd2, 0x57, 0xe8, 0x8e, 0x74, - 0x60, 0xad, 0xe7, 0xdd, 0x42, 0x0d, 0x2c, 0x7d, 0xd1, 0x4c, 0x1c, 0x58, 0x0a, 0x2a, 0xc2, 0xc0, - 0xf2, 0xcf, 0xa9, 0x85, 0x1b, 0x58, 0x52, 0x23, 0xdc, 0xc0, 0x12, 0x84, 0xe2, 0xc0, 0x72, 0x4f, - 0xac, 0xb1, 0x99, 0xa4, 0x55, 0x53, 0x1f, 0xcd, 0xc0, 0x12, 0x34, 0x7e, 0x03, 0xcb, 0x99, 0x3d, - 0xf3, 0xd5, 0xaf, 0x23, 0x35, 0x7b, 0xdc, 0xa3, 0x67, 0xa1, 0xcc, 0x1e, 0x7b, 0x0a, 0xcb, 0x61, - 0xf6, 0x4c, 0x68, 0x11, 0xcc, 0x9e, 0xf8, 0x26, 0x58, 0x38, 0xb3, 0x67, 0x3e, 0xb4, 0x15, 0xca, - 0xec, 0x31, 0xa4, 0x98, 0x89, 0x7f, 0xde, 0x8e, 0x31, 0xd7, 0xee, 0x29, 0xe1, 0x39, 0x78, 0x29, - 0xc2, 0x93, 0x5d, 0x7a, 0x50, 0x18, 0x42, 0x40, 0xed, 0xe2, 0xee, 0xff, 0xa6, 0x04, 0x73, 0x9b, - 0x6a, 0xb3, 0xe6, 0xf3, 0x7c, 0x15, 0x7a, 0x35, 0x78, 0xa3, 0xbf, 0xdb, 0xbb, 0x57, 0xbe, 0xd2, - 0xf8, 0xa2, 0x27, 0xdb, 0x9e, 0x96, 0x4f, 0x0a, 0x3e, 0x26, 0x96, 0x42, 0x5d, 0x35, 0xda, 0x0f, - 0x9b, 0xb8, 0xe9, 0x3d, 0xcc, 0xbf, 0x0f, 0x24, 0x40, 0x9b, 0xaa, 0x51, 0x6c, 0xd6, 0x8d, 0xba, - 0xd2, 0x30, 0xbb, 0x46, 0xc1, 0x97, 0x60, 0x89, 0x4f, 0x78, 0xf9, 0x02, 0x7b, 0xde, 0x13, 0xd8, - 0xbc, 0x7c, 0xc2, 0x01, 0xcc, 0xa8, 0x53, 0x04, 0xed, 0x87, 0x18, 0xd5, 0x5f, 0x93, 0x60, 0x6e, - 0xc5, 0xe6, 0x84, 0xeb, 0x75, 0x2d, 0xbf, 0x75, 0x8b, 0x97, 0xc2, 0xc2, 0x76, 0xb6, 0x48, 0x18, - 0x38, 0x0a, 0xc3, 0x6d, 0xf2, 0xcb, 0x1e, 0xe3, 0x05, 0x34, 0x9f, 0x25, 0x69, 0x75, 0x55, 0xcf, - 0x9a, 0xef, 0x98, 0xe9, 0xd9, 0xaa, 0x55, 0x1d, 0xfd, 0x9e, 0x04, 0xf3, 0x34, 0x98, 0xf4, 0x45, - 0xfb, 0x6a, 0xaf, 0xa8, 0x68, 0xbb, 0x87, 0xa0, 0xea, 0x3a, 0xf3, 0xc5, 0x28, 0x55, 0x36, 0xff, - 0x9f, 0x91, 0x03, 0xc8, 0xc2, 0x83, 0x80, 0x29, 0xa3, 0x4a, 0x7d, 0xf4, 0x94, 0xd1, 0x76, 0x8f, - 0x83, 0xb2, 0x74, 0x08, 0xca, 0xbe, 0x27, 0xc1, 0x3c, 0x0d, 0xb1, 0x7c, 0x29, 0x7b, 0xa5, 0x57, - 0x64, 0x5d, 0xa6, 0x8c, 0x97, 0xe9, 0x82, 0x19, 0xc3, 0xcc, 0x05, 0x63, 0x0b, 0x99, 0x20, 0x29, - 0xfb, 0x80, 0x2e, 0x62, 0xb9, 0x5f, 0x96, 0xf2, 0xd3, 0x84, 0xab, 0x61, 0xf1, 0x5b, 0x4d, 0x11, - 0xc7, 0xdd, 0x43, 0x05, 0x4e, 0xa0, 0x59, 0x2f, 0x70, 0xca, 0xb6, 0x8a, 0x7e, 0x55, 0x82, 0x59, - 0x51, 0xf6, 0x6d, 0x60, 0x2f, 0x46, 0x06, 0xc0, 0xa4, 0xbd, 0x07, 0xe4, 0xcf, 0xfb, 0x08, 0xc3, - 0x49, 0xd9, 0x0f, 0x3a, 0x96, 0x02, 0x8c, 0x5e, 0x94, 0xef, 0xc3, 0xa0, 0x67, 0x12, 0x7d, 0x94, - 0xe8, 0xd3, 0xdd, 0xd0, 0x7f, 0x5d, 0x82, 0x59, 0x51, 0x86, 0x6d, 0xf4, 0xcf, 0x45, 0x06, 0xd1, - 0x45, 0x6a, 0x97, 0xfc, 0xa4, 0xf6, 0x44, 0xc6, 0x57, 0x30, 0xbe, 0x29, 0x41, 0x8a, 0x13, 0x57, - 0xf1, 0x55, 0x28, 0x3f, 0x91, 0x7d, 0x21, 0x2c, 0x6a, 0xa1, 0x39, 0xc2, 0x3e, 0x0f, 0xb1, 0x3d, - 0x85, 0xe6, 0xbc, 0xd0, 0x35, 0x68, 0x5d, 0xf4, 0xdb, 0x12, 0xcc, 0x89, 0xa2, 0x2b, 0x82, 0xbc, - 0xde, 0x13, 0x18, 0x26, 0xc2, 0x3d, 0x52, 0xf2, 0x92, 0x8f, 0x20, 0x2c, 0xc8, 0xdd, 0x48, 0xc1, - 0xc2, 0x80, 0xa9, 0x11, 0x45, 0xf9, 0x28, 0xa8, 0x61, 0x22, 0x7d, 0xd4, 0xd4, 0xa4, 0x83, 0xa8, - 0xf9, 0xab, 0x12, 0xcc, 0x89, 0xa2, 0x2d, 0x52, 0xf3, 0x62, 0x4f, 0x80, 0xba, 0x88, 0xf8, 0x35, - 0x3f, 0x11, 0x3f, 0x95, 0xe9, 0x2a, 0x44, 0x5f, 0x04, 0x58, 0x51, 0x8d, 0x92, 0xb6, 0x4d, 0xb6, - 0x37, 0xce, 0x86, 0xb8, 0x76, 0xbf, 0x98, 0x0f, 0xde, 0x5b, 0x29, 0x69, 0xdb, 0xf2, 0x82, 0xc7, - 0xca, 0xce, 0x08, 0x02, 0x7b, 0x65, 0x07, 0xeb, 0xff, 0x94, 0xd9, 0x39, 0x3d, 0x25, 0xc4, 0xb6, - 0x35, 0xc2, 0x3f, 0xac, 0x14, 0x0e, 0xca, 0x92, 0x07, 0x94, 0x79, 0x74, 0xd2, 0xdc, 0xce, 0x20, - 0x88, 0xe8, 0x07, 0x07, 0xd9, 0x77, 0xe9, 0xdf, 0xf7, 0xd0, 0x97, 0x25, 0x18, 0xb5, 0x97, 0xc0, - 0x4b, 0xda, 0xf6, 0x91, 0x32, 0xe7, 0x0a, 0xf5, 0xc6, 0x31, 0x22, 0x5b, 0xac, 0xe6, 0xd2, 0x33, - 0xdc, 0xba, 0x97, 0x63, 0xf5, 0x1b, 0xe3, 0x29, 0x7f, 0xac, 0x78, 0xc4, 0x85, 0xef, 0x0f, 0x89, - 0xd7, 0x4d, 0x8e, 0x1d, 0xee, 0x71, 0x8f, 0x64, 0x5d, 0x8b, 0xf8, 0xaa, 0x8d, 0xe9, 0x7c, 0xbf, - 0x18, 0xb9, 0x1e, 0xdb, 0x5e, 0xb9, 0xea, 0x31, 0xb6, 0xa7, 0xe4, 0x14, 0x05, 0xbe, 0xab, 0xb2, - 0x71, 0x15, 0x76, 0x82, 0x7e, 0x4e, 0x82, 0xb1, 0x5c, 0xad, 0xc6, 0xe1, 0x0e, 0x9e, 0x6e, 0x3c, - 0x9e, 0x65, 0x4a, 0x87, 0x17, 0x53, 0x33, 0x78, 0x15, 0xf9, 0x3b, 0x2d, 0x27, 0x9d, 0x30, 0x59, - 0x50, 0x3d, 0x41, 0xbf, 0x06, 0xe7, 0x11, 0x06, 0x32, 0xd6, 0xfb, 0xf5, 0x27, 0x5f, 0x83, 0xe1, - 0x3d, 0xe2, 0x99, 0x13, 0x2e, 0xc6, 0xf1, 0x1a, 0x31, 0x41, 0xd5, 0x95, 0xbf, 0xcb, 0xc0, 0x6f, - 0x2a, 0x5c, 0x0c, 0xfd, 0x82, 0x07, 0x69, 0x87, 0xe0, 0x99, 0x80, 0x71, 0x8c, 0x67, 0x97, 0x24, - 0x8b, 0x41, 0x3e, 0x43, 0x85, 0x33, 0xf4, 0x2c, 0xfd, 0x3c, 0xfc, 0xaf, 0x70, 0xc3, 0xc8, 0xee, - 0x4a, 0x08, 0x39, 0x8c, 0xc2, 0x0b, 0x3a, 0xa1, 0x86, 0x91, 0xd6, 0x20, 0xc2, 0x86, 0x20, 0xc9, - 0x81, 0xf4, 0x1e, 0x4d, 0x06, 0x14, 0x8f, 0xe6, 0xdf, 0x92, 0x60, 0x82, 0xae, 0x34, 0xf1, 0x40, - 0xaf, 0x85, 0x5b, 0x8a, 0x3e, 0x0c, 0xd6, 0xeb, 0x5d, 0xb0, 0x9e, 0x4e, 0xa7, 0x9d, 0x58, 0xb3, - 0xef, 0xb2, 0x0f, 0xe6, 0xde, 0x63, 0x9b, 0xa5, 0xbc, 0x0c, 0x86, 0x45, 0xed, 0xfd, 0x46, 0x51, - 0xd7, 0x68, 0x62, 0x12, 0x26, 0x38, 0x88, 0xdc, 0xc4, 0x75, 0x32, 0xd3, 0x05, 0x23, 0xfa, 0x0d, - 0xd1, 0xfc, 0xd0, 0xfe, 0xc2, 0x99, 0x1f, 0x8f, 0xcf, 0xdc, 0x43, 0x99, 0x1f, 0xaf, 0x8f, 0xfc, - 0x89, 0x8b, 0xe0, 0x23, 0xb6, 0xbc, 0x15, 0x32, 0x09, 0xe0, 0xac, 0xd0, 0x77, 0x25, 0x18, 0xa3, - 0x8d, 0x59, 0x8f, 0x4f, 0x3c, 0x1f, 0xe9, 0xbe, 0x11, 0x13, 0xfb, 0x0b, 0x11, 0x6b, 0x31, 0xe4, - 0x8b, 0x3e, 0x9b, 0x1c, 0x33, 0xf2, 0x84, 0xbd, 0xc9, 0xc1, 0xe1, 0xfd, 0x19, 0xc9, 0x3a, 0xfc, - 0x49, 0x7c, 0x85, 0x0b, 0x21, 0xbb, 0x2d, 0xe6, 0xd3, 0x61, 0x9f, 0xd0, 0x20, 0xeb, 0xa3, 0x48, - 0xc4, 0x84, 0x62, 0x45, 0x8a, 0x2b, 0x89, 0xc6, 0xc4, 0xcd, 0x17, 0xf4, 0x97, 0x24, 0x18, 0x65, - 0x0e, 0x30, 0x7b, 0x6c, 0x23, 0x2c, 0x03, 0x85, 0x57, 0x7b, 0xc2, 0xc3, 0x3b, 0xc7, 0x9c, 0x2c, - 0x06, 0xcf, 0xd6, 0xa7, 0x31, 0x79, 0xc8, 0xc2, 0x86, 0x79, 0xf5, 0x2d, 0x09, 0x46, 0x99, 0x33, - 0x1b, 0x11, 0x99, 0xf0, 0x2e, 0x50, 0x78, 0x64, 0x57, 0x88, 0x26, 0x89, 0xc8, 0x2c, 0xce, 0x4d, - 0xa6, 0x1d, 0x9c, 0xc3, 0x10, 0x7f, 0x41, 0x82, 0x09, 0xdb, 0xbf, 0x31, 0x61, 0x1e, 0xc7, 0xa0, - 0xfe, 0x58, 0x37, 0x6c, 0xd8, 0x12, 0x89, 0x5b, 0x6a, 0x0e, 0xbf, 0xe7, 0x17, 0x88, 0x25, 0x7a, - 0x1c, 0x71, 0x8a, 0xfe, 0xd0, 0xbf, 0x92, 0x60, 0x9a, 0x6a, 0x98, 0x78, 0x21, 0x91, 0x1e, 0x1c, - 0xb9, 0x74, 0xb9, 0xc1, 0x28, 0xfd, 0x4a, 0xa4, 0xcb, 0xaf, 0x44, 0x0d, 0x7f, 0x6d, 0xff, 0x20, - 0x75, 0xc2, 0xa1, 0x4d, 0x43, 0x26, 0x63, 0x6c, 0x1b, 0xc5, 0x2e, 0xe7, 0xf2, 0xd2, 0xf9, 0x5f, - 0x97, 0x60, 0x7a, 0x45, 0x35, 0x44, 0x80, 0x44, 0xfb, 0x17, 0xa3, 0xe0, 0x2a, 0xe6, 0xd3, 0x91, - 0x6f, 0x93, 0x92, 0x97, 0x7d, 0xec, 0xd3, 0x45, 0x74, 0xc1, 0x05, 0xf9, 0x5d, 0xfb, 0x7b, 0xcb, - 0xf7, 0x68, 0x26, 0x33, 0x11, 0xdf, 0xa0, 0x04, 0x78, 0xbc, 0x3f, 0xe3, 0xe7, 0xb7, 0x2c, 0x45, - 0xba, 0x89, 0x9c, 0xfa, 0x2e, 0x78, 0x12, 0x98, 0x86, 0x49, 0x13, 0xaa, 0x73, 0x22, 0x20, 0xcb, - 0x4f, 0x26, 0x54, 0xd1, 0x87, 0xf9, 0xcf, 0x12, 0x4c, 0x09, 0x93, 0x80, 0x39, 0x91, 0xbd, 0xd2, - 0xc3, 0x85, 0xe8, 0xa6, 0xcc, 0x5c, 0xef, 0xa9, 0x2e, 0x13, 0x9a, 0x3b, 0xfb, 0x07, 0xa9, 0x05, - 0x4f, 0x5a, 0x9c, 0xb2, 0x73, 0x51, 0x7e, 0x36, 0xeb, 0x3d, 0x02, 0x1e, 0xb3, 0xdd, 0xaf, 0x48, - 0x90, 0xcc, 0xd5, 0x6a, 0xe2, 0xdb, 0x3e, 0x57, 0x22, 0x01, 0xcd, 0xd5, 0x6a, 0xc1, 0x1b, 0x82, - 0x42, 0x0d, 0xf9, 0xc6, 0xfe, 0x41, 0x2a, 0x0d, 0x53, 0x0e, 0x62, 0x44, 0xcd, 0x9e, 0x93, 0x9d, - 0x9b, 0xfa, 0x9c, 0xf7, 0xf6, 0x8f, 0x24, 0x98, 0xa4, 0xae, 0x98, 0x88, 0xfc, 0xb9, 0x48, 0x38, - 0x68, 0x0b, 0x51, 0xc1, 0x17, 0x43, 0x80, 0x3f, 0x9b, 0x5e, 0xf0, 0x06, 0x2f, 0xba, 0x73, 0x7f, - 0x5d, 0x82, 0x49, 0xea, 0x9b, 0x1d, 0x86, 0x0c, 0xda, 0x82, 0xaf, 0x37, 0xb7, 0xb2, 0x7f, 0x90, - 0x9a, 0x83, 0x69, 0x07, 0x5e, 0xea, 0xd1, 0x59, 0x80, 0xe5, 0x4c, 0x20, 0x60, 0xf4, 0x6f, 0x2d, - 0xdf, 0x8e, 0xfb, 0x1e, 0x24, 0xc4, 0xf6, 0x9d, 0xdf, 0xcb, 0x25, 0xe9, 0x97, 0x7b, 0xa8, 0xc9, - 0xd4, 0xe1, 0x8d, 0xfd, 0x83, 0xd4, 0x3c, 0x4c, 0x58, 0x56, 0xa8, 0xd5, 0x50, 0x3d, 0x95, 0xe1, - 0x82, 0x7c, 0xc6, 0x47, 0x19, 0x88, 0xa2, 0xf3, 0xaa, 0xf0, 0x4b, 0x34, 0x6e, 0xe1, 0x5f, 0x11, - 0x5a, 0x8c, 0x00, 0x10, 0xab, 0xc1, 0xc5, 0x08, 0xe5, 0x49, 0x20, 0x90, 0x02, 0x24, 0x90, 0x20, - 0x4a, 0xd1, 0x09, 0x79, 0xca, 0x31, 0x28, 0x04, 0x34, 0x06, 0xfb, 0xb7, 0xad, 0xf0, 0x85, 0xc7, - 0x7b, 0x35, 0x42, 0xff, 0x4c, 0xf8, 0x23, 0x41, 0xce, 0x05, 0x42, 0x76, 0xcf, 0xc7, 0x94, 0xcf, - 0xef, 0xde, 0x57, 0xf7, 0xde, 0x63, 0x9b, 0xe7, 0x13, 0x82, 0xc8, 0x47, 0x06, 0x1e, 0x20, 0xee, - 0x37, 0xc8, 0xec, 0x3a, 0x29, 0x60, 0x74, 0x08, 0x3b, 0x0e, 0x61, 0x7c, 0x41, 0xa2, 0x1f, 0x5a, - 0x62, 0xce, 0x1d, 0x11, 0x0b, 0x21, 0xe6, 0x7e, 0xf7, 0xff, 0x06, 0x8b, 0xb9, 0xef, 0x8d, 0xc7, - 0xf2, 0xdd, 0xfd, 0x83, 0xd4, 0x29, 0xf7, 0xc9, 0x31, 0xa7, 0x94, 0x5f, 0x91, 0x2f, 0xfa, 0x48, - 0xb9, 0x70, 0x98, 0x8c, 0x13, 0xf6, 0xbf, 0x2f, 0x09, 0xf7, 0x5a, 0x13, 0xdf, 0xe1, 0x72, 0x04, - 0x9c, 0xc5, 0x7c, 0xb0, 0xe4, 0x70, 0xc5, 0x89, 0xbe, 0x86, 0x20, 0x24, 0x83, 0xce, 0x87, 0x21, - 0x84, 0xf8, 0x10, 0x3f, 0x90, 0x60, 0x9a, 0x06, 0x0c, 0x8e, 0xef, 0x7d, 0xd0, 0x0b, 0x11, 0x2f, - 0x32, 0x67, 0x6b, 0xeb, 0x91, 0x08, 0xda, 0x12, 0x0d, 0x10, 0x26, 0x88, 0x6a, 0x82, 0x83, 0xa2, - 0x4b, 0xf2, 0x39, 0x1f, 0x8a, 0x5a, 0xf5, 0x5a, 0x95, 0xa7, 0x0a, 0x0f, 0xcb, 0x6f, 0x59, 0x07, - 0x24, 0x78, 0x7a, 0xae, 0x46, 0x00, 0xc6, 0x56, 0xd6, 0x23, 0xd1, 0x72, 0x27, 0x24, 0x2d, 0x97, - 0xd3, 0xa1, 0x47, 0x07, 0x13, 0xf3, 0xbb, 0x12, 0x4c, 0xdb, 0xa1, 0x0c, 0x4f, 0xd0, 0x71, 0x4a, - 0x9a, 0x12, 0x92, 0x98, 0x97, 0xd3, 0xcf, 0x87, 0x25, 0xc6, 0x19, 0xfb, 0x60, 0xc2, 0xca, 0x4f, - 0x06, 0x61, 0x62, 0xb0, 0xf4, 0x3d, 0xcb, 0x38, 0x1f, 0x82, 0x28, 0x3f, 0xc3, 0xbc, 0xb9, 0x7f, - 0x90, 0x3a, 0x6d, 0x4f, 0x1e, 0x18, 0x3f, 0xb3, 0xcb, 0x4e, 0x23, 0x90, 0x09, 0x6f, 0x04, 0xfe, - 0x9b, 0xb5, 0x3d, 0xc5, 0x81, 0xe0, 0xde, 0x8f, 0xb9, 0x12, 0xfe, 0xd2, 0x7a, 0xa6, 0x39, 0x11, - 0xae, 0xb9, 0x97, 0x1b, 0x21, 0x87, 0x24, 0x9f, 0xbe, 0x11, 0x8a, 0x22, 0xf1, 0x35, 0x0a, 0x6a, - 0x22, 0xe8, 0xcd, 0xf8, 0x78, 0x74, 0xfe, 0x50, 0x82, 0x74, 0x59, 0xdd, 0x56, 0x9b, 0xaa, 0xc6, - 0x8c, 0x9e, 0xf0, 0x9e, 0x41, 0xc4, 0x61, 0x0a, 0x3c, 0xa6, 0xc4, 0x37, 0x2e, 0x1b, 0x21, 0x29, - 0x5d, 0x4d, 0xaf, 0x84, 0x16, 0x3e, 0x9b, 0xba, 0x6c, 0x85, 0x1e, 0xd8, 0xa5, 0x4f, 0x2f, 0xd0, - 0xe7, 0x18, 0x30, 0xc5, 0xff, 0x51, 0x82, 0x49, 0xc1, 0xe3, 0x24, 0x61, 0xa8, 0x8e, 0x5e, 0xee, - 0x25, 0xfa, 0x3e, 0x7c, 0xe0, 0xee, 0x90, 0x60, 0x12, 0xd0, 0x7a, 0x4f, 0x63, 0xf2, 0xd9, 0x6c, - 0xd7, 0x20, 0xd8, 0x11, 0x81, 0xf1, 0x7d, 0xf6, 0x14, 0xc6, 0x5f, 0x8a, 0x52, 0x5e, 0xbe, 0xb9, - 0x7f, 0x90, 0x9a, 0xf2, 0xa2, 0x83, 0x80, 0x3f, 0x83, 0xe4, 0x6c, 0x70, 0x04, 0xff, 0x7d, 0x09, - 0x90, 0xb0, 0xc8, 0x47, 0xef, 0x56, 0x59, 0x8a, 0x02, 0x84, 0xcd, 0xbb, 0xd1, 0xc0, 0xe7, 0xc4, - 0xa0, 0x9e, 0x82, 0xb7, 0x97, 0xfc, 0x64, 0xf9, 0x54, 0x57, 0xf4, 0x6c, 0xf9, 0x04, 0x09, 0xcb, - 0x80, 0x3d, 0x60, 0x67, 0xd6, 0x22, 0x1a, 0xf6, 0x5b, 0xdd, 0xb1, 0x9f, 0x4b, 0x87, 0xe0, 0x3c, - 0x73, 0x13, 0x66, 0x5c, 0x8b, 0x84, 0x94, 0x88, 0xe3, 0x95, 0x9c, 0x72, 0x77, 0x02, 0x9e, 0x4b, - 0x2f, 0x06, 0x13, 0xe0, 0x9c, 0x4d, 0x31, 0x31, 0xe5, 0x1f, 0x5d, 0x62, 0xc4, 0x19, 0xf4, 0x3b, - 0x12, 0x20, 0x21, 0xbc, 0xe9, 0x8d, 0x10, 0xbf, 0x39, 0x34, 0xbf, 0x7f, 0x90, 0x9a, 0xb1, 0xd7, - 0x1e, 0x28, 0x64, 0x6e, 0x73, 0xe6, 0x4c, 0x26, 0x8c, 0xee, 0xfe, 0x8a, 0x04, 0x69, 0x7b, 0xf5, - 0xcd, 0x75, 0x0d, 0xba, 0xdf, 0x12, 0xdc, 0x8b, 0xd1, 0xef, 0xe0, 0xa5, 0xeb, 0x70, 0x05, 0xb2, - 0x02, 0x71, 0x42, 0x44, 0xed, 0x5c, 0x8d, 0x23, 0xe7, 0x21, 0x4d, 0xe8, 0x0c, 0xad, 0xb8, 0x28, - 0xb7, 0x1f, 0x83, 0x13, 0xee, 0xd9, 0xc0, 0x5c, 0x99, 0xbb, 0xd1, 0xeb, 0x0d, 0xc1, 0xe6, 0xcc, - 0xf0, 0x5a, 0xef, 0x0d, 0xb0, 0xf9, 0xe1, 0xed, 0x30, 0x74, 0x7e, 0x46, 0x7e, 0x29, 0x60, 0x88, - 0xcc, 0x8b, 0xdd, 0x3c, 0x17, 0xec, 0xfe, 0x83, 0x04, 0xd3, 0xf6, 0x2a, 0x05, 0x7f, 0x21, 0xfd, - 0x0b, 0xd1, 0xf1, 0xe7, 0x6a, 0xb5, 0xf4, 0x52, 0xf4, 0x6a, 0xf2, 0x9f, 0xdc, 0x3f, 0x48, 0x9d, - 0x84, 0xb4, 0x27, 0xa1, 0xb6, 0x02, 0xbd, 0x20, 0x5f, 0x89, 0x4a, 0x29, 0x73, 0x73, 0x52, 0xc2, - 0xd2, 0x06, 0x4f, 0xe4, 0x4b, 0xd1, 0xd1, 0xb2, 0x85, 0x8e, 0x5e, 0xe8, 0x54, 0x43, 0xd1, 0x79, - 0x23, 0xfd, 0x4a, 0xe4, 0x11, 0x15, 0x96, 0x01, 0x7f, 0x20, 0x41, 0xca, 0x6d, 0x34, 0x7a, 0xa7, - 0x38, 0x60, 0x85, 0xa4, 0x4a, 0x62, 0xf1, 0x39, 0x4f, 0xaa, 0x38, 0x5b, 0xf2, 0x63, 0x99, 0x43, - 0x90, 0x85, 0xfe, 0xae, 0x04, 0x49, 0xfb, 0xbb, 0x63, 0xe6, 0xb7, 0x5d, 0x8b, 0x78, 0xa9, 0x60, - 0xe8, 0x6d, 0x60, 0x9f, 0x4b, 0x41, 0xe5, 0x17, 0xe8, 0x36, 0x30, 0x39, 0x23, 0xee, 0x70, 0x73, - 0xd2, 0xf2, 0x34, 0x3b, 0x28, 0xee, 0xf6, 0xc9, 0xbe, 0x23, 0x71, 0x17, 0xd9, 0x12, 0x87, 0xec, - 0x62, 0x68, 0x04, 0xc5, 0x7c, 0xb8, 0x2f, 0x4f, 0xe8, 0x1c, 0xf4, 0xb2, 0x3f, 0xc0, 0x79, 0x64, - 0x1d, 0xb1, 0x37, 0xb9, 0x2a, 0x58, 0xf1, 0x5f, 0x94, 0x60, 0xdc, 0xfe, 0xd6, 0x98, 0xce, 0x33, - 0xd9, 0xd0, 0x3d, 0x33, 0xdf, 0x2b, 0x02, 0xd4, 0x97, 0xe8, 0xc1, 0x05, 0x0e, 0xaa, 0x78, 0x1c, - 0xd6, 0x1b, 0x2b, 0x66, 0xe7, 0xdf, 0x90, 0x60, 0xdc, 0xfe, 0x86, 0x23, 0x2a, 0x52, 0xe6, 0x69, - 0x45, 0x40, 0xfa, 0x99, 0x2e, 0x48, 0x9f, 0x4e, 0x77, 0xe5, 0x2a, 0x3b, 0x42, 0x35, 0x29, 0x7e, - 0x65, 0x4d, 0x21, 0x1f, 0x97, 0x0c, 0x14, 0xbb, 0xc0, 0xbd, 0x9c, 0x3e, 0xdf, 0x0d, 0xae, 0xd3, - 0x97, 0xfa, 0x90, 0x6c, 0x28, 0xfc, 0x88, 0x40, 0x17, 0x3d, 0xa7, 0x0f, 0x24, 0x18, 0xa7, 0x86, - 0xab, 0x47, 0xd8, 0x7e, 0xe6, 0xee, 0x3a, 0x3d, 0xcd, 0xc2, 0x61, 0xe4, 0x8c, 0xdc, 0x7c, 0xa6, - 0xbb, 0x92, 0xfd, 0x0f, 0x09, 0x66, 0x05, 0x9f, 0x83, 0xb3, 0x66, 0x61, 0x9f, 0x42, 0x38, 0x6a, - 0xa3, 0xf6, 0xb9, 0xfd, 0x83, 0xd4, 0x19, 0x98, 0x35, 0xed, 0xb7, 0xc3, 0x76, 0x84, 0x5f, 0x1b, - 0xf6, 0xb3, 0x7e, 0xff, 0xc6, 0xbe, 0xf1, 0x4b, 0x34, 0x82, 0x4b, 0x51, 0x09, 0x8e, 0x26, 0x4c, - 0x6f, 0x47, 0xa2, 0xeb, 0x79, 0xb4, 0xd4, 0x95, 0x2e, 0xef, 0xf1, 0xfc, 0x3d, 0x09, 0x66, 0x84, - 0xb0, 0xf5, 0xd1, 0xd8, 0x4e, 0x65, 0xff, 0x20, 0x75, 0x16, 0x52, 0x1e, 0xa4, 0x79, 0xae, 0xa2, - 0x2c, 0xc9, 0x97, 0x23, 0xd1, 0x86, 0x47, 0xed, 0x0f, 0x24, 0x98, 0x11, 0x82, 0x5a, 0x9b, 0xb2, - 0x6b, 0x51, 0xc7, 0x2d, 0xba, 0xc9, 0xbd, 0x17, 0x8d, 0xc0, 0x17, 0xd3, 0x3d, 0x0c, 0x9e, 0xb9, - 0x06, 0xe6, 0x8a, 0x7c, 0x6d, 0x4a, 0x8f, 0x59, 0x42, 0xb5, 0x68, 0x54, 0x2e, 0xa7, 0x5f, 0x8d, - 0x4e, 0xa5, 0xd3, 0xa4, 0xd3, 0x55, 0xbf, 0x27, 0x9b, 0x62, 0x71, 0x26, 0xf8, 0x4a, 0x0c, 0x4e, - 0xba, 0xe3, 0x3c, 0xce, 0xf0, 0xde, 0x8c, 0xb4, 0x50, 0x73, 0xc4, 0xd6, 0xd7, 0xd8, 0x3f, 0x48, - 0x65, 0xe1, 0x94, 0xe8, 0x3d, 0x3b, 0x6d, 0x95, 0xf8, 0x90, 0x20, 0xe5, 0xcd, 0x75, 0xf9, 0x9a, - 0xc9, 0x1b, 0x93, 0x78, 0xe7, 0x55, 0xde, 0xfe, 0x36, 0xf9, 0x8f, 0x24, 0xf1, 0xf1, 0x36, 0xd1, - 0x30, 0xbf, 0xd8, 0x13, 0x43, 0xa2, 0x49, 0xc2, 0x3b, 0xbd, 0xd2, 0x7d, 0x03, 0x7d, 0x26, 0x2c, - 0xdd, 0xde, 0x36, 0xfb, 0x8f, 0xed, 0x0f, 0x6a, 0xbc, 0xc8, 0x40, 0xd7, 0x7b, 0xa2, 0x3e, 0xba, - 0x11, 0x7f, 0xb8, 0x7f, 0x90, 0xba, 0x02, 0xf3, 0xbe, 0x1c, 0xa0, 0x1a, 0xe1, 0xc5, 0x02, 0x2e, - 0xe6, 0x8f, 0xca, 0x02, 0x3c, 0xf8, 0xef, 0xc7, 0xac, 0x6f, 0x70, 0x8e, 0x90, 0x01, 0xd1, 0x8d, - 0xfc, 0x9f, 0xea, 0x99, 0x01, 0x37, 0xd3, 0x87, 0x93, 0x01, 0xcc, 0x85, 0xbf, 0x10, 0x83, 0xd3, - 0xde, 0x8b, 0x9e, 0x36, 0x27, 0x1e, 0x85, 0x22, 0xfc, 0x94, 0xd4, 0x33, 0x1b, 0xd6, 0xd3, 0xc5, - 0x43, 0xb1, 0xc1, 0x39, 0x37, 0x60, 0x96, 0x94, 0x3f, 0xe9, 0x2c, 0x71, 0x2d, 0xc0, 0x8e, 0xb3, - 0xd3, 0x1b, 0xd6, 0x85, 0xef, 0xd7, 0x22, 0x5e, 0xab, 0x1f, 0x7a, 0x8e, 0xf0, 0xb9, 0x02, 0x5f, - 0x9e, 0xa7, 0x57, 0x0b, 0xc8, 0x93, 0x59, 0xa5, 0x63, 0xec, 0xb8, 0xac, 0xf9, 0xcd, 0x7f, 0x26, - 0x7d, 0x35, 0xf7, 0x17, 0x25, 0xb4, 0x02, 0x63, 0xf6, 0x45, 0x81, 0x0b, 0xb9, 0x8d, 0xa2, 0x7c, - 0x05, 0x2d, 0xee, 0x18, 0x46, 0x5b, 0x7f, 0x25, 0x9b, 0xdd, 0xae, 0x1b, 0x3b, 0x9d, 0xb7, 0x17, - 0xab, 0xad, 0xdd, 0x2c, 0x46, 0x91, 0x65, 0x28, 0xb2, 0xed, 0xfb, 0xdb, 0x59, 0x1b, 0xc9, 0x52, - 0xfc, 0xca, 0xe2, 0xd5, 0x8c, 0x14, 0x5b, 0xe2, 0x1f, 0x75, 0xcf, 0xfe, 0xa4, 0xde, 0x6a, 0x8a, - 0x29, 0xdb, 0x5a, 0xbb, 0xfa, 0x8a, 0xab, 0xcc, 0x2b, 0xae, 0x32, 0x9f, 0x0d, 0xd9, 0x6f, 0x56, - 0x69, 0xd7, 0x49, 0x85, 0xb7, 0xfb, 0x49, 0xb8, 0xf5, 0xdc, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, - 0xb8, 0xd6, 0x5d, 0x2e, 0x39, 0xcb, 0x00, 0x00, + 0xc7, 0x5a, 0x47, 0x57, 0x60, 0x8a, 0x1b, 0x6c, 0xab, 0x68, 0x2a, 0x4d, 0x5a, 0xb3, 0x05, 0x61, + 0xd5, 0xac, 0x22, 0xff, 0xb1, 0x04, 0x13, 0x44, 0x99, 0x55, 0x45, 0xab, 0xee, 0x98, 0x6e, 0x9e, + 0x1d, 0x21, 0x48, 0xde, 0x11, 0x42, 0x8c, 0x8f, 0x62, 0x3e, 0x07, 0x63, 0x7a, 0x4b, 0x33, 0xea, + 0xcd, 0xed, 0x4a, 0xb5, 0xd5, 0xe8, 0xec, 0x36, 0x89, 0xf2, 0x8f, 0x2d, 0x5d, 0x0e, 0x65, 0x45, + 0x48, 0xc7, 0xaf, 0xab, 0x7b, 0x64, 0xd2, 0xdf, 0x97, 0x62, 0x0b, 0x4f, 0x95, 0x47, 0x59, 0x73, + 0xcb, 0xa4, 0x35, 0x94, 0x84, 0xb8, 0xa2, 0x57, 0x59, 0x38, 0x86, 0xff, 0x45, 0x45, 0x18, 0xf8, + 0x42, 0x47, 0xd5, 0xea, 0xaa, 0x9e, 0xea, 0x23, 0x31, 0x50, 0x36, 0x7c, 0x57, 0x6f, 0x74, 0x54, + 0x6d, 0xaf, 0x6c, 0xd6, 0x97, 0x3f, 0x94, 0x60, 0xdc, 0x91, 0x89, 0x8a, 0x10, 0xbf, 0xaf, 0xee, + 0x11, 0xda, 0x0f, 0x41, 0x05, 0x6e, 0x03, 0xe5, 0xa1, 0x7f, 0x57, 0x35, 0x76, 0x5a, 0x35, 0x66, + 0x59, 0x2f, 0x05, 0xb5, 0x46, 0x5b, 0x5a, 0x23, 0x75, 0xca, 0xac, 0x2e, 0xe6, 0xfb, 0x03, 0xa5, + 0xd1, 0x61, 0xee, 0x71, 0x99, 0xfe, 0x90, 0x7f, 0x51, 0x02, 0xc4, 0x8f, 0x1d, 0x73, 0xeb, 0xa3, + 0x0d, 0xde, 0xd3, 0x30, 0x62, 0xb4, 0xb0, 0xd4, 0x6b, 0xaa, 0xde, 0x69, 0x98, 0xb1, 0xdf, 0x30, + 0x49, 0x2b, 0x93, 0x24, 0xf4, 0x1a, 0x16, 0x7c, 0x92, 0x99, 0x20, 0xcc, 0x3e, 0x1f, 0x86, 0x23, + 0x78, 0x9a, 0x29, 0xb3, 0x7a, 0xf2, 0x6f, 0xc4, 0x69, 0x14, 0xb4, 0xa1, 0xb5, 0xee, 0xd5, 0x1b, + 0xaa, 0x57, 0xe8, 0xe5, 0x8c, 0x16, 0x7c, 0x0d, 0x64, 0xdc, 0x61, 0x20, 0xe7, 0x5c, 0x51, 0x01, + 0x67, 0xfd, 0x9c, 0xd6, 0xb3, 0xcf, 0x6d, 0x3d, 0xbd, 0x0d, 0x64, 0x7f, 0xb0, 0x81, 0x1c, 0xe8, + 0xc9, 0x40, 0x0a, 0x13, 0xc5, 0xa0, 0x63, 0xa2, 0xe0, 0x6d, 0xc4, 0x90, 0xc3, 0x46, 0xb8, 0x66, + 0x58, 0x38, 0xdc, 0x0c, 0x3b, 0x1c, 0x65, 0x86, 0x95, 0x7f, 0x36, 0x41, 0xd5, 0x84, 0x8d, 0xa0, + 0xa7, 0x13, 0xf1, 0xe9, 0x28, 0x3e, 0xe6, 0xa3, 0xe8, 0x9c, 0x40, 0x46, 0x42, 0x4f, 0x20, 0x73, + 0xbe, 0x13, 0xc8, 0xcf, 0xc7, 0x20, 0x75, 0xa7, 0x5d, 0x63, 0xeb, 0x04, 0x4c, 0x3c, 0xfc, 0x16, + 0xc7, 0x3e, 0x81, 0xab, 0x02, 0xf2, 0xff, 0x95, 0x60, 0xc8, 0x5a, 0x01, 0x72, 0x71, 0x64, 0x4a, + 0x58, 0xbb, 0xe9, 0xea, 0x2f, 0xc5, 0xbd, 0xfd, 0x25, 0x5e, 0xda, 0x12, 0x41, 0xd2, 0xd6, 0x77, + 0x38, 0x69, 0xeb, 0x8f, 0x64, 0x33, 0xfe, 0x9f, 0x04, 0xa3, 0x16, 0xe5, 0x9e, 0x16, 0xe3, 0x49, + 0xa6, 0xfe, 0x01, 0xcc, 0xd8, 0x7a, 0x41, 0x40, 0xfb, 0x69, 0x45, 0xe0, 0xfa, 0x5d, 0x14, 0x8e, + 0x58, 0xf2, 0x46, 0x7c, 0x62, 0x2f, 0x8e, 0x53, 0xef, 0x3a, 0x16, 0xe8, 0x5d, 0xc7, 0xbd, 0xbd, + 0x6b, 0x9e, 0xe3, 0x7d, 0x41, 0x1c, 0xef, 0x3f, 0x1c, 0xc7, 0x07, 0x7a, 0x92, 0x37, 0x8a, 0xd7, + 0x47, 0xde, 0x9e, 0x58, 0xea, 0x3b, 0xbc, 0xbc, 0x11, 0xd0, 0x7e, 0xf2, 0x76, 0x5a, 0xe0, 0xc2, + 0xcd, 0xa1, 0x8f, 0x6e, 0xf6, 0x6b, 0x89, 0xa4, 0x14, 0xb0, 0xb2, 0xe8, 0xcd, 0x10, 0xf9, 0x5f, + 0xc4, 0xa8, 0x6b, 0x67, 0x86, 0x39, 0xce, 0xce, 0xb8, 0x60, 0x2c, 0xe6, 0x1f, 0x8c, 0xc5, 0xbb, + 0x07, 0x63, 0x89, 0x2e, 0xc1, 0x58, 0x5f, 0x40, 0x30, 0xd6, 0x1f, 0x14, 0x8c, 0x0d, 0x04, 0x0d, + 0xe3, 0xe0, 0xe1, 0x86, 0x71, 0x28, 0xd2, 0x30, 0xfe, 0x20, 0x46, 0x1d, 0x2d, 0x86, 0xd4, 0x53, + 0x8c, 0x3f, 0xe5, 0x69, 0x34, 0x9e, 0xfe, 0x4f, 0x89, 0xf7, 0x51, 0x18, 0x5e, 0x3f, 0xed, 0x90, + 0x1d, 0xcc, 0x0d, 0x5a, 0x2a, 0x8f, 0x87, 0x5d, 0x2a, 0x4f, 0x84, 0x5a, 0x2a, 0xef, 0x0b, 0xbd, + 0x54, 0xde, 0xdf, 0x75, 0xa9, 0x5c, 0x2e, 0xc1, 0xc8, 0x5a, 0xa7, 0x61, 0xd4, 0x6f, 0x29, 0x55, + 0xa3, 0xa5, 0xe9, 0xe8, 0x06, 0x24, 0x76, 0xef, 0x29, 0xe6, 0xa6, 0xe1, 0xc5, 0x20, 0x2f, 0x86, + 0xab, 0x5b, 0x26, 0x15, 0xe5, 0x2f, 0x49, 0x30, 0xcc, 0xa5, 0xa2, 0xeb, 0x90, 0x20, 0x5b, 0x79, + 0x34, 0x4c, 0x3e, 0x17, 0xd8, 0xe0, 0x3d, 0x65, 0x6b, 0xaf, 0xad, 0x96, 0x49, 0x25, 0xf4, 0xaa, + 0xb8, 0xe0, 0x18, 0x18, 0x52, 0xae, 0xdd, 0xca, 0xf1, 0xeb, 0x8d, 0xf2, 0x49, 0x80, 0x0d, 0xb6, + 0x04, 0xe7, 0xb1, 0xe9, 0x76, 0x1b, 0xc6, 0xcd, 0x5c, 0xbf, 0x61, 0x3e, 0xcb, 0xed, 0x24, 0x38, + 0xec, 0x20, 0xbf, 0x97, 0xf0, 0x2c, 0x4c, 0x95, 0x55, 0x5d, 0x35, 0x02, 0x9a, 0x93, 0x1f, 0xc0, + 0xfc, 0xa6, 0x5d, 0x6a, 0xbd, 0x65, 0xd4, 0xef, 0xb1, 0x9d, 0x46, 0x3f, 0x00, 0x79, 0xc6, 0x3e, + 0xca, 0x80, 0x2b, 0x41, 0x0c, 0xe0, 0x9b, 0xb4, 0xf9, 0x28, 0x5f, 0x82, 0xb4, 0xd9, 0xe9, 0x72, + 0x6b, 0xb7, 0xdd, 0x50, 0xdf, 0xa9, 0x1b, 0x7b, 0x1b, 0xad, 0x46, 0xbd, 0xba, 0xe7, 0xc1, 0x97, + 0x3f, 0x8c, 0x43, 0xca, 0xaf, 0xb8, 0x87, 0x5b, 0x32, 0x6c, 0x6e, 0xd8, 0x63, 0xc1, 0x8c, 0xb1, + 0xa0, 0xcb, 0x4e, 0x42, 0x39, 0x73, 0x10, 0xe9, 0x7a, 0x4f, 0xa0, 0x4c, 0xd1, 0x8e, 0xba, 0xaf, + 0x1b, 0x27, 0x0e, 0x67, 0x18, 0xfa, 0xa2, 0xee, 0x49, 0xef, 0xd6, 0x9b, 0x95, 0x86, 0xda, 0xdc, + 0x36, 0x76, 0x88, 0x42, 0x25, 0xca, 0x43, 0xbb, 0xf5, 0xe6, 0x2a, 0x49, 0x40, 0xcf, 0xc0, 0xe8, + 0x8e, 0xa2, 0x57, 0x1a, 0xad, 0x87, 0xaa, 0x56, 0x55, 0x74, 0x6a, 0xd6, 0x06, 0xcb, 0x23, 0x3b, + 0x8a, 0xbe, 0x6a, 0xa6, 0x99, 0x85, 0x3a, 0xed, 0x36, 0x2b, 0x34, 0x68, 0x15, 0xba, 0x63, 0xa6, + 0xe1, 0x8e, 0x70, 0xa1, 0x66, 0x67, 0xf7, 0x6d, 0x55, 0x23, 0xd6, 0x6b, 0xb0, 0x3c, 0xb4, 0xa3, + 0xe8, 0xeb, 0x24, 0xc1, 0xcc, 0xd6, 0xf7, 0x76, 0xdf, 0x6e, 0x35, 0xd8, 0x1e, 0x1e, 0xce, 0xde, + 0x24, 0x09, 0x82, 0x65, 0x1d, 0x76, 0x58, 0xd6, 0x53, 0x00, 0x75, 0xbd, 0x52, 0x53, 0xef, 0x29, + 0x9d, 0x86, 0x41, 0xd6, 0x75, 0x07, 0xcb, 0x43, 0x75, 0x3d, 0x4f, 0x13, 0xe4, 0xff, 0x25, 0xc1, + 0xbc, 0xdf, 0x88, 0xd3, 0xed, 0x5d, 0x94, 0x11, 0xc7, 0x59, 0xe2, 0xcd, 0xca, 0xff, 0x8e, 0x8b, + 0x23, 0x2e, 0x32, 0x2c, 0x16, 0xc8, 0xb0, 0x78, 0x18, 0x86, 0x25, 0x02, 0x19, 0xd6, 0xd7, 0x9d, + 0x61, 0xfd, 0x0e, 0x86, 0xc9, 0xef, 0xc7, 0xfc, 0xa9, 0xa6, 0x13, 0x81, 0x4b, 0xda, 0x33, 0x1e, + 0xd2, 0x1e, 0x8e, 0x0b, 0xf1, 0x40, 0x2e, 0x24, 0xc2, 0x70, 0xa1, 0x2f, 0x90, 0x0b, 0xfd, 0xdd, + 0xb9, 0x30, 0xe0, 0xe4, 0xc2, 0x59, 0x98, 0x34, 0x99, 0x90, 0xdb, 0x56, 0x7d, 0x8d, 0xc2, 0x97, + 0xe3, 0x30, 0xe1, 0x2a, 0xf7, 0x49, 0xb4, 0x06, 0x0b, 0x30, 0xb2, 0xab, 0xbc, 0x53, 0x51, 0x48, + 0xed, 0x3d, 0x9d, 0xd9, 0x03, 0xd8, 0x55, 0xde, 0xc9, 0xe1, 0x12, 0x7b, 0x3a, 0x3a, 0x0f, 0x49, + 0xf5, 0x9d, 0x76, 0x5d, 0x53, 0x2b, 0x0f, 0x15, 0xad, 0x49, 0x4b, 0x51, 0x57, 0x67, 0x8c, 0xa6, + 0xdf, 0x55, 0xb4, 0x26, 0x29, 0xc9, 0xab, 0xec, 0x60, 0x57, 0x95, 0x1d, 0x72, 0xaa, 0xec, 0x57, + 0x24, 0x98, 0x75, 0x8d, 0x47, 0x0f, 0xba, 0xea, 0x24, 0x27, 0x16, 0x8a, 0x9c, 0xb8, 0x17, 0x39, + 0xf2, 0xb7, 0xbd, 0x30, 0x1d, 0x81, 0x26, 0x39, 0x31, 0xc6, 0x43, 0x61, 0x4c, 0x78, 0x62, 0xbc, + 0x60, 0x43, 0x5c, 0x6d, 0x55, 0xef, 0xb7, 0x3a, 0x86, 0xaf, 0xc8, 0x7f, 0x23, 0x0e, 0xd3, 0x9e, + 0x65, 0x3f, 0x89, 0x62, 0xff, 0x34, 0x1b, 0x03, 0xc3, 0x50, 0x77, 0xdb, 0x86, 0x29, 0xf6, 0xc3, + 0x78, 0x0c, 0x58, 0x12, 0x7a, 0x0e, 0x66, 0xf4, 0x9d, 0xd6, 0xc3, 0x4a, 0xa3, 0x55, 0xbd, 0x5f, + 0x69, 0x75, 0x8c, 0xca, 0x3d, 0xa5, 0xde, 0xe8, 0x68, 0xaa, 0xce, 0x8c, 0xce, 0x24, 0xce, 0xc5, + 0x8c, 0x2c, 0x75, 0x8c, 0x5b, 0x2c, 0xeb, 0x30, 0x2a, 0xf0, 0x6d, 0x09, 0xe6, 0x3c, 0xc7, 0xa7, + 0x07, 0x35, 0x70, 0x92, 0x17, 0x8b, 0x42, 0x5e, 0xdc, 0x97, 0x3c, 0xf9, 0x97, 0xfd, 0x30, 0x1e, + 0x81, 0x5a, 0x38, 0x31, 0xc7, 0xa3, 0x60, 0x4e, 0xf8, 0x63, 0x9e, 0x85, 0xbe, 0x92, 0xb6, 0xed, + 0xa1, 0x10, 0xef, 0xc7, 0x20, 0x5e, 0xd2, 0xb6, 0x5d, 0xa0, 0xa3, 0xba, 0xe9, 0x25, 0x6d, 0xfb, + 0x31, 0x3a, 0x16, 0x80, 0x20, 0xc1, 0xed, 0x17, 0x90, 0xff, 0x05, 0xa9, 0xec, 0x77, 0x1c, 0x91, + 0x78, 0x03, 0xa0, 0xa4, 0x6d, 0xe7, 0x5b, 0xbb, 0x4a, 0xbd, 0xa9, 0xa3, 0x65, 0x18, 0xa8, 0xd1, + 0x7f, 0x59, 0xcc, 0x74, 0x21, 0x04, 0xf5, 0xb4, 0x72, 0xd9, 0xac, 0x29, 0x7f, 0x29, 0x06, 0x43, + 0x56, 0x32, 0x9a, 0x86, 0x7e, 0xe1, 0x18, 0x6b, 0x5f, 0x8b, 0x1c, 0x60, 0x75, 0x71, 0x29, 0x76, + 0x38, 0x2e, 0xc5, 0x23, 0x71, 0x69, 0x06, 0xfa, 0x29, 0x5a, 0xf3, 0x74, 0x25, 0xfd, 0x85, 0x39, + 0x65, 0x2d, 0xfe, 0x50, 0xe7, 0xc4, 0xfa, 0x8d, 0x52, 0x30, 0xd0, 0xd6, 0xea, 0xbb, 0x8a, 0xb6, + 0xc7, 0xbc, 0x12, 0xf3, 0x67, 0xb7, 0x55, 0x00, 0xf9, 0xa7, 0x63, 0x30, 0x6a, 0x31, 0x83, 0xac, + 0x6c, 0x7c, 0xc2, 0x19, 0xf2, 0x32, 0x4c, 0xe6, 0x6a, 0x35, 0x5b, 0x6c, 0x58, 0xa8, 0x28, 0x5b, + 0x00, 0xdc, 0x47, 0x2c, 0x59, 0x8e, 0xfc, 0x63, 0x30, 0x53, 0x56, 0x77, 0x5b, 0x0f, 0xd4, 0x9e, + 0x6a, 0xff, 0xb2, 0x04, 0xb3, 0x56, 0xc5, 0xe3, 0xde, 0x3f, 0x2e, 0x38, 0xf6, 0x8f, 0x2f, 0x87, + 0xd6, 0x23, 0x61, 0x13, 0xf9, 0x67, 0x25, 0x98, 0x71, 0x61, 0xee, 0xe5, 0xbc, 0xc2, 0xba, 0x7d, + 0x7a, 0x20, 0x4e, 0x00, 0x3d, 0x1f, 0x1a, 0x90, 0xe7, 0x11, 0x82, 0x7f, 0x20, 0xc1, 0x94, 0x57, + 0x09, 0xb4, 0xce, 0x9f, 0x23, 0x58, 0x8a, 0xd8, 0xc9, 0x23, 0x3e, 0x4c, 0xf0, 0x2c, 0x8c, 0x95, + 0xb4, 0xed, 0x35, 0x15, 0x07, 0x16, 0xe5, 0x56, 0x43, 0xd5, 0x71, 0x39, 0x0d, 0xff, 0x43, 0xac, + 0xdf, 0x50, 0x99, 0xfe, 0x90, 0x7f, 0x47, 0x22, 0x06, 0x8d, 0x16, 0x44, 0xb3, 0x30, 0x40, 0xf6, + 0x41, 0x2d, 0x05, 0xee, 0xc7, 0x3f, 0xe9, 0x79, 0x77, 0x5a, 0x39, 0xc6, 0x55, 0x3e, 0x9c, 0x5a, + 0x1e, 0xda, 0x4b, 0xea, 0xb2, 0x76, 0x2f, 0xe7, 0x4d, 0x4d, 0x64, 0x1c, 0x60, 0x82, 0x15, 0x8d, + 0x3e, 0x79, 0x05, 0x66, 0xe8, 0x81, 0xb0, 0xc3, 0x36, 0x74, 0x95, 0xd3, 0xee, 0x70, 0x0d, 0x99, + 0x2a, 0x4d, 0x4b, 0x3f, 0x8e, 0x2a, 0x4d, 0x91, 0x09, 0x2a, 0xfd, 0x4f, 0xe8, 0x84, 0x60, 0xe7, + 0x3c, 0x31, 0x02, 0x25, 0x9e, 0x10, 0xe8, 0x77, 0x9c, 0x10, 0x98, 0x12, 0x4e, 0x8a, 0x9b, 0xbb, + 0x7c, 0x87, 0x38, 0x26, 0x68, 0x1a, 0x47, 0x71, 0xf4, 0x1f, 0x99, 0x71, 0xe4, 0xbb, 0xf5, 0x36, + 0x8e, 0xae, 0x12, 0xd1, 0x8d, 0x23, 0xdf, 0xc4, 0x23, 0x36, 0x8e, 0xd7, 0x60, 0x8a, 0x7d, 0xfb, + 0x41, 0x03, 0x10, 0x93, 0xb5, 0xf3, 0xcc, 0xc1, 0x74, 0x4f, 0xb4, 0x24, 0x5d, 0xbe, 0x65, 0xd5, + 0xa3, 0x41, 0x81, 0xdf, 0x5a, 0xb0, 0xd9, 0x4e, 0xcc, 0xa7, 0x9d, 0xef, 0x4a, 0x30, 0xcd, 0x1a, + 0x3a, 0x6e, 0xcd, 0x5e, 0x76, 0x68, 0x76, 0x70, 0x3c, 0x4b, 0x71, 0x09, 0x7a, 0xfd, 0x9b, 0x31, + 0x18, 0xe6, 0xd2, 0x1d, 0x9f, 0xd6, 0x48, 0x8e, 0x4f, 0x6b, 0x2c, 0x3f, 0x3d, 0xc6, 0xf9, 0xe9, + 0x37, 0xc5, 0xb0, 0xfa, 0x52, 0x48, 0x18, 0x42, 0xf4, 0x71, 0xa8, 0xe0, 0xe1, 0xd0, 0xa7, 0x07, + 0xdc, 0x87, 0x3a, 0xfb, 0xbd, 0x0e, 0x75, 0x76, 0xf3, 0x0f, 0xbf, 0x2a, 0x59, 0x02, 0x74, 0x18, + 0x9d, 0x5e, 0x75, 0xea, 0xf4, 0x52, 0x58, 0x6e, 0x7a, 0x69, 0xf4, 0xaf, 0x4b, 0x80, 0xdc, 0xf9, + 0x68, 0x95, 0xd7, 0xe7, 0x2b, 0x91, 0x3a, 0x78, 0xc4, 0xda, 0x5c, 0x82, 0x41, 0xd6, 0x3d, 0x0e, + 0xf2, 0x06, 0x99, 0x1c, 0x9a, 0x51, 0xde, 0xb9, 0x90, 0xd0, 0xcb, 0x56, 0x45, 0xf9, 0xcf, 0xc5, + 0x60, 0x80, 0xa5, 0xba, 0x54, 0xfb, 0xc9, 0x94, 0xed, 0x6e, 0x51, 0x74, 0xc6, 0x12, 0x8f, 0x60, + 0x6f, 0xf2, 0xf7, 0x25, 0x18, 0x15, 0x0a, 0x3f, 0x39, 0x1e, 0xe5, 0x1b, 0x90, 0x14, 0x28, 0xcb, + 0xd5, 0x6a, 0x2e, 0xe1, 0xe0, 0x88, 0x8d, 0x79, 0x13, 0x1b, 0xe7, 0xb9, 0xb5, 0x05, 0x93, 0x42, + 0x93, 0xec, 0xb3, 0xcc, 0x43, 0xb6, 0xfa, 0xaa, 0xa3, 0x55, 0xea, 0x78, 0x86, 0x6e, 0x55, 0xbe, + 0x0f, 0x63, 0xa6, 0x4a, 0xb4, 0x1a, 0xaa, 0x17, 0x99, 0x49, 0x6a, 0x1a, 0x68, 0x35, 0xa2, 0xde, + 0xce, 0x13, 0x9d, 0x71, 0xf7, 0x89, 0xce, 0x29, 0xe8, 0xdb, 0xd6, 0x5a, 0x9d, 0x36, 0x0b, 0xc2, + 0xe9, 0x0f, 0xb9, 0x09, 0x13, 0x5c, 0x67, 0x3e, 0x0c, 0x38, 0xc2, 0xfe, 0xbe, 0x62, 0xcf, 0x64, + 0xb8, 0xc3, 0xa0, 0x99, 0xac, 0xa7, 0x9e, 0x3f, 0xde, 0xe5, 0x5f, 0x8b, 0xee, 0x7e, 0x8e, 0xee, + 0xae, 0xb3, 0xd2, 0xef, 0x4b, 0x30, 0xce, 0xf1, 0x24, 0xcc, 0x0c, 0xff, 0xf1, 0xf0, 0x25, 0x3a, + 0x69, 0x2f, 0x08, 0xe2, 0xe5, 0xa3, 0x09, 0x2e, 0x62, 0xe4, 0x03, 0x09, 0x4e, 0x70, 0xf5, 0x8e, + 0xdb, 0x47, 0x5b, 0x71, 0xf8, 0x68, 0xd9, 0xb0, 0x53, 0x16, 0x1b, 0x2d, 0xcb, 0x4f, 0xfb, 0xbe, + 0x04, 0x29, 0x0f, 0xdc, 0xd4, 0xc7, 0x08, 0x18, 0xd2, 0x48, 0x5f, 0x91, 0xa3, 0x0d, 0xdb, 0x05, + 0xa1, 0x98, 0xaf, 0x45, 0xc0, 0xec, 0xe9, 0x86, 0xfc, 0x63, 0x09, 0x66, 0xbc, 0xcb, 0xa0, 0x0d, + 0xde, 0x15, 0x79, 0x3e, 0x72, 0x47, 0x8f, 0xd8, 0x1d, 0xf9, 0xed, 0x98, 0x25, 0x74, 0x61, 0x02, + 0x61, 0x21, 0xb0, 0x8c, 0xf9, 0x05, 0x96, 0x71, 0xff, 0xc0, 0x32, 0xd1, 0x35, 0xb0, 0xec, 0x73, + 0x1c, 0xcc, 0xb7, 0xe6, 0x8c, 0xfe, 0x2e, 0xd3, 0xee, 0xc0, 0xe1, 0xa6, 0xdd, 0xc1, 0x43, 0x4c, + 0xbb, 0xe0, 0xd0, 0xe0, 0xef, 0x4b, 0x30, 0x27, 0x70, 0xf3, 0xb8, 0x95, 0xb1, 0xe8, 0x50, 0xc6, + 0xab, 0x21, 0xe5, 0xcd, 0x63, 0x39, 0xe4, 0xef, 0x49, 0x90, 0xf6, 0xc4, 0x7e, 0x0c, 0x0a, 0x59, + 0x76, 0x2a, 0xe4, 0x4b, 0x91, 0x70, 0x7b, 0xaa, 0xe4, 0x6f, 0xd9, 0xe6, 0xc4, 0x1d, 0xef, 0x97, + 0x79, 0xa5, 0xbc, 0xd6, 0x43, 0x67, 0x8f, 0x58, 0x2d, 0xff, 0x6b, 0x0c, 0x86, 0xb9, 0x0b, 0x23, + 0x0e, 0xbd, 0x35, 0x96, 0x6b, 0xb7, 0x1f, 0xf3, 0xad, 0xb1, 0x35, 0x18, 0x6e, 0xd5, 0x6b, 0xd5, + 0x4a, 0xb5, 0xd5, 0xbc, 0x57, 0xdf, 0x66, 0x5a, 0x99, 0x09, 0x5c, 0x99, 0x29, 0xe6, 0x97, 0x97, + 0x49, 0x8d, 0xdb, 0x4f, 0x95, 0x01, 0x37, 0x40, 0x7f, 0x75, 0xfb, 0x0c, 0xe6, 0xe6, 0x08, 0x80, + 0xd2, 0x6e, 0xb3, 0x9e, 0xe4, 0xb7, 0x61, 0x82, 0xe3, 0x34, 0xdb, 0x3f, 0x0d, 0x90, 0x76, 0x3a, + 0x1c, 0x31, 0xd7, 0x12, 0x4a, 0x9f, 0xcf, 0x12, 0xca, 0xd7, 0x12, 0x00, 0x36, 0x54, 0xf4, 0x0c, + 0x8c, 0x6a, 0x6a, 0xad, 0xae, 0xe1, 0xe6, 0x3b, 0x5a, 0xdd, 0x0c, 0x4b, 0x46, 0xcc, 0xc4, 0x3b, + 0x5a, 0x5d, 0x47, 0x77, 0x49, 0x04, 0x4f, 0xec, 0x06, 0xb9, 0xb5, 0x84, 0xc6, 0x1e, 0x21, 0xa2, + 0x5b, 0xdc, 0x91, 0x69, 0x71, 0xc8, 0x61, 0xbd, 0x51, 0x8d, 0xfb, 0xa5, 0xa3, 0x75, 0x18, 0xde, + 0xd6, 0x14, 0x76, 0x17, 0x0a, 0x75, 0xc7, 0x43, 0x7c, 0x68, 0x88, 0x5b, 0x5d, 0xc1, 0xd5, 0x48, + 0x93, 0xb0, 0x6d, 0xfe, 0xab, 0xa3, 0xcf, 0x41, 0x52, 0xb1, 0x19, 0x48, 0x6f, 0x58, 0x49, 0x10, + 0xb1, 0x7c, 0x2e, 0x4c, 0xa3, 0x1c, 0xf3, 0x49, 0xd3, 0xe3, 0x8a, 0x98, 0x80, 0x67, 0x88, 0x6a, + 0xa3, 0xae, 0x36, 0xc9, 0x50, 0xb0, 0x19, 0x82, 0x26, 0x14, 0x6b, 0x98, 0x95, 0x2c, 0x53, 0x57, + 0xab, 0x9a, 0x6a, 0x30, 0x6f, 0x6b, 0x84, 0x26, 0x6e, 0x92, 0x34, 0xf4, 0x13, 0x90, 0x54, 0x3a, + 0xc6, 0x4e, 0x85, 0xaa, 0x1c, 0x45, 0x38, 0x10, 0x72, 0xe9, 0x0f, 0x23, 0xec, 0x18, 0x4c, 0x6b, + 0x09, 0xc0, 0x31, 0x45, 0xf8, 0x8d, 0x5e, 0x86, 0x13, 0xed, 0x16, 0xfd, 0xfe, 0xbb, 0xd5, 0x31, + 0x2a, 0xe2, 0xc8, 0x0e, 0x92, 0x91, 0x9d, 0xc1, 0x05, 0x56, 0x49, 0x7e, 0x99, 0x1b, 0x63, 0xf9, + 0x1b, 0x09, 0x98, 0x76, 0xf0, 0x80, 0x1d, 0x32, 0x08, 0x10, 0xc0, 0x80, 0x35, 0x3b, 0xb7, 0x84, + 0xc5, 0x43, 0x49, 0x58, 0xe2, 0x58, 0x24, 0xac, 0xef, 0x38, 0x24, 0xac, 0xff, 0x08, 0x25, 0xec, + 0xb1, 0x95, 0x8f, 0x6f, 0x26, 0x20, 0x69, 0xdb, 0x8d, 0x70, 0xb6, 0xe9, 0x2c, 0x8c, 0xf1, 0xcc, + 0xb2, 0xec, 0xd4, 0x28, 0x97, 0x4a, 0x15, 0xe7, 0x53, 0x09, 0xf9, 0xd1, 0x97, 0x90, 0xe7, 0x60, + 0x64, 0x99, 0x37, 0x75, 0x2e, 0x7b, 0x28, 0xb9, 0xed, 0xa1, 0xfc, 0xdf, 0x63, 0x30, 0xce, 0x91, + 0xec, 0xf9, 0x99, 0xc7, 0xa7, 0x1e, 0xc6, 0x91, 0x79, 0x18, 0x38, 0x40, 0xe7, 0xd8, 0xfd, 0xd8, + 0x05, 0xe8, 0x0e, 0x51, 0x10, 0x02, 0x74, 0x0f, 0xdc, 0x8f, 0x45, 0x80, 0xee, 0xc2, 0xe5, 0x11, + 0xa0, 0x7b, 0x97, 0x89, 0x18, 0xa0, 0xbb, 0x1a, 0x79, 0xc4, 0x91, 0xc0, 0x1f, 0xc4, 0x60, 0x84, + 0xc5, 0x23, 0xc4, 0xf4, 0x45, 0xbc, 0x39, 0x0e, 0x9d, 0x81, 0x31, 0x62, 0x27, 0xd5, 0x9a, 0x79, + 0x89, 0x21, 0x6d, 0x7e, 0x84, 0xa5, 0xd2, 0x5b, 0x0c, 0xe7, 0x60, 0x08, 0xc7, 0xd6, 0x95, 0xfb, + 0xea, 0x1e, 0x1d, 0x82, 0xa1, 0xf2, 0x20, 0x4e, 0x78, 0x5d, 0xdd, 0xd3, 0xd1, 0x8a, 0x69, 0x0a, + 0xfa, 0x08, 0x75, 0x61, 0x63, 0x4c, 0x02, 0xb7, 0xbb, 0x4d, 0x78, 0x94, 0xdf, 0x28, 0x76, 0x53, + 0x58, 0xf9, 0x81, 0xb5, 0x6d, 0x40, 0x50, 0x87, 0x73, 0xc2, 0xdc, 0xac, 0x8d, 0x05, 0xb1, 0x36, + 0x2e, 0xb2, 0x56, 0xfe, 0xbc, 0xd8, 0x6f, 0x6f, 0xd1, 0x47, 0xd7, 0x1e, 0x6e, 0x58, 0x0b, 0xe4, + 0xa4, 0x87, 0x62, 0x3e, 0x62, 0xeb, 0xf2, 0x0f, 0xe3, 0xd6, 0x5e, 0x02, 0x69, 0xc1, 0xef, 0xf6, + 0x85, 0xc3, 0x0b, 0xe1, 0x79, 0x48, 0xf2, 0xa5, 0xb8, 0xf5, 0xa2, 0x31, 0xbb, 0x1c, 0x59, 0x17, + 0xba, 0x04, 0x88, 0x2f, 0xc9, 0x4e, 0x9c, 0x51, 0x63, 0x9f, 0xb4, 0xcb, 0xb2, 0x83, 0x8f, 0x02, + 0x7f, 0xfa, 0xfd, 0x84, 0x7b, 0xe0, 0xa8, 0x85, 0xfb, 0x51, 0x7e, 0x65, 0x88, 0xe7, 0x05, 0x73, + 0x00, 0xf8, 0x9b, 0x9a, 0x58, 0x9a, 0xeb, 0x66, 0x08, 0xc7, 0x87, 0x3c, 0xf2, 0xdf, 0xb1, 0x17, + 0x7f, 0x28, 0x65, 0xc7, 0x3c, 0x47, 0xdd, 0x76, 0xcc, 0x51, 0x57, 0xa2, 0xb0, 0x5d, 0x98, 0xa4, + 0x76, 0xac, 0xc5, 0x6f, 0x01, 0xf8, 0xd1, 0x4f, 0x52, 0xf2, 0x5f, 0x96, 0x60, 0x6e, 0x85, 0xca, + 0xd6, 0x63, 0xb7, 0x2d, 0x9e, 0x85, 0x59, 0x9e, 0x0b, 0xc1, 0x7b, 0x9f, 0xff, 0x4e, 0x12, 0x2d, + 0xcf, 0x93, 0xb6, 0x01, 0xfa, 0xa7, 0xed, 0x43, 0x2b, 0x1c, 0x7d, 0xb9, 0x5a, 0x2d, 0x48, 0x26, + 0x4e, 0xc0, 0x20, 0x8d, 0x4c, 0x2c, 0x3b, 0x36, 0x40, 0x7e, 0x17, 0x85, 0x4d, 0xc8, 0xb8, 0x37, + 0x73, 0x12, 0x3c, 0x8b, 0xdf, 0xb7, 0x17, 0x24, 0x39, 0x08, 0x6c, 0xd7, 0xf0, 0x91, 0xa1, 0xd8, + 0xf5, 0x02, 0xc1, 0xf6, 0x96, 0x8e, 0x1e, 0x84, 0xfc, 0x2f, 0x63, 0xd6, 0xc6, 0x08, 0xd7, 0xdf, + 0xa7, 0x9b, 0x0a, 0x11, 0x44, 0xd9, 0xe9, 0x9b, 0xfc, 0x43, 0x09, 0x16, 0xdc, 0x2c, 0x3d, 0x6e, + 0x0b, 0xbd, 0xee, 0xb0, 0xd0, 0xd7, 0xa2, 0x58, 0x68, 0x8f, 0xed, 0x85, 0x1f, 0x4a, 0x70, 0xda, + 0x9f, 0x8a, 0x50, 0xe6, 0xba, 0x8b, 0x3c, 0xda, 0xe4, 0xc7, 0xbd, 0xc9, 0x4f, 0xf0, 0xe4, 0xdf, + 0x75, 0xde, 0xe0, 0xf6, 0x99, 0xe8, 0xc4, 0x79, 0x9a, 0xe1, 0xdf, 0x91, 0xe0, 0x54, 0xd7, 0xa2, + 0xe8, 0x2e, 0x1f, 0x7c, 0x5c, 0xef, 0xb5, 0xdb, 0x47, 0x1c, 0x83, 0xfc, 0x97, 0x18, 0xbd, 0xd5, + 0xc5, 0x3b, 0x00, 0xf1, 0x3d, 0xf1, 0x61, 0x7f, 0x5f, 0x11, 0xe7, 0xbf, 0xaf, 0x10, 0x47, 0x39, + 0xe1, 0x1c, 0x65, 0xc1, 0x5b, 0xeb, 0x73, 0x78, 0x6b, 0x79, 0xd3, 0x5b, 0xa3, 0x8b, 0x3b, 0x8b, + 0x61, 0x2e, 0x83, 0x0b, 0xe1, 0xaa, 0x0d, 0x1c, 0xce, 0x55, 0x1b, 0x3c, 0xb2, 0x38, 0xe4, 0x1e, + 0xbd, 0x7f, 0x83, 0x0f, 0x42, 0x7c, 0xcd, 0x66, 0x80, 0xcf, 0xdd, 0x35, 0x2a, 0xb8, 0xcb, 0xf5, + 0xc3, 0x82, 0x0e, 0xdf, 0x7e, 0x22, 0x85, 0x1b, 0xd7, 0xe8, 0x85, 0x2c, 0x66, 0xac, 0x11, 0xb6, + 0x51, 0xf9, 0x27, 0x2c, 0x77, 0x84, 0xaf, 0x1e, 0x60, 0x10, 0x7c, 0x25, 0x8f, 0xb6, 0x1e, 0xb7, + 0x5a, 0x7f, 0xcf, 0x9a, 0x94, 0x9c, 0x54, 0x1f, 0x51, 0x0f, 0x5d, 0x03, 0x68, 0xb9, 0x21, 0x7a, + 0x67, 0x3c, 0x85, 0xe7, 0x21, 0x69, 0xf6, 0x6f, 0xd9, 0x36, 0x8a, 0x62, 0xac, 0xcd, 0x87, 0x6d, + 0x11, 0x88, 0xfd, 0x35, 0x7b, 0x13, 0x5a, 0xec, 0x2e, 0x48, 0xa0, 0x6c, 0x7d, 0x8d, 0xf1, 0xfa, + 0xea, 0x05, 0x31, 0xee, 0x09, 0xf1, 0x59, 0xb7, 0x66, 0xb3, 0x2b, 0xb2, 0x93, 0x52, 0x58, 0x15, + 0x97, 0xbf, 0xec, 0x07, 0x9f, 0x8d, 0xd8, 0xd1, 0x73, 0xac, 0xfb, 0xe0, 0xfd, 0xfb, 0x04, 0xbd, + 0xd8, 0xc9, 0x3f, 0xf8, 0xfd, 0xd4, 0x00, 0x0e, 0xf6, 0x7e, 0x95, 0xf8, 0x50, 0xd7, 0xeb, 0x8a, + 0xa1, 0xab, 0x67, 0x37, 0xec, 0xf6, 0xec, 0x3c, 0xee, 0xe6, 0x3e, 0x01, 0x83, 0xd6, 0x72, 0xc2, + 0x28, 0x75, 0x1b, 0x5a, 0x6c, 0x1d, 0xe1, 0x14, 0x00, 0xb7, 0x7e, 0x40, 0x6f, 0x0d, 0x1e, 0x6a, + 0x59, 0x0b, 0x07, 0xce, 0xa0, 0x7a, 0xbc, 0x7b, 0x50, 0x9d, 0x0c, 0xbc, 0x58, 0x77, 0xc2, 0xe3, + 0x0c, 0x36, 0xf9, 0x76, 0xc6, 0x1e, 0xa6, 0xc7, 0xed, 0xdb, 0x19, 0x41, 0xf4, 0x85, 0xcf, 0xe1, + 0x5c, 0x98, 0x1f, 0xcd, 0x17, 0x1f, 0x8e, 0x6e, 0x1d, 0x1e, 0xd8, 0x3f, 0x97, 0x60, 0xca, 0xab, + 0x44, 0xc4, 0x2f, 0x3e, 0x1c, 0x4d, 0x78, 0xf8, 0x5b, 0xeb, 0x87, 0xf1, 0xb7, 0xcc, 0xc6, 0x52, + 0x4f, 0x05, 0x78, 0x5e, 0xbf, 0x66, 0x3b, 0x94, 0x3e, 0xec, 0x3e, 0xd2, 0x75, 0xf8, 0x75, 0xe7, + 0x3a, 0xfc, 0xe1, 0x47, 0x43, 0xf6, 0xb4, 0xe5, 0x22, 0x0d, 0xe1, 0x4d, 0xfa, 0xc7, 0x4b, 0xce, + 0x97, 0x63, 0x30, 0x93, 0xeb, 0x18, 0x3b, 0x87, 0x96, 0xfa, 0xaa, 0xcf, 0xa5, 0xd5, 0x81, 0x72, + 0xe9, 0xe8, 0x3d, 0xe2, 0xcd, 0xd5, 0xeb, 0xce, 0xb8, 0xe7, 0xf9, 0x88, 0xfd, 0x79, 0x28, 0x9b, + 0x57, 0x89, 0x88, 0xca, 0xd6, 0x95, 0xa8, 0x47, 0xa8, 0x6c, 0xdf, 0x95, 0x60, 0xd6, 0x35, 0xbc, + 0xc7, 0x65, 0x88, 0x73, 0x0e, 0x43, 0x7c, 0x21, 0x34, 0x97, 0x2c, 0x23, 0xbc, 0x0b, 0x43, 0x56, + 0x22, 0x06, 0x42, 0xbc, 0x0b, 0xf1, 0x5b, 0xf6, 0x93, 0x60, 0xdb, 0x02, 0x77, 0x88, 0x30, 0x03, + 0xcc, 0x53, 0x09, 0xb3, 0x92, 0x94, 0xf9, 0x1e, 0xbb, 0xdb, 0x93, 0x78, 0x12, 0xe8, 0x04, 0x4c, + 0xdf, 0xd9, 0x2c, 0x94, 0x37, 0xb7, 0x72, 0x5b, 0x85, 0xca, 0x9d, 0xf5, 0xcd, 0x8d, 0xc2, 0x72, + 0xf1, 0x56, 0xb1, 0x90, 0x4f, 0x3e, 0x85, 0xa6, 0x20, 0x69, 0x67, 0xe5, 0x96, 0xb7, 0x8a, 0x6f, + 0x16, 0x92, 0x12, 0x9a, 0x01, 0x64, 0xa7, 0x16, 0xd7, 0x59, 0x7a, 0x0c, 0x4d, 0xc3, 0x84, 0x9d, + 0x9e, 0x2f, 0xac, 0x16, 0xb6, 0x0a, 0xf9, 0x64, 0x5c, 0x6c, 0x64, 0xb5, 0xb4, 0xfc, 0x7a, 0x21, + 0x9f, 0x4c, 0x88, 0x85, 0x37, 0xef, 0x6c, 0x6e, 0x14, 0xd6, 0xf3, 0xc9, 0x3e, 0x31, 0xb9, 0xb8, + 0x5e, 0xdc, 0x2a, 0xe6, 0x56, 0x93, 0xfd, 0x99, 0x3f, 0x01, 0xfd, 0xf4, 0x3e, 0x5c, 0xdc, 0xf9, + 0x4a, 0x61, 0x3d, 0x5f, 0x28, 0x3b, 0xa0, 0x4e, 0xc0, 0x28, 0x4b, 0xbf, 0x55, 0x58, 0xcb, 0xad, + 0x62, 0x9c, 0xe3, 0x30, 0xcc, 0x92, 0x48, 0x42, 0x0c, 0x21, 0x18, 0x63, 0x09, 0xf9, 0xe2, 0x9b, + 0x85, 0xf2, 0x66, 0x21, 0x19, 0xcf, 0xfc, 0x1f, 0x76, 0xdb, 0xa7, 0x25, 0xb1, 0xe8, 0x14, 0x9c, + 0x20, 0x10, 0x0a, 0xb9, 0xf2, 0xf2, 0xed, 0xd7, 0x0b, 0x6f, 0x39, 0x3a, 0x9a, 0x83, 0x59, 0x47, + 0xf6, 0x66, 0xa1, 0x5c, 0x59, 0xcf, 0xad, 0xe1, 0x2e, 0x4f, 0x42, 0x4a, 0xcc, 0xbc, 0x55, 0x2c, + 0x6f, 0x6e, 0xd1, 0xdc, 0x98, 0xbb, 0xea, 0x6a, 0xce, 0xcc, 0x8c, 0xbb, 0x33, 0xd7, 0x8b, 0xcb, + 0xaf, 0xd3, 0xcc, 0x04, 0x9a, 0x87, 0xb4, 0x98, 0x99, 0x2f, 0x6e, 0x6e, 0xac, 0xe6, 0xde, 0xa2, + 0xf9, 0x7d, 0x68, 0x16, 0x26, 0xc5, 0xfc, 0xc2, 0x5a, 0xae, 0xb8, 0x9a, 0xec, 0x77, 0x67, 0x10, + 0xce, 0x26, 0x07, 0x32, 0xbf, 0x2b, 0xc1, 0x08, 0xaf, 0x5b, 0xb8, 0x24, 0x2d, 0xb5, 0x56, 0xd8, + 0xba, 0x5d, 0xca, 0x57, 0x0a, 0x6f, 0xdc, 0xc9, 0xad, 0x6e, 0x26, 0x9f, 0xc2, 0x34, 0x09, 0x19, + 0x9b, 0x5b, 0xb9, 0xf2, 0xd6, 0x66, 0xe5, 0x6e, 0x71, 0xeb, 0x76, 0x52, 0xc2, 0xd2, 0x23, 0xe4, + 0x2e, 0x97, 0xd6, 0xb7, 0x72, 0xc5, 0xf5, 0xcd, 0x64, 0x0c, 0x3d, 0x03, 0xa7, 0x3d, 0x5a, 0xac, + 0x14, 0x57, 0xd6, 0x4b, 0xe5, 0x42, 0x65, 0x39, 0x87, 0xf9, 0x8f, 0xce, 0xc3, 0x19, 0xbf, 0xd6, + 0x85, 0x92, 0x09, 0x74, 0x16, 0x9e, 0xf6, 0xec, 0x49, 0x28, 0xd6, 0x97, 0xc9, 0xc3, 0x00, 0xbb, + 0x23, 0x10, 0x93, 0xb4, 0x76, 0x2b, 0xb7, 0xf5, 0xd6, 0x86, 0x53, 0xae, 0xc7, 0x61, 0xd8, 0xcc, + 0xd8, 0x5c, 0xdb, 0xa4, 0xa2, 0x62, 0x26, 0x94, 0xb6, 0x36, 0x92, 0xb1, 0xcc, 0x3d, 0x18, 0x34, + 0xef, 0x0a, 0x44, 0x29, 0x98, 0xc2, 0xff, 0x7b, 0xe8, 0xc7, 0x0c, 0x20, 0x2b, 0x67, 0xbd, 0xb4, + 0x55, 0x29, 0x17, 0x72, 0xf9, 0xb7, 0x92, 0x12, 0x16, 0x34, 0x2b, 0x9d, 0xa6, 0xc5, 0xb0, 0x1a, + 0x70, 0x69, 0x6b, 0xa5, 0x37, 0xb1, 0x72, 0x64, 0x6e, 0x43, 0xd2, 0x79, 0x25, 0x1f, 0x4a, 0xc3, + 0xcc, 0x7a, 0x69, 0xab, 0x78, 0xab, 0xb8, 0x9c, 0xdb, 0x2a, 0x96, 0xd6, 0x09, 0x2a, 0x3a, 0x9e, + 0x4f, 0x61, 0x2c, 0xae, 0x3c, 0x42, 0x42, 0xa6, 0x03, 0xc3, 0xdc, 0x9d, 0x40, 0x58, 0x9c, 0x36, + 0x4a, 0xab, 0xc5, 0xe5, 0xb7, 0x7c, 0x70, 0xf3, 0x99, 0x96, 0x66, 0xa7, 0x60, 0x8a, 0x4f, 0xe7, + 0x74, 0x7b, 0x16, 0x26, 0xf9, 0x1c, 0x4b, 0xbb, 0x33, 0x1b, 0x30, 0x68, 0xde, 0xd6, 0x82, 0xab, + 0x97, 0xca, 0x2b, 0x5e, 0x1d, 0x4e, 0xc2, 0xb8, 0x95, 0x63, 0xf5, 0x36, 0x0d, 0x13, 0x56, 0xa2, + 0xdd, 0x55, 0xe6, 0x2e, 0x20, 0xf7, 0x1d, 0x06, 0x48, 0x86, 0xf9, 0x52, 0x79, 0x25, 0x5f, 0x5a, + 0xc3, 0x43, 0xee, 0xa3, 0x9a, 0xa7, 0xe0, 0x84, 0x47, 0x19, 0xfa, 0x3b, 0x29, 0x65, 0x7e, 0x55, + 0x22, 0x2d, 0x3b, 0x96, 0xdf, 0x58, 0xcb, 0x6b, 0x85, 0xb5, 0x9b, 0xfe, 0x4a, 0xff, 0x34, 0x9c, + 0xf2, 0x28, 0xc3, 0x29, 0xb7, 0x84, 0x16, 0xe0, 0xa4, 0x47, 0x11, 0x5b, 0xc3, 0x63, 0x58, 0x91, + 0x3c, 0x4a, 0xd0, 0x91, 0x8d, 0x63, 0x15, 0xf7, 0x82, 0x81, 0x8d, 0x4b, 0x31, 0x9f, 0x4c, 0x64, + 0xee, 0x5a, 0x9b, 0xb7, 0x36, 0xf4, 0x05, 0x38, 0xb9, 0x51, 0x2e, 0xfd, 0x78, 0x61, 0x79, 0xab, + 0x0b, 0x70, 0x57, 0x09, 0x96, 0xc0, 0x80, 0x67, 0x3e, 0x6f, 0x1d, 0x4b, 0xa0, 0xa3, 0x78, 0x12, + 0x52, 0x66, 0x15, 0x8f, 0x91, 0xc4, 0x82, 0xc0, 0xe7, 0x5a, 0xa3, 0x79, 0x02, 0xa6, 0x85, 0x0c, + 0x6e, 0x44, 0x3f, 0x6b, 0x7d, 0xfc, 0xc4, 0x8e, 0x81, 0xce, 0xb2, 0x92, 0x1e, 0xaa, 0x39, 0x0d, + 0x13, 0x7c, 0x66, 0xe9, 0xee, 0x7a, 0x21, 0x9f, 0x94, 0xb8, 0x6e, 0x49, 0xf2, 0x4a, 0x39, 0xb7, + 0x8e, 0xe5, 0x2f, 0x96, 0xf9, 0x33, 0xf6, 0xb7, 0xad, 0xc2, 0xa7, 0x17, 0xe8, 0x0c, 0x2c, 0xb0, + 0x1a, 0xe5, 0xd2, 0x6a, 0xc1, 0x8f, 0x3f, 0x36, 0xb1, 0x62, 0xa9, 0xd7, 0x0b, 0x58, 0x8f, 0xcf, + 0xc2, 0xd3, 0x9e, 0xb9, 0x82, 0xf5, 0x8d, 0x65, 0xfe, 0xc8, 0xfe, 0x86, 0xc4, 0x29, 0x5c, 0xcf, + 0x82, 0xcc, 0x5a, 0xe8, 0x2e, 0x60, 0x76, 0x4f, 0x5d, 0x85, 0xcc, 0x26, 0xaa, 0x9b, 0xa0, 0xd9, + 0x62, 0xe1, 0x27, 0x6c, 0x32, 0xcc, 0xfb, 0xc1, 0x32, 0x05, 0xae, 0x4b, 0x5f, 0xf6, 0x8c, 0xd7, + 0x87, 0xf5, 0xdf, 0x3c, 0x30, 0x86, 0xf5, 0x3f, 0xb7, 0xb1, 0xe1, 0xa3, 0xff, 0x56, 0x0e, 0xaf, + 0xff, 0x56, 0x22, 0x27, 0x2d, 0x3b, 0xf4, 0xa4, 0x24, 0x7f, 0xe8, 0x10, 0x0b, 0x17, 0x49, 0x2b, + 0x6c, 0x6e, 0x94, 0xd6, 0x37, 0x0b, 0x44, 0x06, 0x96, 0x4b, 0xf9, 0x02, 0x53, 0x7a, 0x67, 0x56, + 0x31, 0x5f, 0xd9, 0x2a, 0xbd, 0x5e, 0x58, 0x4f, 0x4a, 0xd8, 0x98, 0xba, 0xb2, 0x69, 0x5e, 0x2c, + 0xa3, 0xc1, 0xa8, 0x70, 0x10, 0x11, 0x93, 0x4c, 0x12, 0xb0, 0x74, 0x91, 0x92, 0xb9, 0x3b, 0x5b, + 0xb7, 0x4b, 0xe5, 0xe2, 0x67, 0x89, 0xb1, 0x35, 0x7b, 0x64, 0x4d, 0xda, 0xa5, 0x8a, 0x6b, 0x1b, + 0xab, 0xc5, 0xe5, 0xe2, 0x56, 0x52, 0x42, 0xa7, 0x61, 0x4e, 0xcc, 0x2b, 0x17, 0x6e, 0x95, 0x0b, + 0x9b, 0xb7, 0xad, 0x3e, 0x1f, 0xc0, 0xa4, 0xc7, 0x39, 0x45, 0xac, 0x13, 0x24, 0x79, 0x03, 0xb7, + 0x64, 0x9b, 0xf6, 0xbb, 0x85, 0x9b, 0xc9, 0xa7, 0x88, 0x85, 0xf2, 0xc8, 0x24, 0xc3, 0x90, 0x5b, + 0x29, 0xac, 0xe3, 0x8e, 0xb1, 0xf9, 0xf0, 0x28, 0xb3, 0x9e, 0x63, 0x5c, 0x6d, 0x00, 0x72, 0x9f, + 0x5f, 0x24, 0x26, 0x09, 0xa7, 0xde, 0xd9, 0x62, 0xb3, 0x2a, 0xa9, 0x74, 0x33, 0xb7, 0x59, 0x5c, + 0xa6, 0xae, 0x8e, 0x47, 0xee, 0x46, 0x69, 0x13, 0x77, 0xe8, 0x9d, 0xb9, 0x5e, 0x5a, 0xc7, 0xbd, + 0x55, 0x60, 0xca, 0xeb, 0xb8, 0x15, 0x66, 0x30, 0x87, 0x70, 0xb3, 0x50, 0xce, 0xf9, 0x18, 0x2d, + 0xa1, 0x94, 0x29, 0x77, 0xb9, 0x8d, 0x0d, 0xd3, 0x68, 0x19, 0xd6, 0xc7, 0x4e, 0xf6, 0x9a, 0x18, + 0x67, 0xec, 0x08, 0xff, 0xbd, 0x04, 0xd1, 0xd6, 0x77, 0xae, 0x88, 0x25, 0x91, 0xf3, 0x90, 0x76, + 0xe7, 0x72, 0xa2, 0xf9, 0x73, 0x31, 0x71, 0x45, 0xd3, 0xa9, 0xed, 0x17, 0xe1, 0x1c, 0x5f, 0xbf, + 0xbb, 0xca, 0x67, 0xe0, 0xd9, 0x6e, 0x85, 0x05, 0xbd, 0xbf, 0x00, 0x67, 0xbb, 0x95, 0xe5, 0x95, + 0xdf, 0xb6, 0x24, 0x9e, 0x45, 0x4d, 0x0b, 0x70, 0x0e, 0x9e, 0xe9, 0x0a, 0xd5, 0x32, 0x03, 0x01, + 0x5d, 0xf3, 0xb6, 0x60, 0x07, 0xc6, 0xc4, 0x55, 0x4a, 0xd3, 0x6f, 0xf5, 0x1d, 0x0e, 0x16, 0x7b, + 0x78, 0x8d, 0x05, 0xf3, 0x87, 0xbd, 0x07, 0xe2, 0xeb, 0xec, 0xcd, 0x22, 0x31, 0xd8, 0xc4, 0x8a, + 0x62, 0xd7, 0xf1, 0x9f, 0x11, 0x3d, 0xca, 0x98, 0x73, 0x62, 0x31, 0x4f, 0xc5, 0xc0, 0xab, 0x19, + 0xc6, 0x92, 0x98, 0x19, 0x21, 0x38, 0xf2, 0x4b, 0xe5, 0x15, 0x9c, 0x1d, 0x27, 0xe0, 0xdc, 0x91, + 0x30, 0x06, 0x87, 0x95, 0xa5, 0x2b, 0xb8, 0x53, 0x70, 0xc2, 0xa3, 0x0c, 0x6b, 0x59, 0x22, 0x8a, + 0xe1, 0xce, 0xe6, 0xb0, 0xc7, 0x30, 0x76, 0xaf, 0x5e, 0x18, 0xf6, 0xf8, 0xd2, 0xb7, 0xbe, 0x25, + 0xc1, 0xc4, 0x9a, 0x15, 0x93, 0x6e, 0xaa, 0xda, 0x83, 0x7a, 0x55, 0x45, 0xaf, 0xc3, 0xc0, 0x6d, + 0x55, 0x69, 0x18, 0x3b, 0x5f, 0x44, 0x33, 0xae, 0xc5, 0xdf, 0xc2, 0x6e, 0xdb, 0xd8, 0x4b, 0xfb, + 0xa4, 0xcb, 0xc9, 0xfd, 0x7f, 0xfd, 0x9f, 0x3e, 0x88, 0x01, 0x1a, 0xcc, 0xee, 0xb0, 0x16, 0x56, + 0xa0, 0xaf, 0xac, 0x2a, 0xb5, 0xbd, 0xc8, 0x4d, 0x8d, 0x91, 0xa6, 0x06, 0x51, 0x7f, 0x56, 0x23, + 0xf5, 0xd7, 0x61, 0xf0, 0x4d, 0xf6, 0x18, 0xb4, 0x6f, 0x5b, 0x7e, 0xef, 0xf5, 0xca, 0x13, 0xa4, + 0xb1, 0x61, 0x34, 0x64, 0x3d, 0x28, 0x8d, 0xee, 0xe1, 0x30, 0xd2, 0x28, 0x2a, 0xbb, 0xbe, 0xad, + 0x3d, 0x13, 0x14, 0xbc, 0x17, 0x95, 0x5d, 0xf9, 0xf4, 0xfe, 0x41, 0x6a, 0x1c, 0x46, 0x95, 0x8e, + 0xb1, 0xa3, 0x36, 0x0d, 0x6c, 0xe4, 0xd4, 0x1a, 0xe9, 0xac, 0x1f, 0x25, 0xb2, 0x75, 0x65, 0x17, + 0xbd, 0x2f, 0xc1, 0xf0, 0x8a, 0x4a, 0x16, 0xc9, 0x6e, 0xee, 0x15, 0xf3, 0xe8, 0xd9, 0x30, 0xab, + 0x55, 0xc5, 0x7c, 0x3a, 0xf4, 0x93, 0x58, 0xb2, 0xbc, 0x7f, 0x90, 0x1a, 0xa6, 0xab, 0xef, 0x8b, + 0x98, 0x57, 0xa4, 0xfb, 0x51, 0x34, 0x9c, 0xc5, 0x29, 0x7a, 0xf6, 0xdd, 0x7a, 0xed, 0x3d, 0xf4, + 0x6d, 0x09, 0xa6, 0x2c, 0x14, 0xe4, 0x75, 0x8f, 0x15, 0xf2, 0xdc, 0x35, 0xba, 0x18, 0xa6, 0x1b, + 0xf6, 0xd4, 0x70, 0x04, 0x4c, 0x4b, 0x5e, 0x98, 0x4e, 0xa1, 0xb9, 0x2c, 0x7d, 0x65, 0x9b, 0x41, + 0x23, 0x4b, 0xf9, 0xd9, 0x77, 0xc9, 0x9f, 0xf7, 0xd0, 0xcf, 0x4b, 0x30, 0x4c, 0x55, 0x04, 0x37, + 0xa3, 0xa3, 0xab, 0xe1, 0x9f, 0x49, 0x63, 0x0b, 0x76, 0xe9, 0xa5, 0x28, 0x55, 0xa8, 0x4f, 0x21, + 0x9f, 0xf7, 0x82, 0x3a, 0x29, 0x8f, 0x31, 0x8c, 0x15, 0x9d, 0x14, 0x7f, 0x45, 0xca, 0x60, 0x80, + 0x23, 0x45, 0x1d, 0x37, 0x41, 0x5f, 0x34, 0x0e, 0x81, 0xd0, 0xf9, 0x04, 0x73, 0x08, 0x84, 0xae, + 0x57, 0x95, 0xe5, 0x73, 0x5e, 0x08, 0x11, 0x4a, 0x9a, 0x08, 0xeb, 0x3a, 0x7d, 0x71, 0x19, 0xfd, + 0x94, 0x04, 0x60, 0xbf, 0xb0, 0x1c, 0x0c, 0xcf, 0xf5, 0x1a, 0x73, 0xfa, 0x4c, 0x18, 0x06, 0xca, + 0x4f, 0xef, 0x1f, 0xa4, 0x46, 0x00, 0x08, 0xa0, 0x87, 0x5a, 0xdd, 0x50, 0xa9, 0x7a, 0xc9, 0xfd, + 0x14, 0x11, 0xe6, 0xd5, 0x57, 0x25, 0x18, 0xcb, 0xab, 0x4a, 0xd5, 0xa8, 0x3f, 0x30, 0xe1, 0x84, + 0x95, 0xfc, 0x70, 0x18, 0x96, 0x3c, 0x31, 0x9c, 0x4c, 0xcf, 0x72, 0x62, 0x9f, 0xad, 0xd4, 0x2c, + 0x08, 0x26, 0xa8, 0xf2, 0xc7, 0x0f, 0x4a, 0x13, 0x40, 0xfd, 0x59, 0x09, 0x06, 0x57, 0x5b, 0xd5, + 0xfb, 0xc7, 0x00, 0xe7, 0x92, 0x27, 0x9c, 0x99, 0xf4, 0x84, 0x00, 0xa7, 0xd1, 0xaa, 0xde, 0xc7, + 0x40, 0xbe, 0x24, 0x01, 0xdc, 0x69, 0x36, 0x8e, 0x07, 0xca, 0xa2, 0x27, 0x94, 0x54, 0x7a, 0x52, + 0x80, 0xd2, 0x69, 0x9a, 0x60, 0x34, 0x80, 0xbc, 0xda, 0x50, 0x23, 0x8e, 0x92, 0xdf, 0x64, 0x72, + 0x66, 0xff, 0x20, 0x35, 0x0a, 0xc3, 0xa4, 0xf7, 0x1a, 0x69, 0x96, 0x1a, 0xc9, 0x8c, 0x60, 0x24, + 0xbf, 0x22, 0xd1, 0x73, 0x0e, 0xe6, 0xbb, 0xf8, 0x97, 0x43, 0x3e, 0x83, 0xcf, 0x74, 0xe7, 0x5c, + 0xb8, 0xe2, 0xba, 0x9c, 0xf1, 0xd2, 0xe7, 0x69, 0x24, 0xb0, 0xc2, 0x7c, 0x59, 0xff, 0x43, 0xec, + 0x40, 0x70, 0x1f, 0x12, 0x1e, 0x33, 0xb4, 0x1f, 0xdf, 0x3f, 0x48, 0x21, 0x6b, 0xe3, 0x66, 0x51, + 0x69, 0xb7, 0x6d, 0x84, 0x8b, 0xe8, 0x52, 0xd6, 0xbc, 0xa0, 0x88, 0x82, 0xe4, 0x3e, 0xa8, 0xd2, + 0xb3, 0xef, 0xea, 0x6a, 0xb5, 0xc2, 0x43, 0xff, 0x69, 0x89, 0x5c, 0x7e, 0x7b, 0xdc, 0x90, 0xb1, + 0xfd, 0x06, 0xb2, 0x1b, 0x6c, 0x43, 0x9d, 0x42, 0x28, 0xdb, 0xd2, 0xb6, 0x1d, 0xbc, 0xfc, 0xba, + 0x64, 0x1d, 0x9b, 0x3f, 0x6e, 0x50, 0x57, 0xf6, 0x0f, 0x52, 0x63, 0xd6, 0x46, 0xb3, 0x0d, 0x2c, + 0x85, 0x66, 0x1c, 0x3c, 0x34, 0xc1, 0x7d, 0x4d, 0x82, 0x31, 0x36, 0x43, 0x9b, 0x6f, 0x5a, 0x86, + 0x95, 0xfa, 0x50, 0x4f, 0x95, 0x72, 0xcf, 0x2c, 0x86, 0x12, 0xc0, 0x36, 0x03, 0xf1, 0x4b, 0x12, + 0x4c, 0xb8, 0x5e, 0xe3, 0x43, 0x81, 0x9f, 0xf6, 0xfb, 0x3d, 0xe0, 0x97, 0xbe, 0x18, 0x01, 0x6c, + 0x38, 0xab, 0xc1, 0x90, 0x62, 0xab, 0xf1, 0x33, 0x12, 0x8c, 0x30, 0x26, 0xd2, 0xc7, 0xf1, 0xc2, + 0xb2, 0xf0, 0x72, 0x68, 0x37, 0x88, 0x30, 0xd0, 0xdb, 0x67, 0x40, 0x82, 0x5d, 0xa5, 0xe7, 0x14, + 0xbe, 0x23, 0xc1, 0x38, 0x15, 0x0a, 0x1b, 0xd4, 0xb5, 0xf0, 0xcc, 0xe3, 0x5f, 0x79, 0x4b, 0x5f, + 0x08, 0x0d, 0x32, 0x9c, 0xe5, 0x27, 0x08, 0x31, 0xdb, 0xbe, 0x29, 0xc1, 0x5c, 0x59, 0xd5, 0xd5, + 0x66, 0x8d, 0x7b, 0xf8, 0x8d, 0xea, 0xf5, 0x5a, 0x14, 0x2e, 0xfa, 0x99, 0xdf, 0xd7, 0x3c, 0xd1, + 0x64, 0xe4, 0xb3, 0x2e, 0x34, 0x78, 0x72, 0xc4, 0x38, 0x1e, 0x70, 0x10, 0x1c, 0x03, 0x4b, 0x5f, + 0xa1, 0x3b, 0xd2, 0x81, 0xb5, 0x9e, 0x77, 0x0b, 0x35, 0xb0, 0xf4, 0x45, 0x33, 0x71, 0x60, 0x29, + 0xa8, 0x08, 0x03, 0xcb, 0x3f, 0xa7, 0x16, 0x6e, 0x60, 0x49, 0x8d, 0x70, 0x03, 0x4b, 0x10, 0x8a, + 0x03, 0xcb, 0x3d, 0xb1, 0xc6, 0x66, 0x92, 0x56, 0x4d, 0x7d, 0x34, 0x03, 0x4b, 0xd0, 0xf8, 0x0d, + 0x2c, 0x67, 0xf6, 0xcc, 0x57, 0xbf, 0x8e, 0xd4, 0xec, 0x71, 0x8f, 0x9e, 0x85, 0x32, 0x7b, 0xec, + 0x29, 0x2c, 0x87, 0xd9, 0x33, 0xa1, 0x45, 0x30, 0x7b, 0xe2, 0x9b, 0x60, 0xe1, 0xcc, 0x9e, 0xf9, + 0xd0, 0x56, 0x28, 0xb3, 0xc7, 0x90, 0x62, 0x26, 0xfe, 0x79, 0x3b, 0xc6, 0x5c, 0xbb, 0xa7, 0x84, + 0xe7, 0xe0, 0xa5, 0x08, 0x4f, 0x76, 0xe9, 0x41, 0x61, 0x08, 0x01, 0xb5, 0x8b, 0xbb, 0xff, 0x9b, + 0x12, 0xcc, 0x6d, 0xaa, 0xcd, 0x9a, 0xcf, 0xf3, 0x55, 0xe8, 0xd5, 0xe0, 0x8d, 0xfe, 0x6e, 0xef, + 0x5e, 0xf9, 0x4a, 0xe3, 0x8b, 0x9e, 0x6c, 0x7b, 0x5a, 0x3e, 0x29, 0xf8, 0x98, 0x58, 0x0a, 0x75, + 0xd5, 0x68, 0x3f, 0x6c, 0xe2, 0xa6, 0xf7, 0x30, 0xff, 0x3e, 0x90, 0x00, 0x6d, 0xaa, 0x46, 0xb1, + 0x59, 0x37, 0xea, 0x4a, 0xc3, 0xec, 0x1a, 0x05, 0x5f, 0x82, 0x25, 0x3e, 0xe1, 0xe5, 0x0b, 0xec, + 0x79, 0x4f, 0x60, 0xf3, 0xf2, 0x09, 0x07, 0x30, 0xa3, 0x4e, 0x11, 0xb4, 0x1f, 0x62, 0x54, 0x7f, + 0x4d, 0x82, 0xb9, 0x15, 0x9b, 0x13, 0xae, 0xd7, 0xb5, 0xfc, 0xd6, 0x2d, 0x5e, 0x0a, 0x0b, 0xdb, + 0xd9, 0x22, 0x61, 0xe0, 0x28, 0x0c, 0xb7, 0xc9, 0x2f, 0x7b, 0x8c, 0x17, 0xd0, 0x7c, 0x96, 0xa4, + 0xd5, 0x55, 0x3d, 0x6b, 0xbe, 0x63, 0xa6, 0x67, 0xab, 0x56, 0x75, 0xf4, 0x7b, 0x12, 0xcc, 0xd3, + 0x60, 0xd2, 0x17, 0xed, 0xab, 0xbd, 0xa2, 0xa2, 0xed, 0x1e, 0x82, 0xaa, 0xeb, 0xcc, 0x17, 0xa3, + 0x54, 0xd9, 0xfc, 0x7f, 0x46, 0x0e, 0x20, 0x0b, 0x0f, 0x02, 0xa6, 0x8c, 0x2a, 0xf5, 0xd1, 0x53, + 0x46, 0xdb, 0x3d, 0x0e, 0xca, 0xd2, 0x21, 0x28, 0xfb, 0x9e, 0x04, 0xf3, 0x34, 0xc4, 0xf2, 0xa5, + 0xec, 0x95, 0x5e, 0x91, 0x75, 0x99, 0x32, 0x5e, 0xa6, 0x0b, 0x66, 0x0c, 0x33, 0x17, 0x8c, 0x2d, + 0x64, 0x82, 0xa4, 0xec, 0x03, 0xba, 0x88, 0xe5, 0x7e, 0x59, 0xca, 0x4f, 0x13, 0xae, 0x86, 0xc5, + 0x6f, 0x35, 0x45, 0x1c, 0x77, 0x0f, 0x15, 0x38, 0x81, 0x66, 0xbd, 0xc0, 0x29, 0xdb, 0x2a, 0xfa, + 0x55, 0x09, 0x66, 0x45, 0xd9, 0xb7, 0x81, 0xbd, 0x18, 0x19, 0x00, 0x93, 0xf6, 0x1e, 0x90, 0x3f, + 0xef, 0x23, 0x0c, 0x27, 0x65, 0x3f, 0xe8, 0x58, 0x0a, 0x30, 0x7a, 0x51, 0xbe, 0x0f, 0x83, 0x9e, + 0x49, 0xf4, 0x51, 0xa2, 0x4f, 0x77, 0x43, 0xff, 0x75, 0x09, 0x66, 0x45, 0x19, 0xb6, 0xd1, 0x3f, + 0x17, 0x19, 0x44, 0x17, 0xa9, 0x5d, 0xf2, 0x93, 0xda, 0x13, 0x19, 0x5f, 0xc1, 0xf8, 0xa6, 0x04, + 0x29, 0x4e, 0x5c, 0xc5, 0x57, 0xa1, 0xfc, 0x44, 0xf6, 0x85, 0xb0, 0xa8, 0x85, 0xe6, 0x08, 0xfb, + 0x3c, 0xc4, 0xf6, 0x14, 0x9a, 0xf3, 0x42, 0xd7, 0xa0, 0x75, 0xd1, 0x6f, 0x4b, 0x30, 0x27, 0x8a, + 0xae, 0x08, 0xf2, 0x7a, 0x4f, 0x60, 0x98, 0x08, 0xf7, 0x48, 0xc9, 0x4b, 0x3e, 0x82, 0xb0, 0x20, + 0x77, 0x23, 0x05, 0x0b, 0x03, 0xa6, 0x46, 0x14, 0xe5, 0xa3, 0xa0, 0x86, 0x89, 0xf4, 0x51, 0x53, + 0x93, 0x0e, 0xa2, 0xe6, 0xaf, 0x4a, 0x30, 0x27, 0x8a, 0xb6, 0x48, 0xcd, 0x8b, 0x3d, 0x01, 0xea, + 0x22, 0xe2, 0xd7, 0xfc, 0x44, 0xfc, 0x54, 0xa6, 0xab, 0x10, 0x7d, 0x11, 0x60, 0x45, 0x35, 0x4a, + 0xda, 0x36, 0xd9, 0xde, 0x38, 0x1b, 0xe2, 0xda, 0xfd, 0x62, 0x3e, 0x78, 0x6f, 0xa5, 0xa4, 0x6d, + 0xcb, 0x0b, 0x1e, 0x2b, 0x3b, 0x23, 0x08, 0xec, 0x95, 0x1d, 0xac, 0xff, 0x53, 0x66, 0xe7, 0xf4, + 0x94, 0x10, 0xdb, 0xd6, 0x08, 0xff, 0xb0, 0x52, 0x38, 0x28, 0x4b, 0x1e, 0x50, 0xe6, 0xd1, 0x49, + 0x73, 0x3b, 0x83, 0x20, 0xa2, 0x1f, 0x1c, 0x64, 0xdf, 0xa5, 0x7f, 0xdf, 0x43, 0x5f, 0x96, 0x60, + 0xd4, 0x5e, 0x02, 0x2f, 0x69, 0xdb, 0x47, 0xca, 0x9c, 0x2b, 0xd4, 0x1b, 0xc7, 0x88, 0x6c, 0xb1, + 0x9a, 0x4b, 0xcf, 0x70, 0xeb, 0x5e, 0x8e, 0xd5, 0x6f, 0x8c, 0xa7, 0xfc, 0xb1, 0xe2, 0x11, 0x17, + 0xbe, 0x3f, 0x24, 0x5e, 0x37, 0x39, 0x76, 0xb8, 0xc7, 0x3d, 0x92, 0x75, 0x2d, 0xe2, 0xab, 0x36, + 0xa6, 0xf3, 0xfd, 0x62, 0xe4, 0x7a, 0x6c, 0x7b, 0xe5, 0xaa, 0xc7, 0xd8, 0x9e, 0x92, 0x53, 0x14, + 0xf8, 0xae, 0xca, 0xc6, 0x55, 0xd8, 0x09, 0xfa, 0x39, 0x09, 0xc6, 0x72, 0xb5, 0x1a, 0x87, 0x3b, + 0x78, 0xba, 0xf1, 0x78, 0x96, 0x29, 0x1d, 0x5e, 0x4c, 0xcd, 0xe0, 0x55, 0xe4, 0xef, 0xb4, 0x9c, + 0x74, 0xc2, 0x64, 0x41, 0xf5, 0x04, 0xfd, 0x1a, 0x9c, 0x47, 0x18, 0xc8, 0x58, 0xef, 0xd7, 0x9f, + 0x7c, 0x0d, 0x86, 0xf7, 0x88, 0x67, 0x4e, 0xb8, 0x18, 0xc7, 0x6b, 0xc4, 0x04, 0x55, 0x57, 0xfe, + 0x2e, 0x03, 0xbf, 0xa9, 0x70, 0x31, 0xf4, 0x0b, 0x1e, 0xa4, 0x1d, 0x82, 0x67, 0x02, 0xc6, 0x31, + 0x9e, 0x5d, 0x92, 0x2c, 0x06, 0xf9, 0x0c, 0x15, 0xce, 0xd0, 0xb3, 0xf4, 0xf3, 0xf0, 0xbf, 0xc2, + 0x0d, 0x23, 0xbb, 0x2b, 0x21, 0xe4, 0x30, 0x0a, 0x2f, 0xe8, 0x84, 0x1a, 0x46, 0x5a, 0x83, 0x08, + 0x1b, 0x82, 0x24, 0x07, 0xd2, 0x7b, 0x34, 0x19, 0x50, 0x3c, 0x9a, 0x7f, 0x4b, 0x82, 0x09, 0xba, + 0xd2, 0xc4, 0x03, 0xbd, 0x16, 0x6e, 0x29, 0xfa, 0x30, 0x58, 0xaf, 0x77, 0xc1, 0x7a, 0x3a, 0x9d, + 0x76, 0x62, 0xcd, 0xbe, 0xcb, 0x3e, 0x98, 0x7b, 0x8f, 0x6d, 0x96, 0xf2, 0x32, 0x18, 0x16, 0xb5, + 0xf7, 0x1b, 0x45, 0x5d, 0xa3, 0x89, 0x49, 0x98, 0xe0, 0x20, 0x72, 0x13, 0xd7, 0xc9, 0x4c, 0x17, + 0x8c, 0xe8, 0x37, 0x44, 0xf3, 0x43, 0xfb, 0x0b, 0x67, 0x7e, 0x3c, 0x3e, 0x73, 0x0f, 0x65, 0x7e, + 0xbc, 0x3e, 0xf2, 0x27, 0x2e, 0x82, 0x8f, 0xd8, 0xf2, 0x56, 0xc8, 0x24, 0x80, 0xb3, 0x42, 0xdf, + 0x95, 0x60, 0x8c, 0x36, 0x66, 0x3d, 0x3e, 0xf1, 0x7c, 0xa4, 0xfb, 0x46, 0x4c, 0xec, 0x2f, 0x44, + 0xac, 0xc5, 0x90, 0x2f, 0xfa, 0x6c, 0x72, 0xcc, 0xc8, 0x13, 0xf6, 0x26, 0x07, 0x87, 0xf7, 0x67, + 0x24, 0xeb, 0xf0, 0x27, 0xf1, 0x15, 0x2e, 0x84, 0xec, 0xb6, 0x98, 0x4f, 0x87, 0x7d, 0x42, 0x83, + 0xac, 0x8f, 0x22, 0x11, 0x13, 0x8a, 0x15, 0x29, 0xae, 0x24, 0x1a, 0x13, 0x37, 0x5f, 0xd0, 0x5f, + 0x92, 0x60, 0x94, 0x39, 0xc0, 0xec, 0xb1, 0x8d, 0xb0, 0x0c, 0x14, 0x5e, 0xed, 0x09, 0x0f, 0xef, + 0x1c, 0x73, 0xb2, 0x18, 0x3c, 0x5b, 0x9f, 0xc6, 0xe4, 0x21, 0x0b, 0x1b, 0xe6, 0xd5, 0xb7, 0x24, + 0x18, 0x65, 0xce, 0x6c, 0x44, 0x64, 0xc2, 0xbb, 0x40, 0xe1, 0x91, 0x5d, 0x21, 0x9a, 0x24, 0x22, + 0xb3, 0x38, 0x37, 0x99, 0x76, 0x70, 0x0e, 0x43, 0xfc, 0x05, 0x09, 0x26, 0x6c, 0xff, 0xc6, 0x84, + 0x79, 0x1c, 0x83, 0xfa, 0x63, 0xdd, 0xb0, 0x61, 0x4b, 0x24, 0x6e, 0xa9, 0x39, 0xfc, 0x9e, 0x5f, + 0x20, 0x96, 0xe8, 0x71, 0xc4, 0x29, 0xfa, 0x43, 0xff, 0x4a, 0x82, 0x69, 0xaa, 0x61, 0xe2, 0x85, + 0x44, 0x7a, 0x70, 0xe4, 0xd2, 0xe5, 0x06, 0xa3, 0xf4, 0x2b, 0x91, 0x2e, 0xbf, 0x12, 0x35, 0xfc, + 0xb5, 0xfd, 0x83, 0xd4, 0x09, 0x87, 0x36, 0x0d, 0x99, 0x8c, 0xb1, 0x6d, 0x14, 0xbb, 0x9c, 0xcb, + 0x4b, 0xe7, 0x7f, 0x5d, 0x82, 0xe9, 0x15, 0xd5, 0x10, 0x01, 0x12, 0xed, 0x5f, 0x8c, 0x82, 0xab, + 0x98, 0x4f, 0x47, 0xbe, 0x4d, 0x4a, 0x5e, 0xf6, 0xb1, 0x4f, 0x17, 0xd1, 0x05, 0x17, 0xe4, 0x77, + 0xed, 0xef, 0x2d, 0xdf, 0xa3, 0x99, 0xcc, 0x44, 0x7c, 0x83, 0x12, 0xe0, 0xf1, 0xfe, 0x8c, 0x9f, + 0xdf, 0xb2, 0x14, 0xe9, 0x26, 0x72, 0xea, 0xbb, 0xe0, 0x49, 0x60, 0x1a, 0x26, 0x4d, 0xa8, 0xce, + 0x89, 0x80, 0x2c, 0x3f, 0x99, 0x50, 0x45, 0x1f, 0xe6, 0x3f, 0x4b, 0x30, 0x25, 0x4c, 0x02, 0xe6, + 0x44, 0xf6, 0x4a, 0x0f, 0x17, 0xa2, 0x9b, 0x32, 0x73, 0xbd, 0xa7, 0xba, 0x4c, 0x68, 0xee, 0xec, + 0x1f, 0xa4, 0x16, 0x3c, 0x69, 0x71, 0xca, 0xce, 0x45, 0xf9, 0xd9, 0xac, 0xf7, 0x08, 0x78, 0xcc, + 0x76, 0xbf, 0x22, 0x41, 0x32, 0x57, 0xab, 0x89, 0x6f, 0xfb, 0x5c, 0x89, 0x04, 0x34, 0x57, 0xab, + 0x05, 0x6f, 0x08, 0x0a, 0x35, 0xe4, 0x1b, 0xfb, 0x07, 0xa9, 0x34, 0x4c, 0x39, 0x88, 0x11, 0x35, + 0x7b, 0x4e, 0x76, 0x6e, 0xea, 0x73, 0xde, 0xdb, 0x3f, 0x92, 0x60, 0x92, 0xba, 0x62, 0x22, 0xf2, + 0xe7, 0x22, 0xe1, 0xa0, 0x2d, 0x44, 0x05, 0x5f, 0x0c, 0x01, 0xfe, 0x6c, 0x7a, 0xc1, 0x1b, 0xbc, + 0xe8, 0xce, 0xfd, 0x75, 0x09, 0x26, 0xa9, 0x6f, 0x76, 0x18, 0x32, 0x68, 0x0b, 0xbe, 0xde, 0xdc, + 0xca, 0xfe, 0x41, 0x6a, 0x0e, 0xa6, 0x1d, 0x78, 0xa9, 0x47, 0x67, 0x01, 0x96, 0x33, 0x81, 0x80, + 0xd1, 0xbf, 0xb5, 0x7c, 0x3b, 0xee, 0x7b, 0x90, 0x10, 0xdb, 0x77, 0x7e, 0x2f, 0x97, 0xa4, 0x5f, + 0xee, 0xa1, 0x26, 0x53, 0x87, 0x37, 0xf6, 0x0f, 0x52, 0xf3, 0x30, 0x61, 0x59, 0xa1, 0x56, 0x43, + 0xf5, 0x54, 0x86, 0x0b, 0xf2, 0x19, 0x1f, 0x65, 0x20, 0x8a, 0xce, 0xab, 0xc2, 0x2f, 0xd1, 0xb8, + 0x85, 0x7f, 0x45, 0x68, 0x31, 0x02, 0x40, 0xac, 0x06, 0x17, 0x23, 0x94, 0x27, 0x81, 0x40, 0x0a, + 0x90, 0x40, 0x82, 0x28, 0x45, 0x27, 0xe4, 0x29, 0xc7, 0xa0, 0x10, 0xd0, 0x18, 0xec, 0xdf, 0xb6, + 0xc2, 0x17, 0x1e, 0xef, 0xd5, 0x08, 0xfd, 0x33, 0xe1, 0x8f, 0x04, 0x39, 0x17, 0x08, 0xd9, 0x3d, + 0x1f, 0x53, 0x3e, 0xbf, 0x7b, 0x5f, 0xdd, 0x7b, 0x8f, 0x6d, 0x9e, 0x4f, 0x08, 0x22, 0x1f, 0x19, + 0x78, 0x80, 0xb8, 0xdf, 0x20, 0xb3, 0xeb, 0xa4, 0x80, 0xd1, 0x21, 0xec, 0x38, 0x84, 0xf1, 0x05, + 0x89, 0x7e, 0x68, 0x89, 0x39, 0x77, 0x44, 0x2c, 0x84, 0x98, 0xfb, 0xdd, 0xff, 0x1b, 0x2c, 0xe6, + 0xbe, 0x37, 0x1e, 0xcb, 0x77, 0xf7, 0x0f, 0x52, 0xa7, 0xdc, 0x27, 0xc7, 0x9c, 0x52, 0x7e, 0x45, + 0xbe, 0xe8, 0x23, 0xe5, 0xc2, 0x61, 0x32, 0x4e, 0xd8, 0xff, 0xbe, 0x24, 0xdc, 0x6b, 0x4d, 0x7c, + 0x87, 0xcb, 0x11, 0x70, 0x16, 0xf3, 0xc1, 0x92, 0xc3, 0x15, 0x27, 0xfa, 0x1a, 0x82, 0x90, 0x0c, + 0x3a, 0x1f, 0x86, 0x10, 0xe2, 0x43, 0xfc, 0x40, 0x82, 0x69, 0x1a, 0x30, 0x38, 0xbe, 0xf7, 0x41, + 0x2f, 0x44, 0xbc, 0xc8, 0x9c, 0xad, 0xad, 0x47, 0x22, 0x68, 0x4b, 0x34, 0x40, 0x98, 0x20, 0xaa, + 0x09, 0x0e, 0x8a, 0x2e, 0xc9, 0xe7, 0x7c, 0x28, 0x6a, 0xd5, 0x6b, 0x55, 0x9e, 0x2a, 0x3c, 0x2c, + 0xbf, 0x65, 0x1d, 0x90, 0xe0, 0xe9, 0xb9, 0x1a, 0x01, 0x18, 0x5b, 0x59, 0x8f, 0x44, 0xcb, 0x9d, + 0x90, 0xb4, 0x5c, 0x4e, 0x87, 0x1e, 0x1d, 0x4c, 0xcc, 0xef, 0x4a, 0x30, 0x6d, 0x87, 0x32, 0x3c, + 0x41, 0xc7, 0x29, 0x69, 0x4a, 0x48, 0x62, 0x5e, 0x4e, 0x3f, 0x1f, 0x96, 0x18, 0x67, 0xec, 0x83, + 0x09, 0x2b, 0x3f, 0x19, 0x84, 0x89, 0xc1, 0xd2, 0xf7, 0x2c, 0xe3, 0x7c, 0x08, 0xa2, 0xfc, 0x0c, + 0xf3, 0xe6, 0xfe, 0x41, 0xea, 0xb4, 0x3d, 0x79, 0x60, 0xfc, 0xcc, 0x2e, 0x3b, 0x8d, 0x40, 0x26, + 0xbc, 0x11, 0xf8, 0x6f, 0xd6, 0xf6, 0x14, 0x07, 0x82, 0x7b, 0x3f, 0xe6, 0x4a, 0xf8, 0x4b, 0xeb, + 0x99, 0xe6, 0x44, 0xb8, 0xe6, 0x5e, 0x6e, 0x84, 0x1c, 0x92, 0x7c, 0xfa, 0x46, 0x28, 0x8a, 0xc4, + 0xd7, 0x28, 0xa8, 0x89, 0xa0, 0x37, 0xe3, 0xe3, 0xd1, 0xf9, 0x43, 0x09, 0xd2, 0x65, 0x75, 0x5b, + 0x6d, 0xaa, 0x1a, 0x33, 0x7a, 0xc2, 0x7b, 0x06, 0x11, 0x87, 0x29, 0xf0, 0x98, 0x12, 0xdf, 0xb8, + 0x6c, 0x84, 0xa4, 0x74, 0x35, 0xbd, 0x12, 0x5a, 0xf8, 0x6c, 0xea, 0xb2, 0x15, 0x7a, 0x60, 0x97, + 0x3e, 0xbd, 0x40, 0x9f, 0x63, 0xc0, 0x14, 0xff, 0x47, 0x09, 0x26, 0x05, 0x8f, 0x93, 0x84, 0xa1, + 0x3a, 0x7a, 0xb9, 0x97, 0xe8, 0xfb, 0xf0, 0x81, 0xbb, 0x43, 0x82, 0x49, 0x40, 0xeb, 0x3d, 0x8d, + 0xc9, 0x67, 0xb3, 0x5d, 0x83, 0x60, 0x47, 0x04, 0xc6, 0xf7, 0xd9, 0x53, 0x18, 0x7f, 0x29, 0x4a, + 0x79, 0xf9, 0xe6, 0xfe, 0x41, 0x6a, 0xca, 0x8b, 0x0e, 0x02, 0xfe, 0x0c, 0x92, 0xb3, 0xc1, 0x11, + 0xfc, 0xf7, 0x25, 0x40, 0xc2, 0x22, 0x1f, 0xbd, 0x5b, 0x65, 0x29, 0x0a, 0x10, 0x36, 0xef, 0x46, + 0x03, 0x9f, 0x13, 0x83, 0x7a, 0x0a, 0xde, 0x5e, 0xf2, 0x93, 0xe5, 0x53, 0x5d, 0xd1, 0xb3, 0xe5, + 0x13, 0x24, 0x2c, 0x03, 0xf6, 0x80, 0x9d, 0x59, 0x8b, 0x68, 0xd8, 0x6f, 0x75, 0xc7, 0x7e, 0x2e, + 0x1d, 0x82, 0xf3, 0xcc, 0x4d, 0x98, 0x71, 0x2d, 0x12, 0x52, 0x22, 0x8e, 0x57, 0x72, 0xca, 0xdd, + 0x09, 0x78, 0x2e, 0xbd, 0x18, 0x4c, 0x80, 0x73, 0x36, 0xc5, 0xc4, 0x94, 0x7f, 0x74, 0x89, 0x11, + 0x67, 0xd0, 0xef, 0x48, 0x80, 0x84, 0xf0, 0xa6, 0x37, 0x42, 0xfc, 0xe6, 0xd0, 0xfc, 0xfe, 0x41, + 0x6a, 0xc6, 0x5e, 0x7b, 0xa0, 0x90, 0xb9, 0xcd, 0x99, 0x33, 0x99, 0x30, 0xba, 0xfb, 0x2b, 0x12, + 0xa4, 0xed, 0xd5, 0x37, 0xd7, 0x35, 0xe8, 0x7e, 0x4b, 0x70, 0x2f, 0x46, 0xbf, 0x83, 0x97, 0xae, + 0xc3, 0x15, 0xc8, 0x0a, 0xc4, 0x09, 0x11, 0xb5, 0x73, 0x35, 0x8e, 0x9c, 0x87, 0x34, 0xa1, 0x33, + 0xb4, 0xe2, 0xa2, 0xdc, 0x7e, 0x0c, 0x4e, 0xb8, 0x67, 0x03, 0x73, 0x65, 0xee, 0x46, 0xaf, 0x37, + 0x04, 0x9b, 0x33, 0xc3, 0x6b, 0xbd, 0x37, 0xc0, 0xe6, 0x87, 0xb7, 0xc3, 0xd0, 0xf9, 0x19, 0xf9, + 0xa5, 0x80, 0x21, 0x32, 0x2f, 0x76, 0xf3, 0x5c, 0xb0, 0xfb, 0x0f, 0x12, 0x4c, 0xdb, 0xab, 0x14, + 0xfc, 0x85, 0xf4, 0x2f, 0x44, 0xc7, 0x9f, 0xab, 0xd5, 0xd2, 0x4b, 0xd1, 0xab, 0xc9, 0x7f, 0x72, + 0xff, 0x20, 0x75, 0x12, 0xd2, 0x9e, 0x84, 0xda, 0x0a, 0xf4, 0x82, 0x7c, 0x25, 0x2a, 0xa5, 0xcc, + 0xcd, 0x49, 0x09, 0x4b, 0x1b, 0x3c, 0x91, 0x2f, 0x45, 0x47, 0xcb, 0x16, 0x3a, 0x7a, 0xa1, 0x53, + 0x0d, 0x45, 0xe7, 0x8d, 0xf4, 0x2b, 0x91, 0x47, 0x54, 0x58, 0x06, 0xfc, 0x81, 0x04, 0x29, 0xb7, + 0xd1, 0xe8, 0x9d, 0xe2, 0x80, 0x15, 0x92, 0x2a, 0x89, 0xc5, 0xe7, 0x3c, 0xa9, 0xe2, 0x6c, 0xc9, + 0x8f, 0x65, 0x0e, 0x41, 0x16, 0xfa, 0xbb, 0x12, 0x24, 0xed, 0xef, 0x8e, 0x99, 0xdf, 0x76, 0x2d, + 0xe2, 0xa5, 0x82, 0xa1, 0xb7, 0x81, 0x7d, 0x2e, 0x05, 0x95, 0x5f, 0xa0, 0xdb, 0xc0, 0xe4, 0x8c, + 0xb8, 0xc3, 0xcd, 0x49, 0xcb, 0xd3, 0xec, 0xa0, 0xb8, 0xdb, 0x27, 0xfb, 0x8e, 0xc4, 0x5d, 0x64, + 0x4b, 0x1c, 0xb2, 0x8b, 0xa1, 0x11, 0x14, 0xf3, 0xe1, 0xbe, 0x3c, 0xa1, 0x73, 0xd0, 0xcb, 0xfe, + 0x00, 0xe7, 0x91, 0x75, 0xc4, 0xde, 0xe4, 0xaa, 0x60, 0xc5, 0x7f, 0x51, 0x82, 0x71, 0xfb, 0x5b, + 0x63, 0x3a, 0xcf, 0x64, 0x43, 0xf7, 0xcc, 0x7c, 0xaf, 0x08, 0x50, 0x5f, 0xa2, 0x07, 0x17, 0x38, + 0xa8, 0xe2, 0x71, 0x58, 0x6f, 0xac, 0x98, 0x9d, 0x7f, 0x43, 0x82, 0x71, 0xfb, 0x1b, 0x8e, 0xa8, + 0x48, 0x99, 0xa7, 0x15, 0x01, 0xe9, 0x67, 0xba, 0x20, 0x7d, 0x3a, 0xdd, 0x95, 0xab, 0xec, 0x08, + 0xd5, 0xa4, 0xf8, 0x95, 0x35, 0x85, 0x7c, 0x5c, 0x32, 0x50, 0xec, 0x02, 0xf7, 0x72, 0xfa, 0x7c, + 0x37, 0xb8, 0x4e, 0x5f, 0xea, 0x43, 0xb2, 0xa1, 0xf0, 0x23, 0x02, 0x5d, 0xf4, 0x9c, 0x3e, 0x90, + 0x60, 0x9c, 0x1a, 0xae, 0x1e, 0x61, 0xfb, 0x99, 0xbb, 0xeb, 0xf4, 0x34, 0x0b, 0x87, 0x91, 0x33, + 0x72, 0xf3, 0x99, 0xee, 0x4a, 0xf6, 0x3f, 0x24, 0x98, 0x15, 0x7c, 0x0e, 0xce, 0x9a, 0x85, 0x7d, + 0x0a, 0xe1, 0xa8, 0x8d, 0xda, 0xe7, 0xf6, 0x0f, 0x52, 0x67, 0x60, 0xd6, 0xb4, 0xdf, 0x0e, 0xdb, + 0x11, 0x7e, 0x6d, 0xd8, 0xcf, 0xfa, 0xfd, 0x1b, 0xfb, 0xc6, 0x2f, 0xd1, 0x08, 0x2e, 0x45, 0x25, + 0x38, 0x9a, 0x30, 0xbd, 0x1d, 0x89, 0xae, 0xe7, 0xd1, 0x52, 0x57, 0xba, 0xbc, 0xc7, 0xf3, 0xf7, + 0x24, 0x98, 0x11, 0xc2, 0xd6, 0x47, 0x63, 0x3b, 0x95, 0xfd, 0x83, 0xd4, 0x59, 0x48, 0x79, 0x90, + 0xe6, 0xb9, 0x8a, 0xb2, 0x24, 0x5f, 0x8e, 0x44, 0x1b, 0x1e, 0xb5, 0x3f, 0x90, 0x60, 0x46, 0x08, + 0x6a, 0x6d, 0xca, 0xae, 0x45, 0x1d, 0xb7, 0xe8, 0x26, 0xf7, 0x5e, 0x34, 0x02, 0x5f, 0x4c, 0xf7, + 0x30, 0x78, 0xe6, 0x1a, 0x98, 0x2b, 0xf2, 0xb5, 0x29, 0x3d, 0x66, 0x09, 0xd5, 0xa2, 0x51, 0xb9, + 0x9c, 0x7e, 0x35, 0x3a, 0x95, 0x4e, 0x93, 0x4e, 0x57, 0xfd, 0x9e, 0x6c, 0x8a, 0xc5, 0x99, 0xe0, + 0x2b, 0x31, 0x38, 0xe9, 0x8e, 0xf3, 0x38, 0xc3, 0x7b, 0x33, 0xd2, 0x42, 0xcd, 0x11, 0x5b, 0x5f, + 0x63, 0xff, 0x20, 0x95, 0x85, 0x53, 0xa2, 0xf7, 0xec, 0xb4, 0x55, 0xe2, 0x43, 0x82, 0x94, 0x37, + 0xd7, 0xe5, 0x6b, 0x26, 0x6f, 0x4c, 0xe2, 0x9d, 0x57, 0x79, 0xfb, 0xdb, 0xe4, 0x3f, 0x92, 0xc4, + 0xc7, 0xdb, 0x44, 0xc3, 0xfc, 0x62, 0x4f, 0x0c, 0x89, 0x26, 0x09, 0xef, 0xf4, 0x4a, 0xf7, 0x0d, + 0xf4, 0x99, 0xb0, 0x74, 0x7b, 0xdb, 0xec, 0x3f, 0xb6, 0x3f, 0xa8, 0xf1, 0x22, 0x03, 0x5d, 0xef, + 0x89, 0xfa, 0xe8, 0x46, 0xfc, 0xe1, 0xfe, 0x41, 0xea, 0x0a, 0xcc, 0xfb, 0x72, 0x80, 0x6a, 0x84, + 0x17, 0x0b, 0xb8, 0x98, 0x3f, 0x2a, 0x0b, 0xf0, 0xe0, 0xbf, 0x1f, 0xb3, 0xbe, 0xc1, 0x39, 0x42, + 0x06, 0x44, 0x37, 0xf2, 0x7f, 0xaa, 0x67, 0x06, 0xdc, 0x4c, 0x1f, 0x4e, 0x06, 0x30, 0x17, 0xfe, + 0x42, 0x0c, 0x4e, 0x7b, 0x2f, 0x7a, 0xda, 0x9c, 0x78, 0x14, 0x8a, 0xf0, 0x53, 0x52, 0xcf, 0x6c, + 0x58, 0x4f, 0x17, 0x0f, 0xc5, 0x06, 0xe7, 0xdc, 0x80, 0x59, 0x52, 0xfe, 0xa4, 0xb3, 0xc4, 0xb5, + 0x00, 0x3b, 0xce, 0x4e, 0x6f, 0x58, 0x17, 0xbe, 0x5f, 0x8b, 0x78, 0xad, 0x7e, 0xe8, 0x39, 0xc2, + 0xe7, 0x0a, 0x7c, 0x79, 0x9e, 0x5e, 0x2d, 0x20, 0x4f, 0x66, 0x95, 0x8e, 0xb1, 0xe3, 0xb2, 0xe6, + 0x37, 0xff, 0x99, 0xf4, 0xd5, 0xdc, 0x5f, 0x94, 0xd0, 0x0a, 0x8c, 0xd9, 0x17, 0x05, 0x2e, 0xe4, + 0x36, 0x8a, 0xf2, 0x15, 0xb4, 0xb8, 0x63, 0x18, 0x6d, 0xfd, 0x95, 0x6c, 0x76, 0xbb, 0x6e, 0xec, + 0x74, 0xde, 0x5e, 0xac, 0xb6, 0x76, 0xb3, 0x18, 0x45, 0x96, 0xa1, 0xc8, 0xb6, 0xef, 0x6f, 0x67, + 0x6d, 0x24, 0x4b, 0xf1, 0x2b, 0x8b, 0x57, 0x33, 0x52, 0x6c, 0x89, 0x7f, 0xd4, 0x3d, 0xfb, 0x93, + 0x7a, 0xab, 0x29, 0xa6, 0x6c, 0x6b, 0xed, 0xea, 0x2b, 0xae, 0x32, 0xaf, 0xb8, 0xca, 0x7c, 0x36, + 0x64, 0xbf, 0x59, 0xa5, 0x5d, 0x27, 0x15, 0xde, 0xee, 0x27, 0xe1, 0xd6, 0x73, 0xff, 0x3f, 0x00, + 0x00, 0xff, 0xff, 0x5f, 0x73, 0x9b, 0x82, 0x39, 0xcb, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/pkg/management/api/grpc/user_converter.go b/pkg/management/api/grpc/user_converter.go index 74752c3dba..06953fc721 100644 --- a/pkg/management/api/grpc/user_converter.go +++ b/pkg/management/api/grpc/user_converter.go @@ -368,21 +368,24 @@ func userViewFromModel(user *usr_model.UserView) *UserView { ChangeDate: changeDate, LastLogin: lastLogin, PasswordChanged: passwordChanged, - Sequence: user.Sequence, - ResourceOwner: user.ResourceOwner, UserName: user.UserName, FirstName: user.FirstName, LastName: user.LastName, + DisplayName: user.DisplayName, NickName: user.NickName, + PreferredLanguage: user.PreferredLanguage, + Gender: genderFromModel(user.Gender), Email: user.Email, IsEmailVerified: user.IsEmailVerified, Phone: user.Phone, IsPhoneVerified: user.IsPhoneVerified, Country: user.Country, Locality: user.Locality, - Region: user.Region, PostalCode: user.PostalCode, + Region: user.Region, StreetAddress: user.StreetAddress, + Sequence: user.Sequence, + ResourceOwner: user.ResourceOwner, LoginNames: user.LoginNames, PreferredLoginName: user.PreferredLoginName, } diff --git a/pkg/management/api/proto/management.proto b/pkg/management/api/proto/management.proto index f6526925e0..ee39c18fbc 100644 --- a/pkg/management/api/proto/management.proto +++ b/pkg/management/api/proto/management.proto @@ -1417,7 +1417,7 @@ message UserView { uint64 sequence = 23; string resource_owner = 24; repeated string login_names = 25; - string preferred_login_name = 27; + string preferred_login_name = 26; } message UserSearchRequest {